@import url('/media/templates/site/cassiopeia_cc_2026/css/grand-choral-registration.css?20260926');
@import url('/media/templates/site/cassiopeia_cc_2026/css/lalafab.css');

/* =========================================================
   HEADER – Cassiopeia (Joomla 6)
   Logo left / Menu grouped on the right
   ========================================================= */

header.header {
    background: #ffffff;
}

/* Bande Organisée: registration callout and private-resource directory card. */
.cc-bo-register-banner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    margin: 1.4rem 0 2rem;
    padding: clamp(1.3rem, 2.6vw, 2rem);
    border: 1px solid #e9d9e8;
    border-radius: 22px;
    background: linear-gradient(105deg, #fcf3f5, #f4f6fb 67%, #e9f9fa);
    box-shadow: 0 16px 34px #3e21500d;
}
.cc-bo-register-banner__eyebrow {
    margin: 0 0 .35rem;
    color: #a34465;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.cc-bo-register-banner h2 { margin: 0 0 .45rem; color: #3d285b; font-size: clamp(1.35rem, 2.4vw, 2rem); }
.cc-bo-register-banner p:last-child { max-width: 740px; margin: 0; color: #594d62; line-height: 1.55; }
.cc-bo-register-banner__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    min-height: 46px;
    padding: .7rem 1.2rem;
    border-radius: 999px;
    background: #5a3984;
    color: #fff !important;
    font-weight: 750;
    text-decoration: none !important;
    white-space: nowrap;
}
.cc-bo-register-banner__action:hover { background: #422762; }
.cc-resource-activity--bande-organisee { border-color: #e8d3df; background: linear-gradient(150deg, #fff, #fcf2f5); }
.cc-resource-activity--bande-organisee .cc-resource-activity__icon { background: #f7e4eb; color: #9d4165; }
@media (max-width: 720px) {
    .cc-bo-register-banner { grid-template-columns: 1fr; }
    .cc-bo-register-banner__action { width: fit-content; white-space: normal; }
}

/* --------------------------------------------------------------------------
   Individual membership — dedicated HikaShop journey
   -------------------------------------------------------------------------- */

body:has(.cc-membership-product-page) [data-position="cc-main-top-01"],
body:has(.cc-membership-product-page) .cc-shop-product-trust,
body:has(.cc-membership-product-page) .hikashop_footer {
    display: none !important;
}

body:has(.cc-membership-product-page) .container-component {
    max-width: 78rem;
}

.cc-membership-product-page {
    --cc-membership-ink: #35243d;
    --cc-membership-purple: #5a2c83;
    --cc-membership-purple-dark: #32183f;
    --cc-membership-cyan: #27b9d7;
    --cc-membership-yellow: #f9b900;
    --cc-membership-soft: #f7f2f9;
    --cc-membership-line: #e4d9e8;
}

.cc-membership-product-back {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    margin: 0.6rem 0 1.3rem;
    color: var(--cc-membership-purple, #5a2c83);
    font-size: 0.78rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-membership-product-back:hover,
.cc-membership-product-back:focus-visible {
    color: #3f1e55;
}

.cc-membership-product-kicker {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    margin-bottom: 0.8rem;
    color: var(--cc-membership-cyan);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.cc-membership-product-kicker::before {
    width: 1.25rem;
    height: 0.16rem;
    background: currentColor;
    border-radius: 999px;
    content: "";
}

.cc-membership-product-hero {
    position: relative;
    display: grid;
    min-height: 25rem;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
    margin-bottom: clamp(1.3rem, 3vw, 2rem);
    padding: clamp(2rem, 5vw, 4.2rem);
    overflow: hidden;
    color: #ffffff;
    background:
        radial-gradient(circle at 84% 20%, rgba(39, 185, 215, 0.26), transparent 24rem),
        radial-gradient(circle at 15% 120%, rgba(249, 185, 0, 0.17), transparent 24rem),
        linear-gradient(125deg, #281332 0%, #4d2468 56%, #653184 100%);
    border-radius: 1.5rem;
    box-shadow: 0 1.4rem 3.5rem rgba(55, 25, 70, 0.2);
}

.cc-membership-product-hero::before,
.cc-membership-product-hero::after {
    position: absolute;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
}

.cc-membership-product-hero::before {
    width: 24rem;
    height: 24rem;
    top: -15rem;
    right: -4rem;
}

.cc-membership-product-hero::after {
    width: 12rem;
    height: 12rem;
    right: 7rem;
    bottom: -8rem;
}

.cc-membership-product-hero__content,
.cc-membership-product-hero__mark {
    position: relative;
    z-index: 1;
}

.cc-membership-product-hero h1 {
    max-width: 13ch;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.65rem, 5.6vw, 5rem);
    font-weight: 930;
    letter-spacing: -0.065em;
    line-height: 0.96;
}

.cc-membership-product-hero__content > p {
    max-width: 42rem;
    margin: 1.25rem 0 1.5rem;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.65;
}

.cc-membership-product-hero__trust {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.cc-membership-product-hero__trust span {
    display: inline-flex;
    min-height: 2.2rem;
    gap: 0.45rem;
    align-items: center;
    padding: 0.4rem 0.68rem;
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    backdrop-filter: blur(0.3rem);
}

.cc-membership-product-hero__trust i {
    color: #8de0e9;
}

.cc-membership-product-hero__mark {
    display: grid;
    width: clamp(10rem, 16vw, 12rem);
    aspect-ratio: 1;
    place-items: center;
    align-content: center;
    color: var(--cc-membership-purple-dark);
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    box-shadow: 0 1rem 2.2rem rgba(20, 8, 26, 0.25);
    text-align: center;
    transform: rotate(2deg);
}

.cc-membership-product-hero__mark > span {
    margin-bottom: 0.45rem;
    color: var(--cc-membership-cyan);
    font-size: 2rem;
}

.cc-membership-product-hero__mark strong {
    display: grid;
    color: var(--cc-membership-purple);
    font-size: 1.2rem;
    font-weight: 950;
    letter-spacing: -0.04em;
    line-height: 1;
}

.cc-membership-product-hero__mark small {
    margin-top: 0.3rem;
    color: #7c6a82;
    font-size: 0.58rem;
    letter-spacing: 0.16em;
}

.cc-membership-product-grid {
    display: grid;
    grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: stretch;
}

.cc-membership-product-guide,
.cc-membership-product-card {
    padding: clamp(1.35rem, 3vw, 2.4rem);
    background: #ffffff;
    border: 1px solid var(--cc-membership-line);
    border-radius: 1.25rem;
    box-shadow: 0 0.8rem 2.4rem rgba(62, 30, 78, 0.065);
}

.cc-membership-product-guide {
    background: linear-gradient(145deg, #fcf9fd 0%, var(--cc-membership-soft) 100%);
}

.cc-membership-product-guide .cc-membership-product-kicker,
.cc-membership-product-card .cc-membership-product-kicker {
    color: #7a4b9b;
}

.cc-membership-product-guide h2,
.cc-membership-product-card h2 {
    margin: 0;
    color: var(--cc-membership-purple-dark);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 920;
    letter-spacing: -0.05em;
    line-height: 1.02;
}

.cc-membership-product-guide ol {
    display: grid;
    gap: 0.7rem;
    margin: 2rem 0;
    padding: 0;
    list-style: none;
}

.cc-membership-product-guide li {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
    padding: 0.9rem;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid #e6dce9;
    border-radius: 0.85rem;
}

.cc-membership-product-guide li > span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    color: #ffffff;
    background: var(--cc-membership-purple);
    border-radius: 0.65rem;
    font-size: 0.68rem;
    font-weight: 900;
}

.cc-membership-product-guide li div {
    display: grid;
    gap: 0.18rem;
}

.cc-membership-product-guide li strong {
    color: var(--cc-membership-purple-dark);
    font-size: 0.82rem;
}

.cc-membership-product-guide li small {
    color: #786d7c;
    font-size: 0.7rem;
    line-height: 1.45;
}

.cc-membership-product-benefit {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
    margin-top: 1.25rem;
    padding-top: 1.2rem;
    border-top: 1px solid #e3d8e6;
}

.cc-membership-product-benefit > i {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    color: #1d7f92;
    background: #dcf5f9;
    border-radius: 50%;
    font-size: 0.72rem;
}

.cc-membership-product-benefit strong {
    color: var(--cc-membership-purple-dark);
    font-size: 0.76rem;
}

.cc-membership-product-benefit p {
    margin: 0.25rem 0 0;
    color: #7b6f7f;
    font-size: 0.7rem;
    line-height: 1.5;
}

.cc-membership-product-card__heading {
    display: flex;
    gap: 0.9rem;
    align-items: center;
}

.cc-membership-product-card__icon {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    flex: 0 0 3.2rem;
    place-items: center;
    color: #ffffff;
    background: linear-gradient(135deg, #5a2c83, #793e97);
    border-radius: 1rem;
    box-shadow: 0 0.7rem 1.4rem rgba(87, 39, 112, 0.2);
}

.cc-membership-product-card__lead {
    max-width: 58ch;
    margin: 1rem 0 1.5rem;
    color: #776a7b;
    font-size: 0.82rem;
    line-height: 1.55;
}

.cc-membership-product-layout .hikashop_product_top_part,
.cc-membership-product-layout #hikashop_product_left_part,
.cc-membership-product-layout .hikashop_product_stock_count,
.cc-membership-product-layout .hikashop_quantity_form,
.cc-membership-product-layout #hikashop_product_bottom_part {
    display: none !important;
}

.cc-membership-product-layout > .hk-row-fluid,
.cc-membership-product-layout .hikashop_product_page > .hk-row-fluid {
    display: block !important;
    margin: 0 !important;
}

.cc-membership-product-layout #hikashop_product_right_part {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.cc-membership-product-layout #hikashop_product_price_main {
    display: block;
    margin: 0 0 1.1rem;
    color: var(--cc-membership-purple);
    font-size: clamp(1.8rem, 4vw, 2.55rem);
    font-weight: 940;
    letter-spacing: -0.05em;
    line-height: 1;
}

.cc-membership-product-layout .hikashop_product_price_per_unit {
    display: none;
}

.cc-membership-product-layout .hikashop_product_characteristics_table,
.cc-membership-product-layout .hikashop_product_characteristics_table tbody,
.cc-membership-product-layout .hikashop_product_characteristics_table tr,
.cc-membership-product-layout .hikashop_product_characteristics_table td {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}

.cc-membership-product-layout .hikashop_product_characteristics_table td:first-child,
.cc-membership-product-layout .hikashop_product_custom_item_info > label,
.cc-membership-product-layout .hikashop_product_custom_item_info .key,
.cc-membership-product-layout .hikashop_product_custom_item_info th {
    display: block;
    margin: 0 0 0.38rem;
    color: #5b4962;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.035em;
}

.cc-membership-product-layout .hikashop_product_characteristics_table td:nth-child(2) {
    margin-bottom: 1rem;
}

.cc-membership-product-layout :where(input[type="text"], input[type="email"], input[type="tel"], input[type="date"], select, textarea) {
    width: 100%;
    min-height: 3rem;
    padding: 0.65rem 0.82rem;
    color: #44364a;
    background: #fcfafc;
    border: 1px solid #dcd0e1;
    border-radius: 0.72rem;
    box-shadow: none;
    font-size: 0.82rem;
    transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.cc-membership-product-layout textarea {
    min-height: 6rem;
    resize: vertical;
}

.cc-membership-product-layout :where(input, select, textarea):focus {
    background: #ffffff;
    border-color: #8c62a6;
    box-shadow: 0 0 0 0.2rem rgba(90, 44, 131, 0.12);
    outline: 0;
}

.cc-membership-product-layout .hikashop_product_custom_item_info,
.cc-membership-product-layout .hikashop_product_custom_item_line,
.cc-membership-product-layout .hikashop_product_custom_item_value {
    margin-bottom: 0.8rem;
}

.cc-membership-product-layout .hikashop_product_custom_item_info table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.7rem;
}

.cc-membership-product-layout .hikashop_product_custom_item_info_table tbody {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
}

.cc-membership-product-layout .hikashop_product_custom_item_info_table tr,
.cc-membership-product-layout .hikashop_product_custom_item_info_table td {
    display: block;
    width: 100%;
}

.cc-membership-product-layout .hikashop_product_custom_item_info_table tr[hidden] {
    display: none !important;
}

.cc-membership-product-layout .hikashop_product_custom_item_info :where(td, th) {
    padding: 0;
    background: transparent;
    border: 0;
}

.cc-membership-product-layout .hikashop_product_custom_item_info .required,
.cc-membership-product-layout .hikashop_product_custom_item_info .star {
    color: #c5283d;
}

.cc-member-choir-help {
    display: block;
    margin-top: 0.4rem;
    color: #847788;
    font-size: 0.65rem;
    line-height: 1.4;
}

.cc-member-choir-help.is-required {
    color: #8b3e55;
    font-weight: 720;
}

.cc-member-choir-select.required {
    border-color: #b98293;
}

.cc-membership-product-layout .hikashop_product_quantity_main {
    display: flex;
    align-items: center;
    margin-top: 1.2rem;
}

.cc-membership-product-layout .hikacart {
    display: inline-flex;
    width: 100%;
    min-height: 3.35rem;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.3rem;
    color: #ffffff !important;
    background: linear-gradient(135deg, var(--cc-membership-purple), #743b91) !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 0.8rem 1.8rem rgba(82, 35, 106, 0.24);
    font-size: 0.84rem;
    font-weight: 900;
    text-decoration: none;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.cc-membership-product-layout .hikacart:hover,
.cc-membership-product-layout .hikacart:focus-visible {
    box-shadow: 0 1rem 2.2rem rgba(82, 35, 106, 0.34);
    transform: translateY(-2px);
}

.cc-membership-product-next,
.cc-membership-product-reassurance {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    line-height: 1.45;
}

.cc-membership-product-next {
    margin: 0.8rem 0 0;
    color: var(--cc-membership-purple-dark);
    font-size: 0.72rem;
    font-weight: 750;
}

.cc-membership-product-reassurance {
    margin: 0.7rem 0 0;
    color: #7e7282;
    font-size: 0.68rem;
}

.cc-membership-product-next i,
.cc-membership-product-reassurance i {
    flex: 0 0 auto;
    margin-top: 0.16rem;
}

.cc-membership-product-reassurance i {
    color: #2d8d9f;
}

.cc-membership-product-note {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, auto)) minmax(12rem, 1fr);
    gap: 0.7rem 1.4rem;
    align-items: center;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    color: #756979;
    background: #faf8fb;
    border: 1px solid var(--cc-membership-line);
    border-radius: 0.9rem;
    font-size: 0.72rem;
    line-height: 1.5;
}

.cc-membership-product-note span {
    display: inline-flex;
    gap: 0.35rem;
    align-items: baseline;
}

.cc-membership-product-note strong {
    color: var(--cc-membership-purple);
    font-size: 1rem;
    font-weight: 930;
}

.cc-membership-product-note a {
    justify-self: end;
    color: var(--cc-membership-purple);
    font-weight: 850;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18rem;
}

@media (max-width: 991.98px) {
    .cc-membership-product-grid {
        grid-template-columns: 1fr;
    }

    .cc-membership-product-hero {
        min-height: 0;
    }

    .cc-membership-product-note {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-membership-product-note a {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 767.98px) {
    .cc-membership-product-hero {
        grid-template-columns: 1fr;
        padding: 1.6rem;
        border-radius: 1.1rem;
    }

    .cc-membership-product-hero h1 {
        font-size: clamp(2.45rem, 13vw, 3.6rem);
    }

    .cc-membership-product-hero__mark {
        display: none;
    }

    .cc-membership-product-hero__trust span:last-child {
        display: none;
    }

    .cc-membership-product-guide,
    .cc-membership-product-card {
        padding: 1.3rem;
        border-radius: 1rem;
    }

    .cc-membership-product-card__heading {
        align-items: flex-start;
    }

    .cc-membership-product-layout .hikashop_product_custom_item_info_table tbody {
        grid-template-columns: 1fr;
    }

    .cc-membership-product-note {
        grid-template-columns: 1fr;
    }

    .cc-membership-product-note a {
        grid-column: auto;
    }
}

/* HikaShop event deposits and the native pay-later form. */
.cc-deposit-order-summary {
    margin: 1rem 0;
    padding: 1rem 1.15rem;
    border: 1px solid #e7dcec;
    border-left: 3px solid #704383;
    border-radius: 1rem;
    background: #faf7fb;
    color: #46384d;
    line-height: 1.55;
}

.cc-deposit-order-summary strong {
    display: block;
    color: #512b66;
    font-size: 1rem;
}

.cc-deposit-order-summary p {
    margin: .45rem 0 0;
}

.cc-deposit-order-summary a {
    color: #643581;
    font-weight: 750;
}

.cc-deposit-order-summary__pay {
    display: inline-flex;
    align-items: center;
    min-height: 2.6rem;
    padding: .55rem 1rem;
    border-radius: 999px;
    background: #603179;
    color: #fff !important;
    text-decoration: none;
}

.cc-deposit-order-summary__pay:hover,
.cc-deposit-order-summary__pay:focus-visible {
    background: #452157;
}

.cc-balance-payment {
    width: min(100% - 2rem, 54rem);
    margin: 2.5rem auto 4rem;
}

.cc-balance-payment__back {
    display: inline-block;
    margin-bottom: 1rem;
    color: #603179;
    font-weight: 750;
    text-decoration: none;
}

.cc-balance-payment__hero {
    padding: clamp(1.4rem, 4vw, 2.4rem);
    border-radius: 1.4rem;
    background: linear-gradient(125deg, #4a285f, #754a84);
    color: #fff;
}

.cc-balance-payment__hero span {
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
    opacity: .8;
}

.cc-balance-payment__hero h1 {
    margin: .35rem 0 .5rem;
    color: #fff;
    font-size: clamp(1.75rem, 4vw, 2.45rem);
}

.cc-balance-payment__hero p {
    max-width: 42rem;
    margin: 0;
}

.cc-balance-payment__form {
    margin-top: 1rem;
    padding: clamp(1.2rem, 3vw, 2rem);
    border: 1px solid #eadfec;
    border-radius: 1.4rem;
    background: #fff;
    box-shadow: 0 12px 34px rgb(53 26 69 / 6%);
}

.cc-balance-payment__form h2 {
    margin: 0 0 1.25rem;
    color: #512b66;
    font-size: 1.25rem;
}

.cc-balance-payment__form .hika_options,
.cc-balance-payment__form .hikashop_payment_methods_table {
    width: 100%;
    margin: 0 0 1rem;
}

.cc-balance-payment__form .hikashop_checkout_buttons {
    margin-top: 1.25rem;
}

/* --------------------------------------------------------------------------
   Group membership — renewal / new member choir form
   -------------------------------------------------------------------------- */

.cc-group-membership-hero {
    background:
        radial-gradient(circle at 82% 14%, rgba(39, 185, 215, 0.3), transparent 23rem),
        radial-gradient(circle at 8% 115%, rgba(249, 185, 0, 0.2), transparent 22rem),
        linear-gradient(125deg, #24122f 0%, #48235f 54%, #66307f 100%);
}

.cc-group-membership-hero .cc-membership-product-hero__mark {
    transform: rotate(-2deg);
}

.cc-group-membership-guide {
    align-self: start;
}

.cc-group-membership-prices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 1.3rem 0 0;
}

.cc-group-membership-prices > span {
    display: grid;
    gap: 0.08rem;
    padding: 0.72rem 0.78rem;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid #e6dce9;
    border-radius: 0.8rem;
}

.cc-group-membership-prices strong {
    color: var(--cc-membership-purple);
    font-size: 1.15rem;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.cc-group-membership-prices small {
    color: #786d7c;
    font-size: 0.65rem;
}

.cc-group-membership-layout .cc-group-form-section {
    grid-column: 1 / -1;
    margin: 0.55rem 0 0;
    padding: 0;
}

.cc-group-membership-layout .cc-group-form-section th {
    display: flex !important;
    gap: 0.65rem;
    align-items: center;
    margin: 0 !important;
    padding: 0.85rem 0 0.25rem !important;
    color: var(--cc-membership-purple-dark) !important;
    border-top: 1px solid #eadfec !important;
    font-size: 0.8rem !important;
    letter-spacing: 0 !important;
}

.cc-group-membership-layout .cc-group-form-section:first-child th {
    padding-top: 0 !important;
    border-top: 0 !important;
}

.cc-group-membership-layout .cc-group-form-section span {
    display: grid;
    width: 1.9rem;
    height: 1.9rem;
    flex: 0 0 1.9rem;
    place-items: center;
    color: #ffffff;
    background: linear-gradient(135deg, var(--cc-membership-purple), #774093);
    border-radius: 0.58rem;
    font-size: 0.61rem;
    font-weight: 900;
}

.cc-group-membership-layout .cc-group-form-section strong {
    font-size: 0.82rem;
    font-weight: 900;
}

.cc-group-membership-layout :where(
    #hikashop_item_cc_group_action,
    #hikashop_item_cc_group_existing_choir,
    #hikashop_item_cc_group_association_name,
    #hikashop_item_cc_group_association_address,
    #hikashop_item_cc_group_president_address,
    #hikashop_item_adresse2,
    #hikashop_item_cc_group_description,
    #hikashop_item_cc_group_photo,
    #hikashop_item_listingmembrechorale
) {
    grid-column: 1 / -1;
}

.cc-group-membership-layout input[readonly] {
    color: #6f6274;
    background: #f2edf4;
    border-style: dashed;
}

.cc-group-membership-layout input[type="file"] {
    width: 100%;
    padding: 0.55rem;
    color: #685a6d;
    background: #fcfafc;
    border: 1px dashed #cdbed3;
    border-radius: 0.72rem;
    font-size: 0.74rem;
}

.cc-group-membership-layout input[type="file"]::file-selector-button {
    margin-right: 0.65rem;
    padding: 0.55rem 0.72rem;
    color: var(--cc-membership-purple);
    background: #f1e9f4;
    border: 0;
    border-radius: 0.55rem;
    font-size: 0.7rem;
    font-weight: 850;
    cursor: pointer;
}

.cc-group-membership-layout .cc-existing-choir-select {
    color: #3e3044;
    background-color: #ffffff;
    border-color: #bfa8ca;
}

@media (min-width: 992px) {
    .cc-group-membership-guide {
        position: sticky;
        top: 5.2rem;
    }
}

@media (max-width: 575.98px) {
    .cc-group-membership-prices {
        grid-template-columns: 1fr;
    }
}

/* ========================================================================
   Donation appeal — Joomla news article + HikaShop donation product
   ======================================================================== */

.cc-donation-kicker {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin: 0 0 0.75rem;
    color: #9cddd4;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-donation-kicker::before {
    width: 1.6rem;
    height: 1px;
    content: "";
    background: currentColor;
}

.cc-donation-primary {
    display: inline-flex;
    min-height: 3.25rem;
    gap: 0.55rem;
    align-items: center;
    justify-content: center;
    padding: 0.82rem 1.3rem;
    color: #412153 !important;
    background: #9cddd4;
    border: 0;
    border-radius: 999px;
    box-shadow: 0 0.8rem 1.8rem rgba(11, 39, 36, 0.2);
    font-size: 0.82rem;
    font-weight: 900;
    text-decoration: none !important;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.cc-donation-primary:hover,
.cc-donation-primary:focus-visible {
    color: #2f183d !important;
    background: #b2e7df;
    box-shadow: 0 1rem 2.2rem rgba(11, 39, 36, 0.28);
    transform: translateY(-2px);
}

/* News article */

.cc-donation-news-teaser {
    border-left-color: #9cddd4;
}

.cc-donation-article {
    --cc-donation-ink: #35243d;
    --cc-donation-purple: #582a7d;
    --cc-donation-purple-dark: #32183f;
    --cc-donation-mint: #9cddd4;
    --cc-donation-lilac: #f5eff8;
    --cc-donation-line: #e7dce9;
    max-width: 76rem;
    margin-inline: auto;
}

.cc-donation-article-hero {
    position: relative;
    display: grid;
    min-height: 34rem;
    grid-template-columns: minmax(0, 0.92fr) minmax(22rem, 1.08fr);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 15% 115%, rgba(156, 221, 212, 0.24), transparent 34%),
        linear-gradient(135deg, #32183f, #5b2b7e 68%, #6f378b);
    border-radius: 1.5rem;
    box-shadow: 0 1.4rem 3.5rem rgba(55, 25, 70, 0.18);
}

.cc-donation-article-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(2rem, 5vw, 4.4rem);
}

.cc-donation-article-hero h2 {
    max-width: 12ch;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.45rem, 5.1vw, 4.8rem);
    font-weight: 930;
    letter-spacing: -0.06em;
    line-height: 0.96;
}

.cc-donation-article-hero__content > p:not(.cc-donation-kicker) {
    max-width: 39rem;
    margin: 1.35rem 0 1.65rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1rem;
    line-height: 1.65;
}

.cc-donation-article-hero figure {
    position: relative;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
}

.cc-donation-article-hero figure::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, #552775 0%, rgba(85, 39, 117, 0.12) 38%, rgba(24, 10, 29, 0.14));
    pointer-events: none;
}

.cc-donation-article-hero img {
    width: 100%;
    height: 100%;
    min-height: 34rem;
    object-fit: cover;
    object-position: 52% center;
}

.cc-donation-article-hero figcaption {
    position: absolute;
    right: 1rem;
    bottom: 0.8rem;
    z-index: 2;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.65rem;
}

.cc-donation-impact {
    padding: clamp(4rem, 8vw, 7rem) clamp(0rem, 2vw, 1rem);
}

.cc-donation-impact > header {
    max-width: 46rem;
    margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.cc-donation-impact .cc-donation-kicker,
.cc-donation-how .cc-donation-kicker {
    color: #76518a;
}

.cc-donation-impact h2,
.cc-donation-how h2,
.cc-donation-tax h2 {
    margin: 0;
    color: var(--cc-donation-purple-dark);
    font-size: clamp(2.1rem, 4vw, 3.8rem);
    font-weight: 920;
    letter-spacing: -0.055em;
    line-height: 1;
}

.cc-donation-impact__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.cc-donation-impact__grid article {
    min-height: 17rem;
    padding: clamp(1.35rem, 3vw, 2rem);
    color: #66586b;
    background: linear-gradient(145deg, #ffffff, #faf7fb);
    border: 1px solid var(--cc-donation-line);
    border-radius: 1.2rem;
    box-shadow: 0 0.7rem 1.8rem rgba(62, 33, 75, 0.06);
}

.cc-donation-impact__grid article > span {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    margin-bottom: 2.4rem;
    color: var(--cc-donation-purple);
    background: var(--cc-donation-lilac);
    border-radius: 0.9rem;
    font-size: 1rem;
}

.cc-donation-impact__grid h3 {
    margin: 0 0 0.65rem;
    color: var(--cc-donation-purple-dark);
    font-size: 1.45rem;
    font-weight: 900;
    letter-spacing: -0.035em;
}

.cc-donation-impact__grid p {
    margin: 0;
    line-height: 1.65;
}

.cc-donation-tax {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    color: rgba(255, 255, 255, 0.79);
    background: radial-gradient(circle at 100% 0%, rgba(156, 221, 212, 0.19), transparent 32%),
        linear-gradient(135deg, #31183f, #532672);
    border-radius: 1.4rem;
    box-shadow: 0 1.2rem 3rem rgba(55, 25, 70, 0.16);
}

.cc-donation-tax h2 {
    max-width: 15ch;
    color: #ffffff;
    font-size: clamp(2rem, 4vw, 3.45rem);
}

.cc-donation-tax > div:first-child > p:not(.cc-donation-kicker, .cc-donation-tax__note) {
    max-width: 57ch;
    margin: 1.3rem 0;
    line-height: 1.7;
}

.cc-donation-tax__note {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    margin: 1rem 0 0;
    padding-top: 1rem;
    color: rgba(255, 255, 255, 0.68);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.78rem;
}

.cc-donation-tax__examples {
    display: grid;
    gap: 0.55rem;
}

.cc-donation-tax__examples p {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.55rem;
    align-items: center;
    margin: 0;
    padding: 0.85rem 1rem;
    color: #4b285d;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 0.8rem;
}

.cc-donation-tax__examples strong,
.cc-donation-tax__examples b {
    font-size: 1rem;
    font-weight: 900;
}

.cc-donation-tax__examples span {
    color: #796b7d;
    font-size: 0.7rem;
}

.cc-donation-how {
    padding: clamp(4rem, 8vw, 7rem) clamp(0rem, 2vw, 1rem) 2rem;
}

.cc-donation-how > ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 2.5rem 0;
    padding: 0;
    list-style: none;
}

.cc-donation-how > ol > li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
    padding: 1.25rem;
    background: #ffffff;
    border: 1px solid var(--cc-donation-line);
    border-radius: 1rem;
}

.cc-donation-how > ol > li > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    color: #ffffff;
    background: var(--cc-donation-purple);
    border-radius: 50%;
    font-size: 0.72rem;
    font-weight: 900;
}

.cc-donation-how li strong {
    color: var(--cc-donation-purple-dark);
    font-size: 0.9rem;
}

.cc-donation-how li p {
    margin: 0.35rem 0 0;
    color: #746879;
    font-size: 0.82rem;
    line-height: 1.5;
}

.cc-donation-final {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    padding: clamp(1.35rem, 3vw, 2rem);
    color: rgba(255, 255, 255, 0.78);
    background: linear-gradient(135deg, #3a1c4a, #5c2b7d);
    border-radius: 1.15rem;
}

.cc-donation-final strong {
    color: #ffffff;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 900;
}

.cc-donation-final p {
    margin: 0.3rem 0 0;
    font-size: 0.86rem;
}

.cc-donation-legal {
    max-width: 68rem;
    margin: 2rem auto 0;
    color: #7c7080;
    font-size: 0.76rem;
    line-height: 1.65;
}

.cc-donation-legal a {
    color: var(--cc-donation-purple);
    font-weight: 750;
}

/* HikaShop donation product */

body:has(.cc-donation-page) [data-position="cc-main-top-01"],
body:has(.cc-donation-page) .cc-shop-product-trust {
    display: none !important;
}

body:has(.cc-donation-page) .container-component {
    max-width: 78rem;
}

.cc-donation-back {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    margin: 0.6rem 0 1.3rem;
    color: #5a2c83;
    font-size: 0.78rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-donation-back:hover,
.cc-donation-back:focus-visible {
    color: #3f1e55;
}

.cc-donation-page {
    --cc-donation-ink: #35243d;
    --cc-donation-purple: #582a7d;
    --cc-donation-purple-dark: #32183f;
    --cc-donation-mint: #9cddd4;
    --cc-donation-lilac: #f5eff8;
    --cc-donation-line: #e7dce9;
}

.cc-donation-product-hero {
    position: relative;
    display: grid;
    min-height: 27rem;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: end;
    margin-bottom: clamp(1.3rem, 3vw, 2rem);
    padding: clamp(2rem, 5vw, 4.2rem);
    overflow: hidden;
    color: #ffffff;
    background: linear-gradient(90deg, rgba(39, 16, 51, 0.97) 0%, rgba(68, 28, 89, 0.9) 45%, rgba(53, 22, 68, 0.34) 100%),
        url('/images/evenements/grand-choral/2025/Grand-choral-2025-19.jpg') center 45% / cover no-repeat,
        #3b1b4a;
    border-radius: 1.5rem;
    box-shadow: 0 1.4rem 3.5rem rgba(55, 25, 70, 0.18);
}

.cc-donation-product-hero::after {
    position: absolute;
    width: 18rem;
    height: 18rem;
    right: -8rem;
    bottom: -10rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 50%;
}

.cc-donation-product-hero__content,
.cc-donation-product-hero__tax {
    position: relative;
    z-index: 1;
}

.cc-donation-product-hero h1 {
    max-width: 12ch;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.65rem, 5.8vw, 5.2rem);
    font-weight: 930;
    letter-spacing: -0.065em;
    line-height: 0.94;
}

.cc-donation-product-hero__content > p {
    max-width: 39rem;
    margin: 1.25rem 0 1.5rem;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.65;
}

.cc-donation-product-hero__trust {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.cc-donation-product-hero__trust span {
    display: inline-flex;
    min-height: 2.2rem;
    gap: 0.45rem;
    align-items: center;
    padding: 0.4rem 0.68rem;
    color: rgba(255, 255, 255, 0.84);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    backdrop-filter: blur(0.3rem);
}

.cc-donation-product-hero__trust i {
    color: var(--cc-donation-mint);
}

.cc-donation-product-hero__tax {
    display: grid;
    min-width: 10.5rem;
    place-items: center;
    align-self: center;
    padding: 1.2rem;
    color: #452256;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 1.15rem;
    box-shadow: 0 1rem 2.2rem rgba(20, 8, 26, 0.24);
    text-align: center;
    transform: rotate(1.5deg);
}

.cc-donation-product-hero__tax strong {
    color: var(--cc-donation-purple);
    font-size: 3.3rem;
    font-weight: 950;
    letter-spacing: -0.08em;
    line-height: 0.9;
}

.cc-donation-product-hero__tax small {
    font-size: 0.5em;
}

.cc-donation-product-hero__tax span {
    margin-top: 0.6rem;
    color: #78677e;
    font-size: 0.67rem;
    font-weight: 750;
    line-height: 1.35;
}

.cc-donation-product-grid {
    display: grid;
    grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: stretch;
}

.cc-donation-product-guide,
.cc-donation-product-card {
    padding: clamp(1.35rem, 3vw, 2.4rem);
    background: #ffffff;
    border: 1px solid var(--cc-donation-line);
    border-radius: 1.25rem;
    box-shadow: 0 0.8rem 2.4rem rgba(62, 30, 78, 0.065);
}

.cc-donation-product-guide {
    background: linear-gradient(145deg, #fbf8fc, #f3edf6);
}

.cc-donation-product-guide .cc-donation-kicker,
.cc-donation-product-card .cc-donation-kicker {
    color: #77518b;
}

.cc-donation-product-guide h2,
.cc-donation-product-card h2 {
    margin: 0;
    color: var(--cc-donation-purple-dark);
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    font-weight: 920;
    letter-spacing: -0.05em;
    line-height: 1;
}

.cc-donation-product-guide ul {
    display: grid;
    gap: 0.7rem;
    margin: 2rem 0;
    padding: 0;
    list-style: none;
}

.cc-donation-product-guide li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
    padding: 0.9rem;
    background: rgba(255, 255, 255, 0.75);
    border: 1px solid #e6dce9;
    border-radius: 0.85rem;
}

.cc-donation-product-guide li > i {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    color: var(--cc-donation-purple);
    background: #eee4f2;
    border-radius: 0.65rem;
    font-size: 0.75rem;
}

.cc-donation-product-guide li span {
    display: grid;
    gap: 0.18rem;
}

.cc-donation-product-guide li strong {
    color: var(--cc-donation-purple-dark);
    font-size: 0.82rem;
}

.cc-donation-product-guide li small {
    color: #786d7c;
    font-size: 0.7rem;
    line-height: 1.45;
}

.cc-donation-product-guide > p:last-child {
    margin: 0;
    padding-top: 1rem;
    color: #817484;
    border-top: 1px solid #e3d8e6;
    font-size: 0.72rem;
    line-height: 1.55;
}

.cc-donation-product-card__heading {
    display: flex;
    gap: 0.9rem;
    align-items: center;
}

.cc-donation-product-card__icon {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    flex: 0 0 3.2rem;
    place-items: center;
    color: #ffffff;
    background: linear-gradient(135deg, #5a2c83, #793e97);
    border-radius: 1rem;
    box-shadow: 0 0.7rem 1.4rem rgba(87, 39, 112, 0.2);
}

.cc-donation-product-card__lead {
    max-width: 52ch;
    margin: 1rem 0 1.5rem;
    color: #776a7b;
    font-size: 0.82rem;
    line-height: 1.55;
}

.cc-donation-product-layout .hikashop_product_top_part,
.cc-donation-product-layout #hikashop_product_left_part,
.cc-donation-product-layout .hikashop_product_stock_count,
.cc-donation-product-layout .hikashop_quantity_form {
    display: none !important;
}

.cc-donation-product-layout > .hk-row-fluid,
.cc-donation-product-layout .hikashop_product_page > .hk-row-fluid {
    display: block !important;
    margin: 0 !important;
}

.cc-donation-product-layout #hikashop_product_right_part {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.cc-donation-product-layout #hikashop_product_price_main {
    display: block;
    margin: 0 0 1rem;
    color: var(--cc-donation-purple);
    font-size: clamp(1.8rem, 4vw, 2.65rem);
    font-weight: 940;
    letter-spacing: -0.05em;
    line-height: 1;
}

.cc-donation-product-layout .hikashop_product_price_per_unit {
    display: none;
}

.cc-donation-product-layout .hikashop_product_characteristics_table,
.cc-donation-product-layout .hikashop_product_characteristics_table tbody,
.cc-donation-product-layout .hikashop_product_characteristics_table tr,
.cc-donation-product-layout .hikashop_product_characteristics_table td {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}

.cc-donation-product-layout .hikashop_product_characteristics_table td:first-child {
    margin-bottom: 0.65rem;
    color: #5b4962;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-donation-product-layout .hikashop_product_characteristics_table td:nth-child(2) {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.cc-donation-product-layout .hikashop_product_characteristics_table td:nth-child(2) > .controls {
    display: contents;
}

.cc-donation-product-layout .hikashop_product_characteristic_span,
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check {
    position: relative;
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.cc-donation-product-layout .hikashop_product_characteristic_span input[type="radio"],
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.cc-donation-product-layout .hikashop_product_characteristic_span label,
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check label {
    display: grid;
    min-height: 3.25rem;
    place-items: center;
    margin: 0;
    padding: 0.65rem;
    color: #5d3b6d;
    background: #faf7fb;
    border: 1px solid #e0d4e4;
    border-radius: 0.8rem;
    cursor: pointer;
    font-size: 0.86rem;
    font-weight: 900;
    text-align: center;
    transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.cc-donation-product-layout .hikashop_product_characteristic_span label:hover,
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check label:hover {
    background: #f4edf7;
    border-color: #c9b4d2;
    transform: translateY(-1px);
}

.cc-donation-product-layout .hikashop_product_characteristic_span input[type="radio"]:checked + label,
.cc-donation-product-layout .hikashop_product_characteristic_span:has(input[type="radio"]:checked) label,
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check input[type="radio"]:checked + label,
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check:has(input[type="radio"]:checked) label {
    color: #ffffff;
    background: linear-gradient(135deg, var(--cc-donation-purple), #743b91);
    border-color: transparent;
    box-shadow: 0 0.65rem 1.25rem rgba(82, 35, 106, 0.21);
}

.cc-donation-product-layout .hikashop_product_characteristic_span input[type="radio"]:focus-visible + label,
.cc-donation-product-layout .hikashop_product_characteristics_table .form-check input[type="radio"]:focus-visible + label {
    outline: 3px solid rgba(90, 44, 131, 0.2);
    outline-offset: 2px;
}

.cc-donation-product-layout .hikashop_product_quantity_main {
    display: flex;
    align-items: center;
    margin-top: 1.2rem;
}

.cc-donation-product-layout .hikacart {
    display: inline-flex;
    width: 100%;
    min-height: 3.35rem;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.3rem;
    color: #ffffff !important;
    background: linear-gradient(135deg, var(--cc-donation-purple), #743b91) !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 0.8rem 1.8rem rgba(82, 35, 106, 0.24);
    font-size: 0.84rem;
    font-weight: 900;
    text-decoration: none;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.cc-donation-product-layout .hikacart:hover,
.cc-donation-product-layout .hikacart:focus-visible {
    box-shadow: 0 1rem 2.2rem rgba(82, 35, 106, 0.34);
    transform: translateY(-2px);
}

.cc-donation-product-layout #hikashop_product_bottom_part {
    margin-top: 1.4rem;
    padding-top: 1.2rem;
    color: #746879;
    border-top: 1px solid var(--cc-donation-line);
    font-size: 0.78rem;
    line-height: 1.55;
}

.cc-donation-product-layout .cc-donation-product-copy .cc-product-lead {
    display: none;
}

.cc-donation-product-layout .cc-donation-product-copy h2 {
    margin: 0 0 0.55rem;
    color: var(--cc-donation-purple-dark);
    font-size: 0.9rem;
}

.cc-donation-product-layout .cc-donation-product-copy h2::before {
    display: none;
}

.cc-donation-product-layout .cc-donation-product-copy ul {
    display: none !important;
}

.cc-donation-effective {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    justify-content: space-between;
    margin: 0.85rem 0 0;
    padding: 0.8rem 1rem;
    color: #5d5062;
    background: #eaf7f4;
    border: 1px solid #cdebe6;
    border-radius: 0.8rem;
    font-size: 0.76rem;
}

.cc-donation-effective strong {
    color: #356d64;
    font-size: 1.05rem;
    font-weight: 920;
}

.cc-donation-product-next {
    display: flex;
    gap: 0.45rem;
    align-items: center;
    margin: 0.7rem 0 0;
    color: var(--cc-donation-purple-dark);
    font-size: 0.72rem;
    font-weight: 750;
    line-height: 1.4;
}

.cc-donation-product-next i {
    flex: 0 0 auto;
    font-size: 0.65rem;
}

.cc-donation-product-reassurance {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    margin: 0.8rem 0 0;
    color: #847788;
    font-size: 0.68rem;
    line-height: 1.45;
}

.cc-donation-product-reassurance i {
    margin-top: 0.15rem;
    color: #4e8e84;
}

.cc-donation-product-note {
    display: flex;
    gap: 0.8rem;
    align-items: flex-start;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    color: #756979;
    background: #faf8fb;
    border: 1px solid var(--cc-donation-line);
    border-radius: 0.9rem;
    font-size: 0.72rem;
    line-height: 1.55;
}

.cc-donation-product-note > i {
    margin-top: 0.2rem;
    color: var(--cc-donation-purple);
}

.cc-donation-product-note p {
    margin: 0;
}

.cc-donation-product-note strong {
    color: var(--cc-donation-purple-dark);
}

@media (max-width: 991.98px) {
    .cc-donation-article-hero {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .cc-donation-article-hero figure {
        min-height: 20rem;
        order: -1;
    }

    .cc-donation-article-hero img {
        min-height: 20rem;
    }

    .cc-donation-article-hero figure::after {
        background: linear-gradient(0deg, #552775 0%, rgba(85, 39, 117, 0.04) 50%);
    }

    .cc-donation-impact__grid,
    .cc-donation-how > ol {
        grid-template-columns: 1fr;
    }

    .cc-donation-impact__grid article {
        min-height: 0;
    }

    .cc-donation-impact__grid article > span {
        margin-bottom: 1.2rem;
    }

    .cc-donation-tax {
        grid-template-columns: 1fr;
    }

    .cc-donation-product-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .cc-donation-product-hero {
        min-height: 31rem;
        grid-template-columns: 1fr;
        align-items: end;
        background-position: 56% center;
    }

    .cc-donation-product-hero__tax {
        min-width: 0;
        grid-template-columns: auto 1fr;
        gap: 0.75rem;
        justify-self: stretch;
        text-align: left;
        transform: none;
    }

    .cc-donation-product-hero__tax span {
        margin: 0;
    }

    .cc-donation-final {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-donation-final .cc-donation-primary {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .cc-donation-article-hero,
    .cc-donation-tax,
    .cc-donation-product-hero,
    .cc-donation-product-guide,
    .cc-donation-product-card {
        border-radius: 1rem;
    }

    .cc-donation-article-hero__content,
    .cc-donation-tax,
    .cc-donation-product-hero,
    .cc-donation-product-guide,
    .cc-donation-product-card {
        padding: 1.25rem;
    }

    .cc-donation-article-hero h2,
    .cc-donation-product-hero h1 {
        font-size: clamp(2.25rem, 12vw, 3.35rem);
    }

    .cc-donation-product-hero__trust span:last-child {
        display: none;
    }

    .cc-donation-product-layout .hikashop_product_characteristics_table td:nth-child(2) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-donation-effective {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .cc-donation-tax__examples p {
        grid-template-columns: auto 1fr;
    }

    .cc-donation-tax__examples b {
        grid-column: 1 / -1;
    }
}

/* =========================================================
   HikaShop purchase-flow polish
   ========================================================= */

/* HikaShop's promotional signature is not part of the customer journey. */
.hikashop_footer {
    display: none !important;
}

/* Compact, accessible confirmation after an AJAX add-to-cart action. */
.cc-cart-toast {
    position: fixed;
    z-index: 1200;
    top: clamp(5.5rem, 10vh, 7.5rem);
    right: clamp(0.75rem, 3vw, 2rem);
    display: grid;
    width: min(calc(100vw - 1.5rem), 25rem);
    grid-template-columns: 2.65rem minmax(0, 1fr) auto 1.9rem;
    gap: 0.75rem;
    align-items: center;
    padding: 0.85rem;
    color: #443849;
    visibility: hidden;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid #ded3e3;
    border-radius: 1rem;
    box-shadow: 0 1.25rem 3rem rgba(50, 26, 64, 0.2);
    opacity: 0;
    transform: translate3d(0, -0.75rem, 0) scale(0.98);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
    backdrop-filter: blur(14px);
}

.cc-cart-toast.is-visible {
    visibility: visible;
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.cc-cart-toast__icon {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    color: #ffffff;
    background: linear-gradient(135deg, #3f8c72, #5aaa8e);
    border-radius: 0.78rem;
    box-shadow: 0 0.55rem 1.15rem rgba(49, 126, 100, 0.22);
    place-items: center;
}

.cc-cart-toast__copy {
    display: grid;
    min-width: 0;
    gap: 0.08rem;
}

.cc-cart-toast__copy strong {
    color: #452852;
    font-size: 0.86rem;
}

.cc-cart-toast__copy span {
    overflow: hidden;
    color: #7c7081;
    font-size: 0.73rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-cart-toast > a {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    padding: 0.55rem 0.7rem;
    color: #ffffff;
    background: #65318a;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.cc-cart-toast > a:hover,
.cc-cart-toast > a:focus-visible {
    background: #4f2569;
}

.cc-cart-toast > button {
    display: grid;
    width: 1.9rem;
    height: 1.9rem;
    padding: 0;
    color: #8d8292;
    background: transparent;
    border: 0;
    border-radius: 50%;
    place-items: center;
}

.cc-cart-toast > button:hover,
.cc-cart-toast > button:focus-visible {
    color: #4f2864;
    background: #f2edf4;
}

/* One predictable horizontal quantity control on products and in checkout. */
.hikashop_product_quantity_change_div_leftright {
    display: inline-flex !important;
    align-items: stretch;
    margin: 0 !important;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #d9cadd;
    border-radius: 0.8rem;
    box-shadow: 0 0.35rem 0.9rem rgba(59, 34, 70, 0.05);
}

.hikashop_product_quantity_change_div_leftright .add-on {
    display: flex;
    margin: 0 !important;
}

.hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field_change {
    display: grid !important;
    width: 2.65rem !important;
    min-width: 2.65rem;
    height: 3rem !important;
    padding: 0 !important;
    color: #65318a !important;
    background: #f8f4fa !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 1rem;
    font-weight: 850;
    text-decoration: none;
    place-items: center;
}

.hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field_change:hover,
.hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field_change:focus-visible {
    color: #ffffff !important;
    background: #65318a !important;
}

.hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field {
    width: 3.25rem !important;
    min-width: 3.25rem !important;
    height: 3rem !important;
    min-height: 3rem !important;
    padding: 0.35rem !important;
    color: #443849;
    background: #ffffff;
    border: 0 !important;
    border-right: 1px solid #e2d8e5 !important;
    border-left: 1px solid #e2d8e5 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 0.88rem;
    font-weight: 850;
    text-align: center;
}

.cc-checkout-core .hikashop_cart_product_quantity_value {
    position: relative;
    min-width: 11rem;
    white-space: nowrap;
}

.cc-checkout-core .hikashop_cart_product_quantity_value > :where(table, .control-group) {
    display: inline-block;
    min-width: 0;
    margin: 0;
    vertical-align: middle;
}

.cc-checkout-core .hikashop_cart_product_quantity_value .controls {
    display: inline-flex;
    align-items: center;
}

.cc-checkout-core .hikashop_cart_product_quantity_refresh {
    display: none;
}

.cc-checkout-core .hikashop_cart_product_quantity_delete {
    display: inline-flex;
    margin-left: 0.4rem;
    vertical-align: middle;
}

.cc-checkout-core .hikashop_cart_product_quantity_delete a {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    color: #a14656;
    background: #fff4f5;
    border: 1px solid #f0d9dd;
    border-radius: 0.75rem;
    text-decoration: none;
    place-items: center;
}

.cc-checkout-core .hikashop_cart_product_quantity_delete a:hover,
.cc-checkout-core .hikashop_cart_product_quantity_delete a:focus-visible {
    color: #ffffff;
    background: #a14656;
    border-color: #a14656;
}

.cc-checkout-core .hikashop_cart_product_quantity_value.is-updating {
    pointer-events: none;
}

.cc-checkout-core .hikashop_cart_product_quantity_value.is-updating > * {
    opacity: 0.38;
}

.cc-checkout-core .hikashop_cart_product_quantity_value.is-updating::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    content: "";
    border: 2px solid rgba(101, 49, 138, 0.2);
    border-top-color: #65318a;
    border-radius: 50%;
    animation: cc-cart-quantity-spin 650ms linear infinite;
}

@keyframes cc-cart-quantity-spin {
    to { transform: rotate(360deg); }
}

/* Clear validation and a larger click target for mandatory terms. */
.cc-checkout-core .hikashop_checkout_terms {
    display: block;
    padding: clamp(1.15rem, 3vw, 1.6rem);
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.cc-checkout-terms__heading {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.cc-checkout-terms__heading > span {
    display: grid;
    flex: 0 0 auto;
    width: 2.6rem;
    height: 2.6rem;
    color: #65318a;
    background: #ffffff;
    border: 1px solid #ded1e4;
    border-radius: 0.75rem;
    box-shadow: 0 0.4rem 1rem rgba(60, 30, 75, 0.06);
    place-items: center;
}

.cc-checkout-terms__heading > div {
    display: grid;
    gap: 0.1rem;
}

.cc-checkout-terms__heading strong {
    color: #4d3159;
    font-size: 0.95rem;
}

.cc-checkout-terms__heading small {
    color: #8b7e90;
    font-size: 0.73rem;
}

.cc-checkout-terms__choice {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.9rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid #e2d7e6;
    border-radius: 0.8rem;
}

.cc-checkout-core .cc-checkout-terms__choice .hikashop_checkout_terms_checkbox {
    width: 1.25rem;
    height: 1.25rem;
    margin: 0.12rem 0 0;
}

.cc-checkout-core .hikashop_checkout_terms :where(.hikashop_messages, .alert, .hikashop_error) {
    padding: 0.85rem 1rem;
    margin: 0 0 0.85rem;
    color: #8b2f3d;
    background: #fff2f3;
    border: 1px solid #efcbd1;
    border-left: 4px solid #b54455;
    border-radius: 0.75rem;
    font-size: 0.8rem;
    font-weight: 750;
    line-height: 1.45;
}

.cc-checkout-core .hikashop_checkout_terms.cc-has-error {
    border-color: #dc9eaa;
    box-shadow: 0 0 0 0.22rem rgba(181, 68, 85, 0.09), 0 0.8rem 2rem rgba(91, 36, 47, 0.08);
}

.cc-checkout-core .hikashop_checkout_terms.cc-has-error .cc-checkout-terms__choice {
    border-color: #dc9eaa;
}

/* Final checkout step: focused, useful and never a dead end. */
.cc-checkout-header--complete {
    background: radial-gradient(circle at 92% 8%, rgba(255, 255, 255, 0.18), transparent 24%),
    linear-gradient(125deg, #4a2c5d, #6b3a83 62%, #8557a0);
    box-shadow: 0 1rem 2.8rem rgba(83, 45, 110, 0.16);
}

.cc-checkout-complete {
    display: grid;
    justify-items: center;
    padding: clamp(2rem, 6vw, 4.5rem);
    margin-top: 1rem;
    color: #625667;
    text-align: center;
    background: linear-gradient(145deg, #ffffff, #f8f4fa);
    border: 1px solid #e3d9e7;
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.8rem rgba(54, 33, 65, 0.08);
}

.cc-checkout-complete__icon {
    display: grid;
    width: 4.8rem;
    height: 4.8rem;
    margin-bottom: 1.15rem;
    color: #ffffff;
    background: linear-gradient(135deg, #65318a, #9567aa);
    border-radius: 1.4rem;
    box-shadow: 0 1rem 2rem rgba(101, 49, 138, 0.2);
    font-size: 1.65rem;
    transform: rotate(-4deg);
    place-items: center;
}

.cc-checkout-complete__kicker {
    margin-bottom: 0.45rem;
    color: #6e4a80;
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.cc-checkout-complete h2 {
    max-width: 17ch;
    margin: 0;
    color: #42284e;
    font-size: clamp(1.8rem, 4vw, 2.75rem);
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.cc-checkout-complete__message {
    max-width: 43rem;
    margin-top: 1rem;
    line-height: 1.65;
}

.cc-checkout-complete__message > :last-child {
    margin-bottom: 0;
}

.cc-checkout-complete__pending {
    max-width: 43rem;
    margin: 1.15rem 0 0;
    padding: 0.9rem 1.15rem;
    color: #523b61;
    background: #f2eaf6;
    border: 1px solid #e6d9eb;
    border-radius: 0.85rem;
    line-height: 1.55;
}

.cc-checkout-complete__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    margin-top: 1.6rem;
}

.cc-checkout-complete__actions a {
    display: inline-flex;
    min-height: 2.9rem;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.68rem 1rem;
    color: #5b3d68;
    background: #f3edf6;
    border: 1px solid #e1d5e6;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-checkout-complete__actions .cc-checkout-complete__primary {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-checkout-complete__actions a:hover,
.cc-checkout-complete__actions a:focus-visible {
    color: #ffffff;
    background: #4f2569;
    border-color: #4f2569;
}

.cc-checkout-complete__help {
    margin: 1.4rem 0 0;
    color: #8a7e8e;
    font-size: 0.74rem;
}

.cc-checkout-complete__help a {
    color: #65318a;
    font-weight: 750;
}

/* Order reached from the customer area or directly from the email link. */
body:has(.cc-order-detail-page) [data-position="cc-main-top-01"],
body:has(.cc-order-detail-page) .container-banner {
    display: none !important;
}

.cc-order-detail-page {
    width: 100%;
    max-width: 78rem;
    margin: clamp(1rem, 3vw, 2.5rem) auto clamp(3rem, 7vw, 6rem);
}

.cc-order-detail-back {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    margin-bottom: 0.9rem;
    color: #6d5977;
    font-size: 0.78rem;
    font-weight: 750;
    text-decoration: none;
}

.cc-order-detail-back:hover,
.cc-order-detail-back:focus-visible {
    color: #65318a;
}

.cc-order-detail-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: clamp(1.7rem, 4vw, 2.7rem);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 90% 15%, rgba(255, 255, 255, 0.16), transparent 22%),
    linear-gradient(125deg, #43205f, #65318a 62%, #81509a);
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.8rem rgba(58, 28, 75, 0.14);
}

.cc-order-detail-hero::after {
    position: absolute;
    right: -4rem;
    bottom: -8rem;
    width: 17rem;
    height: 17rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    box-shadow: 0 0 0 2.8rem rgba(255, 255, 255, 0.035), 0 0 0 5rem rgba(255, 255, 255, 0.02);
}

.cc-order-detail-hero > * {
    position: relative;
    z-index: 1;
}

.cc-order-detail-hero .cc-orders-kicker {
    margin-bottom: 0.45rem;
    color: rgba(255, 255, 255, 0.74);
}

.cc-order-detail-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2rem, 4.5vw, 3.65rem);
    letter-spacing: -0.05em;
    line-height: 1;
}

.cc-order-detail-hero p {
    margin: 0.6rem 0 0;
    color: rgba(255, 255, 255, 0.76);
}

.cc-order-detail-hero .cc-order-status {
    flex: 0 0 auto;
    min-height: 2.25rem;
    padding: 0.48rem 0.85rem;
    color: #3d2450;
    background: #ffffff;
    box-shadow: 0 0.6rem 1.5rem rgba(46, 21, 58, 0.13);
}

.cc-order-detail-core {
    margin-top: 1rem;
    padding: clamp(1rem, 3vw, 1.65rem);
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e5dfe8;
    border-radius: 1.2rem;
    box-shadow: 0 0.8rem 2.2rem rgba(54, 33, 65, 0.065);
}

.cc-order-detail-core .hikashop_toolbar,
.cc-order-detail-core .hika_toolbar,
.cc-order-detail-core .hikashop_header_title {
    display: none !important;
}

.cc-order-detail-core #hikashop_order_main,
.cc-order-detail-core .hikashop_order_main_table,
.cc-order-detail-core .hikashop_order_main_table > tbody,
.cc-order-detail-core .hikashop_order_main_table > tbody > tr,
.cc-order-detail-core .hikashop_order_main_table > tbody > tr > td {
    width: 100%;
}

.cc-order-detail-core .hikashop_order_main_table {
    margin: 0;
    border: 0;
}

.cc-order-detail-core .hikashop_order_main_table > tbody > tr:first-child {
    display: none;
}

.cc-order-detail-core fieldset.adminform {
    min-width: 0;
    padding: 1rem;
    margin: 0 0 1rem;
    background: #fbf9fc;
    border: 1px solid #e8e0eb;
    border-radius: 0.9rem;
}

.cc-order-detail-core fieldset.adminform legend {
    float: none;
    width: auto;
    padding: 0 0.35rem;
    margin: 0;
    color: #4c2c59;
    font-size: 0.86rem;
    font-weight: 850;
}

.cc-order-detail-core #htmlfieldset_billing,
.cc-order-detail-core #htmlfieldset_shipping {
    color: #6e6173;
    line-height: 1.55;
}

.cc-order-detail-core #htmlfieldset_products {
    padding: 0;
    overflow: hidden;
    background: #ffffff;
}

.cc-order-detail-core #htmlfieldset_products > legend {
    display: block;
    width: 100%;
    padding: 1rem 1.1rem;
    background: #f7f2f9;
    border-bottom: 1px solid #e8e0eb;
}

.cc-order-detail-core #htmlfieldset_products > table {
    margin: 0;
}

.cc-order-detail-core #htmlfieldset_products th {
    padding: 0.72rem;
    color: #897b8e;
    background: #fbf9fc;
    border-color: #ece5ee;
    font-size: 0.67rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cc-order-detail-core #htmlfieldset_products td {
    padding: 0.8rem 0.72rem;
    color: #5c4f61;
    background: #ffffff;
    border-color: #eee8f0;
    vertical-align: middle;
}

.cc-order-detail-core .hikashop_order_item_image {
    width: 3.75rem;
    height: 3.75rem;
    object-fit: cover;
    background: #f8f4fa;
    border-radius: 0.65rem;
}

.cc-order-detail-core .hikashop_order_product_link,
.cc-order-detail-core .hikashop_order_product_name {
    color: #4f2864;
    font-weight: 800;
    text-decoration: none;
}

.cc-order-detail-core :where(
    .hikashop_order_item_price_value,
    .hikashop_order_item_quantity_value,
    .hikashop_order_item_total_value
) {
    font-weight: 800;
    white-space: nowrap;
}

.cc-order-detail-core .hikashop_order_subtotal,
.cc-order-detail-core .hikashop_order_total,
.cc-order-detail-core [class*="hikashop_order_tax"],
.cc-order-detail-core [class*="hikashop_order_shipping"],
.cc-order-detail-core [class*="hikashop_order_payment"] {
    color: #4f2864;
    font-weight: 800;
}

.cc-order-detail-core .hikabtn {
    display: inline-flex;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.58rem 0.85rem;
    color: #65318a;
    background: #f3edf6;
    border: 1px solid #e1d5e6;
    border-radius: 0.72rem;
    font-size: 0.75rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-order-detail-core .hikabtn:hover,
.cc-order-detail-core .hikabtn:focus-visible {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-order-detail-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    margin-top: 1rem;
    background: #faf8fb;
    border: 1px solid #e6dfe9;
    border-radius: 1rem;
}

.cc-order-detail-footer > div {
    display: grid;
    gap: 0.08rem;
}

.cc-order-detail-footer strong {
    color: #493450;
    font-size: 0.85rem;
}

.cc-order-detail-footer > div span {
    color: #8c808f;
    font-size: 0.72rem;
}

.cc-order-detail-footer nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.cc-order-detail-footer nav a {
    display: inline-flex;
    min-height: 2.7rem;
    align-items: center;
    gap: 0.4rem;
    padding: 0.62rem 0.9rem;
    color: #5f426c;
    background: #ffffff;
    border: 1px solid #ded3e3;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-order-detail-footer nav .cc-order-detail-footer__primary {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-order-detail-footer nav a:hover,
.cc-order-detail-footer nav a:focus-visible {
    color: #ffffff;
    background: #4f2569;
    border-color: #4f2569;
}

@media (max-width: 767.98px) {
    .cc-cart-toast {
        top: auto;
        right: 0.75rem;
        bottom: 0.75rem;
        left: 0.75rem;
        width: auto;
        grid-template-columns: 2.5rem minmax(0, 1fr) auto 1.8rem;
    }

    .cc-checkout-complete__actions {
        align-items: stretch;
        flex-direction: column;
        width: min(100%, 24rem);
    }

    .cc-order-detail-hero,
    .cc-order-detail-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-order-detail-footer nav {
        justify-content: flex-start;
        width: 100%;
    }
}

/* =========================================================
   Joomla privacy consent and personal-data request
   ========================================================= */

.cc-privacy-page {
    --cc-privacy-purple: #65318a;
    --cc-privacy-purple-dark: #452852;
    --cc-privacy-ink: #443849;
    --cc-privacy-muted: #756b79;
    --cc-privacy-line: #e3d9e6;
    --cc-privacy-soft: #f8f4fa;
    width: min(100%, 72rem);
    margin-inline: auto;
}

.cc-privacy-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 1.75rem);
    align-items: center;
    padding: clamp(1.4rem, 4vw, 2.35rem);
    color: #ffffff;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 5%, rgba(255, 255, 255, 0.19), transparent 30%),
        linear-gradient(135deg, #4f2766, #75399c);
    border-radius: 1.45rem;
    box-shadow: 0 1.25rem 2.8rem rgba(69, 40, 82, 0.16);
}

.cc-privacy-hero__icon {
    display: grid;
    width: clamp(3.7rem, 9vw, 5.2rem);
    aspect-ratio: 1;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.13);
    border: 1px solid rgba(255, 255, 255, 0.27);
    border-radius: 1.2rem;
    font-size: clamp(1.5rem, 4vw, 2.15rem);
    place-items: center;
    backdrop-filter: blur(8px);
}

.cc-privacy-kicker {
    display: block;
    margin-bottom: 0.35rem;
    color: #eadcf2;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.cc-privacy-hero h1 {
    margin: 0;
    color: inherit;
    font-size: clamp(1.8rem, 5vw, 3.15rem);
    line-height: 1.04;
}

.cc-privacy-hero p {
    max-width: 48rem;
    margin: 0.75rem 0 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: clamp(0.93rem, 2vw, 1.04rem);
}

.cc-privacy-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr);
    gap: clamp(1rem, 3vw, 1.5rem);
    margin-top: 1.5rem;
}

.cc-privacy-form,
.cc-privacy-help,
.cc-privacy-unavailable {
    padding: clamp(1.3rem, 4vw, 2rem);
    background: #ffffff;
    border: 1px solid var(--cc-privacy-line, #e3d9e6);
    border-radius: 1.25rem;
    box-shadow: 0 0.8rem 2rem rgba(61, 40, 69, 0.07);
}

.cc-privacy-form__heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
    margin-bottom: 1.4rem;
}

.cc-privacy-form__heading > .fa-regular {
    display: grid;
    width: 2.75rem;
    aspect-ratio: 1;
    color: var(--cc-privacy-purple);
    background: var(--cc-privacy-soft);
    border-radius: 0.8rem;
    place-items: center;
}

.cc-privacy-form :where(h2, h3),
.cc-privacy-help :where(h2, h3),
.cc-privacy-unavailable h2 {
    color: var(--cc-privacy-purple-dark, #452852);
}

.cc-privacy-form h2,
.cc-privacy-help h2,
.cc-privacy-unavailable h2 {
    margin: 0;
    font-size: clamp(1.22rem, 3vw, 1.55rem);
}

.cc-privacy-form__heading p {
    margin: 0.35rem 0 0;
    color: var(--cc-privacy-muted);
    font-size: 0.91rem;
}

.cc-privacy-form fieldset {
    min-width: 0;
    padding: 0;
    border: 0;
}

.cc-privacy-form legend {
    margin-bottom: 0.65rem;
    color: var(--cc-privacy-purple-dark);
    font-size: 0.86rem;
    font-weight: 800;
}

.cc-privacy-form .form-select {
    min-height: 3.25rem;
    border-color: #d9cadd;
    border-radius: 0.8rem;
}

.cc-privacy-form .form-select:focus {
    border-color: #9563b4;
    box-shadow: 0 0 0 0.2rem rgba(101, 49, 138, 0.13);
}

.cc-privacy-form__submit {
    margin-top: 1.4rem;
}

.cc-privacy-form__submit .btn {
    display: inline-flex;
    gap: 0.7rem;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding-inline: 1.15rem;
    background: var(--cc-privacy-purple);
    border-color: var(--cc-privacy-purple);
    border-radius: 999px;
    font-weight: 800;
}

.cc-privacy-form__submit .btn:hover,
.cc-privacy-form__submit .btn:focus-visible {
    background: #4f2569;
    border-color: #4f2569;
}

.cc-privacy-help {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    background: linear-gradient(155deg, #ffffff 30%, #faf7fb);
}

.cc-privacy-help__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
    padding-top: 1rem;
    border-top: 1px solid var(--cc-privacy-line);
}

.cc-privacy-help__item > span {
    display: grid;
    width: 2.45rem;
    aspect-ratio: 1;
    color: var(--cc-privacy-purple);
    background: #f1e9f5;
    border-radius: 0.7rem;
    place-items: center;
}

.cc-privacy-help__item h3 {
    margin: 0;
    font-size: 0.98rem;
}

.cc-privacy-help__item p,
.cc-privacy-help__note {
    margin: 0.25rem 0 0;
    color: var(--cc-privacy-muted);
    font-size: 0.85rem;
    line-height: 1.55;
}

.cc-privacy-help__note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.6rem;
    padding: 0.85rem;
    background: #f6f1f8;
    border-radius: 0.8rem;
}

.cc-privacy-help__note > span {
    margin-top: 0.15rem;
    color: var(--cc-privacy-purple);
}

.cc-privacy-help__link {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    margin-top: auto;
    color: var(--cc-privacy-purple);
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-privacy-help__link:hover,
.cc-privacy-help__link:focus-visible {
    color: #4f2569;
    text-decoration: underline;
    text-underline-offset: 0.22rem;
}

.cc-privacy-unavailable {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    margin-top: 1.5rem;
    color: var(--cc-privacy-ink, #443849);
}

.cc-privacy-unavailable > .fa-solid {
    display: grid;
    width: 3rem;
    aspect-ratio: 1;
    color: #8a5a13;
    background: #fff3d8;
    border-radius: 0.85rem;
    place-items: center;
}

.cc-privacy-unavailable p:last-child {
    margin-bottom: 0;
}

/* The native plugin is used in core registration, profile edit and HikaShop. */
.com-users-registration fieldset:has([id*="privacyconsent"]),
.com-users-profile__edit fieldset:has([id*="privacyconsent"]),
.hikashop_registration_fieldset:has([id*="privacyconsent"]) {
    padding: clamp(1rem, 3vw, 1.35rem);
    background: #fbf9fc;
    border: 1px solid #e2d6e6;
    border-radius: 1rem;
}

.com-users-registration fieldset:has([id*="privacyconsent"]) legend,
.com-users-profile__edit fieldset:has([id*="privacyconsent"]) legend,
.hikashop_registration_fieldset:has([id*="privacyconsent"]) legend {
    width: auto;
    padding-inline: 0.35rem;
    color: #54286d;
    font-size: 1.02rem;
    font-weight: 850;
}

.cc-privacy-consent__note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
    margin-bottom: 1rem;
    padding: 0.8rem 0.9rem;
    color: #5f5065;
    background: #f2ebf5;
    border-radius: 0.75rem;
    font-size: 0.86rem;
    line-height: 1.5;
}

.cc-privacy-consent__note > span:first-child {
    margin-top: 0.18rem;
    color: #65318a;
}

.com-users-registration [id*="privacyconsent"] .form-check,
.com-users-profile__edit [id*="privacyconsent"] .form-check,
.hikashop_registration_fieldset [id*="privacyconsent"] .form-check {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    margin-right: 1rem;
}

@media (max-width: 767.98px) {
    .cc-privacy-layout {
        grid-template-columns: 1fr;
    }

    .cc-privacy-hero {
        align-items: start;
    }
}

@media (max-width: 480px) {
    .cc-privacy-hero {
        grid-template-columns: 1fr;
    }

    .cc-privacy-form__submit .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .cc-cart-toast {
        grid-template-columns: 2.5rem minmax(0, 1fr) 1.8rem;
    }

    .cc-cart-toast > a {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
    }

    .cc-cart-toast > button {
        grid-column: 3;
        grid-row: 1;
    }

    .cc-order-detail-hero h1 {
        overflow-wrap: anywhere;
    }

    .cc-order-detail-footer nav a {
        justify-content: center;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-cart-toast {
        transition: none;
    }

    .cc-checkout-core .hikashop_cart_product_quantity_value.is-updating::after {
        animation-duration: 1.5s;
    }
}

/* Late specificity fixes for legacy product rules defined below the shared
   purchase-flow section. */
.cc-checkout-core .hikashop_checkout_terms {
    display: block;
}

.cc-shop-product-layout .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field,
.cc-checkout-core .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field {
    width: 3.25rem !important;
    min-width: 3.25rem !important;
    height: 3rem !important;
    min-height: 3rem !important;
    padding: 0.35rem !important;
    background: #ffffff;
    border: 0 !important;
    border-right: 1px solid #e2d8e5 !important;
    border-left: 1px solid #e2d8e5 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: center;
}

/* =========================================================
   Member choir articles — simple editor-friendly profiles
   The Joomla article title stays in the native Title field.
   Editors only need the following classes in the article body:
   - cc-choir-profile: the whole editable content
   - cc-choir-profile__image: the optional image paragraph
   - cc-choir-profile__team and cc-choir-role: the team cards
   - cc-choir-profile__contacts and cc-choir-contact: contact cards
   No PHP or layout-specific markup is required in the article.
   ========================================================= */

.com-content-article:has(.cc-choir-profile) > .page-header {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(100%, 62rem);
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin: clamp(1.5rem, 4vw, 3rem) auto 0;
    padding: clamp(1.4rem, 4vw, 2.4rem) clamp(1.4rem, 4.5vw, 3.6rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 15%, rgba(39, 185, 215, 0.12), transparent 14rem),
        linear-gradient(135deg, #f8f3fa 0%, #ffffff 72%);
    border: 1px solid #e6dce9;
    border-bottom: 0;
    border-radius: clamp(1.2rem, 2.5vw, 1.8rem) clamp(1.2rem, 2.5vw, 1.8rem) 0 0;
}

.com-content-article:has(.cc-choir-profile) > .page-header h1 {
    max-width: 50rem;
    flex: 1 1 30rem;
    margin: 0;
    color: #4d236f;
    font-size: clamp(1.75rem, 4vw, 2.8rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1.06;
    text-wrap: balance;
}

.com-content-article:has(.cc-choir-profile) > .page-header h1::after {
    display: block;
    width: 3.2rem;
    height: 0.28rem;
    margin-top: 0.9rem;
    content: "";
    background: linear-gradient(90deg, #5a2c83, #27b9d7);
    border-radius: 999px;
}

.cc-choir-profile-department {
    display: inline-flex;
    min-width: 4.25rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.48rem 0.7rem;
    color: #4d315d;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(90, 44, 131, 0.18);
    border-radius: 999px;
    box-shadow: 0 0.35rem 1rem rgba(54, 33, 65, 0.08);
    line-height: 1;
}

.cc-choir-profile-department small {
    color: #74657b;
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.cc-choir-profile-department strong {
    color: #5a2c83;
    font-size: 0.95rem;
    font-weight: 900;
}

.com-content-article:has(.cc-choir-profile) > .com-content-article__body {
    width: min(100%, 62rem);
    margin: 0 auto;
}

.cc-choir-profile {
    width: 100%;
    margin: 0 auto clamp(3rem, 7vw, 5.5rem);
    padding: clamp(1.4rem, 4.5vw, 3.6rem);
    overflow: hidden;
    color: #4d4252;
    background: #ffffff;
    border: 1px solid #e6dce9;
    border-top: 0;
    border-radius: 0 0 clamp(1.2rem, 2.5vw, 1.8rem) clamp(1.2rem, 2.5vw, 1.8rem);
    box-shadow: 0 1.2rem 3.2rem rgba(54, 33, 65, 0.09);
    font-size: 1rem;
    line-height: 1.72;
}

.cc-choir-profile__image {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    margin: 0 auto clamp(2rem, 5vw, 3rem) !important;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.cc-choir-profile__image img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 34rem;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    border-radius: clamp(0.8rem, 1.8vw, 1.15rem);
    box-shadow: 0 0.9rem 2.2rem rgba(54, 33, 65, 0.13);
}

.cc-choir-profile h2 {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: clamp(2.2rem, 5vw, 3.4rem) 0 1rem;
    color: #5a2c83;
    font-size: clamp(1.25rem, 2.3vw, 1.65rem);
    font-weight: 850;
    letter-spacing: -0.025em;
    line-height: 1.2;
}

.cc-choir-profile__image + h2,
.cc-choir-profile > h2:first-of-type {
    margin-top: 0;
}

.cc-choir-profile h2::before {
    width: 0.62rem;
    height: 0.62rem;
    flex: 0 0 0.62rem;
    content: "";
    background: #a8ded6;
    border: 0.17rem solid #5a2c83;
    border-radius: 50%;
    box-shadow: 0 0 0 0.28rem rgba(90, 44, 131, 0.07);
}

.cc-choir-profile h2::after {
    height: 1px;
    min-width: 2rem;
    flex: 1 1 auto;
    content: "";
    background: linear-gradient(90deg, #dfd1e5, transparent);
}

.cc-choir-profile h3 {
    margin: 1.8rem 0 0.65rem;
    color: #4d315d;
    font-size: 1.05rem;
    font-weight: 800;
}

.cc-choir-profile p {
    max-width: 52rem;
    margin: 0 0 1rem;
}

.cc-choir-profile .cc-choir-profile__size {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    padding: 0.35rem 0.8rem;
    color: #4d315d;
    background: #f3eef6;
    border: 1px solid #e6dce9;
    border-radius: 999px;
    font-size: 0.86rem;
    line-height: 1.4;
}

.cc-choir-profile .cc-choir-profile__size strong {
    color: #5a2c83;
}

.cc-choir-profile h2 + p:has(> strong):not(.cc-choir-profile__size) {
    padding: 1rem 1.1rem;
    color: #55485b;
    background: #f8f4fa;
    border-left: 0.23rem solid #8a57a5;
    border-radius: 0 0.85rem 0.85rem 0;
}

.cc-choir-profile strong {
    color: #493052;
    font-weight: 800;
}

.cc-choir-profile a {
    color: #5a2c83;
    font-weight: 750;
    overflow-wrap: anywhere;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
}

.cc-choir-profile a:hover,
.cc-choir-profile a:focus-visible {
    color: #3e1d55;
}

.cc-choir-profile a[href^="mailto:"],
.cc-choir-profile a[href^="tel:"] {
    display: inline-flex;
    min-height: 2.55rem;
    align-items: center;
    padding: 0.5rem 0.8rem;
    color: #ffffff;
    background: #5a2c83;
    border-radius: 999px;
    font-size: 0.84rem;
    line-height: 1.25;
    text-decoration: none;
}

.cc-choir-profile a[href^="mailto:"]:hover,
.cc-choir-profile a[href^="mailto:"]:focus-visible,
.cc-choir-profile a[href^="tel:"]:hover,
.cc-choir-profile a[href^="tel:"]:focus-visible {
    color: #ffffff;
    background: #3e1d55;
}

.cc-choir-profile__team {
    display: grid;
    max-width: 52rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.cc-choir-profile .cc-choir-role {
    position: relative;
    min-width: 0;
    margin: 0;
    padding: 0.9rem 1rem 0.9rem 1.15rem;
    overflow: hidden;
    color: #514556;
    background: linear-gradient(135deg, #faf7fb, #ffffff);
    border: 1px solid #e7dfea;
    border-radius: 0.9rem;
}

.cc-choir-profile .cc-choir-role::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 0.24rem;
    content: "";
    background: linear-gradient(180deg, #5a2c83, #27b9d7);
}

.cc-choir-profile .cc-choir-role strong,
.cc-choir-profile .cc-choir-role span {
    display: block;
}

.cc-choir-profile .cc-choir-role strong {
    margin-bottom: 0.18rem;
    color: #745383;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.055em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-choir-profile .cc-choir-role span {
    color: #44364a;
    font-size: 0.96rem;
    font-weight: 720;
    line-height: 1.4;
}

.cc-choir-profile__contacts {
    display: grid;
    max-width: 52rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.cc-choir-profile .cc-choir-contact {
    position: relative;
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0.85rem 0.95rem 0.85rem 3.7rem;
    color: #514556;
    background: #faf8fb;
    border: 1px solid #e7dfea;
    border-radius: 0.9rem;
}

.cc-choir-profile .cc-choir-contact::before {
    position: absolute;
    top: 50%;
    left: 0.95rem;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    transform: translateY(-50%);
    content: "\f05a";
    color: #5a2c83;
    background: #f0e8f4;
    border-radius: 50%;
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free";
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1;
}

.cc-choir-profile .cc-choir-contact--phone::before {
    content: "\f095";
}

.cc-choir-profile .cc-choir-contact--email::before {
    content: "\f0e0";
}

.cc-choir-profile .cc-choir-contact--website::before {
    content: "\f0ac";
}

.cc-choir-profile .cc-choir-contact--social::before {
    content: "\f1e0";
}

.cc-choir-profile .cc-choir-contact--address::before {
    content: "\f3c5";
}

.cc-choir-profile .cc-choir-contact--address {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, rgba(39, 185, 215, 0.07), rgba(168, 222, 214, 0.11));
    border-color: rgba(39, 185, 215, 0.2);
}

.cc-choir-profile .cc-choir-contact > strong:first-child,
.cc-choir-profile .cc-choir-contact > em:first-child > strong:first-child {
    display: block;
    margin-bottom: 0.12rem;
    color: #493052;
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.055em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-choir-profile .cc-choir-contact a,
.cc-choir-profile .cc-choir-contact a[href^="mailto:"],
.cc-choir-profile .cc-choir-contact a[href^="tel:"] {
    display: inline;
    min-height: 0;
    padding: 0;
    color: #5a2c83;
    background: transparent;
    border-radius: 0;
    font-size: 0.92rem;
    font-weight: 760;
    line-height: 1.35;
    text-decoration: underline;
    text-decoration-color: rgba(90, 44, 131, 0.28);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
}

.cc-choir-profile .cc-choir-contact a:hover,
.cc-choir-profile .cc-choir-contact a:focus-visible,
.cc-choir-profile .cc-choir-contact a[href^="mailto:"]:hover,
.cc-choir-profile .cc-choir-contact a[href^="mailto:"]:focus-visible,
.cc-choir-profile .cc-choir-contact a[href^="tel:"]:hover,
.cc-choir-profile .cc-choir-contact a[href^="tel:"]:focus-visible {
    color: #3e1d55;
    background: transparent;
    text-decoration-color: currentColor;
}

.cc-choir-profile ul,
.cc-choir-profile ol {
    display: grid;
    gap: 0.45rem;
    margin: 0 0 1.25rem;
    padding-left: 1.25rem;
}

.cc-choir-profile blockquote {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    color: #67566f;
    background: #f5eff7;
    border-left: 0.25rem solid #a8ded6;
    border-radius: 0 0.9rem 0.9rem 0;
}

.cc-choir-profile table {
    width: 100%;
    margin: 1.25rem 0;
    overflow: hidden;
    border: 1px solid #e4dbe7;
    border-radius: 0.9rem;
}

.cc-choir-profile :is(th, td) {
    padding: 0.7rem 0.8rem;
    border-color: #ece5ee;
    vertical-align: top;
}

.cc-choir-profile iframe {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    margin: 1.25rem 0;
    border: 0;
    border-radius: 1rem;
}

@media (max-width: 575.98px) {
    .com-content-article:has(.cc-choir-profile) > .page-header {
        width: min(100% - 0.75rem, 62rem);
        padding: 1.25rem 1.2rem 1.1rem;
        border-radius: 1.1rem 1.1rem 0 0;
    }

    .com-content-article:has(.cc-choir-profile) > .page-header h1 {
        font-size: clamp(1.55rem, 8vw, 2rem);
    }

    .com-content-article:has(.cc-choir-profile) > .com-content-article__body {
        width: min(100% - 0.75rem, 62rem);
    }

    .cc-choir-profile {
        width: 100%;
        padding: 1.2rem;
        border-radius: 0 0 1.1rem 1.1rem;
    }

    .cc-choir-profile__image {
        width: 100%;
        margin: 0 auto 1.75rem !important;
        padding: 0;
    }

    .cc-choir-profile h2 {
        gap: 0.6rem;
    }

    .cc-choir-profile h2::after {
        min-width: 0.8rem;
    }

    .cc-choir-profile h2 + p:has(> strong):not(.cc-choir-profile__size) {
        padding: 0.85rem;
    }

    .cc-choir-profile__contacts {
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-choir-profile__team {
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-choir-profile .cc-choir-contact--address {
        grid-column: auto;
    }

    .cc-choir-profile a[href^="mailto:"],
    .cc-choir-profile a[href^="tel:"] {
        max-width: 100%;
        border-radius: 0.75rem;
    }
}

/* =========================================================
   Legal information pages
   The article markup intentionally stays simple for CMS editing.
   ========================================================= */
.cc-legal-page > .page-header,
.cc-legal-page > .article-info,
.cc-sales-terms-page > .page-header,
.cc-sales-terms-page > .article-info {
    display: none;
}

.cc-legal {
    --cc-legal-purple: #5a2c83;
    --cc-legal-purple-dark: #3d1b5e;
    --cc-legal-ink: #352f39;
    --cc-legal-muted: #706675;
    --cc-legal-line: #e7e0eb;
    width: 100%;
    max-width: 76rem;
    margin-inline: auto;
    color: var(--cc-legal-ink);
}

.cc-legal a {
    text-underline-offset: 0.18em;
}

.cc-legal-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(2.25rem, 7vw, 5.5rem) clamp(1.4rem, 6vw, 5.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 86% 15%, rgba(244, 189, 93, 0.22), transparent 24rem),
        radial-gradient(circle at 8% 92%, rgba(194, 140, 229, 0.25), transparent 24rem),
        linear-gradient(135deg, #3d1b5e 0%, #5a2c83 58%, #7842a2 100%);
    border-radius: clamp(1.25rem, 3vw, 2.2rem);
    box-shadow: 0 1.5rem 3.5rem rgba(61, 27, 94, 0.2);
}

.cc-legal-hero::after {
    position: absolute;
    z-index: -1;
    right: -5rem;
    bottom: -7rem;
    width: 20rem;
    height: 20rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    box-shadow: 0 0 0 2.5rem rgba(255, 255, 255, 0.035), 0 0 0 5rem rgba(255, 255, 255, 0.025);
    content: "";
}

.cc-legal-eyebrow {
    margin: 0 0 0.85rem;
    color: #f4d29d;
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.cc-legal-hero h1 {
    max-width: 14ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.2rem, 6vw, 4.75rem);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.cc-legal-hero > p:not(.cc-legal-eyebrow, .cc-legal-updated) {
    max-width: 45rem;
    margin: 1.35rem 0 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.65;
}

.cc-legal-updated {
    margin: 1.75rem 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.035em;
}

.cc-legal-body {
    width: min(68rem, calc(100% - clamp(0rem, 2vw, 2rem)));
    margin-inline: auto;
    padding-top: clamp(1.5rem, 4vw, 3rem);
}

.cc-legal-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-bottom: clamp(2.5rem, 6vw, 5rem);
}

.cc-legal-summary a {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.45rem 0.85rem;
    color: var(--cc-legal-purple);
    background: #f8f4fa;
    border: 1px solid #e8dfed;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 0.18s ease, color 0.18s ease, background 0.18s ease;
}

.cc-legal-summary a:hover,
.cc-legal-summary a:focus-visible {
    color: #fff;
    background: var(--cc-legal-purple);
    transform: translateY(-1px);
}

.cc-legal-intro {
    display: grid;
    grid-template-columns: minmax(7rem, 0.25fr) 1fr;
    gap: clamp(1rem, 4vw, 3rem);
    margin-bottom: 1.2rem;
    padding: clamp(1.25rem, 4vw, 2.25rem);
    background: linear-gradient(135deg, #fbf8fc, #f6f0f9);
    border: 1px solid var(--cc-legal-line);
    border-radius: 1.3rem;
}

.cc-legal-intro strong {
    color: var(--cc-legal-purple);
    font-size: 1.05rem;
}

.cc-legal-intro p {
    margin: 0;
}

.cc-legal-section {
    display: grid;
    grid-template-columns: 3.75rem minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 2.5rem);
    padding-block: clamp(2.25rem, 5vw, 4rem);
    border-top: 1px solid var(--cc-legal-line);
    scroll-margin-top: 7rem;
}

.cc-legal-section > * {
    min-width: 0;
}

.cc-legal-kicker {
    margin: 0;
    color: #a591b4;
    font-size: 0.77rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.cc-legal-section h2 {
    margin: -0.25rem 0 1.25rem;
    color: var(--cc-legal-purple-dark);
    font-size: clamp(1.45rem, 3vw, 2.15rem);
    font-weight: 780;
    letter-spacing: -0.025em;
    line-height: 1.12;
}

.cc-legal-section h3 {
    margin: 0 0 0.7rem;
    color: var(--cc-legal-purple);
    font-size: 0.74rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.cc-legal-section p,
.cc-legal-section li,
.cc-legal-table {
    line-height: 1.72;
}

.cc-legal-section p:last-child,
.cc-legal-card p:last-child,
.cc-legal-note p:last-child {
    margin-bottom: 0;
}

.cc-legal-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cc-legal-card {
    padding: clamp(1.15rem, 3vw, 1.8rem);
    background: #fff;
    border: 1px solid var(--cc-legal-line);
    border-radius: 1.1rem;
    box-shadow: 0 0.8rem 2rem rgba(61, 27, 94, 0.055);
}

.cc-legal-details {
    margin: 0;
}

.cc-legal-details {
    display: grid;
    grid-template-columns: 5.2rem minmax(0, 1fr);
    column-gap: 0.6rem;
}

.cc-legal-details dt,
.cc-legal-details dd {
    padding-block: 0.45rem;
    border-bottom: 1px solid #eee9f0;
}

.cc-legal-details dt {
    color: var(--cc-legal-muted);
    font-size: 0.78rem;
    font-weight: 750;
}

.cc-legal-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.cc-legal-details dt:last-of-type,
.cc-legal-details dd:last-of-type {
    border-bottom: 0;
}

.cc-legal-note {
    display: grid;
    grid-template-columns: minmax(10rem, 0.34fr) minmax(0, 1fr);
    gap: 1rem;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    background: #f8f4fa;
    border-left: 0.25rem solid var(--cc-legal-purple);
    border-radius: 0 0.8rem 0.8rem 0;
}

.cc-legal-list {
    display: grid;
    gap: 0.7rem;
    margin: 1.25rem 0;
    padding: 0;
    list-style: none;
}

.cc-legal-list li {
    position: relative;
    padding-left: 1.4rem;
}

.cc-legal-list li::before {
    position: absolute;
    top: 0.72em;
    left: 0;
    width: 0.45rem;
    height: 0.45rem;
    background: #9a65bd;
    border-radius: 50%;
    content: "";
}

.cc-legal-todo {
    display: inline-block;
    padding: 0.12rem 0.38rem;
    color: #744315;
    background: #fff5df;
    border: 1px dashed #dca757;
    border-radius: 0.35rem;
    font-weight: 650;
}

p.cc-legal-todo {
    display: block;
    padding: 0.9rem 1rem;
    line-height: 1.55;
}

.cc-legal-table-wrap {
    overflow-x: auto;
    max-width: 100%;
    margin-block: 1.25rem;
    border: 1px solid var(--cc-legal-line);
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.5rem rgba(61, 27, 94, 0.04);
}

.cc-legal-table {
    width: 100%;
    min-width: 42rem;
    margin: 0;
    border-collapse: collapse;
    background: #fff;
    font-size: 0.9rem;
}

.cc-legal-table th,
.cc-legal-table td {
    padding: 0.9rem 1rem;
    border-bottom: 1px solid #eee9f0;
    text-align: left;
    vertical-align: top;
}

.cc-legal-table th {
    color: var(--cc-legal-purple-dark);
    background: #f8f4fa;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cc-legal-table th:first-child,
.cc-legal-table td:first-child {
    width: 52%;
}

.cc-legal-table tr:last-child td {
    border-bottom: 0;
}

.cc-legal-section--highlight {
    margin-block: clamp(1rem, 3vw, 2rem);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    color: #fff;
    background: linear-gradient(135deg, var(--cc-legal-purple-dark), var(--cc-legal-purple));
    border: 0;
    border-radius: 1.4rem;
    box-shadow: 0 1.25rem 2.75rem rgba(61, 27, 94, 0.16);
}

.cc-legal-section--highlight .cc-legal-kicker,
.cc-legal-section--highlight h2 {
    color: #fff;
}

.cc-legal-section--highlight p {
    color: rgba(255, 255, 255, 0.83);
}

.cc-legal-section--highlight a:not(.cc-legal-action) {
    color: #fff;
}

.cc-legal-action {
    display: inline-flex;
    gap: 0.8rem;
    align-items: center;
    min-height: 2.8rem;
    margin-top: 0.35rem;
    padding: 0.65rem 1rem;
    color: var(--cc-legal-purple-dark);
    background: #fff;
    border-radius: 999px;
    font-weight: 800;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.cc-legal-action:hover,
.cc-legal-action:focus-visible {
    color: var(--cc-legal-purple-dark);
    box-shadow: 0 0.55rem 1.2rem rgba(20, 8, 31, 0.2);
    transform: translateY(-1px);
}

.cc-legal-footer {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.5rem;
    padding: 1.25rem 0;
    color: var(--cc-legal-muted);
    border-top: 1px solid var(--cc-legal-line);
    font-size: 0.85rem;
}

.cc-legal-footer p {
    max-width: 48rem;
    margin: 0;
}

.cc-legal-footer a {
    flex: 0 0 auto;
    color: var(--cc-legal-purple);
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 767.98px) {
    .cc-legal-hero {
        border-radius: 1.2rem;
    }

    .cc-legal-body {
        width: 100%;
    }

    .cc-legal-intro,
    .cc-legal-card-grid,
    .cc-legal-note {
        grid-template-columns: 1fr;
    }

    .cc-legal-section {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }

    .cc-legal-kicker {
        padding-bottom: 0.35rem;
        border-bottom: 0.18rem solid #cdb7da;
    }

    .cc-legal-section--highlight .cc-legal-kicker {
        border-bottom-color: rgba(255, 255, 255, 0.35);
    }

    .cc-legal-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 479.98px) {
    .cc-legal-summary {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-legal-summary a {
        justify-content: center;
        text-align: center;
    }

    .cc-legal-details > div {
        grid-template-columns: 4.4rem minmax(0, 1fr);
    }
}

/* Sales terms: a warmer editorial variation of the legal-page system. */
.cc-cgv-hero {
    background:
        radial-gradient(circle at 84% 18%, rgba(250, 198, 103, 0.32), transparent 22rem),
        radial-gradient(circle at 6% 96%, rgba(203, 151, 232, 0.28), transparent 25rem),
        linear-gradient(132deg, #35164f 0%, #5a2c83 58%, #754097 100%);
}

.cc-cgv-version {
    display: inline-grid;
    gap: 0.12rem;
    margin-top: 1.5rem;
    padding: 0.65rem 0.85rem;
    background: rgba(255, 255, 255, 0.11);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.8rem;
    backdrop-filter: blur(8px);
}

.cc-cgv-version span {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.cc-cgv-version strong {
    color: #fff;
    font-size: 0.86rem;
}

.cc-cgv-separation {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    padding: clamp(1.1rem, 3vw, 1.6rem);
    background: linear-gradient(135deg, #fcf9fd, #f6eff9);
    border: 1px solid var(--cc-legal-line);
    border-radius: 1.15rem;
}

.cc-cgv-separation strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--cc-legal-purple-dark);
    font-size: 1.05rem;
}

.cc-cgv-separation p {
    max-width: 48rem;
    margin: 0;
    color: var(--cc-legal-muted);
    line-height: 1.55;
}

.cc-cgv-separation > a {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.6rem;
    align-items: center;
    padding: 0.7rem 1rem;
    color: #fff;
    background: var(--cc-legal-purple);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-cgv-scope-grid,
.cc-cgv-guarantees {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    margin: 1.25rem 0;
}

.cc-cgv-scope-grid article,
.cc-cgv-guarantees article {
    min-width: 0;
    padding: 1.15rem;
    background: #fff;
    border: 1px solid var(--cc-legal-line);
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.6rem rgba(61, 27, 94, 0.045);
}

.cc-cgv-scope-grid article > span {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    margin-bottom: 0.9rem;
    color: #fff;
    background: linear-gradient(135deg, #74439a, #4d226d);
    border-radius: 0.75rem;
    place-items: center;
}

.cc-cgv-scope-grid p,
.cc-cgv-guarantees p {
    margin: 0;
    color: var(--cc-legal-muted);
    font-size: 0.9rem;
    line-height: 1.6;
}

.cc-cgv-guarantees {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cc-cgv-note,
.cc-cgv-exceptions {
    margin: 1.25rem 0;
    padding: clamp(1rem, 3vw, 1.4rem);
    background: #f8f4fa;
    border: 1px solid #e6ddea;
    border-left: 0.28rem solid var(--cc-legal-purple);
    border-radius: 0 1rem 1rem 0;
}

.cc-cgv-note > strong {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--cc-legal-purple-dark);
}

.cc-cgv-note p,
.cc-cgv-exceptions .cc-legal-list {
    margin-bottom: 0;
}

.cc-cgv-steps {
    display: grid;
    gap: 0.75rem;
    margin: 1.25rem 0;
    padding: 0;
    counter-reset: cc-cgv-step;
    list-style: none;
}

.cc-cgv-steps li {
    position: relative;
    display: grid;
    grid-template-columns: minmax(7rem, 0.24fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    min-height: 4rem;
    padding: 0.8rem 1rem 0.8rem 4rem;
    background: #fff;
    border: 1px solid var(--cc-legal-line);
    border-radius: 0.9rem;
    counter-increment: cc-cgv-step;
}

.cc-cgv-steps li::before {
    position: absolute;
    left: 1rem;
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    color: #fff;
    background: var(--cc-legal-purple);
    border-radius: 50%;
    content: counter(cc-cgv-step);
    font-size: 0.72rem;
    font-weight: 850;
    place-items: center;
}

.cc-cgv-steps strong {
    color: var(--cc-legal-purple-dark);
}

.cc-cgv-steps span {
    color: var(--cc-legal-muted);
}

.cc-cgv-form-model {
    margin-top: 1.25rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--cc-legal-line);
    border-radius: 1rem;
}

.cc-cgv-form-model summary {
    padding: 1rem 1.2rem;
    color: var(--cc-legal-purple-dark);
    background: #faf7fb;
    cursor: pointer;
    font-weight: 800;
}

.cc-cgv-form-model > div {
    padding: 1.1rem 1.2rem;
    border-top: 1px solid var(--cc-legal-line);
}

.cc-cgv-form-model > div > :last-child {
    margin-bottom: 0;
}

.cc-cgv-mediator {
    display: grid;
    gap: 0.45rem;
    margin: 1.2rem 0;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.9rem;
}

.cc-cgv-mediator .cc-legal-todo {
    color: #684018;
    background: #fff3d8;
}

.cc-cgv-footer {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    justify-content: space-between;
    margin: clamp(2rem, 5vw, 4rem) 0;
    padding: clamp(1.25rem, 4vw, 2rem);
    color: #fff;
    background: linear-gradient(135deg, #45205f, #6d388d);
    border-radius: 1.25rem;
    box-shadow: 0 1rem 2.5rem rgba(61, 27, 94, 0.14);
}

.cc-cgv-footer strong {
    font-size: 1.15rem;
}

.cc-cgv-footer p {
    margin: 0.2rem 0 0;
    color: rgba(255, 255, 255, 0.75);
}

/* HikaShop withdrawal form, kept native under a stable template override. */
.cc-withdrawal-shell {
    width: min(100%, 64rem);
    margin: clamp(1rem, 4vw, 3.5rem) auto;
    color: #403746;
}

.cc-withdrawal-back {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 1rem;
    color: #65318a;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-withdrawal-header {
    padding: clamp(1.5rem, 5vw, 3rem);
    color: #fff;
    background:
        radial-gradient(circle at 88% 15%, rgba(249, 199, 111, 0.28), transparent 17rem),
        linear-gradient(135deg, #3b1958, #6e3892);
    border-radius: 1.4rem;
    box-shadow: 0 1.2rem 2.8rem rgba(61, 27, 94, 0.16);
}

.cc-withdrawal-kicker {
    margin: 0 0 0.55rem;
    color: #f1cf9c;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.cc-withdrawal-header h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 5vw, 3.6rem);
    font-weight: 820;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-withdrawal-header > p:last-child {
    max-width: 43rem;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

.cc-withdrawal-guidance {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin: 1rem 0;
    padding: 1rem 1.15rem;
    color: #5b4f60;
    background: #f8f3fa;
    border: 1px solid #e5dbe9;
    border-radius: 1rem;
}

.cc-withdrawal-guidance > span {
    display: grid;
    flex: 0 0 2.65rem;
    width: 2.65rem;
    height: 2.65rem;
    color: #fff;
    background: #65318a;
    border-radius: 0.75rem;
    place-items: center;
}

.cc-withdrawal-guidance strong {
    color: #4a285b;
}

.cc-withdrawal-guidance p {
    margin: 0.15rem 0 0;
    line-height: 1.5;
}

.cc-withdrawal-core {
    max-width: 100%;
    padding: clamp(1rem, 4vw, 2rem);
    overflow: hidden;
    background: #fff;
    border: 1px solid #e5dfe8;
    border-radius: 1.2rem;
    box-shadow: 0 0.8rem 2rem rgba(54, 33, 65, 0.055);
}

.cc-withdrawal-core .title_area h1 {
    display: none;
}

.cc-withdrawal-core fieldset {
    min-width: 0;
    padding: 0;
    border: 0;
}

.cc-withdrawal-core legend {
    float: none;
    width: auto;
    margin-bottom: 1rem;
    color: #4d3159;
    font-size: 1.1rem;
    font-weight: 850;
}

.cc-withdrawal-core dl {
    display: grid;
    grid-template-columns: minmax(10rem, 0.35fr) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    align-items: center;
}

.cc-withdrawal-core :is(dt, dd) {
    min-width: 0;
    margin: 0;
}

.cc-withdrawal-core dt {
    color: #675a6c;
    font-size: 0.82rem;
    font-weight: 780;
}

.cc-withdrawal-core :is(input[type="text"], input[type="email"], textarea, select) {
    width: 100%;
    min-height: 2.8rem;
    padding: 0.6rem 0.75rem;
    color: #443849;
    background: #fbfafc;
    border: 1px solid #dcd2e1;
    border-radius: 0.7rem;
    box-shadow: none;
}

.cc-withdrawal-core textarea {
    min-height: 7rem;
}

.cc-withdrawal-core :is(input, textarea, select):focus {
    border-color: #8c5ba5;
    box-shadow: 0 0 0 0.2rem rgba(101, 49, 138, 0.12);
}

.cc-withdrawal-core .hikashop_withdrawal_products,
.cc-withdrawal-core .hikashop_withdrawal_orders {
    max-width: 100%;
    overflow-x: auto;
}

.cc-withdrawal-core table {
    min-width: 42rem;
    margin-block: 1rem;
    border: 1px solid #e7dfe9;
    border-radius: 0.8rem;
}

.cc-withdrawal-core th {
    color: #5b3a68;
    background: #f7f2f9;
}

.cc-withdrawal-core :is(.hikabtn, button, input[type="submit"]) {
    display: inline-flex;
    min-height: 2.9rem;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1.15rem;
    color: #fff;
    background: #65318a;
    border: 1px solid #65318a;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 850;
}

.cc-withdrawal-footer {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding: 0.9rem 0.2rem;
    color: #776b7b;
    font-size: 0.82rem;
}

.cc-withdrawal-footer p {
    margin: 0;
}

.cc-withdrawal-footer > a {
    flex: 0 0 auto;
    color: #65318a;
    font-weight: 800;
    text-decoration: none;
}

body.contentpane .cc-sales-terms,
body.component .cc-sales-terms {
    padding: 1rem;
}

body.contentpane .cc-sales-terms .cc-cgv-separation,
body.contentpane .cc-sales-terms .cc-legal-summary,
body.contentpane .cc-sales-terms .cc-cgv-footer,
body.component .cc-sales-terms .cc-cgv-separation,
body.component .cc-sales-terms .cc-legal-summary,
body.component .cc-sales-terms .cc-cgv-footer {
    display: none;
}

@media (max-width: 767.98px) {
    .cc-cgv-separation,
    .cc-cgv-footer,
    .cc-withdrawal-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-cgv-scope-grid,
    .cc-cgv-guarantees {
        grid-template-columns: 1fr;
    }

    .cc-cgv-steps li {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    .cc-withdrawal-core dl {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .cc-withdrawal-core dd + dt {
        margin-top: 0.6rem;
    }
}

@media (max-width: 479.98px) {
    .cc-cgv-separation > a,
    .cc-cgv-footer .cc-legal-action,
    .cc-withdrawal-core :is(.hikabtn, button, input[type="submit"]) {
        width: 100%;
        justify-content: center;
    }

    .cc-withdrawal-guidance {
        align-items: flex-start;
    }
}

/* =========================================================
   Article hubs and previous / next navigation
   ========================================================= */

.cc-article-hub-nav {
    display: flex;
    width: min(100%, 68rem);
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    justify-content: space-between;
    margin: 0 auto clamp(1.25rem, 3vw, 2rem);
}

.cc-article-hub-nav__link {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    justify-content: center;
    min-height: 2.65rem;
    padding: 0.58rem 0.9rem;
    color: #5a2c83;
    background: #ffffff;
    border: 1px solid #dccfe3;
    border-radius: 999px;
    box-shadow: 0 0.4rem 1.1rem rgba(54, 33, 65, 0.055);
    font-size: 0.8rem;
    font-weight: 780;
    line-height: 1;
    text-decoration: none;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.cc-article-hub-nav__link--context {
    margin-inline-start: auto;
    background: #f7f1fa;
}

.cc-article-hub-nav__arrow {
    color: #9a73ad;
    font-size: 1rem;
    line-height: 1;
    transition: color 180ms ease, transform 180ms ease;
}

.cc-article-hub-nav__link:hover,
.cc-article-hub-nav__link:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
    box-shadow: 0 0.7rem 1.5rem rgba(64, 30, 91, 0.16);
    outline: none;
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-article-hub-nav__link:hover .cc-article-hub-nav__arrow,
.cc-article-hub-nav__link:focus-visible .cc-article-hub-nav__arrow {
    color: #ffffff;
}

.cc-article-hub-nav__link--back:hover .cc-article-hub-nav__arrow,
.cc-article-hub-nav__link--back:focus-visible .cc-article-hub-nav__arrow {
    transform: translateX(-2px);
}

.cc-article-hub-nav__link--context:hover .cc-article-hub-nav__arrow,
.cc-article-hub-nav__link--context:focus-visible .cc-article-hub-nav__arrow {
    transform: translateX(2px);
}

@media (max-width: 575.98px) {
    .cc-article-hub-nav {
        align-items: stretch;
    }

    .cc-article-hub-nav__link {
        flex: 1 1 12rem;
    }

    .cc-article-hub-nav__link--context {
        margin-inline-start: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-article-hub-nav__link,
    .cc-article-hub-nav__arrow {
        transition: none;
    }
}

.cc-article-navigation {
    width: min(100%, 68rem);
    margin: clamp(2.5rem, 6vw, 5rem) auto clamp(2rem, 5vw, 4rem);
    padding-top: clamp(1.2rem, 3vw, 2rem);
    clear: both;
    border-top: 1px solid #e7ddea;
}

.cc-article-navigation .cc-article-navigation__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.7rem, 2vw, 1.15rem);
    margin: 0;
    padding: 0;
}

.cc-article-navigation__link {
    display: grid;
    min-width: 0;
    min-height: 5.4rem;
    align-items: center;
    gap: 0.9rem;
    padding: 0.9rem 1rem;
    color: #54237d;
    background:
        radial-gradient(circle at 12% 15%, rgba(168, 222, 214, 0.2), transparent 8rem),
        linear-gradient(145deg, #ffffff 0%, #faf7fb 100%);
    border: 1px solid #dfd2e5;
    border-radius: 1.1rem;
    box-shadow: 0 0.65rem 1.8rem rgba(54, 33, 65, 0.07);
    line-height: 1.25;
    text-decoration: none;
    transition:
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.cc-article-navigation__link.previous {
    grid-template-columns: auto minmax(0, 1fr);
}

.cc-article-navigation__link.next {
    grid-template-columns: minmax(0, 1fr) auto;
}

.cc-article-navigation__link.next:only-child {
    grid-column: 2;
}

.cc-article-navigation__copy {
    display: grid;
    min-width: 0;
    gap: 0.22rem;
}

.cc-article-navigation__link.next .cc-article-navigation__copy {
    text-align: end;
}

.cc-article-navigation__label {
    color: #7b6983;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-article-navigation__title {
    display: -webkit-box;
    min-width: 0;
    overflow: hidden;
    color: inherit;
    font-size: clamp(0.92rem, 1.6vw, 1.04rem);
    font-weight: 800;
    letter-spacing: -0.015em;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cc-article-navigation__icon {
    display: inline-grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    color: #54237d;
    background: #dff3ef;
    border: 1px solid rgba(90, 44, 131, 0.1);
    border-radius: 50%;
    font-size: 0.72rem;
    transition:
        color 180ms ease,
        background-color 180ms ease,
        transform 180ms ease;
}

.cc-article-navigation__icon > [class*="icon-chevron"] {
    display: block;
    width: 0.52rem;
    height: 0.52rem;
    border: solid currentColor;
    border-width: 0 0.12rem 0.12rem 0;
}

.cc-article-navigation__icon > [class*="icon-chevron"]::before {
    content: none !important;
}

.cc-article-navigation__icon > .icon-chevron-left {
    margin-left: 0.15rem;
    transform: rotate(135deg);
}

.cc-article-navigation__icon > .icon-chevron-right {
    margin-right: 0.15rem;
    transform: rotate(-45deg);
}

.cc-article-navigation__link:hover,
.cc-article-navigation__link:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
    box-shadow: 0 1rem 2.2rem rgba(64, 30, 91, 0.2);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-article-navigation__link:hover .cc-article-navigation__label,
.cc-article-navigation__link:focus-visible .cc-article-navigation__label {
    color: #d9f2ed;
}

.cc-article-navigation__link:hover .cc-article-navigation__icon,
.cc-article-navigation__link:focus-visible .cc-article-navigation__icon {
    color: #54237d;
    background: #ffffff;
    transform: scale(1.04);
}

.cc-article-navigation__link:focus-visible {
    outline: 0.2rem solid rgba(168, 222, 214, 0.9);
    outline-offset: 0.2rem;
}

@media (max-width: 575.98px) {
    .cc-article-navigation {
        margin-block: 2.5rem;
        padding-top: 1rem;
    }

    .cc-article-navigation .cc-article-navigation__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-article-navigation__link.next:only-child {
        grid-column: 1;
    }

    .cc-article-navigation__link {
        min-height: 4.8rem;
        padding: 0.8rem;
        border-radius: 0.95rem;
    }

    .cc-article-navigation__icon {
        width: 2.2rem;
        height: 2.2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-article-navigation__link,
    .cc-article-navigation__icon {
        transition: none;
    }
}

/* Compact, contemporary primary navigation. */
header.header ul.mod-menu > li > a {
    position: relative;
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    padding: 0.5rem 0.68rem;
    color: #514758;
    border-radius: 0.68rem;
    font-size: 0.78rem;
    font-weight: 760;
    letter-spacing: 0.035em;
    line-height: 1;
    text-decoration: none;
    text-transform: none;
    transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

header.header ul.mod-menu > li > a:hover,
header.header ul.mod-menu > li > a:focus-visible {
    color: #5a2c83;
    background: #f6f1f8;
}

header.header ul.mod-menu > li > a:focus-visible {
    box-shadow: 0 0 0 0.18rem rgba(90, 44, 131, 0.13);
    outline: none;
}

header.header ul.mod-menu > li.active > a:not(.cc-user-menu-link),
header.header ul.mod-menu > li.current > a:not(.cc-user-menu-link) {
    color: #4a2368;
    background: #f3edf7;
    box-shadow: none;
}

@media (min-width: 992px) {
    header.header ul.mod-menu > li.active > a:not(.cc-user-menu-link)::after,
    header.header ul.mod-menu > li.current > a:not(.cc-user-menu-link)::after {
        position: absolute;
        bottom: 0.18rem;
        left: 50%;
        width: 0.9rem;
        height: 0.14rem;
        background: #6d3d8d;
        border-radius: 999px;
        content: "";
        transform: translateX(-50%);
    }
}

/* ---------------------------------------------------------
   REAL layout container (YOUR DOM)
   --------------------------------------------------------- */
header.header .grid-child.container-nav {
    display: flex;
    align-items: center;
    width: 100%;
}

/* Logo block */
header.header .grid-child.container-nav .navbar-brand,
header.header .grid-child.container-nav #mod-custom674 {
    flex: 0 0 auto;
}

/* Horizontal menu */
header.header .grid-child.container-nav > nav.navbar {
    flex: 1 1 auto;
    justify-content: flex-end;
}

header.header .grid-child.container-nav > nav.navbar > .navbar-collapse {
    justify-content: flex-end;
}

header.header .grid-child.container-nav ul.mod-menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 0.3rem;
    margin: 0;
    padding: 0;
    list-style: none;
    flex: 1 1 auto;
}

/* ---------------------------------------------------------
   CTA (last menu item)
   --------------------------------------------------------- */

/* Keep the CTA with the rest of the right-aligned navigation. */
header.header .grid-child.container-nav ul.mod-menu > li:last-child {
    margin-left: 0;
}

/* CTA style */
header.header .grid-child.container-nav ul.mod-menu > li:last-child > a {
    /*padding: 0.55rem 1.3rem;*/
    /*background: #5A2C83;*/
    /*color: #ffffff;*/
    white-space: nowrap;
    transition: background 0.2s ease, transform 0.15s ease;
}

header.header .grid-child.container-nav ul.mod-menu > li:last-child > a:hover {
    background: #4a246d;
    transform: translateY(-1px);
}

/* Joomla core user entry: one menu item, switched by access level. */
header.header .grid-child.container-nav a.cc-user-menu-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.4rem;
    padding: 0.5rem 0.95rem;
    color: #5a2c83;
    background: #fff;
    border: 1px solid currentColor;
    border-radius: 999px;
    box-shadow: 0 0.35rem 1rem rgba(63, 30, 85, 0.04);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    line-height: 1;
    text-decoration: none;
}

header.header .grid-child.container-nav a.cc-user-menu-link:hover,
header.header .grid-child.container-nav a.cc-user-menu-link:focus-visible,
header.header .grid-child.container-nav li.active > a.cc-user-menu-link,
body.itemid-219 header.header .grid-child.container-nav a.cc-user-menu-link {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

/* Dropdowns inherit the same lighter typographic language. */
header.header ul.mod-menu > li > ul.mm-collapse {
    min-width: 14rem;
    padding: 0.45rem;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid #e8dfeb;
    border-radius: 0.85rem;
    box-shadow: 0 1rem 2.4rem rgba(52, 31, 63, 0.13);
}

header.header ul.mod-menu > li > ul.mm-collapse a {
    display: flex;
    min-height: 2.2rem;
    align-items: center;
    padding: 0.48rem 0.65rem;
    color: #5f5364;
    border-radius: 0.55rem;
    font-size: 0.74rem;
    font-weight: 680;
    letter-spacing: 0.02em;
    line-height: 1.25;
    text-decoration: none;
    text-transform: none;
}

header.header ul.mod-menu > li > ul.mm-collapse a:hover,
header.header ul.mod-menu > li > ul.mm-collapse a:focus-visible,
header.header ul.mod-menu > li > ul.mm-collapse li.active > a {
    color: #4a2368;
    background: #f5f0f8;
    outline: none;
}

header.header .navbar-brand img {
    height: 5.4rem;
    width: auto;
}

header.header #mod-custom674 .brand-logo {
    display: inline-flex;
    border-radius: 0.45rem;
    line-height: 0;
}

header.header #mod-custom674 .brand-logo:focus-visible {
    outline: 0.18rem solid rgba(90, 44, 131, 0.3);
    outline-offset: 0.25rem;
}

/* =========================================================
   Responsive (mobile)
   ========================================================= */
/* Desktop only: big spacing between logo and menu */
/* =========================================================
   GAP control: only on real desktop (mouse/trackpad)
   - iPad remains without huge gap even in landscape
   ========================================================= */

/* Default: no huge gap (phones + tablets) */
header.header .grid-child.container-nav {
    gap: 2rem;
}

/* Apply the huge gap ONLY when device supports hover + fine pointer (desktop) */
@media (hover: hover) and (pointer: fine) {
    header.header .grid-child.container-nav {
        gap: 5rem;
    }

    /* Open desktop dropdowns from the parent title. */
    header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler-link {
        display: none;
    }

    header.header .grid-child.container-nav ul.mod-menu > li.parent:not(:hover):not(:focus-within) > ul.mm-collapse {
        display: none;
    }

    header.header .grid-child.container-nav ul.mod-menu > li.parent:hover > ul.mm-collapse,
    header.header .grid-child.container-nav ul.mod-menu > li.parent:focus-within > ul.mm-collapse {
        display: block;
    }
}

@media (hover: none), (pointer: coarse) {
    /* Touch devices keep a visible dropdown control. */
    header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler {
        color: #666666;
        min-width: 2.75rem;
        justify-content: center;
    }
}

@media (max-width: 1366px) {

    /* Stack logo + menu */
    header.header .grid-child.container-nav {
        flex-direction: column;
        gap: 0;
    }

    /* Center logo */
    header.header .grid-child.container-nav #mod-custom674 {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    /* Space BETWEEN logo and menu */
    header.header .grid-child.container-nav > nav.navbar,
    header.header .grid-child.container-nav > nav.navbar > .navbar-collapse {
        width: 100%;
        justify-content: center;
    }

    header.header .grid-child.container-nav ul.mod-menu {
        margin-top: 2rem;
        justify-content: center;
        flex-wrap: wrap;
    }

    /* CTA no longer pushed right on mobile */
    header.header .grid-child.container-nav ul.mod-menu > li:last-child {
        margin-left: 0;
    }
}

/* =========================================================
   Mobile navigation
   Cassiopeia switches .navbar-expand-lg to its toggler below 992px.
   The parent template expects a coloured header, while CC uses white: give
   the control an explicit accessible treatment and a compact dropdown panel.
   ========================================================= */
@media (max-width: 991.98px) {
    header.header {
        position: relative;
        z-index: 1000;
        border-bottom: 1px solid rgba(90, 44, 131, 0.09);
        box-shadow: 0 0.4rem 1.4rem rgba(54, 33, 65, 0.055);
    }

    header.header .grid-child.container-nav {
        min-height: 4.75rem;
        align-items: center;
        flex-direction: row;
        gap: 0.75rem;
        padding: 0.5rem clamp(1rem, 4vw, 2rem);
    }

    header.header .grid-child.container-nav #mod-custom674 {
        display: flex;
        width: auto;
        min-width: 0;
        flex: 1 1 auto;
        justify-content: flex-start;
    }

    header.header .navbar-brand {
        min-width: 0;
        margin: 0;
        padding: 0;
    }

    header.header .navbar-brand img {
        display: block;
        width: auto;
        height: clamp(3.4rem, 12vw, 4.15rem);
        max-width: min(16.5rem, 72vw);
    }

    header.header .grid-child.container-nav > nav.navbar {
        position: static;
        display: flex;
        width: auto;
        min-width: 2.85rem;
        flex: 0 0 auto;
        justify-content: flex-end;
        padding: 0;
    }

    header.header .navbar-toggler {
        display: inline-flex;
        width: 2.85rem;
        height: 2.85rem;
        align-items: center;
        justify-content: center;
        padding: 0;
        color: #5a2c83;
        background: #f8f3fa;
        border: 1px solid #d9c9e1;
        border-radius: 0.85rem;
        box-shadow: 0 0.35rem 1rem rgba(54, 33, 65, 0.08);
        transition: color 0.2s ease, background-color 0.2s ease,
            border-color 0.2s ease, transform 0.2s ease;
    }

    header.header .navbar-toggler:hover,
    header.header .navbar-toggler:focus-visible,
    header.header .navbar-toggler[aria-expanded="true"] {
        color: #ffffff;
        background: #5a2c83;
        border-color: #5a2c83;
        outline: none;
    }

    header.header .navbar-toggler:focus-visible {
        box-shadow: 0 0 0 0.22rem rgba(90, 44, 131, 0.2);
    }

    /* Draw a crisp hamburger and morph it into a close icon when open. */
    header.header .navbar-toggler .icon-menu {
        position: relative;
        display: block;
        width: 1.25rem;
        height: 1rem;
        color: inherit;
        font-size: 0;
    }

    header.header .navbar-toggler .icon-menu::before,
    header.header .navbar-toggler .icon-menu::after {
        position: absolute;
        top: 0.08rem;
        left: 0;
        display: block;
        width: 100%;
        height: 0.13rem;
        content: "";
        background: currentColor;
        border-radius: 999px;
        transition: top 0.2s ease, transform 0.2s ease, opacity 0.2s ease,
            box-shadow 0.2s ease;
    }

    header.header .navbar-toggler .icon-menu::before {
        box-shadow: 0 0.39rem 0 currentColor, 0 0.78rem 0 currentColor;
    }

    header.header .navbar-toggler .icon-menu::after {
        top: 0.47rem;
        opacity: 0;
    }

    header.header .navbar-toggler[aria-expanded="true"] .icon-menu::before {
        top: 0.47rem;
        transform: rotate(45deg);
        box-shadow: none;
    }

    header.header .navbar-toggler[aria-expanded="true"] .icon-menu::after {
        opacity: 1;
        transform: rotate(-45deg);
    }

    header.header .grid-child.container-nav > nav.navbar > .navbar-collapse {
        position: absolute;
        top: calc(100% - 0.35rem);
        right: clamp(0.75rem, 3vw, 1.5rem);
        left: clamp(0.75rem, 3vw, 1.5rem);
        width: auto;
        max-height: calc(100svh - 6.5rem);
        padding: 0.65rem;
        overflow-x: hidden;
        overflow-y: auto;
        background: rgba(255, 255, 255, 0.985);
        border: 1px solid #e4d9e8;
        border-radius: 1rem;
        box-shadow: 0 1.25rem 3rem rgba(49, 27, 59, 0.2);
    }

    header.header .grid-child.container-nav ul.mod-menu {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0.15rem;
        margin: 0;
    }

    header.header .grid-child.container-nav ul.mod-menu > li {
        position: relative;
        width: 100%;
    }

    header.header .grid-child.container-nav ul.mod-menu > li > a {
        display: flex;
        width: 100%;
        min-height: 2.75rem;
        justify-content: flex-start;
        padding: 0.72rem 0.85rem;
        font-size: 0.86rem;
        letter-spacing: 0.025em;
    }

    header.header .grid-child.container-nav ul.mod-menu > li.parent > a {
        padding-right: 3.35rem;
    }

    header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler {
        position: absolute;
        top: 0.18rem;
        right: 0.18rem;
        display: inline-flex;
        width: 2.4rem;
        height: 2.4rem;
        min-width: 2.4rem;
        align-items: center;
        justify-content: center;
        color: #5a2c83;
        background: transparent;
        border: 0;
        border-radius: 0.65rem;
    }

    header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler:hover,
    header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler:focus-visible {
        background: #f3edf7;
        outline: none;
    }

    header.header ul.mod-menu > li > ul.mm-collapse {
        position: static;
        min-width: 0;
        margin: 0.1rem 0.35rem 0.55rem;
        padding: 0.35rem;
        background: #f8f5fa;
        border-color: #ece4ef;
        border-radius: 0.75rem;
        box-shadow: none;
    }

    header.header ul.mod-menu > li > ul.mm-collapse a {
        min-height: 2.5rem;
        padding: 0.62rem 0.7rem;
        font-size: 0.79rem;
    }

    header.header .grid-child.container-nav a.cc-user-menu-link {
        justify-content: center;
        margin-top: 0.25rem;
    }
}

/* Tablet navigation: the whole parent label opens its submenu on first tap,
   so the separate MetisMenu arrow can disappear without losing functionality. */
@media (min-width: 768px) and (hover: none),
       (min-width: 768px) and (pointer: coarse) {
    header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler {
        display: none;
    }

    header.header .grid-child.container-nav ul.mod-menu > li.parent > a {
        padding-right: 0.85rem;
    }
}

/* iPadOS can advertise desktop-like pointer capabilities when Safari uses its
   desktop mode or a keyboard/trackpad is attached. user.js adds this class as
   a device-level fallback so the arrows remain hidden in those configurations. */
html.cc-ipad-navigation header.header .grid-child.container-nav ul.mod-menu > li.parent > .mm-toggler {
    display: none;
}

html.cc-ipad-navigation header.header .grid-child.container-nav ul.mod-menu > li.parent > a {
    padding-right: 0.85rem;
}

@media (prefers-reduced-motion: reduce) {
    header.header .navbar-toggler,
    header.header .navbar-toggler .icon-menu::before,
    header.header .navbar-toggler .icon-menu::after {
        transition: none;
    }
}

/* =========================================================
   Comfortable desktop: keep the horizontal navigation available.
   Smaller screens, short laptop viewports and every touch/burger layout stay
   in the normal document flow so the header never consumes useful height.
   ========================================================= */
@media (min-width: 1367px) and (min-height: 760px) and (hover: hover) and (pointer: fine) {
    header.header {
        position: sticky;
        top: 0;
        z-index: 1020;
        background: rgba(255, 255, 255, 0.975);
        border-bottom: 1px solid rgba(90, 44, 131, 0.09);
        box-shadow: 0 0.55rem 1.8rem rgba(54, 33, 65, 0.075);
        -webkit-backdrop-filter: blur(0.75rem) saturate(135%);
        backdrop-filter: blur(0.75rem) saturate(135%);
    }

    header.header .grid-child.container-nav {
        min-height: 5.25rem;
    }

    header.header .navbar-brand img {
        height: 4.25rem;
    }
}

/* =========================================================
   Content width
   Keep banner/slideshow full width while tightening page content.
   ========================================================= */

@supports (display: grid) {
    body.wrapper-fluid .site-grid {
        grid-template-columns:
            [full-start] minmax(1rem, 1fr)
            [main-start] repeat(4, minmax(0, 18.75rem))
            [main-end] minmax(1rem, 1fr)
            [full-end];
    }

    body.wrapper-fluid .site-grid > .container-banner.full-width {
        grid-column: full-start / full-end;
    }
}

/* Full-bleed hero directly below the header/navigation. */
body.wrapper-fluid .site-grid > .container-banner.full-width {
    width: 100%;
    margin: 0;
    padding: 0;
}

.container-banner .cc-carousel,
.container-banner .cc-carousel .carousel-inner,
.container-banner .cc-carousel .carousel-item,
.container-banner .cc-carousel .cc-ratio-box {
    width: 100%;
    margin: 0;
}

.container-banner .cc-carousel img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
}

/* =========================================================
   Joomla core user area
   ========================================================= */

.com-users-login,
.com-users-registration,
.com-users-remind,
.com-users-reset,
.com-users-profile,
.com-users-profile__edit {
    width: 100%;
    max-width: 48rem;
    margin-inline: auto;
}

.com-users-login__description {
    max-width: 38rem;
    margin: 0 0 1.5rem;
    color: #5d5762;
    font-size: 1.05rem;
}

.com-users-login__form,
.com-users-registration form,
.com-users-remind form,
.com-users-reset form,
.com-users-profile__edit-form,
.com-users-profile fieldset {
    padding: clamp(1.25rem, 3vw, 2rem);
    background: #ffffff;
    border: 1px solid #e6e0e9;
    border-radius: 1rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.08);
}

.com-users-login__form .control-group,
.com-users-registration form .control-group,
.com-users-remind form .control-group,
.com-users-reset form .control-group,
.com-users-profile__edit-form .control-group {
    margin-bottom: 1rem;
}

.com-users-login__form .form-control,
.com-users-registration form .form-control,
.com-users-remind form .form-control,
.com-users-reset form .form-control,
.com-users-profile__edit-form .form-control {
    min-height: 3rem;
    border-color: #d7cedd;
    border-radius: 0.65rem;
}

.com-users-login__form .btn-primary,
.com-users-registration form .btn-primary,
.com-users-remind form .btn-primary,
.com-users-reset form .btn-primary {
    min-height: 3rem;
    padding-inline: 1.5rem;
    border-radius: 999px;
}

.com-users-login__options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.com-users-login__options .list-group-item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    padding: 0.75rem 1rem;
    color: #5a2c83;
    text-align: center;
    background: #f8f5fa;
    border: 1px solid #e6e0e9;
    border-radius: 0.75rem;
}

.com-users-login__options .list-group-item:hover,
.com-users-login__options .list-group-item:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-user-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.cc-user-actions form {
    margin: 0;
}

.cc-user-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 2.75rem;
    border-radius: 999px;
}

.com-users-profile fieldset {
    margin-bottom: 1.25rem;
}

.com-users-profile fieldset legend {
    float: none;
    width: auto;
    margin: 0 0 1rem;
    color: #5a2c83;
    font-weight: 700;
}

.com-users-profile dl {
    display: grid;
    grid-template-columns: minmax(10rem, 0.45fr) minmax(0, 1fr);
    gap: 0.75rem 1.5rem;
    margin: 0;
}

.com-users-profile dt,
.com-users-profile dd {
    margin: 0;
}

@media (max-width: 575.98px) {
    .com-users-login__options {
        grid-template-columns: 1fr;
    }

    .cc-user-actions {
        justify-content: stretch;
    }

    .cc-user-actions .btn,
    .cc-user-actions form {
        width: 100%;
    }

    .cc-user-actions .btn {
        justify-content: center;
    }

    .com-users-profile dl {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .com-users-profile dd + dt {
        margin-top: 0.75rem;
    }
}

/* Compact dashboard for the main member profile page. */
body.itemid-1600 .cc-space-page {
    max-width: 68rem;
    margin-block: clamp(1rem, 3vw, 2.5rem) clamp(3rem, 6vw, 5rem);
}

.cc-space-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.4rem, 3vw, 2rem);
    background: #fbf9fc;
    border: 1px solid #e5dfe8;
    border-radius: 1.1rem;
}

.cc-space-kicker {
    display: block;
    margin-bottom: 0.3rem;
    color: #765187;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-space-header h1 {
    margin: 0 0 0.4rem;
    color: #432d4e;
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -0.04em;
}

.cc-space-header p {
    max-width: 38rem;
    margin: 0;
    color: #756c79;
    line-height: 1.55;
}

.cc-space-header .cc-user-actions {
    flex: 0 0 auto;
    margin: 0;
}

.cc-space-header .cc-user-actions .btn {
    min-height: 2.6rem;
    padding-inline: 1rem;
    font-size: 0.78rem;
}

.cc-space-navigation {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    margin: 0.8rem 0 2rem;
}

.cc-space-navigation__item {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr) auto;
    gap: 0.7rem;
    align-items: center;
    min-height: 4.6rem;
    padding: 0.8rem 0.9rem;
    color: #514756;
    background: #ffffff;
    border: 1px solid #e5dfe8;
    border-radius: 0.9rem;
    text-decoration: none;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.cc-space-navigation__item > span:first-child {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    color: #65318a;
    background: #f3edf6;
    border-radius: 0.65rem;
    place-items: center;
}

.cc-space-navigation__item > span:nth-child(2) {
    display: grid;
    gap: 0.12rem;
}

.cc-space-navigation__item strong {
    color: inherit;
    font-size: 0.86rem;
}

.cc-space-navigation__item small {
    overflow: hidden;
    color: #8c828f;
    font-size: 0.68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-space-navigation__arrow {
    color: #9c8fa2;
    font-size: 0.72rem;
}

.cc-space-navigation__item:hover,
.cc-space-navigation__item:focus-visible {
    color: #572570;
    background: #fcf9fd;
    border-color: #cdbdd5;
}

.cc-space-navigation__item.is-active {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-space-navigation__item.is-active > span:first-child {
    color: #65318a;
    background: #ffffff;
}

.cc-space-navigation__item.is-active small {
    color: rgba(255, 255, 255, 0.72);
}

.cc-space-details__heading {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    margin-bottom: 1rem;
}

.cc-space-details__heading > span {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    color: #65318a;
    background: #f3edf6;
    border-radius: 0.75rem;
    place-items: center;
}

.cc-space-details__heading h2 {
    margin: 0;
    color: #433747;
    font-size: 1.35rem;
    letter-spacing: -0.02em;
}

.cc-space-details__heading p {
    margin: 0.12rem 0 0;
    color: #8b818f;
    font-size: 0.78rem;
}

body.itemid-1600 .cc-space-details fieldset {
    padding: clamp(1.15rem, 2.5vw, 1.6rem);
    border-radius: 0.9rem;
    box-shadow: 0 0.45rem 1.25rem rgba(54, 33, 65, 0.045);
}

body.itemid-1600 .cc-space-details fieldset legend {
    font-size: 0.95rem;
}

@media (max-width: 799.98px) {
    .cc-space-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-space-navigation {
        grid-template-columns: 1fr;
    }

    .cc-space-navigation__item small {
        white-space: normal;
    }
}

@media (max-width: 575.98px) {
    .cc-space-header .cc-user-actions {
        width: 100%;
    }
}

/* =========================================================
   HikaShop checkout
   ========================================================= */

body:has(.cc-checkout-shell) [data-position="cc-main-top-01"] {
    display: none;
}

.cc-checkout-shell {
    width: 100%;
    max-width: 76rem;
    margin: clamp(1rem, 3vw, 2.5rem) auto clamp(3rem, 7vw, 6rem);
}

.cc-checkout-back {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    margin-bottom: 0.9rem;
    color: #6d5977;
    font-size: 0.78rem;
    font-weight: 750;
    text-decoration: none;
}

.cc-checkout-back:hover,
.cc-checkout-back:focus-visible {
    color: #65318a;
}

.cc-checkout-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.6rem, 4vw, 2.6rem);
    color: #ffffff;
    background: radial-gradient(circle at 92% 8%, rgba(255, 255, 255, 0.16), transparent 24%),
    linear-gradient(125deg, #43205f, #65318a 62%, #7e4599);
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.8rem rgba(58, 28, 75, 0.14);
}

.cc-checkout-kicker {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    margin-bottom: 0.55rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-checkout-header h1 {
    margin: 0 0 0.55rem;
    color: #ffffff;
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.cc-checkout-header p {
    max-width: 42rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

.cc-checkout-step-count {
    display: grid;
    flex: 0 0 auto;
    min-width: 5.7rem;
    min-height: 5.7rem;
    align-content: center;
    justify-items: center;
    padding: 0.8rem;
    background: rgba(255, 255, 255, 0.11);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1rem;
    backdrop-filter: blur(8px);
}

.cc-checkout-step-count span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.65rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-checkout-step-count strong {
    color: #ffffff;
    font-size: 1.25rem;
}

.cc-checkout-core {
    margin-top: 1rem;
}

.cc-checkout-core #hikashop_checkout_form {
    margin: 0;
}

.cc-checkout-core .hikashop_wizardbar {
    padding: 0.7rem;
    overflow-x: auto;
    background: #ffffff;
    border: 1px solid #e5dfe8;
    border-radius: 1rem;
    box-shadow: 0 0.55rem 1.45rem rgba(54, 33, 65, 0.045);
}

.cc-checkout-core .hikashop_wizardbar ul {
    display: grid;
    min-width: 40rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.cc-checkout-core .hikashop_wizardbar li {
    position: relative;
    display: flex;
    gap: 0.5rem;
    align-items: center;
    min-width: 0;
    padding: 0.65rem 0.7rem;
    color: #8a7f8e;
    background: #faf8fb;
    border-radius: 0.7rem;
    font-size: 0.72rem;
    font-weight: 750;
}

.cc-checkout-core .hikashop_wizardbar .hkbadge {
    display: grid;
    flex: 0 0 1.65rem;
    width: 1.65rem;
    height: 1.65rem;
    color: #796e7e;
    background: #ece7ef;
    border: 0;
    border-radius: 50%;
    font-size: 0.7rem;
    place-items: center;
}

.cc-checkout-core .hikashop_wizardbar li.hikashop_cart_step_current {
    color: #55266e;
    background: #f2eaf6;
}

.cc-checkout-core .hikashop_wizardbar li.hikashop_cart_step_current .hkbadge {
    color: #ffffff;
    background: #65318a;
}

.cc-checkout-core .hikashop_wizardbar li.hikashop_cart_step_finished {
    color: #2f654d;
    background: #eef8f2;
}

.cc-checkout-core .hikashop_wizardbar li.hikashop_cart_step_finished .hkbadge {
    color: #ffffff;
    background: #478266;
}

.cc-checkout-core .hikashop_wizardbar a {
    color: inherit;
    text-decoration: none;
}

.cc-checkout-core .hikashop_chevron {
    display: none;
}

.cc-checkout-core :where(
    .hikashop_checkout_cart,
    .hikashop_checkout_coupon,
    .hikashop_checkout_login,
    .hikashop_checkout_address,
    .hikashop_checkout_shipping,
    .hikashop_checkout_payment,
    .hikashop_checkout_terms,
    .hikashop_checkout_fields
) {
    padding: clamp(1rem, 2.5vw, 1.5rem);
    margin-top: 0.9rem;
    background: #ffffff;
    border: 1px solid #e5dfe8;
    border-radius: 1rem;
    box-shadow: 0 0.6rem 1.6rem rgba(54, 33, 65, 0.05);
}

.cc-checkout-core fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}

.cc-checkout-core legend,
.cc-checkout-core .hikashop_checkout_login_title,
.cc-checkout-core .hikashop_shipping_group_name {
    float: none;
    width: auto;
    margin: 0 0 1rem;
    color: #4d3159;
    font-size: 1rem;
    font-weight: 850;
}

.cc-checkout-core input[type="text"],
.cc-checkout-core input[type="email"],
.cc-checkout-core input[type="password"],
.cc-checkout-core input[type="tel"],
.cc-checkout-core input[type="number"],
.cc-checkout-core select,
.cc-checkout-core textarea {
    min-height: 2.85rem;
    color: #443849;
    background: #fbfafc;
    border: 1px solid #dcd2e1;
    border-radius: 0.7rem;
    box-shadow: none;
}

.cc-checkout-core input:focus,
.cc-checkout-core select:focus,
.cc-checkout-core textarea:focus {
    border-color: #8c5ba5;
    box-shadow: 0 0 0 0.2rem rgba(101, 49, 138, 0.12);
}

.cc-checkout-core input[type="radio"],
.cc-checkout-core input[type="checkbox"] {
    accent-color: #65318a;
}

.cc-checkout-core .hikashop_checkout_cart {
    overflow-x: auto;
}

.cc-checkout-core .hikashop_checkout_cart table {
    min-width: 42rem;
    margin: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0.8rem;
}

.cc-checkout-core .hikashop_checkout_cart thead th {
    padding: 0.75rem;
    color: #837687;
    background: #f7f3f8;
    border-color: #e9e2eb;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cc-checkout-core .hikashop_checkout_cart tbody td {
    padding: 0.8rem 0.75rem;
    color: #564a5b;
    background: #ffffff;
    border-color: #eee8f0;
    vertical-align: middle;
}

.cc-checkout-core .hikashop_checkout_cart tbody tr:hover td {
    background: #fdfbfe;
}

.cc-checkout-core .hikashop_product_checkout_cart_image,
.cc-checkout-core .hikashop_cart_product_image_thumb img {
    width: 4.2rem;
    height: 4.2rem;
    object-fit: contain;
    background: #f8f5f9;
    border-radius: 0.65rem;
}

.cc-checkout-core .hikashop_cart_product_name a {
    color: #4f2864;
    font-weight: 800;
    text-decoration: none;
}

.cc-checkout-core .hikashop_cart_product_price_value,
.cc-checkout-core .hikashop_cart_product_total_value,
.cc-checkout-core .hikashop_cart_subtotal_value,
.cc-checkout-core .hikashop_cart_total_value,
.cc-checkout-core .hikashop_cart_shipping_value,
.cc-checkout-core .hikashop_cart_payment_value {
    color: #4f2864;
    font-weight: 800;
    text-align: right;
}

.cc-checkout-core .hikashop_checkout_cart_final_total,
.cc-checkout-core .hikashop_cart_total_row td {
    color: #4f2864;
    background: #f4edf7 !important;
    font-size: 1.05rem;
    font-weight: 900;
}

.cc-checkout-core .hikashop_checkout_coupon .input-group {
    display: flex;
    gap: 0.5rem;
}

.cc-checkout-core .hikashop_checkout_coupon_field {
    flex: 1 1 auto;
    min-width: 0;
}

.cc-checkout-core :where(
    .hikabtn_checkout_coupon_add,
    .hikabtn_checkout_login_form,
    .hikabtn_checkout_login_register,
    .hikashop_checkout_address_ok_button,
    .hikashop_checkout_address_new_button,
    .hikabtn_checkout_shipping_submit,
    .hikabtn_checkout_payment_submit
) {
    min-height: 2.75rem;
    padding: 0.6rem 1rem;
    color: #ffffff;
    background: #65318a;
    border: 1px solid #65318a;
    border-radius: 0.7rem;
    font-size: 0.78rem;
    font-weight: 800;
}

.cc-checkout-core .hikashop_shipping_methods_table,
.cc-checkout-core .hikashop_payment_methods_table {
    border-collapse: separate;
    border-spacing: 0 0.55rem;
    margin: -0.55rem 0;
    background: transparent;
    border: 0;
}

.cc-checkout-core :is(.hikashop_shipping_methods_table, .hikashop_payment_methods_table) tr td {
    padding: 0.9rem;
    background: #fbf9fc;
    border-color: #e5dce9;
    vertical-align: middle;
}

.cc-checkout-core :is(.hikashop_shipping_methods_table, .hikashop_payment_methods_table) tr td:first-child {
    border-radius: 0.75rem 0 0 0.75rem;
}

.cc-checkout-core :is(.hikashop_shipping_methods_table, .hikashop_payment_methods_table) tr td:last-child {
    border-radius: 0 0.75rem 0.75rem 0;
}

.cc-checkout-core :is(.hikashop_checkout_shipping_name, .hikashop_checkout_payment_name) {
    color: #4e4054;
    font-weight: 800;
}

.cc-checkout-core :is(.hikashop_checkout_shipping_cost, .hikashop_checkout_payment_cost) {
    color: #65318a;
    font-weight: 850;
}

.cc-checkout-core .hika_address_display {
    padding: 1rem;
    color: #5f5364;
    background: #faf8fb;
    border: 1px solid #e7dfe9;
    border-radius: 0.8rem;
    line-height: 1.55;
}

.cc-checkout-core .hikashop_checkout_terms {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    background: linear-gradient(135deg, #fbf8fc, #f5edf8);
    border-color: #d9c9e1;
    box-shadow: 0 0.65rem 1.65rem rgba(78, 37, 105, 0.07);
}

.cc-checkout-core .hikashop_checkout_terms_checkbox {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.15rem;
}

.cc-checkout-core .hikashop_checkout_terms label {
    color: #625667;
    line-height: 1.5;
}

.cc-checkout-core .hikashop_checkout_terms label a {
    color: #55266e;
    font-weight: 850;
    text-underline-offset: 0.18em;
}

.cc-checkout-core .hikashop_checkout_buttons {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1rem;
}

.cc-checkout-core .hikashop_checkout_buttons .buttons_left,
.cc-checkout-core .hikashop_checkout_buttons .buttons_right {
    float: none;
}

.cc-checkout-core .hikabtn_checkout_continue,
.cc-checkout-core .hikabtn_checkout_next {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    padding: 0.7rem 1.25rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-checkout-core .hikabtn_checkout_continue {
    color: #66596b;
    background: #ffffff;
    border: 1px solid #dcd3e0;
}

.cc-checkout-core .hikabtn_checkout_next {
    max-width: 100%;
    color: #ffffff;
    background: #65318a;
    border: 1px solid #65318a;
    box-shadow: 0 0.55rem 1.2rem rgba(101, 49, 138, 0.18);
    line-height: 1.25;
    text-align: center;
    white-space: normal;
}

.cc-checkout-core .hikabtn_checkout_next:hover,
.cc-checkout-core .hikabtn_checkout_next:focus-visible {
    background: #4f2569;
    border-color: #4f2569;
}

.cc-checkout-reassurance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 1rem;
}

.cc-checkout-reassurance > div {
    display: flex;
    gap: 0.7rem;
    align-items: center;
    padding: 0.85rem 1rem;
    color: #5f5364;
    background: #faf8fb;
    border: 1px solid #e7dfe9;
    border-radius: 0.85rem;
}

.cc-checkout-reassurance > div > span:first-child {
    color: #65318a;
}

.cc-checkout-reassurance > div > span:last-child {
    display: grid;
}

.cc-checkout-reassurance strong {
    color: #4d4052;
    font-size: 0.78rem;
}

.cc-checkout-reassurance small {
    color: #918694;
    font-size: 0.68rem;
}

main:has(.cc-checkout-shell) > .hikashop_footer {
    display: none;
}

@media (max-width: 767.98px) {
    .cc-checkout-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-checkout-step-count {
        min-width: 5rem;
        min-height: 4.5rem;
    }

    .cc-checkout-reassurance {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .cc-checkout-header {
        padding: 1.5rem;
        border-radius: 1rem;
    }

    .cc-checkout-core .hikashop_checkout_buttons {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .cc-checkout-core .hikashop_checkout_buttons .buttons_left,
    .cc-checkout-core .hikashop_checkout_buttons .buttons_right,
    .cc-checkout-core .hikabtn_checkout_continue,
    .cc-checkout-core .hikabtn_checkout_next {
        width: 100%;
    }
}

/* =========================================================
   Modern member login
   ========================================================= */

body.itemid-1601 .cc-login-page {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(24rem, 1.08fr);
    width: 100%;
    max-width: 74rem;
    margin: clamp(1rem, 4vw, 3.5rem) auto;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e7dfea;
    border-radius: 1.75rem;
    box-shadow: 0 1.5rem 4rem rgba(54, 33, 65, 0.12);
}

.cc-login-intro {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 37rem;
    padding: clamp(2rem, 5vw, 4.5rem);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 85% 12%, rgba(255, 255, 255, 0.2), transparent 24%),
    radial-gradient(circle at 8% 88%, rgba(235, 197, 255, 0.18), transparent 28%),
    linear-gradient(145deg, #3f1b60 0%, #65318a 55%, #8149a2 100%);
}

.cc-login-intro::after {
    position: absolute;
    right: -5rem;
    bottom: 5rem;
    width: 13rem;
    height: 13rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    box-shadow: 0 0 0 2.5rem rgba(255, 255, 255, 0.035), 0 0 0 5rem rgba(255, 255, 255, 0.025);
}

.cc-login-intro__content,
.cc-login-intro__note {
    position: relative;
    z-index: 1;
}

.cc-login-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.8rem;
    color: inherit;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-login-intro h1 {
    max-width: 12ch;
    margin: 0 0 1.25rem;
    color: #ffffff;
    font-size: clamp(2.25rem, 4vw, 3.7rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.cc-login-intro__content > p {
    max-width: 32rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.05rem;
    line-height: 1.75;
}

.cc-login-benefits {
    display: grid;
    gap: 0.8rem;
    padding: 0;
    margin: 2rem 0 0;
    list-style: none;
}

.cc-login-benefits li {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    color: rgba(255, 255, 255, 0.94);
    font-weight: 650;
}

.cc-login-benefits li > span {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.13);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.7rem;
    place-items: center;
}

.cc-login-intro__note {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-top: 1.5rem;
    margin-top: 2.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.cc-login-intro__note > span:first-child {
    font-size: 1.35rem;
}

.cc-login-intro__note > span:last-child {
    display: grid;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.82rem;
}

.cc-login-intro__note strong {
    color: #ffffff;
    font-size: 0.9rem;
}

.cc-login-panel {
    align-self: center;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.cc-login-panel__header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

.cc-login-panel__icon {
    display: grid;
    flex: 0 0 auto;
    width: 3.15rem;
    height: 3.15rem;
    color: #65318a;
    background: #f3edf7;
    border-radius: 1rem;
    place-items: center;
}

.cc-login-panel__header .cc-login-kicker {
    margin: 0 0 0.15rem;
    color: #8a7497;
}

.cc-login-panel h2 {
    margin: 0;
    color: #382442;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    letter-spacing: -0.035em;
}

.cc-login-panel__lead,
.cc-login-panel .com-users-login__description {
    margin: 0 0 1.5rem;
    color: #706676;
}

body.itemid-1601 .cc-login-panel .com-users-login__form {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.cc-login-panel .control-group {
    margin-bottom: 1rem;
}

.cc-login-panel .control-label,
.cc-login-panel label {
    margin-bottom: 0.45rem;
    color: #493c50;
    font-size: 0.87rem;
    font-weight: 750;
}

.cc-login-panel .input-group,
.cc-login-panel .password-group {
    width: 100%;
}

.cc-login-panel .form-control {
    min-height: 3.35rem;
    padding-inline: 1rem;
    color: #352b3a;
    background: #fbfafc;
    border: 1px solid #dcd2e1;
    border-radius: 0.85rem;
    box-shadow: none;
}

.cc-login-panel .form-control:focus {
    background: #ffffff;
    border-color: #7b459d;
    box-shadow: 0 0 0 0.22rem rgba(101, 49, 138, 0.12);
}

.cc-login-panel .input-group .btn {
    min-width: 3.2rem;
    color: #65318a;
    background: #f3edf7;
    border-color: #dcd2e1;
    border-radius: 0 0.85rem 0.85rem 0;
}

.cc-login-form-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0.3rem 0 1.35rem;
}

.cc-login-form-row .form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: auto;
    padding: 0;
    margin: 0;
}

.cc-login-form-row .form-check-input {
    position: static;
    float: none;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0;
    border-color: #cbbdd2;
}

.cc-login-form-row .form-check-input:checked {
    background-color: #65318a;
    border-color: #65318a;
}

.cc-login-form-row .form-check-label,
.cc-login-forgot {
    margin: 0;
    color: #665c6b;
    font-size: 0.84rem;
    font-weight: 650;
}

.cc-login-forgot:hover,
.cc-login-forgot:focus-visible {
    color: #65318a;
}

.cc-login-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 3.45rem;
    padding: 0.8rem 1.25rem;
    color: #ffffff;
    background: linear-gradient(110deg, #552578, #754096);
    border: 0;
    border-radius: 0.9rem;
    box-shadow: 0 0.75rem 1.5rem rgba(85, 37, 120, 0.18);
    font-weight: 800;
}

.cc-login-submit:hover,
.cc-login-submit:focus-visible {
    color: #ffffff;
    background: linear-gradient(110deg, #462064, #65318a);
    box-shadow: 0 0.9rem 1.8rem rgba(85, 37, 120, 0.25);
    transform: translateY(-1px);
}

.cc-login-panel .com-users-login__extra-submit {
    margin-bottom: 0.75rem;
}

.cc-login-panel .com-users-login__options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.25rem;
    padding-top: 1.25rem;
    margin-top: 1.25rem;
    border-top: 1px solid #eee8f0;
}

.cc-login-panel .com-users-login__options a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: auto;
    padding: 0;
    color: #65318a;
    background: transparent;
    border: 0;
    font-size: 0.84rem;
    font-weight: 700;
}

.cc-login-panel .com-users-login__options a:hover,
.cc-login-panel .com-users-login__options a:focus-visible {
    color: #351b48;
    background: transparent;
}

@media (max-width: 899.98px) {
    body.itemid-1601 .cc-login-page {
        grid-template-columns: 1fr;
        max-width: 42rem;
    }

    .cc-login-intro {
        min-height: auto;
        padding-bottom: 2rem;
    }

    .cc-login-intro h1 {
        max-width: 16ch;
    }

    .cc-login-benefits {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cc-login-benefits li {
        align-items: flex-start;
        flex-direction: column;
        font-size: 0.82rem;
    }
}

@media (max-width: 575.98px) {
    body.itemid-1601 .cc-login-page {
        margin-block: 0.5rem 2rem;
        border-radius: 1.2rem;
    }

    .cc-login-intro,
    .cc-login-panel {
        padding: 1.6rem;
    }

    .cc-login-intro h1 {
        font-size: 2.15rem;
    }

    .cc-login-benefits {
        grid-template-columns: 1fr;
    }

    .cc-login-benefits li {
        align-items: center;
        flex-direction: row;
    }

    .cc-login-intro__note {
        display: none;
    }

    .cc-login-form-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.65rem;
    }
}

/* =========================================================
   HikaShop deposit payment pages
   ========================================================= */

.cc-deposit-page {
    width: 100%;
    max-width: 76rem;
    margin: clamp(1rem, 3vw, 2.5rem) auto clamp(3rem, 7vw, 6rem);
}

.cc-deposit-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 5vw, 3.75rem);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 86% 15%, rgba(255, 255, 255, 0.2), transparent 19%),
    linear-gradient(125deg, #442063 0%, #66338a 60%, #8a53a7 100%);
    border-radius: 1.75rem;
    box-shadow: 0 1.3rem 3.5rem rgba(60, 25, 82, 0.18);
}

.cc-deposit-hero::after {
    position: absolute;
    right: -3.5rem;
    bottom: -5rem;
    width: 15rem;
    height: 15rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    box-shadow: 0 0 0 2.5rem rgba(255, 255, 255, 0.035);
}

.cc-deposit-hero > div,
.cc-deposit-hero__icon {
    position: relative;
    z-index: 1;
}

.cc-deposit-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    color: #79508d;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.115em;
    text-transform: uppercase;
}

.cc-deposit-hero .cc-deposit-kicker {
    color: rgba(255, 255, 255, 0.82);
}

.cc-deposit-hero h1 {
    max-width: 19ch;
    margin: 0 0 0.8rem;
    color: #ffffff;
    font-size: clamp(2.1rem, 4.5vw, 4rem);
    line-height: 1.04;
    letter-spacing: -0.045em;
}

.cc-deposit-hero p {
    max-width: 41rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.cc-deposit-hero p strong {
    color: #ffffff;
}

.cc-deposit-hero__icon {
    display: grid;
    flex: 0 0 auto;
    width: clamp(5rem, 10vw, 8rem);
    height: clamp(5rem, 10vw, 8rem);
    color: #ffffff;
    background: rgba(255, 255, 255, 0.11);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 2rem;
    font-size: clamp(2rem, 5vw, 3.6rem);
    transform: rotate(5deg);
    place-items: center;
}

.cc-deposit-layout {
    display: grid;
    grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: start;
    margin-top: clamp(1rem, 3vw, 2rem);
}

.cc-deposit-guide,
.cc-deposit-card {
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: #ffffff;
    border: 1px solid #e6dfe9;
    border-radius: 1.5rem;
    box-shadow: 0 1rem 2.8rem rgba(54, 33, 65, 0.08);
}

.cc-deposit-guide {
    background: linear-gradient(155deg, #fbf8fc 0%, #f5eff8 100%);
}

.cc-deposit-guide ol {
    display: grid;
    gap: 1.25rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.cc-deposit-guide li {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
}

.cc-deposit-guide li > span {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    color: #ffffff;
    background: #65318a;
    border-radius: 0.7rem;
    font-size: 0.78rem;
    font-weight: 850;
    place-items: center;
}

.cc-deposit-guide li > div {
    display: grid;
    gap: 0.2rem;
}

.cc-deposit-guide strong {
    color: #433549;
    font-size: 0.92rem;
}

.cc-deposit-guide small {
    color: #766b7b;
    font-size: 0.78rem;
    line-height: 1.55;
}

.cc-deposit-guide__help {
    display: flex;
    gap: 0.65rem;
    padding-top: 1.25rem;
    margin: 1.5rem 0 0;
    color: #765c82;
    border-top: 1px solid #e2d8e6;
    font-size: 0.76rem;
    line-height: 1.55;
}

.cc-deposit-guide__help > span {
    margin-top: 0.2rem;
}

.cc-deposit-card__heading {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid #eee8f0;
}

.cc-deposit-card__number {
    display: grid;
    flex: 0 0 auto;
    width: 3.5rem;
    height: 3.5rem;
    color: #65318a;
    background: #f3edf7;
    border-radius: 1rem;
    font-size: 1.5rem;
    font-weight: 850;
    place-items: center;
}

.cc-deposit-card__heading .cc-deposit-kicker {
    margin: 0 0 0.15rem;
}

.cc-deposit-card__heading h2 {
    margin: 0;
    color: #392b40;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    letter-spacing: -0.025em;
}

.cc-deposit-product-layout .hikashop_product_top_part,
.cc-deposit-product-layout #hikashop_product_left_part,
.cc-deposit-product-layout #hikashop_product_price_main,
.cc-deposit-product-layout #hikashop_product_price_with_options_main,
.cc-deposit-product-layout #hikashop_product_bottom_part,
.cc-deposit-product-layout .hikashop_product_quantity_main_alt,
.cc-deposit-product-layout .hikashop_quantity_form,
.cc-deposit-product-layout .hikashop_product_stock_count,
.cc-deposit-product-layout .hikashop_product_quantity_field_change,
.cc-deposit-product-layout #hikashop_product_right_part > br {
    display: none !important;
}

.cc-deposit-product-layout .hikashop_product_page,
.cc-deposit-product-layout .hk-row-fluid,
.cc-deposit-product-layout #hikashop_product_right_part {
    display: block;
    width: 100%;
    max-width: none !important;
    padding: 0;
    margin: 0;
}

.cc-deposit-product-layout #hikashop_product_right_part {
    float: none;
    flex: 0 0 100%;
}

.cc-deposit-product-layout .hikashop_product_custom_item_info,
.cc-deposit-product-layout .hikashop_product_custom_item_info_table,
.cc-deposit-product-layout .hikashop_product_custom_item_info_table tbody,
.cc-deposit-product-layout .hikashop_product_custom_item_info_table tr,
.cc-deposit-product-layout .hikashop_product_custom_item_info_table td {
    display: block;
    width: 100%;
    padding: 0;
}

.cc-deposit-product-layout .hikashop_product_custom_item_info_table td.key {
    margin-bottom: 0.55rem;
}

.cc-deposit-product-layout .hikashop_product_custom_item_name label {
    margin: 0;
    color: #4c3d53;
    font-size: 0.9rem;
    font-weight: 780;
}

.cc-deposit-product-layout #amount {
    width: 100%;
    min-height: 4rem;
    padding: 0.75rem 1.1rem;
    color: #37293e;
    background: #fbfafc;
    border: 1px solid #d8cddd;
    border-radius: 0.95rem;
    box-shadow: none;
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    font-weight: 750;
}

.cc-deposit-product-layout #amount:focus {
    background: #ffffff;
    border-color: #754096;
    box-shadow: 0 0 0 0.25rem rgba(101, 49, 138, 0.12);
}

.cc-deposit-product-layout #amount::placeholder {
    color: #a197a6;
    font-size: 0.9rem;
    font-weight: 500;
}

.cc-deposit-product-layout .hikashop_field_error_msg {
    display: block;
    margin-top: 0.45rem;
    color: #b02a37;
    font-size: 0.78rem;
    font-weight: 650;
}

.cc-deposit-product-layout #hikashop_product_quantity_main {
    display: block;
    width: 100%;
    margin-top: 1.15rem;
}

.cc-deposit-product-layout #hikashop_product_quantity_main .hikacart {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 3.65rem;
    padding: 0.85rem 1.35rem;
    color: #ffffff;
    background: linear-gradient(110deg, #552578, #754096);
    border: 0;
    border-radius: 0.95rem;
    box-shadow: 0 0.8rem 1.6rem rgba(85, 37, 120, 0.2);
    font-size: 0.98rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.cc-deposit-product-layout #hikashop_product_quantity_main .hikacart:hover,
.cc-deposit-product-layout #hikashop_product_quantity_main .hikacart:focus-visible {
    color: #ffffff;
    background: linear-gradient(110deg, #462064, #65318a);
    box-shadow: 0 1rem 2rem rgba(85, 37, 120, 0.27);
    transform: translateY(-1px);
}

.cc-deposit-reassurance {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 1.25rem 0 0;
    color: #7a6d7f;
    font-size: 0.74rem;
    text-align: center;
}

.cc-deposit-reassurance > span {
    color: #65318a;
}

main:has(.cc-deposit-page) > .hikashop_footer {
    display: none;
}

@media (max-width: 799.98px) {
    .cc-deposit-layout {
        grid-template-columns: 1fr;
    }

    .cc-deposit-guide {
        order: 2;
    }

    .cc-deposit-guide ol {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cc-deposit-guide li {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .cc-deposit-hero {
        padding: 1.75rem;
        border-radius: 1.25rem;
    }

    .cc-deposit-hero__icon {
        display: none;
    }

    .cc-deposit-hero h1 {
        font-size: 2.15rem;
    }

    .cc-deposit-guide,
    .cc-deposit-card {
        padding: 1.35rem;
        border-radius: 1.15rem;
    }

    .cc-deposit-guide ol {
        grid-template-columns: 1fr;
    }

    .cc-deposit-guide li {
        grid-template-columns: 2.25rem minmax(0, 1fr);
    }
}

/* =========================================================
   HikaShop customer orders
   ========================================================= */

.cc-orders-page,
.cc-order-history-page {
    width: 100%;
    max-width: 78rem;
    margin: clamp(1rem, 3vw, 2.5rem) auto clamp(3rem, 7vw, 6rem);
}

.cc-orders-hero,
.cc-order-history-hero {
    position: relative;
    padding: clamp(2rem, 5vw, 3.6rem);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 92% 15%, rgba(255, 255, 255, 0.18), transparent 19%),
    linear-gradient(125deg, #43205f 0%, #65318a 58%, #8a53a7 100%);
    border-radius: 1.7rem;
    box-shadow: 0 1.25rem 3.25rem rgba(60, 25, 82, 0.17);
}

.cc-orders-hero {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.cc-orders-hero::after,
.cc-order-history-hero::after {
    position: absolute;
    right: -3rem;
    bottom: -6rem;
    width: 16rem;
    height: 16rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    box-shadow: 0 0 0 2.7rem rgba(255, 255, 255, 0.035), 0 0 0 5rem rgba(255, 255, 255, 0.02);
}

.cc-orders-hero > *,
.cc-order-history-hero > * {
    position: relative;
    z-index: 1;
}

.cc-orders-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.7rem;
    color: #7b578e;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-orders-hero .cc-orders-kicker,
.cc-order-history-hero .cc-orders-kicker {
    color: rgba(255, 255, 255, 0.78);
}

.cc-orders-hero h1,
.cc-order-history-hero h1 {
    margin: 0 0 0.7rem;
    color: #ffffff;
    font-size: clamp(2.35rem, 5vw, 4.25rem);
    line-height: 1;
    letter-spacing: -0.05em;
}

.cc-orders-hero p,
.cc-order-history-hero p {
    max-width: 42rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.03rem;
    line-height: 1.65;
}

.cc-orders-history-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.65rem;
    min-height: 3rem;
    padding: 0.75rem 1.1rem;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 0.85rem;
    font-size: 0.86rem;
    font-weight: 750;
    text-decoration: none;
    backdrop-filter: blur(8px);
}

.cc-orders-history-link:hover,
.cc-orders-history-link:focus-visible {
    color: #4e2868;
    background: #ffffff;
    border-color: #ffffff;
}

.cc-orders-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.cc-orders-summary > div {
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0 0.8rem;
    align-items: center;
    padding: 1rem 1.15rem;
    background: #ffffff;
    border: 1px solid #e7dfea;
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.6rem rgba(54, 33, 65, 0.055);
}

.cc-orders-summary > div > span {
    display: grid;
    grid-row: 1 / 3;
    width: 2.65rem;
    height: 2.65rem;
    color: #65318a;
    background: #f3edf7;
    border-radius: 0.75rem;
    place-items: center;
}

.cc-orders-summary strong {
    align-self: end;
    color: #403146;
    font-size: 0.95rem;
}

.cc-orders-summary small {
    align-self: start;
    color: #8b7f90;
    font-size: 0.72rem;
}

.cc-orders-content {
    margin-top: clamp(2rem, 5vw, 3.75rem);
}

/* Keep this page focused on orders: the legacy points panel is not part of
   the customer journey and is especially noisy when the balance is empty. */
.cc-orders-content > .hikashop_user_points_cpanel {
    display: none;
}

/* HikaShop appends its technical signature after the overridden views. */
main:has(.cc-orders-page) > .hikashop_footer,
main:has(.cc-order-history-page) > .hikashop_footer {
    display: none;
}

.cc-orders-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.cc-orders-section-heading .cc-orders-kicker {
    margin-bottom: 0.25rem;
}

.cc-orders-section-heading h2 {
    margin: 0;
    color: #392d3e;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    letter-spacing: -0.035em;
}

.cc-orders-list {
    display: grid;
    gap: 1.15rem;
}

.cc-order-card {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e6dfe9;
    border-radius: 1.25rem;
    box-shadow: 0 0.8rem 2.2rem rgba(54, 33, 65, 0.07);
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.cc-order-card:hover {
    border-color: #d5c6dc;
    box-shadow: 0 1.1rem 2.8rem rgba(54, 33, 65, 0.11);
    transform: translateY(-2px);
}

.cc-order-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.3rem;
    background: linear-gradient(100deg, #fbf9fc, #f7f2f9);
    border-bottom: 1px solid #ebe4ee;
}

.cc-order-card__identity {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.cc-order-card__icon {
    display: grid;
    flex: 0 0 auto;
    width: 2.8rem;
    height: 2.8rem;
    color: #65318a;
    background: #ffffff;
    border: 1px solid #e3d9e7;
    border-radius: 0.8rem;
    box-shadow: 0 0.4rem 1rem rgba(54, 33, 65, 0.06);
    place-items: center;
}

.cc-order-card__identity > div {
    display: grid;
    gap: 0.05rem;
}

.cc-order-card__label {
    color: #8a7d8f;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.cc-order-card__identity a {
    color: #42274f;
    font-size: 1.02rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-order-card__identity a:hover,
.cc-order-card__identity a:focus-visible {
    color: #65318a;
}

.cc-order-status,
.cc-order-history-core .order-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.85rem;
    padding: 0.32rem 0.7rem;
    color: #5e5363;
    background: #ece8ee;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.cc-order-status--confirmed,
.cc-order-history-core .order-label-confirmed {
    color: #16633d;
    background: #ddf4e8;
}

.cc-order-status--created,
.cc-order-history-core .order-label-created {
    color: #805316;
    background: #fff0d2;
}

.cc-order-status--paid_pending_review,
.cc-order-history-core .order-label-paid_pending_review {
    color: #5a3971;
    background: #f0e6f5;
}

.cc-order-detail-hero__notice {
    max-width: 50rem;
    margin-top: 0.8rem;
    font-weight: 600;
    line-height: 1.5;
}

.cc-order-status--shipped,
.cc-order-history-core .order-label-shipped {
    color: #235c7a;
    background: #dceff8;
}

.cc-order-status--cancelled,
.cc-order-history-core .order-label-cancelled {
    color: #8f3440;
    background: #f9e0e4;
}

.cc-order-card__body {
    display: grid;
    grid-template-columns: minmax(17rem, 0.75fr) minmax(0, 1.25fr);
    gap: 1.4rem;
    padding: 1.3rem;
}

.cc-order-card__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
    align-content: start;
}

.cc-order-card__meta > span {
    display: grid;
    grid-template-columns: 1.4rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0 0.35rem;
    align-items: center;
    padding: 0.75rem;
    background: #faf8fb;
    border: 1px solid #eee8f0;
    border-radius: 0.75rem;
}

.cc-order-card__meta i {
    grid-row: 1 / 3;
    color: #7b459d;
}

.cc-order-card__meta small {
    color: #95899a;
    font-size: 0.65rem;
}

.cc-order-card__meta strong {
    overflow: hidden;
    color: #493d4f;
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-order-products {
    padding-left: 1.4rem;
    border-left: 1px solid #eee8f0;
}

.cc-order-products ul {
    display: grid;
    gap: 0.4rem;
    padding: 0;
    margin: 0.65rem 0 0;
    list-style: none;
}

.cc-order-products li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.4rem;
    color: #4b3e51;
    border-bottom: 1px dashed #e7dfea;
    font-size: 0.82rem;
}

.cc-order-products li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.cc-order-products li small {
    flex: 0 0 auto;
    color: #8e8293;
    font-size: 0.72rem;
}

.cc-order-products__more {
    display: inline-block;
    margin-top: 0.6rem;
    color: #65318a;
    font-size: 0.74rem;
    font-weight: 750;
}

.cc-order-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.3rem;
    background: #fcfbfc;
    border-top: 1px solid #eee8f0;
}

.cc-order-total {
    display: grid;
    gap: 0.05rem;
}

.cc-order-total span {
    color: #95899a;
    font-size: 0.67rem;
    font-weight: 750;
    text-transform: uppercase;
}

.cc-order-total strong {
    color: #4d2663;
    font-size: 1.25rem;
    letter-spacing: -0.02em;
}

.cc-order-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

.cc-order-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 2.6rem;
    padding: 0.6rem 0.85rem;
    color: #5c4567;
    background: #f4eff6;
    border: 1px solid #e3d8e7;
    border-radius: 0.72rem;
    font-size: 0.76rem;
    font-weight: 750;
    text-decoration: none;
}

.cc-order-action:hover,
.cc-order-action:focus-visible {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-order-action--primary {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-order-action--primary:hover,
.cc-order-action--primary:focus-visible {
    background: #4b2368;
    border-color: #4b2368;
}

.cc-order-action--pay {
    color: #195c3d;
    background: #e2f5ea;
    border-color: #c9e9d7;
}

.cc-order-action--icon {
    width: 2.6rem;
    padding-inline: 0;
}

.cc-order-action--danger {
    color: #9d3442;
    background: #fff3f4;
    border-color: #f4d7dc;
}

.cc-orders-empty,
.cc-order-history-core .hika_no_orders {
    display: grid;
    justify-items: center;
    padding: clamp(2.5rem, 7vw, 5rem) 1.5rem;
    color: #6f6374;
    text-align: center;
    background: linear-gradient(155deg, #fcfafc, #f6f0f8);
    border: 1px dashed #d9cce0;
    border-radius: 1.25rem;
}

.cc-orders-empty__icon {
    display: grid;
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: 1rem;
    color: #65318a;
    background: #ffffff;
    border: 1px solid #e3d8e7;
    border-radius: 1.3rem;
    box-shadow: 0 0.8rem 2rem rgba(54, 33, 65, 0.08);
    font-size: 1.6rem;
    place-items: center;
}

.cc-orders-empty h3 {
    margin: 0 0 0.5rem;
    color: #432d4e;
    font-size: 1.4rem;
}

.cc-orders-empty p,
.cc-order-history-core .hika_no_orders p {
    max-width: 32rem;
    margin: 0;
}

.cc-orders-empty a {
    margin-top: 1.2rem;
    color: #65318a;
    font-size: 0.85rem;
    font-weight: 800;
}

/* Full HikaShop order history reached from the dashboard. */
.cc-order-history-hero > a {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
}

.cc-order-history-hero > a:hover,
.cc-order-history-hero > a:focus-visible {
    color: #ffffff;
}

.cc-order-history-core {
    margin-top: 1.25rem;
}

.cc-order-history-core .hikashop_dashboard,
.cc-order-history-core .hikashop_cpanel_main_interface,
.cc-order-history-core .hika_cpanel_main_data {
    display: block;
    width: 100%;
    max-width: none;
    padding: 0;
    margin: 0;
}

.cc-order-history-core .hika_cpanel_side_bar,
.cc-order-history-core .hikashop_header_title,
.cc-order-history-core .hikashop_toolbar,
.cc-order-history-core .hika_toolbar {
    display: none !important;
}

.cc-order-history-core #hikashop_order_listing,
.cc-order-history-core #adminForm {
    width: 100%;
    margin: 0;
}

.cc-order-history-core #adminForm > .hk-row-fluid {
    display: grid;
    grid-template-columns: minmax(18rem, 0.9fr) minmax(24rem, 1.1fr);
    gap: 0.8rem;
    padding: 1rem;
    margin: 0 0 1rem;
    background: #ffffff;
    border: 1px solid #e6dfe9;
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.6rem rgba(54, 33, 65, 0.055);
}

.cc-order-history-core #adminForm > .hk-row-fluid > div {
    grid-column: auto !important;
    width: 100%;
    max-width: none;
    padding: 0;
}

.cc-order-history-core .hikashop_search_block {
    display: flex;
    gap: 0.55rem;
}

.cc-order-history-core #hikashop_search,
.cc-order-history-core select {
    min-height: 2.9rem;
    color: #443849;
    background: #fbfafc;
    border: 1px solid #dcd2e1;
    border-radius: 0.75rem;
    box-shadow: none;
}

.cc-order-history-core #hikashop_search {
    flex: 1 1 auto;
    min-width: 0;
}

.cc-order-history-core .hikashop_search_block button,
.cc-order-history-core .hikashop_search_block .hikabtn {
    min-width: 3rem;
    min-height: 2.9rem;
    color: #ffffff;
    background: #65318a;
    border: 0;
    border-radius: 0.75rem;
}

.cc-order-history-core .hikashop_order_sort {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    font-size: 0;
}

.cc-order-history-core .hikashop_order_sort br {
    display: none;
}

.cc-order-history-core .hikashop_order_sort select {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    font-size: 0.86rem;
}

.cc-order-history-core .hikashop_orders_content {
    display: grid;
    gap: 1rem;
}

.cc-order-history-core .hk-card-order {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e6dfe9;
    border-radius: 1.15rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.065);
}

.cc-order-history-core .hk-card-header {
    padding: 0;
    background: linear-gradient(100deg, #faf8fb, #f5f0f8);
    border-bottom: 1px solid #e9e1ec;
}

.cc-order-history-core .hk-card-header > a {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 0.95rem 1.15rem;
    color: #584b5e;
    text-decoration: none;
}

.cc-order-history-core .hk-card-header > a > div {
    grid-column: auto !important;
    width: auto;
    max-width: none;
    padding: 0;
}

.cc-order-history-core .hika_cpanel_price {
    color: #592b73;
    font-size: 1.08rem;
    font-weight: 850;
    text-align: right;
}

.cc-order-history-core .hk-card-body {
    padding: 1.1rem 1.15rem;
}

.cc-order-history-core .hk-card-body > .hk-row-fluid {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(10rem, 0.8fr) minmax(8rem, 0.65fr) auto auto;
    gap: 0.9rem;
    align-items: center;
    margin: 0;
}

.cc-order-history-core .hk-card-body > .hk-row-fluid > div {
    grid-column: auto !important;
    width: auto;
    max-width: none;
    padding: 0;
}

.cc-order-history-core .hika_order_number {
    color: #452552;
    font-weight: 800;
    text-decoration: none;
}

.cc-order-history-core .hika_order_shipping_address_title,
.cc-order-history-core .hika_order_number_title,
.cc-order-history-core .hika_invoice_number_title {
    color: #95899a;
    font-size: 0.7rem;
    font-weight: 700;
}

.cc-order-history-core .hika_order_action .hikabtn,
.cc-order-history-core .hika_order_more .hikabtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.55rem;
    color: #65318a;
    background: #f3edf6;
    border: 1px solid #e2d7e6;
    border-radius: 0.7rem;
}

.cc-order-history-core .hika_order_more .hikabtn {
    width: 2.55rem;
}

.cc-order-history-core .hikashop_orders_footer {
    margin-top: 1rem;
}

.cc-order-history-core .hikashop_orders_footer .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

@media (max-width: 899.98px) {
    .cc-orders-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-order-card__body {
        grid-template-columns: 1fr;
    }

    .cc-order-products {
        padding: 1.15rem 0 0;
        border-top: 1px solid #eee8f0;
        border-left: 0;
    }

    .cc-order-history-core .hk-card-body > .hk-row-fluid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-order-history-core #adminForm > .hk-row-fluid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 679.98px) {
    .cc-orders-summary {
        grid-template-columns: 1fr;
    }

    .cc-order-card__footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-order-actions {
        justify-content: flex-start;
        width: 100%;
    }

    .cc-order-action--primary,
    .cc-order-action--pay {
        flex: 1 1 auto;
    }

    .cc-order-history-core #adminForm > .hk-row-fluid {
        grid-template-columns: 1fr;
    }

    .cc-order-history-core .hikashop_order_sort {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-order-history-core .hikashop_order_sort select {
        flex-basis: auto;
        width: 100%;
    }

    .cc-order-history-core .hk-card-body > .hk-row-fluid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .cc-orders-hero,
    .cc-order-history-hero {
        padding: 1.75rem;
        border-radius: 1.25rem;
    }

    .cc-orders-hero h1,
    .cc-order-history-hero h1 {
        font-size: 2.35rem;
    }

    .cc-orders-history-link {
        justify-content: space-between;
        width: 100%;
    }

    .cc-order-card__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-order-card__body,
    .cc-order-card__footer {
        padding: 1rem;
    }

    .cc-order-card__meta {
        grid-template-columns: 1fr;
    }

    .cc-order-products li {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.2rem;
    }

    .cc-order-history-core .hk-card-header > a {
        align-items: start;
        grid-template-columns: 1fr;
    }

    .cc-order-history-core .hika_cpanel_price {
        text-align: left;
    }
}

/* =========================================================
   Private resources and download cards
   ========================================================= */

.cc-account-intro {
    position: relative;
    isolation: isolate;
    display: grid;
    width: 100%;
    min-height: 12rem;
    align-content: center;
    padding: clamp(1.6rem, 4vw, 2.8rem);
    overflow: hidden;
    color: #403846;
    background: radial-gradient(circle at 91% 15%, rgba(255, 255, 255, 0.2), transparent 24%),
    linear-gradient(125deg, #43205f, #65318a 62%, #81509a);
    border-radius: 1.25rem;
    box-shadow: 0 1rem 2.8rem rgba(58, 28, 75, 0.14);
}

.cc-account-intro::after {
    position: absolute;
    z-index: -1;
    right: -4rem;
    bottom: -8rem;
    width: 18rem;
    height: 18rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    box-shadow: 0 0 0 3rem rgba(255, 255, 255, 0.035), 0 0 0 5.5rem rgba(255, 255, 255, 0.02);
}

.cc-account-intro h1,
.cc-account-intro h2 {
    margin: 0 0 0.5rem;
    color: #ffffff;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
}

.cc-account-intro p {
    max-width: 44rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    line-height: 1.55;
}

.cc-account-intro__summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1.25rem;
}

.cc-account-intro__summary > span {
    display: inline-flex;
    gap: 0.28rem;
    align-items: baseline;
    padding: 0.42rem 0.68rem;
    color: rgba(255, 255, 255, 0.74);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    font-size: 0.69rem;
    font-weight: 700;
    backdrop-filter: blur(8px);
}

.cc-account-intro__summary strong {
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
}

.cc-module-row:has(.dwnl-mod) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    align-items: stretch;
}

.cc-module-row .dwnl-mod {
    display: flex;
    align-items: center;
    min-height: 7rem;
    padding: 1.25rem;
    color: #5a2c83;
    background: #ffffff;
    border: 1px solid #e2d9e7;
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.5rem rgba(54, 33, 65, 0.08);
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.cc-module-row .dwnl-mod:hover,
.cc-module-row .dwnl-mod:focus-within {
    border-color: #7a4b9b;
    box-shadow: 0 0.9rem 2rem rgba(54, 33, 65, 0.14);
    transform: translateY(-2px);
}

.cc-module-row .dwnl-title,
.cc-module-row .dwnl-title-donate {
    width: 100%;
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.35;
}

.cc-module-row .dwnl-title a,
.cc-module-row .dwnl-title-donate a {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    color: inherit !important;
    text-decoration: none !important;
}

.cc-module-row .dwnl-title a::after,
.cc-module-row .dwnl-title-donate a::after {
    flex: 0 0 auto;
    content: "→";
}

/* Logical groups for accounts that combine several event roles. */

.cc-module-row.cc-resource-row {
    display: block;
}

.cc-resource-row > .cc-resource-module[data-cc-resource-group="intro"] {
    margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.cc-resource-row > .cc-resource-module[data-cc-resource-group="intro"] .cc-space-navigation {
    margin-bottom: 0.8rem;
}

.cc-resource-directory {
    display: grid;
    gap: clamp(1.4rem, 3vw, 2rem);
}

.cc-resource-group {
    --cc-resource-accent: #65318a;
    min-width: 0;
    padding: clamp(1rem, 2.5vw, 1.45rem);
    background: #fbfafc;
    border: 1px solid #e8e1eb;
    border-radius: 1.15rem;
}

.cc-resource-group[data-resource-group="ndc"] {
    --cc-resource-accent: #8b3f82;
}

.cc-resource-group[data-resource-group="sete"] {
    --cc-resource-accent: #278e86;
}

.cc-resource-group[data-resource-group="training"] {
    --cc-resource-accent: #c35f3f;
}

.cc-resource-group[data-resource-group="weekends"] {
    --cc-resource-accent: #b44c68;
}

.cc-resource-group[data-resource-group="association"] {
    --cc-resource-accent: #5368a5;
}

.cc-resource-group[data-resource-group="choirs"] {
    --cc-resource-accent: #88752c;
}

.cc-resource-group__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.8rem;
    align-items: center;
    margin-bottom: 1.15rem;
    padding: 0 0.15rem 1rem;
    border-bottom: 1px solid color-mix(in srgb, var(--cc-resource-accent) 12%, #e9e3ec);
}

.cc-resource-group__icon {
    display: inline-grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    color: var(--cc-resource-accent);
    background: color-mix(in srgb, var(--cc-resource-accent) 9%, #ffffff);
    border: 1px solid color-mix(in srgb, var(--cc-resource-accent) 18%, #ffffff);
    border-radius: 0.75rem;
    font-size: 0.88rem;
}

.cc-resource-group__copy {
    min-width: 0;
}

.cc-resource-group__copy h3 {
    margin: 0;
    color: #4f2864;
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-weight: 850;
    letter-spacing: -0.015em;
    line-height: 1.2;
}

.cc-resource-group__copy p {
    margin: 0.18rem 0 0;
    color: #817586;
    font-size: 0.73rem;
    line-height: 1.4;
}

.cc-resource-group__count {
    padding: 0.32rem 0.58rem;
    color: var(--cc-resource-accent);
    background: color-mix(in srgb, var(--cc-resource-accent) 8%, #ffffff);
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 850;
    white-space: nowrap;
}

.cc-resource-group__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
    gap: 1rem;
}

.cc-resource-group__grid > .cc-resource-module {
    min-width: 0;
}

.cc-resource-group__grid .dwnl-mod {
    height: 100%;
    min-height: 6.6rem;
    border-top: 3px solid color-mix(in srgb, var(--cc-resource-accent) 54%, #ffffff);
    box-shadow: 0 0.45rem 1.2rem rgba(54, 33, 65, 0.055);
}

.cc-resource-empty {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: clamp(1.2rem, 3vw, 1.7rem);
    color: #716675;
    background: #fbfafc;
    border: 1px solid #e8e1eb;
    border-radius: 1rem;
}

.cc-resource-empty > span {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 2.8rem;
    color: #65318a;
    background: #f1eaf5;
    border-radius: 0.8rem;
    place-items: center;
}

.cc-resource-empty h3 {
    margin: 0;
    color: #4f2864;
    font-size: 1rem;
}

.cc-resource-empty p {
    margin: 0.2rem 0 0;
    font-size: 0.78rem;
}

@media (max-width: 575.98px) {
    .cc-resource-group__header {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .cc-resource-group__count {
        display: none;
    }

    .cc-resource-group__grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Migrated module positions
   ========================================================= */

/* T3 header-login modules now use Cassiopeia's native topbar. */
.container-header .container-topbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    width: 100%;
    padding: 0.5rem 2rem;
}

.container-header .container-topbar a {
    color: #666666;
}

/* Compact reusable rows replacing the many T3 spotlight positions. */
.cc-module-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: clamp(1rem, 2.5vw, 2rem);
    width: 100%;
    margin-block: 0 2rem;
}

.cc-module-row > *,
.container-footer .grid-child > * {
    min-width: 0;
}

.cc-module-row > .no-card {
    margin: 0;
    padding: 0;
}

.cc-module-row img {
    max-width: 100%;
    height: auto;
}

/* =========================================================
   Compact modern footer
   ========================================================= */
.container-footer {
    --cc-footer-blue: #43bbcf;
    --cc-footer-ink: #202020;
    --cc-footer-muted: #606060;
    --cc-footer-wash: #f1f9fa;
    --cc-footer-line: #d5e8ec;
    margin-top: clamp(3rem, 7vw, 6rem);
    padding: 0;
    color: var(--cc-footer-ink);
    background: linear-gradient(135deg, #fff 0%, var(--cc-footer-wash) 100%);
    border-top: 1px solid var(--cc-footer-line);
    box-shadow: 0 -0.75rem 2.5rem rgb(0 0 0 / 4%);
}

.container-footer .grid-child {
    display: grid;
    grid-template-columns: 1.35fr 1.05fr 0.9fr 1.3fr;
    align-items: start;
    gap: clamp(1.5rem, 3vw, 2.75rem);
    width: 100%;
    max-width: 72rem;
    margin-inline: auto;
    padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2rem);
}

.container-footer .cc-footer-section {
    font-size: 0.92rem;
    line-height: 1.55;
}

.container-footer .cc-footer-title {
    margin: 0 0 0.85rem;
    color: var(--cc-footer-ink);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.container-footer .cc-footer-link-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.6vw, 1.25rem);
}

.container-footer .cc-footer-subtitle {
    margin: 0 0 0.55rem;
    color: var(--cc-footer-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    line-height: 1.2;
    text-transform: uppercase;
}

.container-footer .cc-footer-links {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.container-footer .cc-footer-links a,
.container-footer .cc-footer-contact-links a {
    color: var(--cc-footer-ink);
    font-weight: 550;
    text-decoration: none;
    transition: color 0.18s ease;
}

.container-footer .cc-footer-links a:hover,
.container-footer .cc-footer-links a:focus-visible,
.container-footer .cc-footer-contact-links a:hover,
.container-footer .cc-footer-contact-links a:focus-visible {
    color: var(--cc-footer-ink);
    text-decoration: underline;
    text-decoration-color: var(--cc-footer-blue);
    text-underline-offset: 0.2em;
}

.container-footer .cc-footer-legal-link {
    margin: 0;
    padding: 0;
    border: 0;
}

.container-footer .cc-footer-legal-link a {
    color: var(--cc-footer-muted);
    font-size: 0.82rem;
    font-weight: 650;
}

.container-footer .cc-footer-contact-links {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.container-footer .cc-footer-contact-links a {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
}

.container-footer .cc-footer-contact-links .fa {
    width: 1rem;
    color: var(--cc-footer-ink);
    text-align: center;
}

.container-footer address {
    margin: 0.9rem 0 0;
    color: var(--cc-footer-muted);
    font-style: normal;
}

.container-footer .cc-footer-social p,
.container-footer .cc-footer-newsletter-copy p {
    margin: 0;
    color: var(--cc-footer-muted);
}

.container-footer .cc-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0.9rem 0 0;
    padding: 0;
    list-style: none;
}

.container-footer .cc-social-links li {
    margin: 0;
}

.container-footer .cc-social-links a {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    color: var(--cc-footer-ink);
    background: #ffffff;
    border: 1px solid var(--cc-footer-line);
    border-radius: 50%;
    box-shadow: 0 0.45rem 1.15rem rgb(0 0 0 / 5%);
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    transition: color 0.18s ease, background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.container-footer .cc-social-links a:hover,
.container-footer .cc-social-links a:focus-visible {
    color: var(--cc-footer-ink);
    background: var(--cc-footer-blue);
    border-color: var(--cc-footer-blue);
    box-shadow: 0 0.65rem 1.4rem rgb(0 0 0 / 9%);
    outline: none;
    text-decoration: none;
    transform: translateY(-2px);
}

.container-footer .cc-social-links a:focus-visible {
    box-shadow: 0 0 0 0.2rem rgb(67 187 207 / 22%), 0 0.65rem 1.4rem rgb(0 0 0 / 9%);
}

.cc-footer-newsletter {
    min-width: 0;
}

.container-footer .cc-footer-donation {
    margin: 0 0 1rem;
    padding: 0 0 1rem;
    border-bottom: 1px solid var(--cc-footer-line);
}

.container-footer .grid-child > #mod-custom292 .cc-footer-donation {
    margin: 0;
    padding: 0;
    border-bottom: 0;
}

.container-footer .cc-footer-donation p {
    margin: 0.35rem 0 0.65rem;
    color: var(--cc-footer-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

:is(.container-footer .grid-child, .cc-thanks-donation) .cc-footer-donation__link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.25rem;
    padding: 0.48rem 0.72rem;
    color: var(--cc-footer-ink);
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    background: #e5f5f8;
    border: 1px solid #b8dfe7;
    border-radius: 999px;
    transition: transform 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

:is(.container-footer .grid-child, .cc-thanks-donation) .cc-footer-donation__link:hover,
:is(.container-footer .grid-child, .cc-thanks-donation) .cc-footer-donation__link:focus-visible {
    color: var(--cc-footer-ink);
    background: var(--cc-footer-blue);
    box-shadow: 0 0.4rem 0.9rem rgb(0 0 0 / 8%);
    transform: translateY(-1px);
}

:is(.container-footer .grid-child, .cc-thanks-donation) .cc-footer-donation__link:focus-visible {
    outline: 2px solid var(--cc-footer-ink);
    outline-offset: 3px;
}

.cc-footer-newsletter > * + * {
    margin-top: 0.75rem;
}

.cc-footer-newsletter #mod-custom603 .cc-footer-newsletter-copy {
    margin-top: 1.25rem;
}

.cc-footer-newsletter .acym_module_form {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
    gap: 0.45rem;
    align-items: end;
}

.cc-footer-newsletter .acym_form,
.cc-footer-newsletter .onefield,
.cc-footer-newsletter label,
.cc-footer-newsletter .acysubbuttons {
    margin: 0 !important;
}

.cc-footer-newsletter .acym_form,
.cc-footer-newsletter .onefield,
.cc-footer-newsletter label {
    width: 100% !important;
}

.cc-footer-newsletter label {
    display: block;
}

.cc-footer-newsletter .acym__users__creation__fields__title {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--cc-footer-ink);
    font-size: 0.78rem;
    font-weight: 750;
}

.cc-footer-newsletter input[type="email"] {
    width: 100% !important;
    max-width: none;
    min-height: 2.55rem;
    padding: 0.5rem 0.7rem;
    color: var(--cc-footer-ink);
    background: #ffffff;
    border: 1px solid var(--cc-footer-line);
    border-radius: 0.65rem;
    box-shadow: none;
}

.cc-footer-newsletter input[type="email"]:focus {
    border-color: var(--cc-footer-blue);
    box-shadow: 0 0 0 0.2rem rgb(67 187 207 / 18%);
    outline: 0;
}

.cc-footer-newsletter .subbutton {
    width: 100% !important;
    min-width: 0;
    min-height: 2.55rem;
    padding: 0.5rem 0.4rem;
    color: var(--cc-footer-ink);
    background: var(--cc-footer-blue);
    border: 1px solid var(--cc-footer-blue);
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

.cc-footer-newsletter .subbutton:hover,
.cc-footer-newsletter .subbutton:focus-visible {
    color: var(--cc-footer-ink);
    background: #65c8d9;
    border-color: #65c8d9;
}

/* Keep the email/button together; the visible anti-robot check has its own row. */
.cc-footer-newsletter .acym_module_form:has(.fieldacycaptcha .cf-turnstile) .acym_form {
    display: contents;
}

.cc-footer-newsletter .acym_module_form:has(.fieldacycaptcha .cf-turnstile) .onefield:not(.fieldacycaptcha) {
    grid-column: 1;
    grid-row: 1;
}

.cc-footer-newsletter .acym_module_form:has(.fieldacycaptcha .cf-turnstile) .acysubbuttons {
    grid-column: 2;
    grid-row: 1;
}

.cc-footer-newsletter .fieldacycaptcha:has(.cf-turnstile) {
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
    margin-top: 0.4rem !important;
}

.cc-footer-newsletter .cc-newsletter-progressive .fieldacycaptcha[hidden] {
    display: none !important;
}

.cc-footer-newsletter .fieldacycaptcha .cf-turnstile {
    width: 100%;
}

/* Flexible Turnstile needs 300px; reserve that space, never squash its UI. */
@media (min-width: 992px) {
    .container-footer .grid-child:has(.cc-footer-newsletter .cf-turnstile) {
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 1.05fr) minmax(0, 0.9fr) minmax(300px, 1.3fr);
    }
}

@media (max-width: 363.98px) {
    .container-footer .grid-child:has(.cc-footer-newsletter .cf-turnstile) {
        padding-inline: max(0px, calc((100vw - 300px) / 2));
    }
}

.container-footer .grid-child > #mod-custom678 {
    grid-column: 1 / -1;
    order: 100;
    margin-top: 0.2rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--cc-footer-line);
}

.container-footer .cc-footer-copyright p {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem 0.5rem;
    margin: 0;
    color: var(--cc-footer-muted);
    font-size: 0.72rem;
    line-height: 1.5;
    text-align: center;
}

.container-footer .cc-footer-copyright a {
    color: var(--cc-footer-ink);
    font-weight: 700;
    text-decoration: none;
}

.container-footer .cc-footer-copyright a:hover,
.container-footer .cc-footer-copyright a:focus-visible {
    color: var(--cc-footer-ink);
    background: transparent;
    text-decoration: underline;
    text-decoration-color: var(--cc-footer-blue);
    text-underline-offset: 0.2em;
}

.container-footer .cc-footer-newsletter .subbutton:focus-visible {
    outline: 2px solid var(--cc-footer-ink);
    outline-offset: 3px;
    box-shadow: none;
}

@media (max-width: 991.98px) {
    .container-footer .grid-child {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .container-header .container-topbar {
        justify-content: center;
        padding-inline: 1rem;
    }

    .cc-module-row,
    .container-footer .grid-child {
        grid-template-columns: 1fr;
    }

    .container-footer .grid-child {
        gap: 1.75rem;
    }

    .cc-footer-newsletter .acym_module_form {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

/* =========================================================
   Actus — editorial homepage
   ========================================================= */
.cc-home-news .container-component > .mod-breadcrumbs__wrapper {
    display: none;
}

.cc-home-news .container-component {
    align-self: start;
}

.cc-home-news .com-content-category-blog {
    min-width: 0;
}

.cc-home-news .com-content-category-blog > .page-header {
    max-width: 48rem;
    margin: 0 0 0.65rem;
    padding: 0;
    border: 0;
}

.cc-home-news .com-content-category-blog > .page-header h1 {
    margin: 0;
    color: #5a2c83;
    font-size: clamp(2.35rem, 6vw, 4.75rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 0.95;
}

.cc-home-news .com-content-category-blog > .page-header h1::before {
    display: block;
    margin-bottom: 0.7rem;
    color: #7a4b9b;
    content: "Chanson Contemporaine";
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-home-news .com-content-category-blog > .category-desc {
    max-width: 46rem;
    margin: 0 0 clamp(1.75rem, 4vw, 2.75rem);
    color: #625769;
    font-size: clamp(1rem, 1.8vw, 1.15rem);
    line-height: 1.65;
}

.cc-home-news .com-content-category-blog > .category-desc p {
    margin: 0;
}

.cc-home-news .blog-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.25rem, 3vw, 2rem);
}

.cc-home-news .blog-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.2rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.075);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-home-news .blog-item:hover,
.cc-home-news .blog-item:focus-within {
    border-color: #cdbed5;
    box-shadow: 0 1rem 2.4rem rgba(54, 33, 65, 0.13);
    transform: translateY(-3px);
}

.cc-home-news .cc-news-page--first .blog-item:first-child {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.85fr);
    grid-column: 1 / -1;
    background: linear-gradient(135deg, #ffffff 0%, #faf7fc 100%);
}

.cc-home-news .blog-item .item-image {
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    margin: 0;
    overflow: hidden;
    float: none;
    background: #f7f5f8;
    border: 0;
}

.cc-home-news .blog-item .item-image img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    object-fit: cover;
    object-position: center;
    transition: transform 0.35s ease;
}

.cc-home-news .cc-news-page--first .blog-item:first-child .item-image {
    height: 100%;
    aspect-ratio: auto;
    min-height: 24rem;
}

.cc-home-news .cc-news-page--first .blog-item:first-child .item-image img {
    padding: 0;
    object-fit: cover;
}

.cc-home-news .blog-item:hover .item-image img,
.cc-home-news .blog-item:focus-within .item-image img {
    transform: scale(1.025);
}

.cc-home-news .blog-item .item-content {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    padding: clamp(1.15rem, 2.5vw, 1.5rem);
}

.cc-home-news .cc-news-page--first .blog-item:first-child .item-content {
    justify-content: center;
    padding: clamp(1.6rem, 4vw, 2.6rem);
}

.cc-home-news .blog-item .page-header {
    margin: 0;
    padding: 0;
    border: 0;
}

.cc-home-news .blog-item .page-header h2 {
    margin: 0 0 0.75rem;
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.cc-home-news .cc-news-page--first .blog-item:first-child .page-header h2 {
    font-size: clamp(1.75rem, 3.4vw, 2.65rem);
}

.cc-home-news .blog-item .page-header a {
    color: #5a2c83;
    text-decoration: none;
}

.cc-home-news .blog-item .page-header a:hover,
.cc-home-news .blog-item .page-header a:focus-visible {
    color: #442063;
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.14em;
}

.cc-home-news .blog-item .item-content > p:not(.readmore) {
    display: -webkit-box;
    margin: 0 0 1rem;
    overflow: hidden;
    color: #514758;
    line-height: 1.62;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.cc-home-news .blog-item:not(:first-child) .item-content > p:not(.readmore) {
    -webkit-line-clamp: 3;
}

.cc-home-news .blog-item .item-content > p strong {
    font-weight: 650;
}

.cc-home-news .blog-item .article-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    align-items: center;
    margin: 0 0 1rem;
    color: #756a7a !important;
    font-size: 0.78rem;
    line-height: 1.35;
}

.cc-home-news .blog-item .article-info-term {
    display: none;
}

.cc-home-news .blog-item .article-info dd {
    margin: 0;
}

.cc-home-news .blog-item .article-info .category-name {
    padding: 0.25rem 0.55rem;
    color: #5a2c83;
    background: #f3edf6;
    border-radius: 999px;
    font-weight: 700;
}

.cc-home-news .blog-item .article-info a {
    color: inherit;
    text-decoration: none;
}

.cc-home-news .blog-item .readmore {
    margin: auto 0 0;
    padding: 0;
}

.cc-home-news .blog-item .readmore .btn {
    display: inline-flex;
    flex-direction: row-reverse;
    gap: 0.55rem;
    align-items: center;
    min-height: 2.65rem;
    padding: 0.55rem 0.9rem;
    color: #ffffff;
    background: #5a2c83;
    border: 1px solid #5a2c83;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
}

.cc-home-news .blog-item .readmore .btn:hover,
.cc-home-news .blog-item .readmore .btn:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
}

.cc-home-news .com-content-category-blog__navigation {
    margin-top: clamp(2rem, 5vw, 3.5rem);
}

.cc-home-news .com-content-category-blog__counter {
    float: none !important;
    margin: 0 0 0.8rem;
    padding: 0 !important;
    color: #756a7a;
    font-size: 0.82rem;
}

.cc-home-news .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.cc-home-news .pagination .page-link {
    display: grid;
    min-width: 2.35rem;
    min-height: 2.35rem;
    padding: 0.35rem;
    place-items: center;
    color: #5a2c83;
    background: #ffffff;
    border: 1px solid #ded3e4;
    border-radius: 0.65rem !important;
    font-weight: 700;
    text-decoration: none;
}

.cc-home-news .pagination .active .page-link,
.cc-home-news .pagination .page-link:hover,
.cc-home-news .pagination .page-link:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-home-news .pagination .disabled .page-link {
    color: #aaa1ae;
    background: #f6f3f7;
}

.cc-home-news .sidebar-right.card {
    position: sticky;
    top: 1rem;
    overflow: hidden;
    background: #faf7fc;
    border: 1px solid #e3dae7;
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.5rem rgba(54, 33, 65, 0.06);
}

.cc-home-news .sidebar-right .card-body {
    padding: 0.75rem;
}

.cc-home-news .sidebar-right .form-control {
    min-height: 2.7rem;
    color: #403846;
    background: #ffffff;
    border: 1px solid #d9cede;
    border-radius: 999px;
    box-shadow: none;
}

.cc-home-news .sidebar-right .form-control:focus {
    border-color: #7a4b9b;
    box-shadow: 0 0 0 0.2rem rgba(90, 44, 131, 0.12);
}

@media (max-width: 991.98px) {
    .cc-home-news .blog-items {
        grid-template-columns: 1fr;
    }

    .cc-home-news .cc-news-page--first .blog-item:first-child {
        display: flex;
        grid-column: auto;
    }

    .cc-home-news .cc-news-page--first .blog-item:first-child .item-image {
        height: clamp(15rem, 48vw, 24rem);
        min-height: 0;
    }

    .cc-home-news .sidebar-right.card {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .cc-home-news .com-content-category-blog > .page-header h1 {
        font-size: clamp(2.25rem, 15vw, 3.5rem);
    }

    .cc-home-news .blog-item,
    .cc-home-news .sidebar-right.card {
        border-radius: 0.9rem;
    }

    .cc-home-news .blog-item .item-image {
        height: 11rem;
    }

    .cc-home-news .pagination .page-item:nth-child(n+8):nth-last-child(n+3) {
        display: none;
    }
}

/* Recent Actus articles — simple editor-facing content system.
   Managers only need the cc-news-* classes used in the article HTML. */
.cc-home-news .blog-item .cc-news-teaser {
    margin: 0 0 1rem;
}

.cc-home-news .blog-item .cc-news-teaser > * {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #514758;
    line-height: 1.62;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.cc-home-news .blog-item:not(:first-child) .cc-news-teaser > * {
    -webkit-line-clamp: 3;
}

.cc-home-news .blog-item .cc-news-teaser strong {
    font-weight: 650;
}

.cc-home-news .com-content-article:has(.cc-news-body) {
    width: min(100%, 76rem);
    margin-inline: auto;
    padding-bottom: clamp(2.5rem, 6vw, 5rem);
}

.cc-home-news .com-content-article:has(.cc-news-body) > .page-header {
    max-width: 60rem;
    margin: clamp(0.5rem, 2vw, 1.25rem) auto 1rem;
    padding: 0;
    border: 0;
}

.cc-home-news .com-content-article:has(.cc-news-body) > .page-header h1,
.cc-home-news .com-content-article:has(.cc-news-body) > .page-header h2 {
    margin: 0;
    color: #4a245f;
    font-size: clamp(2rem, 5vw, 3.8rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1.02;
}

.cc-home-news .com-content-article:has(.cc-news-body) > .article-info {
    max-width: 60rem;
    margin: 0 auto clamp(1.25rem, 3vw, 2rem);
    color: #766b7c;
    font-size: 0.82rem;
}

.cc-home-news .com-content-article:has(.cc-news-body) > .item-image {
    width: min(100%, 68rem);
    margin: 0 auto clamp(1.25rem, 3vw, 2rem);
    overflow: hidden;
    float: none;
    background: #f4eff6;
    border: 1px solid #e4dae8;
    border-radius: 1.2rem;
}

.cc-home-news .com-content-article:has(.cc-news-body) > .item-image img {
    display: block;
    width: 100%;
    max-height: 34rem;
    object-fit: cover;
}

.cc-home-news .com-content-article:has(.cc-news-body) > .cc-news-teaser {
    max-width: 58rem;
    margin: 0 auto clamp(2rem, 5vw, 3.5rem);
    padding: clamp(1.15rem, 3vw, 1.75rem) clamp(1.2rem, 3.5vw, 2rem);
    color: #4d4152;
    background: linear-gradient(135deg, #f8f4fa 0%, #ffffff 100%);
    border: 1px solid #e4d9e9;
    border-left: 0.32rem solid #69b7a5;
    border-radius: 0.95rem;
    box-shadow: 0 0.65rem 1.7rem rgba(54, 33, 65, 0.055);
    font-size: clamp(1.02rem, 1.8vw, 1.18rem);
    font-weight: 580;
    line-height: 1.7;
}

.cc-home-news .com-content-article:has(.cc-news-body) > .cc-news-teaser > :last-child {
    margin-bottom: 0;
}

.cc-news-body {
    display: grid;
    gap: clamp(1rem, 2.5vw, 1.5rem);
    width: 100%;
    min-width: 0;
    color: #514758;
    font-size: clamp(1rem, 1.35vw, 1.075rem);
    line-height: 1.75;
}

.cc-news-body > * {
    width: min(100%, 58rem);
    min-width: 0;
    max-width: 100%;
    margin-inline: auto;
}

.cc-news-body p,
.cc-news-body li,
.cc-news-body a:not(.cc-news-button) {
    overflow-wrap: anywhere;
}

.cc-news-body p,
.cc-news-body ul,
.cc-news-body ol,
.cc-news-body blockquote {
    margin-top: 0;
    margin-bottom: 1rem;
}

.cc-news-body strong {
    color: #443849;
    font-weight: 750;
}

.cc-news-body a:not(.cc-news-button) {
    color: #5a2c83;
    font-weight: 650;
    text-decoration-color: #bca7c7;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.cc-news-body a:not(.cc-news-button):hover,
.cc-news-body a:not(.cc-news-button):focus-visible {
    color: #3f1e55;
    text-decoration-color: currentColor;
}

.cc-news-section {
    padding: clamp(1.25rem, 3vw, 2rem);
    background: #ffffff;
    border: 1px solid #e5dce9;
    border-radius: 1.05rem;
    box-shadow: 0 0.7rem 1.9rem rgba(54, 33, 65, 0.055);
}

.cc-news-section > :last-child {
    margin-bottom: 0;
}

.cc-news-heading,
.cc-news-body h2,
.cc-news-body h3 {
    color: #5a2c83;
    font-weight: 820;
    letter-spacing: -0.025em;
    line-height: 1.16;
}

.cc-news-body h2 {
    margin: 0 0 clamp(1rem, 2.5vw, 1.45rem);
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #e6ddea;
    font-size: clamp(1.45rem, 3vw, 2rem);
}

.cc-news-body h3 {
    margin: 1.4rem 0 0.65rem;
    font-size: clamp(1.1rem, 2vw, 1.3rem);
}

.cc-news-media,
.cc-news-gallery,
.cc-news-video {
    width: min(100%, 68rem) !important;
    margin: clamp(1.25rem, 3vw, 2rem) auto !important;
}

.cc-news-media {
    overflow: hidden;
    background: #f4eff6;
    border: 1px solid #e2d7e7;
    border-radius: 1rem;
    box-shadow: 0 0.7rem 1.9rem rgba(54, 33, 65, 0.07);
}

.cc-news-media:has(> a) > a {
    display: block;
}

.cc-news-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    object-fit: cover;
}

.cc-news-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.8rem, 2vw, 1.2rem);
}

.cc-news-gallery > .cc-news-media,
.cc-news-gallery > img,
.cc-news-gallery > a {
    width: 100% !important;
    height: 100%;
    margin: 0 !important;
}

.cc-news-gallery .cc-news-image {
    height: 100%;
    min-height: 15rem;
    object-fit: cover;
}

.cc-news-video {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #291735;
    border-radius: 1rem;
    box-shadow: 0 0.9rem 2.25rem rgba(40, 21, 50, 0.16);
}

.cc-news-video__frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.cc-news-list {
    padding-left: 1.25rem;
}

.cc-news-list li {
    margin-bottom: 0.45rem;
    padding-left: 0.25rem;
}

.cc-news-list li::marker {
    color: #69a99b;
}

.cc-news-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin: 1.35rem 0 !important;
}

.cc-news-button {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: center;
    min-height: 2.8rem;
    padding: 0.65rem 1rem;
    border: 1px solid #d4c5dc;
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 780 !important;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.cc-news-button::after {
    content: "→";
}

.cc-news-button:hover,
.cc-news-button:focus-visible {
    transform: translateY(-1px);
}

.cc-news-button--primary {
    color: #ffffff !important;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-news-button--primary:hover,
.cc-news-button--primary:focus-visible {
    background: #3f1e55;
    border-color: #3f1e55;
}

.cc-news-button--secondary {
    color: #4b235f !important;
    background: #f5eff7;
    border-color: #d8c9df;
}

.cc-news-button--secondary:hover,
.cc-news-button--secondary:focus-visible {
    background: #ebe0f0;
    border-color: #bda8c8;
}

.cc-news-button--quiet {
    color: #526963 !important;
    background: #eef7f5;
    border-color: #c3ddd7;
}

.cc-news-button--quiet:hover,
.cc-news-button--quiet:focus-visible {
    background: #deefeb;
    border-color: #99c6bc;
}

.cc-news-notice,
.cc-news-meta {
    position: relative;
    padding: 0.9rem 1rem 0.9rem 1.15rem;
    color: #4b3b52;
    background: #f6f1f8;
    border: 1px solid #dfd2e5;
    border-left: 0.3rem solid #69b7a5;
    border-radius: 0.75rem;
    font-weight: 700;
}

.cc-news-quote {
    padding: clamp(1.2rem, 3vw, 2rem);
    color: #4b3b52;
    background: linear-gradient(135deg, #f8f3fa, #ffffff);
    border: 1px solid #e3d7e8;
    border-left: 0.35rem solid #69b7a5;
    border-radius: 0.9rem;
    font-family: var(--cc-font-family, "Sora", sans-serif);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    font-style: italic;
    line-height: 1.75;
}

.cc-news-profile {
    display: grid;
    grid-template-columns: minmax(12rem, 0.38fr) minmax(0, 0.62fr);
    column-gap: clamp(1.25rem, 3vw, 2rem);
    align-items: start;
}

.cc-news-profile > h2 {
    grid-column: 1 / -1;
}

.cc-news-profile > .cc-news-media {
    grid-column: 1;
    width: 100% !important;
    margin: 0 !important;
}

.cc-news-profile > .cc-news-media ~ * {
    grid-column: 2;
}

.cc-news-program {
    border-top: 0.28rem solid #69b7a5;
}

.cc-news-table {
    display: block;
    width: 100%;
    margin: 1.25rem 0;
    overflow-x: auto;
    border-collapse: collapse;
}

.cc-news-table th,
.cc-news-table td {
    padding: 0.7rem;
    border: 1px solid #e2d9e7;
}

@media (max-width: 767.98px) {
    .cc-home-news .com-content-article:has(.cc-news-body) > .item-image,
    .cc-news-media,
    .cc-news-video,
    .cc-news-section {
        border-radius: 0.8rem;
    }

    .cc-news-gallery,
    .cc-news-profile {
        grid-template-columns: 1fr;
    }

    .cc-news-profile > h2,
    .cc-news-profile > .cc-news-media,
    .cc-news-profile > .cc-news-media ~ * {
        grid-column: 1;
    }

    .cc-news-profile > .cc-news-media {
        margin-bottom: 1rem !important;
    }

    .cc-news-gallery .cc-news-image {
        min-height: 0;
    }

    .cc-news-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-news-button {
        width: 100%;
    }
}

/* =========================================================
   Actus v2 — distinctive homepage, quieter reusable articles
   ========================================================= */
.cc-home-news.view-category .com-content-category-blog {
    position: relative;
    isolation: isolate;
}

.cc-home-news.view-category .com-content-category-blog::before {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    left: 0;
    height: clamp(15.5rem, 27vw, 19.5rem);
    background:
        radial-gradient(circle at 84% 18%, rgba(255, 255, 255, 0.16) 0 0.45rem, transparent 0.52rem),
        radial-gradient(circle at 88% 28%, rgba(105, 183, 165, 0.42) 0 3.4rem, transparent 3.5rem),
        radial-gradient(circle at 76% 84%, rgba(255, 255, 255, 0.08) 0 7.5rem, transparent 7.6rem),
        linear-gradient(125deg, #24122f 0%, #4b2466 48%, #70428a 100%);
    border-radius: clamp(1.25rem, 3vw, 2rem);
    box-shadow: 0 1.4rem 3.6rem rgba(48, 23, 62, 0.2);
    content: "";
}

.cc-home-news.view-category .com-content-category-blog > .page-header,
.cc-home-news.view-category .com-content-category-blog > .category-desc,
.cc-home-news.view-category .com-content-category-blog > .blog-items,
.cc-home-news.view-category .com-content-category-blog > .com-content-category-blog__navigation {
    position: relative;
    z-index: 1;
}

.cc-home-news.view-category .com-content-category-blog > .page-header {
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: clamp(2.35rem, 5vw, 4rem) clamp(1.4rem, 5vw, 4.25rem) 0;
}

.cc-home-news.view-category .com-content-category-blog > .page-header h1 {
    max-width: 52rem;
    color: #ffffff;
    font-size: clamp(3.2rem, 8vw, 6rem);
    font-weight: 900;
    letter-spacing: -0.065em;
    line-height: 0.88;
    text-wrap: balance;
}

.cc-home-news.view-category .com-content-category-blog > .page-header h1::before {
    margin-bottom: 0.9rem;
    color: #a9e0d3;
    content: "Le journal de Chanson Contemporaine";
    font-size: clamp(0.68rem, 1.2vw, 0.78rem);
    letter-spacing: 0.16em;
}

.cc-home-news.view-category .com-content-category-blog > .category-desc {
    max-width: none;
    min-height: 7rem;
    margin: 0 0 clamp(2rem, 4vw, 3.25rem);
    padding: 1.25rem clamp(1.4rem, 5vw, 4.25rem) clamp(2.35rem, 5vw, 3.8rem);
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(1rem, 1.8vw, 1.18rem);
}

.cc-home-news.view-category .com-content-category-blog > .category-desc p {
    max-width: 43rem;
}

/* Compact native title search: it bridges the journal header and the cards. */
.cc-home-news.view-category .cc-news-search {
    position: relative;
    z-index: 3;
    width: min(calc(100% - 2rem), 48rem);
    margin: clamp(-4.5rem, -5vw, -3rem) auto clamp(2rem, 4vw, 3rem);
    padding: 0.48rem;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(92, 55, 110, 0.14);
    border-radius: 1.15rem;
    box-shadow: 0 1rem 2.8rem rgba(43, 22, 54, 0.16);
    backdrop-filter: blur(10px);
}

.cc-home-news.view-category .cc-news-search__form {
    display: flex;
    min-height: 3.25rem;
    align-items: center;
    gap: 0.6rem;
}

.cc-home-news.view-category .cc-news-search__icon {
    flex: 0 0 auto;
    margin-left: 0.8rem;
    color: #70428a;
    font-size: 1rem;
}

.cc-home-news.view-category .cc-news-search__input {
    min-width: 0;
    flex: 1 1 auto;
    padding: 0.72rem 0.2rem;
    color: #382c3d;
    background: transparent;
    border: 0;
    box-shadow: none;
    font: inherit;
    font-size: 0.95rem;
    outline: 0;
}

.cc-home-news.view-category .cc-news-search__input::placeholder {
    color: #827687;
    opacity: 1;
}

.cc-home-news.view-category .cc-news-search:focus-within {
    border-color: rgba(112, 66, 138, 0.52);
    box-shadow: 0 0 0 0.22rem rgba(112, 66, 138, 0.12), 0 1rem 2.8rem rgba(43, 22, 54, 0.16);
}

.cc-home-news.view-category .cc-news-search__submit {
    min-height: 2.7rem;
    flex: 0 0 auto;
    padding: 0.7rem 1.15rem;
    color: #ffffff;
    background: #5c3371;
    border: 0;
    border-radius: 0.8rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.025em;
    transition: background-color 160ms ease, transform 160ms ease;
}

.cc-home-news.view-category .cc-news-search__submit:hover,
.cc-home-news.view-category .cc-news-search__submit:focus-visible {
    color: #ffffff;
    background: #75468d;
    transform: translateY(-1px);
}

.cc-home-news.view-category .cc-news-search__active {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.15rem 0.35rem 0;
    padding: 0.7rem 0.55rem 0.45rem;
    color: #6f6374;
    border-top: 1px solid #eee8f0;
    font-size: 0.76rem;
}

.cc-home-news.view-category .cc-news-search__active a {
    color: #5c3371;
    font-weight: 800;
    text-decoration: none;
}

.cc-home-news.view-category .cc-news-search__active a:hover,
.cc-home-news.view-category .cc-news-search__active a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.cc-home-news.view-category .cc-news-search-empty {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(100%, 48rem);
    align-items: flex-start;
    gap: 1rem;
    margin: 0 auto clamp(2.5rem, 5vw, 4rem);
    padding: clamp(1.25rem, 3vw, 1.75rem);
    color: #4c4051;
    background: #faf8fb;
    border: 1px solid #e8e0eb;
    border-radius: 1.15rem;
}

.cc-home-news.view-category .cc-news-search-empty > .icon-search {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    flex: 0 0 auto;
    place-items: center;
    color: #5c3371;
    background: #eee6f2;
    border-radius: 50%;
}

.cc-home-news.view-category .cc-news-search-empty h2 {
    margin: 0 0 0.25rem;
    color: #42234f;
    font-size: 1.1rem;
}

.cc-home-news.view-category .cc-news-search-empty p {
    margin: 0 0 0.65rem;
    color: #736877;
    font-size: 0.9rem;
}

.cc-home-news.view-category .cc-news-search-empty a {
    color: #5c3371;
    font-size: 0.82rem;
    font-weight: 800;
}

@media (max-width: 575.98px) {
    .cc-home-news.view-category .cc-news-search {
        width: calc(100% - 1rem);
        margin-top: -3rem;
        padding: 0.38rem;
        border-radius: 0.95rem;
    }

    .cc-home-news.view-category .cc-news-search__form {
        min-height: 3rem;
        gap: 0.4rem;
    }

    .cc-home-news.view-category .cc-news-search__icon {
        margin-left: 0.55rem;
    }

    .cc-home-news.view-category .cc-news-search__input {
        font-size: 0.86rem;
    }

    .cc-home-news.view-category .cc-news-search__submit {
        min-height: 2.5rem;
        padding-inline: 0.8rem;
        font-size: 0.72rem;
    }

    .cc-home-news.view-category .cc-news-search__active {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }
}

.cc-home-news.view-category .blog-items {
    gap: clamp(1rem, 2.3vw, 1.45rem);
}

.cc-home-news.view-category .blog-item {
    position: relative;
    border: 1px solid #e8e2ea;
    border-radius: 1rem;
    box-shadow: 0 0.35rem 1.2rem rgba(54, 33, 65, 0.045);
}

.cc-home-news.view-category .blog-item:hover,
.cc-home-news.view-category .blog-item:focus-within {
    border-color: #d8cedd;
    box-shadow: 0 0.65rem 1.6rem rgba(54, 33, 65, 0.075);
    transform: translateY(-1px);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child {
    grid-template-columns: minmax(0, 1.25fr) minmax(20rem, 0.75fr);
    min-height: clamp(27rem, 45vw, 34rem);
    overflow: hidden;
    color: #ffffff;
    background: #271532;
    border: 0;
    border-radius: clamp(1.35rem, 3vw, 1.8rem);
    box-shadow: 0 1.35rem 3.5rem rgba(47, 21, 61, 0.25);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child::before {
    position: absolute;
    z-index: 2;
    top: 1.15rem;
    left: 1.15rem;
    padding: 0.45rem 0.72rem;
    color: #3f2251;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    box-shadow: 0 0.45rem 1.2rem rgba(25, 12, 31, 0.18);
    content: "À la une";
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .item-image {
    min-height: clamp(27rem, 45vw, 34rem);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .item-image img {
    filter: saturate(0.94) contrast(1.03);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .item-content {
    position: relative;
    justify-content: center;
    padding: clamp(2rem, 4vw, 3.25rem);
    background:
        radial-gradient(circle at 100% 0, rgba(143, 91, 165, 0.28), transparent 42%),
        linear-gradient(145deg, #321840, #24122f);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .page-header a {
    color: #ffffff;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .item-content > p:not(.readmore),
.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .cc-news-teaser > * {
    color: rgba(255, 255, 255, 0.8);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .article-info {
    color: rgba(255, 255, 255, 0.68) !important;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .article-info .category-name {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.12);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .readmore .btn {
    color: #402052;
    background: #ffffff;
    border-color: #ffffff;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .readmore .btn:hover,
.cc-home-news.view-category .cc-news-page--first .blog-item:first-child .readmore .btn:focus-visible {
    color: #ffffff;
    background: #70428a;
    border-color: #70428a;
}

/* Quieter journal tiles: full image, essential metadata and a simple link. */
.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .cc-news-teaser,
.cc-home-news.view-category .cc-news-page--archive .blog-item .cc-news-teaser {
    display: none;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .item-content,
.cc-home-news.view-category .cc-news-page--archive .blog-item .item-content {
    padding: clamp(1rem, 2vw, 1.25rem);
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .page-header h2,
.cc-home-news.view-category .cc-news-page--archive .blog-item .page-header h2 {
    margin-bottom: 0.65rem;
    font-size: clamp(1.12rem, 2vw, 1.42rem);
    line-height: 1.2;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .article-info,
.cc-home-news.view-category .cc-news-page--archive .blog-item .article-info {
    gap: 0.35rem 0.65rem;
    margin: 0 0 0.9rem;
    color: #7b707f !important;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .article-info dd,
.cc-home-news.view-category .cc-news-page--archive .blog-item .article-info dd {
    padding: 0;
    color: inherit;
    background: transparent;
    border-radius: 0;
    font-size: 0;
    font-weight: 650;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .article-info .icon-fw,
.cc-home-news.view-category .cc-news-page--archive .blog-item .article-info .icon-fw {
    display: none;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .article-info a,
.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .article-info time,
.cc-home-news.view-category .cc-news-page--archive .blog-item .article-info a,
.cc-home-news.view-category .cc-news-page--archive .blog-item .article-info time {
    color: inherit;
    font-size: 0.72rem;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .article-info dd + dd::before,
.cc-home-news.view-category .cc-news-page--archive .blog-item .article-info dd + dd::before {
    margin-right: 0.65rem;
    color: #b3a9b7;
    content: "·";
    font-size: 0.72rem;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .readmore .btn,
.cc-home-news.view-category .cc-news-page--archive .blog-item .readmore .btn {
    min-height: 0;
    padding: 0;
    color: #5a2c83;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 0.78rem;
}

.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .readmore .btn:hover,
.cc-home-news.view-category .cc-news-page--first .blog-item:not(:first-child) .readmore .btn:focus-visible,
.cc-home-news.view-category .cc-news-page--archive .blog-item .readmore .btn:hover,
.cc-home-news.view-category .cc-news-page--archive .blog-item .readmore .btn:focus-visible {
    color: #442063;
    background: transparent;
    border: 0;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

/* The standard recent article deliberately stays quiet and editor-friendly. */
.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) {
    display: flex;
    width: min(100%, 72rem);
    flex-direction: column;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .page-header:has(h1):not(.cc-news-title) {
    display: none;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .page-header:has(h2) {
    order: 1;
    max-width: 58rem;
    margin: clamp(1rem, 3vw, 2rem) auto 0.8rem;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .page-header:has(h2)::before {
    display: block;
    margin-bottom: 0.7rem;
    color: #759f96;
    content: "Le journal";
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .page-header h2 {
    color: #452258;
    font-size: clamp(2.15rem, 5.5vw, 4rem);
    line-height: 0.98;
    text-wrap: balance;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .article-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1rem;
    order: 2;
    width: min(100%, 58rem);
    max-width: none;
    margin: 0 auto clamp(1.35rem, 3vw, 2rem);
    padding-bottom: 0.9rem;
    border-bottom: 1px solid #e6ddea;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .article-info .article-info-term {
    display: none;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .article-info dd {
    margin: 0;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .com-content-article__body {
    order: 3;
}

.cc-home-news.view-article .com-content-article:has(.cc-news-body--standard) > .pagenavigation {
    order: 4;
}

.cc-news-body--standard {
    gap: clamp(1.25rem, 3vw, 2.1rem);
}

.cc-news-body--standard > .cc-news-image:first-child {
    width: min(100%, 68rem);
    max-height: 34rem;
    margin: 0 auto clamp(1rem, 3vw, 1.8rem);
    object-fit: cover;
    border: 1px solid #e2d7e7;
    border-radius: 1.2rem;
    box-shadow: 0 0.9rem 2.4rem rgba(54, 33, 65, 0.08);
}

.cc-news-body--standard .cc-news-section {
    padding: clamp(1.1rem, 2.5vw, 1.75rem) 0 clamp(1.5rem, 3vw, 2.1rem);
    background: transparent;
    border: 0;
    border-bottom: 1px solid #e7dfea;
    border-radius: 0;
    box-shadow: none;
}

.cc-news-body--standard .cc-news-section:last-child {
    border-bottom: 0;
}

.cc-news-body--standard .cc-news-section > h2:first-child {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    padding-bottom: 0;
    border-bottom: 0;
}

.cc-news-body--standard .cc-news-section > h2:first-child::before {
    width: 0.32rem;
    height: 1.35em;
    flex: 0 0 0.32rem;
    margin-top: 0.02em;
    background: #69b7a5;
    border-radius: 999px;
    content: "";
}

.cc-news-body--standard .cc-news-media {
    border: 0;
    border-radius: 0.9rem;
    box-shadow: 0 0.65rem 1.8rem rgba(54, 33, 65, 0.07);
}

@media (max-width: 991.98px) {
    .cc-home-news.view-category .cc-news-page--first .blog-item:first-child {
        min-height: 0;
    }

    .cc-home-news.view-category .cc-news-page--first .blog-item:first-child .item-image {
        min-height: 0;
    }
}

@media (max-width: 575.98px) {
    .cc-home-news.view-category .com-content-category-blog::before {
        height: 17.25rem;
        border-radius: 1.1rem;
    }

    .cc-home-news.view-category .com-content-category-blog > .page-header {
        padding-top: 2.25rem;
    }

    .cc-home-news.view-category .com-content-category-blog > .page-header h1 {
        font-size: clamp(2.65rem, 14vw, 3.25rem);
    }

    .cc-home-news.view-category .com-content-category-blog > .category-desc {
        min-height: 8.1rem;
        padding-top: 1rem;
    }

    .cc-home-news.view-category .cc-news-page--first .blog-item:first-child::before {
        top: 0.8rem;
        left: 0.8rem;
    }

    .cc-news-body--standard > .cc-news-image:first-child {
        border-radius: 0.8rem;
    }
}

/* =========================================================
   Project — institutional editorial page
   ========================================================= */
/* Registration journeys keep a clear availability message instead of an empty grid. */
.cc-gc-landing .cc-gc-landing__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}

.cc-gc-landing__grid:not(:has(> article)),
.cc-sete-landing__options:not(:has(> article)) {
    display: none;
}

.cc-gc-landing__notice {
    margin: 1.25rem 0;
    padding: 1.2rem 1.4rem;
    border: 1px solid #e8ddea;
    border-radius: 1rem;
    background: #f7f3f9;
    color: #554160;
}

.cc-gc-landing__notice p {
    margin: 0.45rem 0 0.7rem;
}

.cc-gc-landing__notice a {
    color: #65318a;
    font-weight: 750;
}

/* Native registration fields stack without the table's intrinsic minimum width. */
@media (max-width: 700px) {
    :is(.cc-bo-native-form, .cc-volunteer-native-form) .hikashop_product_custom_item_info_table,
    :is(.cc-bo-native-form, .cc-volunteer-native-form) .hikashop_product_custom_item_info_table :is(tbody, tr, td, th) {
        display: block;
        width: 100% !important;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    :is(.cc-bo-native-form, .cc-volunteer-native-form) .hikashop_product_custom_item_info_table [hidden] {
        display: none !important;
    }

    :is(.cc-bo-native-form, .cc-volunteer-native-form) .hikashop_product_custom_item_info_table :is(input, select, textarea) {
        min-width: 0;
        max-width: 100%;
    }

    :is(.cc-bo-native-form, .cc-volunteer-native-form) .hikashop_product_custom_item_info_table label {
        overflow-wrap: anywhere;
    }
}

/* Reusable journal articles, including those opened from a Grand Choral tag.
   Editorial content remains ordinary HTML with the same cc-news-* classes. */
.cc-news-article:has(.cc-news-body--standard) {
    display: flex;
    width: min(100%, 72rem);
    margin-inline: auto;
    flex-direction: column;
}

.cc-news-article:has(.cc-news-body--standard) > .cc-news-menu-heading {
    display: none;
}

.cc-news-article:has(.cc-news-body--standard) > .page-header:has(h2),
.cc-news-article:has(.cc-news-body--standard) > .cc-news-title {
    display: block;
    order: 1;
    width: min(100%, 58rem);
    max-width: 58rem;
    margin: clamp(1rem, 3vw, 2rem) auto 0.8rem;
    padding: 0;
    border: 0;
}

.cc-news-article:has(.cc-news-body--standard) > .cc-news-title::before {
    display: block;
    margin-bottom: 0.7rem;
    color: #759f96;
    content: "Le journal";
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cc-news-article:has(.cc-news-body--standard) > .cc-news-title h1,
.cc-news-article:has(.cc-news-body--standard) > .cc-news-title h2 {
    margin: 0;
    color: #452258;
    font-size: clamp(2.15rem, 5.5vw, 4rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1.05;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.cc-news-article:has(.cc-news-body--standard) > .article-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1rem;
    order: 2;
    width: min(100%, 58rem);
    max-width: none;
    margin: 0 auto clamp(1.35rem, 3vw, 2rem);
    padding-bottom: 0.9rem;
    color: #766b7c;
    border-bottom: 1px solid #e6ddea;
    font-size: 0.82rem;
}

.cc-news-article:has(.cc-news-body--standard) > .article-info .article-info-term {
    display: none;
}

.cc-news-article:has(.cc-news-body--standard) > .article-info dd {
    margin: 0;
}

.cc-news-article:has(.cc-news-body--standard) > .tags,
.cc-news-article:has(.cc-news-body--standard) > .item-image {
    order: 2;
}

.cc-news-article:has(.cc-news-body--standard) > .com-content-article__body {
    order: 3;
    min-width: 0;
}

.cc-news-article:has(.cc-news-body--standard) > .pagenavigation,
.cc-news-article:has(.cc-news-body--standard) > .cc-article-navigation {
    order: 4;
}

.cc-news-article .com-content-article__body > .cc-news-teaser:not(.cc-donation-news-teaser) {
    width: min(100%, 58rem);
    margin: 0 auto clamp(1.75rem, 4vw, 2.5rem);
    padding: 0.4rem 0 0.4rem clamp(1rem, 3vw, 1.5rem);
    color: #514758;
    border-left: 0.25rem solid #a3cbc1;
    font-size: clamp(1.05rem, 1.7vw, 1.2rem);
    line-height: 1.75;
}

.cc-news-article .cc-news-teaser > :last-child,
.cc-news-copy > :last-child {
    margin-bottom: 0;
}

/* A heading can contain several bold fragments: keep them in normal text flow. */
.cc-news-body--standard .cc-news-section > h2:first-child {
    position: relative;
    display: block;
    padding-left: 1rem;
    overflow-wrap: anywhere;
}

.cc-news-body--standard .cc-news-section > h2:first-child::before {
    position: absolute;
    top: 0.03em;
    left: 0;
    height: 1.2em;
    margin: 0;
}

.cc-news-body--standard .cc-news-media--logo {
    width: min(100%, 22rem) !important;
    padding: 1rem;
    background: #ffffff;
    box-shadow: none;
}

.cc-news-body--standard .cc-news-image--logo {
    width: auto;
    max-width: 100%;
    max-height: 10rem;
    object-fit: contain;
}

.cc-news-body--standard .cc-news-media--portrait {
    width: min(100%, 28rem) !important;
    background: #ffffff;
}

.cc-news-body--standard .cc-news-gallery--logos {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
    align-items: center;
}

.cc-news-body--standard .cc-news-gallery--logos .cc-news-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 7rem;
}

.cc-news-body--standard .cc-news-gallery .cc-news-image {
    height: auto;
    min-height: 0;
    object-fit: contain;
}

.cc-news-audio {
    width: min(100%, 58rem);
    overflow: hidden;
    border: 1px solid #e5dce9;
    border-radius: 0.9rem;
    background: #ffffff;
}

.cc-news-audio__frame {
    display: block;
    width: 100%;
    height: 166px;
    border: 0;
}

@media (max-width: 575.98px) {
    .cc-news-article .cc-news-actions {
        align-items: stretch;
    }

    .cc-news-article .cc-news-button {
        white-space: normal;
    }
}

.cc-project-page .container-component > .mod-breadcrumbs__wrapper,
.cc-project-page .container-component > main {
    display: none;
}

.cc-project-page .container-component {
    align-self: start;
    padding-top: clamp(2rem, 5vw, 4rem);
}

.cc-project-page .cc-module-row {
    max-width: 74rem;
    margin-inline: auto;
}

.cc-project-page [data-position="cc-main-top-01"] {
    display: block;
    margin-bottom: clamp(3rem, 7vw, 6rem);
}

.cc-project-page .cc-project-hero {
    overflow: visible;
}

.cc-project-page .cc-project-hero__media {
    height: clamp(22rem, 42vw, 32rem);
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.5rem rgba(54, 33, 65, 0.12);
}

.cc-project-page .cc-project-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 42%;
}

.cc-project-page .cc-project-hero__content {
    position: relative;
    width: calc(100% - clamp(2rem, 8vw, 7rem));
    max-width: 66rem;
    margin: clamp(-5rem, -6vw, -3.5rem) auto 0;
    padding: clamp(1.7rem, 4vw, 3.25rem);
    color: #403846;
    background: linear-gradient(135deg, #ffffff 0%, #faf7fc 100%);
    border: 1px solid #e3dae7;
    border-radius: 1.2rem;
    box-shadow: 0 1rem 2.5rem rgba(54, 33, 65, 0.1);
}

.cc-project-page .cc-project-eyebrow {
    margin: 0 0 0.7rem;
    color: #7a4b9b;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-project-page .cc-project-hero h1 {
    max-width: 48rem;
    margin: 0 0 1.25rem;
    color: #5a2c83;
    font-size: clamp(2.35rem, 6vw, 4.8rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.cc-project-page .cc-project-hero__content > p:not(.cc-project-eyebrow) {
    max-width: 62rem;
    margin: 0.65rem 0 0;
    color: #514758;
    font-size: clamp(0.98rem, 1.7vw, 1.08rem);
    line-height: 1.68;
}

.cc-project-page [data-position="cc-main-top-02"],
.cc-project-page [data-position="cc-main-top-03"],
.cc-project-page [data-position="cc-main-top-04"] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    max-width: 68rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.2rem;
    box-shadow: 0 0.85rem 2.2rem rgba(54, 33, 65, 0.08);
}

.cc-project-page [data-position="cc-main-top-02"] > *,
.cc-project-page [data-position="cc-main-top-03"] > *,
.cc-project-page [data-position="cc-main-top-04"] > * {
    min-width: 0;
}

.cc-project-page .cc-project-copy {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.7rem, 4vw, 3.25rem);
}

.cc-project-page .cc-project-copy h2,
.cc-project-page .cc-project-section-heading h2 {
    margin: 0 0 1rem;
    color: #5a2c83;
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 820;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.cc-project-page .cc-project-copy > p:not(.cc-project-eyebrow) {
    margin: 0;
    color: #514758;
    line-height: 1.68;
}

.cc-project-page .cc-project-copy a:not(.cc-project-cta) {
    color: #5a2c83;
    font-weight: 750;
    text-decoration-color: #cdbed5;
    text-underline-offset: 0.18em;
}

.cc-project-page .cc-project-photo {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 26rem;
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-project-page .cc-project-photo img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.45s ease;
}

.cc-project-page [data-position="cc-main-top-02"]:hover .cc-project-photo img,
.cc-project-page [data-position="cc-main-top-03"]:hover .cc-project-photo img,
.cc-project-page [data-position="cc-main-top-04"]:hover .cc-project-photo img {
    transform: scale(1.025);
}

.cc-project-page .cc-project-cta {
    display: inline-flex;
    gap: 0.75rem;
    align-items: center;
    align-self: flex-start;
    min-height: 2.7rem;
    margin-top: 1.35rem;
    padding: 0.6rem 0.95rem;
    color: #ffffff;
    background: #5a2c83;
    border: 1px solid #5a2c83;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.cc-project-page .cc-project-cta:hover,
.cc-project-page .cc-project-cta:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
    box-shadow: 0 0.65rem 1.4rem rgba(54, 33, 65, 0.15);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-project-page .cc-project-pillars {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cc-project-page .cc-project-pillars li {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.85rem 0;
    border-top: 1px solid #ebe4ee;
}

.cc-project-page .cc-project-number {
    color: #9a7bab;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.cc-project-page .cc-project-pillars h3 {
    margin: 0 0 0.2rem;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.25;
}

.cc-project-page .cc-project-pillars h3 a {
    color: #5a2c83;
    text-decoration: none;
}

.cc-project-page .cc-project-pillars h3 a:hover,
.cc-project-page .cc-project-pillars h3 a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.cc-project-page .cc-project-pillars p {
    margin: 0;
    color: #625769;
    font-size: 0.9rem;
    line-height: 1.48;
}

.cc-project-page [data-position="cc-main-top-05"] {
    display: block;
    max-width: 48rem;
    margin-top: clamp(3rem, 7vw, 6rem);
    margin-bottom: 1.5rem;
    text-align: center;
}

.cc-project-page .cc-project-section-heading > p:not(.cc-project-eyebrow) {
    max-width: 38rem;
    margin: 0 auto;
    color: #625769;
    line-height: 1.6;
}

.cc-project-page [data-position="cc-main-top-06"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 1.75rem);
    max-width: 52rem;
    margin-bottom: clamp(2rem, 6vw, 5rem);
}

.cc-project-page .cc-partner-card {
    display: flex;
    min-height: 13rem;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    color: #5a2c83;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.7rem rgba(54, 33, 65, 0.07);
    font-size: 0.88rem;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.cc-project-page .cc-partner-card:hover,
.cc-project-page .cc-partner-card:focus-visible {
    color: #5a2c83;
    border-color: #cdbed5;
    box-shadow: 0 0.9rem 2rem rgba(54, 33, 65, 0.12);
    text-decoration: none;
    transform: translateY(-3px);
}

.cc-project-page .cc-partner-card img {
    width: auto;
    max-width: min(100%, 15rem);
    height: auto;
    max-height: 7rem;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .cc-project-page .container-component {
        padding-top: 1.25rem;
    }

    .cc-project-page .cc-project-hero__media {
        height: clamp(17rem, 65vw, 23rem);
        border-radius: 1rem;
    }

    .cc-project-page .cc-project-hero__content {
        width: calc(100% - 1.5rem);
        margin-top: -2rem;
        padding: 1.5rem;
        border-radius: 0.9rem;
    }

    .cc-project-page .cc-project-hero h1 {
        font-size: clamp(2.2rem, 12vw, 3.35rem);
    }

    .cc-project-page [data-position="cc-main-top-02"],
    .cc-project-page [data-position="cc-main-top-03"],
    .cc-project-page [data-position="cc-main-top-04"] {
        grid-template-columns: 1fr;
        border-radius: 0.9rem;
    }

    .cc-project-page #mod-custom117,
    .cc-project-page #mod-custom296,
    .cc-project-page #mod-custom299 {
        order: -1;
    }

    .cc-project-page .cc-project-photo {
        min-height: 17rem;
    }

    .cc-project-page .cc-project-copy {
        padding: 1.5rem;
    }

    .cc-project-page [data-position="cc-main-top-06"] {
        grid-template-columns: 1fr;
    }

    .cc-project-page .cc-partner-card {
        min-height: 10rem;
    }
}

/* =========================================================
   History — an editorial timeline with its own stage mood
   ========================================================= */
.cc-history-page .container-component > .mod-breadcrumbs__wrapper,
.cc-history-page .container-component > main {
    display: none;
}

.cc-history-page .container-component {
    align-self: start;
    padding-top: clamp(1.25rem, 3vw, 2.5rem);
}

.cc-history-page .cc-module-row,
.cc-history-page [data-position="cc-main-top-01"] {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
}

.cc-history-page #mod-custom347 {
    width: 100%;
}

.cc-history {
    --cc-history-plum: #321c43;
    --cc-history-violet: #5a2c83;
    --cc-history-lilac: #8b67a2;
    --cc-history-copper: #e87950;
    --cc-history-ink: #403846;
    --cc-history-muted: #6b6170;
    width: min(100%, 88rem);
    margin-inline: auto;
    color: var(--cc-history-ink);
}

.cc-history-hero {
    position: relative;
    min-height: clamp(34rem, 72vh, 43rem);
    margin: 0 clamp(0rem, 1.5vw, 1rem) clamp(5rem, 9vw, 7rem);
    overflow: visible;
    color: #fff;
    background: var(--cc-history-plum);
    border-radius: clamp(1.1rem, 2.5vw, 1.8rem);
    box-shadow: 0 1.5rem 4rem rgba(42, 22, 56, 0.2);
}

.cc-history-hero__media,
.cc-history-hero__veil {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
}

.cc-history-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 48%;
}

.cc-history-hero__veil {
    background:
        linear-gradient(90deg, rgba(27, 13, 38, 0.94) 0%, rgba(40, 19, 55, 0.82) 40%, rgba(40, 19, 55, 0.25) 72%, rgba(40, 19, 55, 0.12) 100%),
        linear-gradient(0deg, rgba(27, 13, 38, 0.58) 0%, transparent 55%);
}

.cc-history-hero__content {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: clamp(34rem, 72vh, 43rem);
    flex-direction: column;
    justify-content: center;
    width: min(100%, 49rem);
    padding: clamp(2rem, 6vw, 5.25rem) clamp(1.5rem, 6vw, 5rem) clamp(7.2rem, 11vw, 9rem);
}

.cc-history-eyebrow,
.cc-history-kicker {
    margin: 0 0 0.85rem;
    color: var(--cc-history-copper);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-history-hero h1 {
    max-width: 44rem;
    margin: 0;
    color: #fff;
    font-size: clamp(3rem, 7vw, 6.1rem);
    font-weight: 850;
    letter-spacing: -0.055em;
    line-height: 0.91;
    text-wrap: balance;
}

.cc-history-lead {
    max-width: 42rem;
    margin: 1.4rem 0 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1rem, 1.8vw, 1.18rem);
    line-height: 1.68;
}

.cc-history-markers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: clamp(2rem, 5vw, 3rem) 0 0;
}

.cc-history-markers > div {
    min-width: 0;
    padding-left: 0.9rem;
    border-left: 2px solid rgba(232, 121, 80, 0.75);
}

.cc-history-markers dt {
    color: #fff;
    font-size: clamp(1.25rem, 3vw, 1.85rem);
    font-weight: 850;
    letter-spacing: -0.03em;
    line-height: 1;
}

.cc-history-markers dd {
    margin: 0.35rem 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.74rem;
    line-height: 1.35;
}

.cc-history-nav {
    position: absolute;
    z-index: 2;
    right: clamp(1rem, 4vw, 3rem);
    bottom: 0;
    left: clamp(1rem, 4vw, 3rem);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 1rem;
    box-shadow: 0 1rem 2.6rem rgba(37, 18, 49, 0.2);
    transform: translateY(50%);
    backdrop-filter: blur(0.8rem);
}

.cc-history-nav a {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    justify-content: center;
    min-height: 4.6rem;
    padding: 0.8rem;
    color: var(--cc-history-ink);
    border-right: 1px solid #e7dee9;
    font-size: 0.83rem;
    font-weight: 750;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    transition: color 0.18s ease, background-color 0.18s ease;
}

.cc-history-nav a:last-child {
    border-right: 0;
}

.cc-history-nav a span {
    color: var(--cc-history-lilac);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.cc-history-nav a:hover,
.cc-history-nav a:focus-visible {
    color: var(--cc-history-violet);
    background: #f8f3fa;
    outline: none;
}

.cc-history-story {
    width: min(calc(100% - 2rem), 72rem);
    margin-inline: auto;
}

.cc-history-chapter {
    position: relative;
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: clamp(1.5rem, 5vw, 4.5rem);
    scroll-margin-top: 7rem;
}

.cc-history-chapter + .cc-history-chapter,
.cc-history-quote + .cc-history-chapter {
    margin-top: clamp(2.5rem, 7vw, 5.5rem);
}

.cc-history-chapter::after {
    position: absolute;
    top: 2.85rem;
    bottom: clamp(-5.5rem, -7vw, -2.5rem);
    left: 3.95rem;
    width: 1px;
    content: "";
    background: linear-gradient(#cdbdd5, #ebe3ee);
}

.cc-history-chapter:last-of-type::after {
    display: none;
}

.cc-history-chapter__date {
    position: relative;
    z-index: 1;
    align-self: start;
    padding: 1rem 0;
    text-align: center;
    background: #fff;
    border: 1px solid #dfd3e4;
    border-radius: 0.85rem;
    box-shadow: 0 0.55rem 1.4rem rgba(54, 33, 65, 0.07);
}

.cc-history-chapter__date span,
.cc-history-chapter__date small {
    display: block;
}

.cc-history-chapter__date span {
    color: var(--cc-history-violet);
    font-size: 1.6rem;
    font-weight: 850;
    letter-spacing: -0.04em;
    line-height: 1;
}

.cc-history-chapter__date small {
    margin-top: 0.35rem;
    color: var(--cc-history-muted);
    font-size: 0.63rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-history-chapter__copy {
    padding: clamp(1.6rem, 4vw, 3rem);
    background: linear-gradient(145deg, #fff 0%, #fcfafc 100%);
    border: 1px solid #e3dae7;
    border-radius: 1.15rem;
    box-shadow: 0 0.8rem 2.2rem rgba(54, 33, 65, 0.07);
}

.cc-history-chapter__copy h2,
.cc-history-outro h2 {
    margin: 0 0 1.2rem;
    color: var(--cc-history-violet);
    font-size: clamp(1.8rem, 4vw, 3.1rem);
    font-weight: 820;
    letter-spacing: -0.04em;
    line-height: 1.05;
    text-wrap: balance;
}

.cc-history-chapter__copy > p:not(.cc-history-kicker) {
    margin: 0;
    color: #554b5b;
    font-size: clamp(0.98rem, 1.5vw, 1.06rem);
    line-height: 1.76;
}

.cc-history-chapter__copy > p:not(.cc-history-kicker) + p {
    margin-top: 1rem;
}

.cc-history-quote {
    position: relative;
    margin: clamp(3rem, 8vw, 6rem) 0 clamp(3rem, 8vw, 6rem) clamp(9.5rem, 14vw, 12.5rem);
    padding: clamp(1.8rem, 5vw, 3.4rem);
    overflow: hidden;
    color: #fff;
    background: linear-gradient(125deg, var(--cc-history-plum), #633684);
    border: 0;
    border-radius: 1.2rem;
    box-shadow: 0 1rem 2.8rem rgba(50, 28, 67, 0.16);
}

.cc-history-quote::before {
    position: absolute;
    top: -3.5rem;
    right: 1rem;
    color: rgba(255, 255, 255, 0.08);
    content: "“";
    font-family: var(--cc-font-family, "Sora", sans-serif);
    font-size: 15rem;
    line-height: 1;
}

.cc-history-quote p {
    position: relative;
    max-width: 48rem;
    margin: 0;
    color: #fff;
    font-family: var(--cc-font-family, "Sora", sans-serif);
    font-size: clamp(1.35rem, 3.4vw, 2.35rem);
    font-style: italic;
    line-height: 1.42;
    text-wrap: balance;
}

.cc-history-outro {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    margin-top: clamp(4rem, 9vw, 7rem);
    padding: clamp(1.7rem, 4vw, 2.7rem);
    background: #f7f2f9;
    border: 1px solid #e2d7e7;
    border-radius: 1.15rem;
}

.cc-history-outro h2 {
    margin-bottom: 0;
    font-size: clamp(1.65rem, 3vw, 2.35rem);
}

.cc-history-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
}

.cc-history-button {
    display: inline-flex;
    gap: 0.6rem;
    align-items: center;
    justify-content: center;
    min-height: 2.8rem;
    padding: 0.65rem 1rem;
    color: var(--cc-history-violet);
    background: #fff;
    border: 1px solid #cdbdd5;
    border-radius: 999px;
    font-size: 0.87rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.cc-history-button--primary {
    color: #fff;
    background: var(--cc-history-violet);
    border-color: var(--cc-history-violet);
}

.cc-history-button:hover,
.cc-history-button:focus-visible {
    color: var(--cc-history-violet);
    background: #fdfaff;
    box-shadow: 0 0.55rem 1.2rem rgba(54, 33, 65, 0.12);
    outline: none;
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-history-button--primary:hover,
.cc-history-button--primary:focus-visible {
    color: #fff;
    background: #442063;
}

@media (max-width: 767.98px) {
    .cc-history-page .container-component {
        padding-top: 0.8rem;
    }

    .cc-history-hero {
        min-height: 38rem;
        margin-bottom: 3.5rem;
        border-radius: 1rem;
    }

    .cc-history-hero__media img {
        object-position: 60% center;
    }

    .cc-history-hero__veil {
        background: linear-gradient(0deg, rgba(28, 14, 38, 0.96) 0%, rgba(36, 17, 49, 0.74) 64%, rgba(36, 17, 49, 0.3) 100%);
    }

    .cc-history-hero__content {
        min-height: 38rem;
        justify-content: flex-end;
        padding: 2rem 1.4rem 7.5rem;
    }

    .cc-history-hero h1 {
        font-size: clamp(2.75rem, 14vw, 4rem);
    }

    .cc-history-markers {
        gap: 0.5rem;
    }

    .cc-history-markers > div {
        padding-left: 0.55rem;
    }

    .cc-history-markers dd {
        font-size: 0.64rem;
    }

    .cc-history-nav {
        right: 0.75rem;
        left: 0.75rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-history-nav a {
        min-height: 3.2rem;
        padding: 0.55rem;
        border-bottom: 1px solid #e7dee9;
        font-size: 0.73rem;
    }

    .cc-history-nav a:nth-child(2) {
        border-right: 0;
    }

    .cc-history-nav a:nth-child(n + 3) {
        border-bottom: 0;
    }

    .cc-history-chapter {
        display: block;
        padding-left: 1.4rem;
    }

    .cc-history-chapter::after {
        top: 2.5rem;
        bottom: -3rem;
        left: 0.35rem;
    }

    .cc-history-chapter__date {
        display: inline-flex;
        gap: 0.55rem;
        align-items: baseline;
        margin-bottom: 0.75rem;
        padding: 0;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        text-align: left;
    }

    .cc-history-chapter__date::before {
        position: absolute;
        top: 0.42rem;
        left: -1.28rem;
        width: 0.55rem;
        height: 0.55rem;
        content: "";
        background: var(--cc-history-copper);
        border: 3px solid #fff;
        border-radius: 50%;
        box-shadow: 0 0 0 1px #d3c3db;
    }

    .cc-history-chapter__date span,
    .cc-history-chapter__date small {
        display: inline;
    }

    .cc-history-chapter__copy {
        padding: 1.4rem;
        border-radius: 0.9rem;
    }

    .cc-history-quote {
        margin: 3rem 0;
        padding: 1.5rem;
        border-radius: 0.9rem;
    }

    .cc-history-outro {
        display: block;
        padding: 1.4rem;
    }

    .cc-history-actions {
        justify-content: flex-start;
        margin-top: 1.25rem;
    }
}

/* =========================================================
   Project subpages — teams, member groups and membership
   ========================================================= */
.cc-teams-page .container-component > .mod-breadcrumbs__wrapper,
.cc-groups-page .container-component > .mod-breadcrumbs__wrapper,
.cc-join-page .container-component > .mod-breadcrumbs__wrapper {
    display: none;
}

.cc-teams-page .container-component > main,
.cc-join-page .container-component > main {
    display: none;
}

.cc-teams-page .container-component,
.cc-groups-page .container-component,
.cc-join-page .container-component {
    align-self: start;
    padding-top: clamp(2rem, 5vw, 4rem);
}

.cc-teams-page .cc-module-row,
.cc-groups-page .cc-module-row,
.cc-join-page .cc-module-row {
    max-width: 70rem;
    margin-inline: auto;
}

.cc-page-eyebrow {
    margin: 0 0 0.7rem;
    color: #7a4b9b;
    font-size: 0.75rem;
    font-weight: 820;
    letter-spacing: 0.12em;
    line-height: 1.1;
    text-transform: uppercase;
}

.cc-page-cta {
    display: inline-flex;
    gap: 0.7rem;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.65rem 1rem;
    color: #ffffff;
    background: #5a2c83;
    border: 1px solid #5a2c83;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 760;
    line-height: 1;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.cc-page-cta:hover,
.cc-page-cta:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
    box-shadow: 0 0.65rem 1.4rem rgba(54, 33, 65, 0.16);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-page-cta--outline {
    color: #5a2c83;
    background: #ffffff;
    border-color: #cdbed5;
}

.cc-page-cta--outline:hover,
.cc-page-cta--outline:focus-visible {
    color: #442063;
    background: #f7f2f9;
    border-color: #bda9c8;
}

/* Shared, static editorial hero. */
.cc-teams-page [data-position="cc-main-top-01"],
.cc-groups-page [data-position="cc-main-top-01"],
.cc-join-page [data-position="cc-main-top-01"] {
    display: block;
    max-width: 72rem;
    margin-bottom: clamp(3rem, 7vw, 5.5rem);
}

.cc-teams-hero,
.cc-groups-hero,
.cc-join-hero {
    overflow: visible;
}

.cc-teams-hero__media,
.cc-groups-hero__media,
.cc-join-hero__media {
    height: clamp(21rem, 40vw, 31rem);
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.5rem rgba(54, 33, 65, 0.12);
}

.cc-teams-hero__media img,
.cc-groups-hero__media img,
.cc-join-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-teams-hero__media img {
    object-position: center 45%;
}

.cc-groups-hero__media img {
    object-position: center 38%;
}

.cc-join-hero__media img {
    object-position: center 48%;
}

.cc-teams-hero__content,
.cc-groups-hero__content,
.cc-join-hero__content {
    position: relative;
    width: calc(100% - clamp(2rem, 8vw, 7rem));
    max-width: 66rem;
    margin: clamp(-5rem, -6vw, -3.5rem) auto 0;
    padding: clamp(1.7rem, 4vw, 3.1rem);
    color: #403846;
    background: linear-gradient(135deg, #ffffff 0%, #faf7fc 100%);
    border: 1px solid #e3dae7;
    border-radius: 1.2rem;
    box-shadow: 0 1rem 2.5rem rgba(54, 33, 65, 0.1);
}

.cc-teams-hero h1,
.cc-groups-hero h1,
.cc-join-hero h1 {
    max-width: 54rem;
    margin: 0 0 1rem;
    color: #5a2c83;
    font-size: clamp(2.25rem, 5.5vw, 4.5rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 0.99;
}

.cc-teams-hero__content > p:not(.cc-page-eyebrow),
.cc-groups-hero__content > p:not(.cc-page-eyebrow),
.cc-join-hero__content > p:not(.cc-page-eyebrow) {
    max-width: 58rem;
    margin: 0;
    color: #514758;
    font-size: clamp(0.98rem, 1.7vw, 1.08rem);
    line-height: 1.68;
}

.cc-teams-hero__links,
.cc-join-hero__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1.35rem;
}

.cc-teams-hero__links a,
.cc-join-hero__links a {
    display: inline-flex;
    align-items: center;
    min-height: 2.35rem;
    padding: 0.5rem 0.8rem;
    color: #5a2c83;
    background: #f3edf6;
    border: 1px solid #ded3e4;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 760;
    line-height: 1.15;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.cc-teams-hero__links a:hover,
.cc-teams-hero__links a:focus-visible,
.cc-join-hero__links a:hover,
.cc-join-hero__links a:focus-visible {
    color: #442063;
    background: #ebe0f0;
    border-color: #cdbed5;
    text-decoration: none;
    transform: translateY(-1px);
}

.cc-teams-hero__links a.cc-teams-hero__cta {
    gap: 0.55rem;
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
    box-shadow: 0 0.45rem 1rem rgba(54, 33, 65, 0.14);
}

.cc-teams-hero__links a.cc-teams-hero__cta:hover,
.cc-teams-hero__links a.cc-teams-hero__cta:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
    box-shadow: 0 0.65rem 1.3rem rgba(54, 33, 65, 0.2);
}

/* Teams — portrait grids. */
.cc-teams-page [data-position="cc-main-top-01"] {
    margin-bottom: 0;
}

.cc-teams-page [data-position="cc-main-top-06"],
.cc-teams-page [data-position="cc-main-top-10"] {
    display: block;
    margin-top: clamp(3.25rem, 7vw, 6rem);
}

.cc-team-heading {
    max-width: 45rem;
    margin: clamp(3.25rem, 7vw, 6rem) auto 1rem;
    text-align: center;
    scroll-margin-top: 2rem;
}

.cc-teams-page [data-position="cc-main-top-06"] .cc-team-heading,
.cc-teams-page [data-position="cc-main-top-10"] .cc-team-heading {
    margin-top: 0;
}

.cc-team-heading h2,
.cc-volunteer-story h2 {
    margin: 0 0 0.8rem;
    color: #5a2c83;
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 830;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.cc-team-heading > p:not(.cc-page-eyebrow) {
    max-width: 38rem;
    margin: 0 auto;
    color: #625769;
    line-height: 1.62;
}

.cc-teams-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"],
    [data-position="cc-main-top-05"],
    [data-position="cc-main-top-07"],
    [data-position="cc-main-top-08"],
    [data-position="cc-main-top-11"],
    [data-position="cc-main-top-12"]
) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.5rem);
    margin-bottom: clamp(1rem, 2.5vw, 1.5rem);
}

.cc-teams-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"],
    [data-position="cc-main-top-05"],
    [data-position="cc-main-top-07"],
    [data-position="cc-main-top-08"],
    [data-position="cc-main-top-11"],
    [data-position="cc-main-top-12"]
) > .no-card {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.05rem;
    box-shadow: 0 0.7rem 1.8rem rgba(54, 33, 65, 0.07);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-teams-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"],
    [data-position="cc-main-top-05"],
    [data-position="cc-main-top-07"],
    [data-position="cc-main-top-08"],
    [data-position="cc-main-top-11"],
    [data-position="cc-main-top-12"]
) > .no-card:hover {
    border-color: #cdbed5;
    box-shadow: 0 1rem 2.25rem rgba(54, 33, 65, 0.12);
    transform: translateY(-3px);
}

.cc-teams-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"],
    [data-position="cc-main-top-05"],
    [data-position="cc-main-top-07"],
    [data-position="cc-main-top-08"],
    [data-position="cc-main-top-11"],
    [data-position="cc-main-top-12"]
) > .no-card > .mod-custom {
    display: flex;
    height: 100%;
    flex-direction: column;
}

.cc-teams-page .equipe-text-mod {
    display: contents;
}

.cc-teams-page .equipe-text-mod > p:first-child {
    width: 100%;
    height: 13.5rem;
    margin: 0;
    overflow: hidden;
    background: linear-gradient(135deg, #f3edf6 0%, #ebe2ef 100%);
}

.cc-teams-page .equipe-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 24%;
    transition: transform 0.35s ease;
}

.cc-teams-page .equipe-img[src$="img.png"],
.cc-teams-page .equipe-img[src$="visage_logo.svg"] {
    padding: 2.5rem;
    object-fit: contain;
    object-position: center;
}

.cc-teams-page .equipe-img.cc-team-placeholder {
    padding: 0;
    object-fit: cover;
    object-position: center;
    background: #f0f5f7;
}

.cc-teams-page .no-card:hover .equipe-img:not(.cc-team-placeholder):not([src$="img.png"]):not([src$="visage_logo.svg"]) {
    transform: scale(1.035);
}

.cc-teams-page .equipe-text-mod > br,
.cc-teams-page .equipe-text-subtitle br {
    display: none;
}

.cc-teams-page .equipe-text-title {
    margin: 1.2rem 1.25rem 0.2rem;
    color: #5a2c83;
    font-size: 1.14rem;
    font-weight: 820;
    letter-spacing: -0.018em;
    line-height: 1.2;
}

.cc-teams-page .equipe-text-subtitle {
    min-height: 2.3rem;
    margin: 0 1.25rem;
    color: #7a4b9b;
    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1.4;
}

.cc-teams-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"],
    [data-position="cc-main-top-04"],
    [data-position="cc-main-top-05"],
    [data-position="cc-main-top-07"],
    [data-position="cc-main-top-08"],
    [data-position="cc-main-top-11"],
    [data-position="cc-main-top-12"]
) .mod-custom > div:last-child {
    flex: 1 1 auto;
    padding: 0.95rem 1.25rem 1.35rem;
    border-top: 1px solid #f0eaf2;
}

.cc-teams-page .equipe-intro-text,
.cc-teams-page :where([data-position="cc-main-top-11"], [data-position="cc-main-top-12"]) .mod-custom > div:last-child {
    color: #5b5160;
    font-size: 0.88rem;
    line-height: 1.62;
}

.cc-teams-page .equipe-intro-text {
    margin: 0;
}

.cc-teams-page [data-position="cc-main-bottom-01"] {
    display: block;
    max-width: 68rem;
    margin-top: clamp(3rem, 6vw, 5rem);
    margin-bottom: clamp(1rem, 4vw, 3rem);
}

.cc-volunteer-story {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(19rem, 0.85fr);
    overflow: hidden;
    background: linear-gradient(135deg, #ffffff 0%, #faf7fc 100%);
    border: 1px solid #e3dae7;
    border-radius: 1.2rem;
    box-shadow: 0 0.9rem 2.25rem rgba(54, 33, 65, 0.09);
}

.cc-volunteer-story figure {
    position: relative;
    min-height: 28rem;
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-volunteer-story figure img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cc-volunteer-story > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.7rem, 4vw, 3rem);
}

.cc-volunteer-story > div > p:not(.cc-page-eyebrow) {
    margin: 0 0 0.85rem;
    color: #514758;
    line-height: 1.66;
}

.cc-volunteer-story .cc-page-cta {
    align-self: flex-start;
    margin-top: 0.5rem;
}

.cc-volunteer-story__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    align-items: center;
    margin-top: 0.35rem;
}

.cc-volunteer-story__actions .cc-page-cta {
    margin-top: 0;
}

/* Member groups — native Joomla category transformed into an index. */
.cc-groups-page [data-position="cc-main-top-01"] {
    margin-bottom: clamp(2.5rem, 6vw, 4.75rem);
}

.cc-groups-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.35rem;
}

/* The directory shortcut is useful inside a member profile, not on the directory itself. */
.cc-groups-hero__directory-link {
    display: none !important;
}

body:has(.cc-choir-profile) .cc-groups-hero__directory-link {
    display: inline-flex !important;
}

.cc-groups-page .container-component {
    width: 100%;
    max-width: 76rem;
    margin-inline: auto;
    padding-top: 0;
}

.cc-groups-page .com-content-category-blog {
    min-width: 0;
}

.cc-groups-range-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem 1.4rem;
    align-items: center;
    margin: 0 0 clamp(3rem, 7vw, 5.25rem);
    padding: 1rem 1.1rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid #e3dae7;
    border-radius: 1rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.07);
}

.cc-groups-range-nav__label {
    color: #5a2c83;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.cc-groups-range-nav > div {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: 0.48rem;
}

.cc-groups-range-nav__link {
    --cc-range-accent: #cbb9dc;
    --cc-range-soft: #f6f1f9;
    --cc-range-ink: #5a2c83;
    --cc-range-badge-ink: #4c226d;
    display: inline-flex;
    min-height: 2.35rem;
    gap: 0.48rem;
    align-items: center;
    justify-content: center;
    padding: 0.48rem 0.58rem 0.48rem 0.78rem;
    color: var(--cc-range-ink);
    background: var(--cc-range-soft);
    border: 1px solid color-mix(in srgb, var(--cc-range-accent) 24%, transparent);
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 790;
    line-height: 1;
    text-decoration: none;
    transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.cc-groups-range-nav__link small {
    display: grid;
    min-width: 1.35rem;
    height: 1.35rem;
    padding-inline: 0.25rem;
    place-items: center;
    color: var(--cc-range-badge-ink, #fff);
    background: var(--cc-range-accent);
    border-radius: 999px;
    font-size: 0.61rem;
    font-weight: 850;
}

.cc-groups-range-nav__link:hover,
.cc-groups-range-nav__link:focus-visible {
    color: var(--cc-range-ink);
    background: var(--cc-range-accent);
    border-color: var(--cc-range-accent);
    transform: translateY(-2px);
}

.cc-groups-range-nav__link:hover small,
.cc-groups-range-nav__link:focus-visible small {
    color: #fff;
    background: var(--cc-range-ink);
}

.cc-groups-range-nav__link--tone-0,
.cc-groups-range--tone-0 {
    --cc-range-accent: #9adfea;
    --cc-range-soft: #edfafd;
    --cc-range-ink: #12677a;
    --cc-range-badge-ink: #155d6c;
}

.cc-groups-range-nav__link--tone-1,
.cc-groups-range--tone-1 {
    --cc-range-accent: #f6dda0;
    --cc-range-soft: #fff9e8;
    --cc-range-ink: #725600;
    --cc-range-badge-ink: #5e4500;
}

.cc-groups-range-nav__link--tone-2,
.cc-groups-range--tone-2 {
    --cc-range-accent: #f3a7ad;
    --cc-range-soft: #fff1f2;
    --cc-range-ink: #9a0710;
    --cc-range-badge-ink: #7e1d26;
}

.cc-groups-range-nav__link--tone-3,
.cc-groups-range--tone-3 {
    --cc-range-accent: #cbb9dc;
    --cc-range-soft: #f6f1f9;
    --cc-range-ink: #5a2c83;
    --cc-range-badge-ink: #4c226d;
}

.cc-groups-directory {
    position: relative;
}

.cc-groups-range {
    position: relative;
    display: grid;
    grid-template-columns: 5.7rem minmax(0, 1fr);
    gap: 1.05rem clamp(1.2rem, 3vw, 2.25rem);
    padding-bottom: clamp(3.5rem, 8vw, 6rem);
    scroll-margin-top: 7rem;
}

.cc-groups-range:last-child {
    padding-bottom: 0;
}

.cc-groups-range::before {
    position: absolute;
    top: 5.7rem;
    bottom: -0.1rem;
    left: 2.84rem;
    width: 1px;
    content: "";
    background: linear-gradient(180deg, color-mix(in srgb, var(--cc-range-accent) 38%, #ddd2e2), #e6dfe9 78%, transparent);
}

.cc-groups-range:last-child::before {
    display: none;
}

.cc-groups-range__marker {
    position: relative;
    z-index: 1;
    display: flex;
    width: 5.7rem;
    height: 5.7rem;
    grid-row: 1 / span 2;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--cc-range-badge-ink);
    background: var(--cc-range-accent);
    border: 0.42rem solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--cc-range-accent) 30%, #ded4e3), 0 0.85rem 1.8rem rgba(54, 33, 65, 0.13);
}

.cc-groups-range__marker strong {
    font-size: 1.48rem;
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 1;
}

.cc-groups-range__marker span {
    margin-top: 0.18rem;
    font-size: 0.57rem;
    font-weight: 820;
    letter-spacing: 0.03em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-groups-range__heading {
    display: flex;
    min-width: 0;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem 0 0.85rem;
    border-bottom: 1px solid color-mix(in srgb, var(--cc-range-accent) 22%, #e3dae7);
}

.cc-groups-range__heading p {
    margin: 0 0 0.25rem;
    color: var(--cc-range-ink);
    font-size: 0.67rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-groups-range__heading h2 {
    margin: 0;
    color: #472554;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    font-weight: 870;
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.cc-groups-range__heading > span {
    flex: 0 0 auto;
    padding: 0.42rem 0.66rem;
    color: var(--cc-range-ink);
    background: var(--cc-range-soft);
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    white-space: nowrap;
}

.cc-groups-range__cards {
    grid-column: 2;
}

.cc-groups-page .blog-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.5rem);
}

.cc-groups-page .blog-item {
    position: relative;
    min-width: 0;
    min-height: 11.5rem;
    overflow: hidden;
    background: linear-gradient(145deg, var(--cc-range-soft, #f3edf6) -70%, #fff 42%);
    border: 1px solid color-mix(in srgb, var(--cc-range-accent, #7a4b9b) 18%, #e3dae7);
    border-radius: 1rem;
    box-shadow: 0 0.7rem 1.8rem rgba(54, 33, 65, 0.07);
    break-inside: avoid;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-groups-page .blog-item:hover,
.cc-groups-page .blog-item:focus-within {
    border-color: color-mix(in srgb, var(--cc-range-accent, #7a4b9b) 52%, #cdbed5);
    box-shadow: 0 1rem 2.2rem rgba(54, 33, 65, 0.12);
    transform: translateY(-3px);
}

.cc-choir-department {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    display: inline-flex;
    min-height: 2rem;
    gap: 0.3rem;
    align-items: center;
    padding: 0.34rem 0.52rem;
    color: var(--cc-range-badge-ink, #fff);
    background: var(--cc-range-accent, #7a4b9b);
    border-radius: 999px;
    box-shadow: 0 0.45rem 1rem color-mix(in srgb, var(--cc-range-accent, #7a4b9b) 22%, transparent);
    line-height: 1;
    pointer-events: none;
}

.cc-choir-department small {
    font-size: 0.56rem;
    font-weight: 760;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cc-choir-department strong {
    font-size: 0.82rem;
    font-weight: 900;
}

.cc-groups-page .blog-item > .item-image,
.cc-groups-page .blog-item .item-content > :not(.page-header) {
    display: none !important;
}

/*
 * Joomla wraps unpublished articles in an extra .system-unpublished element
 * for users allowed to edit them. Keep that administrative wrapper visible,
 * while applying the same compact card treatment as published articles.
 */
.cc-groups-page .blog-item .item-content > .system-unpublished {
    display: block !important;
    position: relative;
    height: 100%;
}

.cc-groups-page .blog-item .system-unpublished > :not(.page-header) {
    display: none !important;
}

.cc-groups-page .blog-item .system-unpublished > .page-header {
    position: relative;
}

.cc-groups-page .blog-item .system-unpublished > .page-header > .badge {
    position: absolute;
    z-index: 1;
    top: 1.15rem;
    right: 1.15rem;
    padding: 0.28rem 0.5rem;
    color: #765b20;
    background: #fff5cf !important;
    border: 1px solid #eadb9d;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 780;
    letter-spacing: 0.04em;
    line-height: 1;
    pointer-events: none;
}

.cc-groups-page .blog-item .item-content,
.cc-groups-page .blog-item .page-header,
.cc-groups-page .blog-item .page-header h2 {
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
}

.cc-groups-page .blog-item .page-header a {
    display: flex;
    height: 100%;
    min-height: 11.5rem;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.35rem;
    color: #5a2c83;
    font-size: 1.08rem;
    font-weight: 820;
    letter-spacing: -0.018em;
    line-height: 1.3;
    text-decoration: none;
}

.cc-groups-page .blog-item .page-header a::before {
    margin-bottom: 1rem;
    padding: 0.3rem 0.55rem;
    color: var(--cc-range-ink, #7a4b9b);
    background: var(--cc-range-soft, #f3edf6);
    border-radius: 999px;
    content: "Groupe adhérent";
    font-size: 0.66rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-groups-page .blog-item .page-header a::after {
    margin-top: auto;
    padding-top: 1rem;
    color: var(--cc-range-ink, #7a4b9b);
    content: "Découvrir la fiche  →";
    font-size: 0.78rem;
    font-weight: 760;
    letter-spacing: 0;
}

.cc-groups-page .com-content-category-blog__navigation {
    margin-top: clamp(2rem, 5vw, 3.5rem);
}

.cc-groups-page .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.cc-groups-page .pagination .page-link {
    display: grid;
    min-width: 2.4rem;
    min-height: 2.4rem;
    padding: 0.35rem;
    place-items: center;
    color: #5a2c83;
    background: #ffffff;
    border: 1px solid #ded3e4;
    border-radius: 0.65rem !important;
    font-weight: 720;
    text-decoration: none;
}

.cc-groups-page .pagination .active .page-link,
.cc-groups-page .pagination .page-link:hover,
.cc-groups-page .pagination .page-link:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-groups-page .pagination .disabled .page-link {
    color: #aaa1ae;
    background: #f6f3f7;
}

/* Membership — two clear choices and their benefits. */
.cc-join-page [data-position="cc-main-top-01"] {
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.cc-join-page [data-position="cc-main-top-02"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(1rem, 3vw, 1.75rem);
    max-width: 68rem;
}

.cc-join-page [data-position="cc-main-top-02"] > .no-card {
    height: 100%;
}

.cc-membership-card {
    display: flex;
    height: 100%;
    flex-direction: column;
    padding: clamp(1.5rem, 3.5vw, 2.2rem);
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.15rem;
    box-shadow: 0 0.85rem 2.2rem rgba(54, 33, 65, 0.08);
    scroll-margin-top: 2rem;
}

.cc-membership-card--group {
    background: linear-gradient(145deg, #ffffff 0%, #faf7fc 100%);
    border-color: #d6c8dd;
}

.cc-membership-card__top {
    position: relative;
    padding-right: 3rem;
}

.cc-membership-number {
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    color: #7a4b9b;
    background: #f3edf6;
    border: 1px solid #ded3e4;
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.06em;
}

.cc-membership-card h2 {
    margin: 0 0 0.75rem;
    color: #5a2c83;
    font-size: clamp(1.65rem, 3vw, 2.3rem);
    font-weight: 830;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.cc-membership-card__top > p:not(.cc-page-eyebrow) {
    margin: 0;
    color: #625769;
    line-height: 1.58;
}

.cc-membership-benefits {
    display: grid;
    gap: 0.85rem;
    margin: 1.6rem 0;
    padding: 1.35rem 0;
    border-top: 1px solid #ebe4ee;
    border-bottom: 1px solid #ebe4ee;
    list-style: none;
}

.cc-membership-benefits li {
    position: relative;
    margin: 0;
    padding-left: 1.75rem;
    color: #514758;
    font-size: 0.91rem;
    line-height: 1.55;
}

.cc-membership-benefits li::before {
    position: absolute;
    top: 0.1rem;
    left: 0;
    display: grid;
    width: 1.18rem;
    height: 1.18rem;
    place-items: center;
    color: #ffffff;
    background: #7a4b9b;
    border-radius: 50%;
    content: "✓";
    font-size: 0.68rem;
    font-weight: 850;
}

.cc-membership-pricing {
    margin: 0 0 1.35rem;
    padding: 1.15rem;
    background: #f6f1f8;
    border: 1px solid #e5dce9;
    border-radius: 0.85rem;
}

.cc-membership-pricing h3 {
    margin: 0 0 0.7rem;
    color: #5a2c83;
    font-size: 0.88rem;
    font-weight: 820;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cc-membership-pricing table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.cc-membership-pricing tr + tr {
    border-top: 1px solid #e1d5e6;
}

.cc-membership-pricing th,
.cc-membership-pricing td {
    padding: 0.55rem 0;
    background: transparent;
    border: 0;
    color: #514758;
    font-size: 0.84rem;
    line-height: 1.35;
}

.cc-membership-pricing th {
    font-weight: 620;
    text-align: left;
}

.cc-membership-pricing td {
    color: #5a2c83;
    font-weight: 850;
    text-align: right;
    white-space: nowrap;
}

.cc-membership-card .cc-page-cta {
    align-self: flex-start;
    margin-top: auto;
}

.cc-membership-note {
    margin: 0.9rem 0 0;
    color: #7a707e;
    font-size: 0.76rem;
    font-style: italic;
    line-height: 1.45;
}

@media (max-width: 991.98px) {
    .cc-teams-page :where(
        [data-position="cc-main-top-02"],
        [data-position="cc-main-top-03"],
        [data-position="cc-main-top-04"],
        [data-position="cc-main-top-05"],
        [data-position="cc-main-top-07"],
        [data-position="cc-main-top-08"],
        [data-position="cc-main-top-11"],
        [data-position="cc-main-top-12"]
    ),
    .cc-groups-page .blog-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-groups-range {
        grid-template-columns: 4.8rem minmax(0, 1fr);
        column-gap: 1.25rem;
    }

    .cc-groups-range::before {
        top: 4.8rem;
        left: 2.39rem;
    }

    .cc-groups-range__marker {
        width: 4.8rem;
        height: 4.8rem;
    }

    .cc-groups-range__marker strong {
        font-size: 1.25rem;
    }

    .cc-groups-range__cards {
        grid-column: 2;
    }

    .cc-volunteer-story {
        grid-template-columns: 1fr;
    }

    .cc-volunteer-story figure {
        min-height: clamp(18rem, 55vw, 28rem);
    }
}

@media (max-width: 767.98px) {
    .cc-teams-page .container-component,
    .cc-join-page .container-component {
        padding-top: 1.25rem;
    }

    .cc-teams-hero__media,
    .cc-groups-hero__media,
    .cc-join-hero__media {
        height: clamp(17rem, 65vw, 23rem);
        border-radius: 1rem;
    }

    .cc-teams-hero__content,
    .cc-groups-hero__content,
    .cc-join-hero__content {
        width: calc(100% - 1.5rem);
        margin-top: -2rem;
        padding: 1.5rem;
        border-radius: 0.9rem;
    }

    .cc-teams-hero h1,
    .cc-groups-hero h1,
    .cc-join-hero h1 {
        font-size: clamp(2.15rem, 12vw, 3.25rem);
    }

    .cc-join-page [data-position="cc-main-top-02"] {
        grid-template-columns: 1fr;
    }

    .cc-membership-card {
        border-radius: 0.95rem;
    }

    .cc-groups-range-nav {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .cc-groups-range__heading {
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .cc-teams-page :where(
        [data-position="cc-main-top-02"],
        [data-position="cc-main-top-03"],
        [data-position="cc-main-top-04"],
        [data-position="cc-main-top-05"],
        [data-position="cc-main-top-07"],
        [data-position="cc-main-top-08"],
        [data-position="cc-main-top-11"],
        [data-position="cc-main-top-12"]
    ),
    .cc-groups-page .blog-items {
        grid-template-columns: 1fr;
    }

    .cc-groups-range-nav {
        margin-bottom: 3.25rem;
        padding: 0.9rem;
    }

    .cc-groups-range-nav > div {
        flex-wrap: nowrap;
        padding-bottom: 0.2rem;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .cc-groups-range-nav__link {
        flex: 0 0 auto;
    }

    .cc-groups-range {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
        padding-bottom: 4rem;
    }

    .cc-groups-range::before {
        display: none;
    }

    .cc-groups-range__marker {
        position: absolute;
        top: 0;
        left: 0;
        width: 3.8rem;
        height: 3.8rem;
        grid-row: auto;
        border-width: 0.3rem;
    }

    .cc-groups-range__marker strong {
        font-size: 1rem;
    }

    .cc-groups-range__marker span {
        font-size: 0.48rem;
    }

    .cc-groups-range__heading {
        min-height: 3.8rem;
        grid-column: 1;
        align-items: flex-start;
        padding: 0.15rem 0 0.85rem 4.5rem;
    }

    .cc-groups-range__heading h2 {
        font-size: 1.35rem;
    }

    .cc-groups-range__heading > span {
        display: none;
    }

    .cc-groups-range__cards {
        grid-column: 1;
    }

    .cc-groups-page .blog-item,
    .cc-groups-page .blog-item .page-header a {
        min-height: 10.75rem;
    }

    .cc-teams-page .equipe-text-mod > p:first-child {
        height: 17rem;
    }

    .cc-groups-hero__actions,
    .cc-groups-hero__actions .cc-page-cta {
        width: 100%;
    }

    .cc-volunteer-story__actions,
    .cc-volunteer-story__actions .cc-page-cta {
        width: 100%;
    }

    .cc-groups-page .pagination .page-item:nth-child(n+8):nth-last-child(n+3) {
        display: none;
    }
}

/* =========================================================
   Events — landing page and editorial subpages
   ========================================================= */
.cc-events-page .container-component > .mod-breadcrumbs__wrapper,
.cc-event-detail-page .container-component > .mod-breadcrumbs__wrapper,
.cc-events-page .container-component > main,
.cc-event-detail-page .container-component > main {
    display: none;
}

.cc-events-page .container-component,
.cc-event-detail-page .container-component {
    padding-top: clamp(1.75rem, 4vw, 3.5rem);
}

.cc-events-page .cc-module-row,
.cc-event-detail-page .cc-module-row {
    width: min(100%, 74rem);
}

.cc-events-page [data-position="cc-main-top-01"],
.cc-event-detail-page [data-position="cc-main-top-01"] {
    display: block;
    width: min(100%, 78rem);
    max-width: 78rem;
}

.cc-events-page [data-position="cc-main-top-01"] > .no-card,
.cc-event-detail-page [data-position="cc-main-top-01"] > .no-card,
.cc-event-sete-page [data-position="cc-main-top-05"] > .no-card {
    min-width: 0;
}

.cc-events-hero,
.cc-event-hero {
    position: relative;
}

.cc-events-hero__media,
.cc-event-hero__media {
    position: relative;
    width: 100%;
    height: clamp(27rem, 48vw, 38rem);
    margin: 0;
    overflow: hidden;
    background: #ded3e4;
    border-radius: 1.35rem;
}

.cc-events-hero__media::after,
.cc-event-hero__media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(37, 19, 49, 0.2));
    content: "";
    pointer-events: none;
}

.cc-events-hero__media img,
.cc-event-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-events-hero__media img {
    object-position: center 45%;
}

.cc-event-grand-choral-page .cc-event-hero__media img {
    object-position: center 42%;
}

.cc-event-rendezvous-page .cc-event-hero__media img {
    object-position: center;
}

.cc-event-sete-page .cc-event-hero__media img {
    object-position: center 45%;
}

.cc-event-members-page .cc-event-hero__media img {
    object-position: center 42%;
}

.cc-event-joigny-page .cc-event-hero__media img {
    object-position: center 46%;
}

.cc-events-hero__content,
.cc-event-hero__content {
    position: relative;
    z-index: 1;
    width: min(43rem, calc(100% - 4rem));
    margin: -7rem 0 0 2rem;
    padding: clamp(1.8rem, 4vw, 3.25rem);
    color: #362141;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(222, 211, 228, 0.9);
    border-radius: 1.15rem;
    box-shadow: 0 1.25rem 3rem rgba(54, 33, 65, 0.14);
}

.cc-event-eyebrow {
    margin: 0 0 0.75rem;
    color: #8a64a0;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
}

.cc-events-hero h1,
.cc-event-hero h1 {
    margin: 0 0 1rem;
    color: #5a2c83;
    font-size: clamp(2.7rem, 6vw, 5.2rem);
    font-weight: 850;
    letter-spacing: -0.055em;
    line-height: 0.95;
}

.cc-events-hero__content > p:not(.cc-event-eyebrow),
.cc-event-hero__content > p:not(.cc-event-eyebrow) {
    max-width: 38rem;
    margin: 0;
    color: #625769;
    font-size: clamp(1rem, 2vw, 1.12rem);
    line-height: 1.62;
}

.cc-event-cta {
    display: inline-flex;
    min-height: 2.8rem;
    gap: 0.8rem;
    align-items: center;
    justify-content: center;
    margin-top: 1.35rem;
    padding: 0.65rem 1rem;
    color: #ffffff;
    background: #5a2c83;
    border: 1px solid #5a2c83;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 780;
    line-height: 1.05;
    text-align: center;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.cc-event-cta:hover,
.cc-event-cta:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
    box-shadow: 0 0.75rem 1.5rem rgba(54, 33, 65, 0.18);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-event-cta--outline {
    color: #5a2c83;
    background: transparent;
    border-color: #beaac9;
}

.cc-event-cta--outline:hover,
.cc-event-cta--outline:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

/* Events landing cards */
.cc-events-heading,
.cc-event-section-heading {
    max-width: 46rem;
    margin: clamp(3.5rem, 8vw, 6.5rem) auto 1.75rem;
    text-align: center;
}

.cc-events-heading h2,
.cc-event-section-heading h2 {
    margin: 0 0 0.7rem;
    color: #5a2c83;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 840;
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.cc-events-heading > p:not(.cc-event-eyebrow),
.cc-event-section-heading > p:not(.cc-event-eyebrow) {
    margin: 0;
    color: #6d6372;
    line-height: 1.6;
}

.cc-events-page [data-position="cc-main-top-02"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
    margin-top: 0;
    margin-bottom: clamp(3rem, 8vw, 6.5rem);
}

.cc-events-page [data-position="cc-main-top-02"] > .no-card {
    min-width: 0;
    height: 100%;
}

.cc-event-card {
    display: flex;
    height: 100%;
    min-height: 31rem;
    flex-direction: column;
    overflow: hidden;
    color: #362141;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.05rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.07);
    text-decoration: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-event-card:hover,
.cc-event-card:focus-visible {
    color: #362141;
    border-color: #cdbed5;
    box-shadow: 0 1.1rem 2.5rem rgba(54, 33, 65, 0.14);
    text-decoration: none;
    transform: translateY(-5px);
}

.cc-event-card figure {
    height: 13rem;
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-event-card figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.cc-event-card:hover figure img,
.cc-event-card:focus-visible figure img {
    transform: scale(1.035);
}

.cc-event-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.45rem;
}

.cc-event-card__meta,
.cc-event-date,
.cc-event-location {
    margin: 0 0 0.55rem;
    color: #9a78aa;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.095em;
    line-height: 1.35;
    text-transform: uppercase;
}

.cc-event-card h2 {
    margin: 0 0 0.7rem;
    color: #5a2c83;
    font-size: 1.5rem;
    font-weight: 830;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.cc-event-card__body > p:not(.cc-event-card__meta) {
    margin: 0;
    color: #6a606f;
    font-size: 0.91rem;
    line-height: 1.58;
}

.cc-event-card__link {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    margin-top: auto;
    padding-top: 1.25rem;
    color: #5a2c83;
    font-size: 0.86rem;
    font-weight: 800;
}

/* Grand Choral: the same night palette used by its Rendez-vous chantants card. */
.cc-events-page .cc-event-card--grand-choral {
    color: #f7f2fb;
    background:
        radial-gradient(circle at 92% 78%, rgba(177, 64, 119, 0.2), transparent 13rem),
        radial-gradient(circle at 8% 12%, rgba(100, 56, 165, 0.28), transparent 15rem),
        linear-gradient(150deg, #10091d 0%, #171027 58%, #0d0718 100%);
    border-color: rgba(207, 180, 230, 0.28);
    box-shadow: 0 1rem 2.6rem rgba(20, 8, 32, 0.25), 0 0 2rem rgba(99, 61, 169, 0.08);
}

.cc-events-page .cc-event-card--grand-choral:hover,
.cc-events-page .cc-event-card--grand-choral:focus-visible {
    color: #ffffff;
    border-color: rgba(220, 190, 242, 0.46);
    box-shadow: 0 1.3rem 3rem rgba(20, 8, 32, 0.34), 0 0 2.4rem rgba(118, 70, 178, 0.16);
}

.cc-events-page .cc-event-card--grand-choral:focus-visible {
    outline: 3px solid #d7aaf4;
    outline-offset: 3px;
}

.cc-events-page .cc-event-card--grand-choral figure {
    position: relative;
    background: #08040f;
}

.cc-events-page .cc-event-card--grand-choral figure::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(13, 7, 24, 0.72));
    content: "";
    pointer-events: none;
}

.cc-events-page .cc-event-card--grand-choral .cc-event-card__meta {
    color: #d9b5f3;
}

.cc-events-page .cc-event-card--grand-choral h2 {
    color: #ffffff;
    text-shadow: 0 0.25rem 1rem rgba(7, 2, 14, 0.42);
}

.cc-events-page .cc-event-card--grand-choral .cc-event-card__body > p:not(.cc-event-card__meta) {
    color: #e6dbee;
}

.cc-events-page .cc-event-card--grand-choral .cc-event-card__link {
    color: #f1dffb;
    border-top: 1px solid rgba(207, 180, 230, 0.2);
}

/* Shared detail-page building blocks */
.cc-event-detail-page .cc-event-hero {
    margin-bottom: clamp(3rem, 8vw, 6rem);
}

.cc-event-copy {
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.75rem, 4vw, 3.5rem);
}

.cc-event-copy h2,
.cc-event-intro-grid h2,
.cc-event-spotlight h2,
.cc-event-callout h2,
.cc-event-edition h2,
.cc-event-video h2 {
    margin: 0 0 0.9rem;
    color: #5a2c83;
    font-size: clamp(1.85rem, 3.8vw, 3rem);
    font-weight: 840;
    letter-spacing: -0.045em;
    line-height: 1.04;
}

.cc-event-copy > p:not(.cc-event-eyebrow),
.cc-event-intro-grid p,
.cc-event-callout p,
.cc-event-edition p {
    margin: 0;
    color: #625769;
    line-height: 1.66;
}

.cc-event-copy > p + p {
    margin-top: 0.9rem;
}

.cc-event-photo {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 28rem;
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-event-photo img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-event-grand-choral-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"]
) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.1rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.07);
}

.cc-event-grand-choral-page [data-position="cc-main-top-03"] {
    margin-top: clamp(1.25rem, 3vw, 2rem);
}

.cc-event-grand-choral-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"]
) > .no-card {
    min-width: 0;
}

.cc-event-grand-choral-page [data-position="cc-main-top-04"] {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: stretch;
    margin-top: clamp(3rem, 7vw, 5.5rem);
    margin-bottom: clamp(3rem, 8vw, 6rem);
}

.cc-event-grand-choral-page [data-position="cc-main-top-04"] > .no-card {
    min-width: 0;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.05rem;
}

.cc-event-video {
    padding: clamp(1.5rem, 3vw, 2rem);
}

.cc-event-video__frame {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #281631;
    border-radius: 0.85rem;
    aspect-ratio: 16 / 9;
}

.cc-event-video__frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.cc-event-copy--history {
    justify-content: flex-start;
}

.cc-event-copy--history .cc-event-cta {
    align-self: flex-start;
}

.cc-event-spotlight {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    max-width: 66rem;
    margin: 0 auto;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.15rem;
    box-shadow: 0 0.9rem 2.3rem rgba(54, 33, 65, 0.08);
}

.cc-event-spotlight figure {
    min-height: 27rem;
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-event-spotlight figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-event-spotlight__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.75rem, 5vw, 3.75rem);
}

.cc-event-spotlight .cc-event-date {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 0.75rem;
    padding: 0.45rem 0.7rem;
    color: #ffffff;
    background: #7a4b9b;
    border-radius: 999px;
}

.cc-event-spotlight .cc-event-location {
    color: #716675;
}

.cc-event-organizer,
.cc-event-spotlight__content > p:not(.cc-event-date, .cc-event-location) {
    margin: 0;
    color: #625769;
    line-height: 1.6;
}

.cc-event-organizer {
    font-weight: 700;
}

.cc-event-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 1.15rem 0 0;
    padding: 0;
    list-style: none;
}

.cc-event-facts li {
    margin: 0;
    padding: 0.4rem 0.65rem;
    color: #5a2c83;
    background: #f4eff6;
    border: 1px solid #e2d7e7;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 720;
}

.cc-event-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    margin-top: 1.35rem;
}

.cc-event-actions .cc-event-cta {
    margin-top: 0;
}

.cc-event-text-link {
    color: #5a2c83;
    font-size: 0.84rem;
    font-weight: 760;
    text-decoration-color: #cdbed5;
    text-underline-offset: 0.2em;
}

.cc-event-callout,
.cc-event-edition {
    display: flex;
    max-width: 66rem;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    margin: clamp(2rem, 5vw, 3.5rem) auto clamp(3rem, 8vw, 6rem);
    padding: clamp(1.5rem, 4vw, 2.75rem);
    background: linear-gradient(135deg, #f8f4fa 0%, #eee5f2 100%);
    border: 1px solid #ded1e4;
    border-radius: 1.05rem;
}

.cc-event-callout > div,
.cc-event-edition > div {
    max-width: 43rem;
}

.cc-event-callout h2,
.cc-event-edition h2 {
    font-size: clamp(1.65rem, 3vw, 2.35rem);
}

.cc-event-callout .cc-event-cta,
.cc-event-edition .cc-event-cta {
    flex: 0 0 auto;
    margin-top: 0;
}

.cc-event-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.95fr);
    gap: clamp(1.5rem, 5vw, 4rem);
    align-items: center;
    max-width: 68rem;
    margin: 0 auto clamp(3.5rem, 8vw, 6.5rem);
}

.cc-event-intro-grid .cc-event-copy {
    padding: 0;
}

.cc-event-highlights {
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.07);
    list-style: none;
}

.cc-event-highlights li {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin: 0;
    padding: 1.2rem 1.35rem;
}

.cc-event-highlights li + li {
    border-top: 1px solid #e9e1ec;
}

.cc-event-highlights strong {
    color: #5a2c83;
    font-size: 0.95rem;
}

.cc-event-highlights span {
    color: #6d6372;
    font-size: 0.85rem;
    line-height: 1.5;
}

.cc-event-video--wide {
    max-width: 68rem;
    margin: 0 auto;
    padding: 0;
}

.cc-event-video--wide .cc-event-section-heading {
    margin-top: 0;
}

.cc-event-video--wide .cc-event-video__frame {
    border-radius: 1.05rem;
    box-shadow: 0 1rem 2.4rem rgba(54, 33, 65, 0.13);
}

.cc-event-sete-page [data-position="cc-main-top-05"] {
    display: block;
    max-width: 72rem;
    margin-top: 0;
}

.cc-event-sete-page .cc-event-edition,
.cc-event-joigny-page .cc-event-edition {
    margin-top: clamp(2.5rem, 6vw, 4.5rem);
}

@media (max-width: 991.98px) {
    .cc-events-page [data-position="cc-main-top-02"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-event-intro-grid {
        grid-template-columns: 1fr;
    }

    .cc-event-highlights {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cc-event-highlights li + li {
        border-top: 0;
        border-left: 1px solid #e9e1ec;
    }
}

@media (max-width: 767.98px) {
    .cc-events-page .container-component,
    .cc-event-detail-page .container-component {
        padding-top: 1.2rem;
    }

    .cc-events-hero__media,
    .cc-event-hero__media {
        height: clamp(18rem, 68vw, 25rem);
        border-radius: 1rem;
    }

    .cc-events-hero__content,
    .cc-event-hero__content {
        width: calc(100% - 1.5rem);
        margin: -2.25rem auto 0;
        padding: 1.5rem;
        border-radius: 0.9rem;
    }

    .cc-events-hero h1,
    .cc-event-hero h1 {
        font-size: clamp(2.3rem, 12vw, 3.7rem);
    }

    .cc-events-heading,
    .cc-event-section-heading {
        margin-top: 3.25rem;
    }

    .cc-event-grand-choral-page :where(
        [data-position="cc-main-top-02"],
        [data-position="cc-main-top-03"],
        [data-position="cc-main-top-04"]
    ),
    .cc-event-spotlight {
        grid-template-columns: 1fr;
    }

    .cc-event-grand-choral-page #mod-custom309,
    .cc-event-grand-choral-page #mod-custom308 {
        order: -1;
    }

    .cc-event-photo,
    .cc-event-spotlight figure {
        min-height: 20rem;
    }

    .cc-event-spotlight figure img {
        object-fit: cover;
    }

    .cc-event-callout,
    .cc-event-edition {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .cc-events-page [data-position="cc-main-top-02"] {
        grid-template-columns: 1fr;
    }

    .cc-event-card {
        min-height: 28rem;
    }

    .cc-event-highlights {
        grid-template-columns: 1fr;
    }

    .cc-event-highlights li + li {
        border-top: 1px solid #e9e1ec;
        border-left: 0;
    }

    .cc-event-actions,
    .cc-event-actions .cc-event-cta,
    .cc-event-callout .cc-event-cta,
    .cc-event-edition .cc-event-cta {
        width: 100%;
    }
}

/* =========================================================
   Grand Choral — immersive night identity (this page only)
   ========================================================= */
.cc-event-grand-choral-page {
    --gc-night: #0d0718;
    --gc-night-soft: #171027;
    --gc-panel: rgba(27, 17, 44, 0.92);
    --gc-panel-deep: rgba(20, 12, 34, 0.96);
    --gc-line: rgba(207, 180, 230, 0.2);
    --gc-text: #f7f2fb;
    --gc-muted: #cbbdd5;
    --gc-accent: #c795ed;
    --gc-warm: #ff9f72;
}

.cc-event-grand-choral-page .site-grid {
    position: relative;
    overflow: clip;
    background:
        radial-gradient(circle at 9% 18%, rgba(100, 56, 165, 0.28), transparent 27rem),
        radial-gradient(circle at 94% 54%, rgba(42, 92, 196, 0.18), transparent 31rem),
        radial-gradient(circle at 45% 98%, rgba(177, 64, 119, 0.16), transparent 35rem),
        linear-gradient(180deg, #10091d 0%, var(--gc-night) 44%, #12091d 100%);
}

.cc-event-grand-choral-page .container-component {
    position: relative;
    width: 100%;
    max-width: none;
    padding-top: clamp(1.25rem, 3.5vw, 3rem);
    padding-bottom: clamp(3.5rem, 8vw, 7rem);
}

.cc-event-grand-choral-page .container-component::before {
    position: absolute;
    z-index: 0;
    top: -8rem;
    left: 50%;
    width: min(92rem, 115vw);
    height: 36rem;
    background:
        linear-gradient(112deg, transparent 24%, rgba(142, 106, 215, 0.09) 43%, transparent 57%),
        linear-gradient(72deg, transparent 31%, rgba(71, 133, 235, 0.08) 48%, transparent 62%);
    content: "";
    pointer-events: none;
    transform: translateX(-50%);
}

.cc-event-grand-choral-page .cc-module-row {
    position: relative;
    z-index: 1;
    width: min(calc(100% - clamp(2rem, 7vw, 7rem)), 82rem);
    margin-inline: auto;
}

.cc-event-grand-choral-page [data-position="cc-main-top-01"] {
    width: min(calc(100% - clamp(1.25rem, 4vw, 4rem)), 92rem);
    max-width: 92rem;
}

/* Hero: the visitor enters the venue before reading the story. */
.cc-event-grand-choral-page .cc-event-hero {
    margin-bottom: clamp(4rem, 9vw, 7.5rem);
}

.cc-event-grand-choral-page .cc-gc-hero {
    overflow: hidden;
    border: 1px solid rgba(231, 215, 244, 0.22);
    border-radius: clamp(1.15rem, 2.5vw, 2rem);
    box-shadow: 0 2.2rem 6rem rgba(0, 0, 0, 0.48), 0 0 4rem rgba(99, 61, 169, 0.15);
    isolation: isolate;
}

.cc-event-grand-choral-page .cc-gc-hero::after {
    position: absolute;
    z-index: 2;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: inherit;
    box-shadow: inset 0 0 5rem rgba(17, 8, 29, 0.16);
    content: "";
    pointer-events: none;
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media {
    height: clamp(42rem, 67vw, 55rem);
    border-radius: 0;
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media::after {
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(10, 5, 20, 0.93) 0%, rgba(10, 5, 20, 0.64) 34%, rgba(10, 5, 20, 0.08) 72%),
        linear-gradient(180deg, rgba(7, 3, 16, 0.12) 35%, rgba(9, 4, 18, 0.96) 100%);
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media img {
    object-position: center 43%;
    transform: scale(1.012);
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__content {
    position: absolute;
    z-index: 3;
    inset: auto auto 0 0;
    width: min(61rem, calc(100% - 2rem));
    margin: 0;
    padding: clamp(2rem, 5vw, 4.75rem);
    color: var(--gc-text);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-eyebrow {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    margin-bottom: 1rem;
    color: #eadcf5;
    font-size: 0.76rem;
    letter-spacing: 0.19em;
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-eyebrow::before {
    width: 2.4rem;
    height: 1px;
    background: linear-gradient(90deg, var(--gc-warm), var(--gc-accent));
    content: "";
}

.cc-event-grand-choral-page .cc-gc-hero h1 {
    max-width: 12ch;
    margin-bottom: 1.15rem;
    color: #ffffff;
    font-size: clamp(4rem, 9.2vw, 8.4rem);
    font-weight: 870;
    letter-spacing: -0.07em;
    line-height: 0.82;
    text-shadow: 0 0.16em 0.6em rgba(14, 4, 30, 0.5);
}

.cc-event-grand-choral-page .cc-gc-hero .cc-gc-hero__lead {
    max-width: 39rem;
    color: #eee6f4;
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.6;
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-actions {
    gap: 1.1rem;
    margin-top: 1.55rem;
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-cta {
    margin-top: 0;
    padding-inline: 1.3rem;
    color: #190d26;
    background: linear-gradient(115deg, #f4d8ff, #c99df1 56%, #ffac86);
    border-color: transparent;
    box-shadow: 0 0.8rem 2rem rgba(131, 76, 189, 0.34);
}

.cc-event-grand-choral-page .cc-gc-hero .cc-event-cta:hover,
.cc-event-grand-choral-page .cc-gc-hero .cc-event-cta:focus-visible {
    color: #190d26;
    background: linear-gradient(115deg, #ffffff, #ddbcf8 56%, #ffc5a9);
    border-color: transparent;
    box-shadow: 0 1rem 2.3rem rgba(142, 89, 199, 0.42);
}

.cc-event-grand-choral-page .cc-gc-hero__anchor {
    display: inline-flex;
    min-height: 2.8rem;
    gap: 0.6rem;
    align-items: center;
    color: #f1e8f7;
    font-size: 0.86rem;
    font-weight: 760;
    text-decoration: none;
}

.cc-event-grand-choral-page .cc-gc-hero__anchor:hover,
.cc-event-grand-choral-page .cc-gc-hero__anchor:focus-visible {
    color: #ffffff;
    text-decoration: underline;
    text-decoration-color: var(--gc-accent);
    text-underline-offset: 0.25em;
}

.cc-event-grand-choral-page .cc-gc-hero__facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(54rem, 100%);
    margin: clamp(1.8rem, 4vw, 3rem) 0 0;
    padding: 0.85rem 0;
    overflow: hidden;
    background: rgba(16, 8, 29, 0.54);
    border: 1px solid rgba(233, 218, 245, 0.18);
    border-radius: 1rem;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
    list-style: none;
    backdrop-filter: blur(13px);
}

.cc-event-grand-choral-page .cc-gc-hero__facts li {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.15rem;
    justify-content: center;
    margin: 0;
    padding: 0.2rem 1rem;
}

.cc-event-grand-choral-page .cc-gc-hero__facts li + li {
    border-left: 1px solid rgba(235, 220, 246, 0.16);
}

.cc-event-grand-choral-page .cc-gc-hero__facts strong {
    color: #ffffff;
    font-size: clamp(0.95rem, 1.8vw, 1.17rem);
    font-weight: 820;
    line-height: 1.15;
}

.cc-event-grand-choral-page .cc-gc-hero__facts span {
    color: #cdbfd7;
    font-size: 0.7rem;
    line-height: 1.3;
}

/* Story panels: alternation between stage and backstage. */
.cc-event-grand-choral-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"]
) {
    width: min(calc(100% - clamp(2rem, 7vw, 7rem)), 80rem);
    background: linear-gradient(135deg, var(--gc-panel) 0%, var(--gc-panel-deep) 100%);
    border-color: var(--gc-line);
    border-radius: clamp(1rem, 2vw, 1.55rem);
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.28), inset 0 1px rgba(255, 255, 255, 0.025);
}

.cc-event-grand-choral-page [data-position="cc-main-top-03"] {
    margin-top: clamp(1.5rem, 4vw, 3rem);
}

.cc-event-grand-choral-page .cc-event-copy {
    scroll-margin-top: 2rem;
    padding: clamp(2rem, 5vw, 4.25rem);
}

.cc-event-grand-choral-page :where(.cc-event-copy, .cc-event-video) .cc-event-eyebrow {
    color: var(--gc-accent);
}

.cc-event-grand-choral-page :where(.cc-event-copy, .cc-event-video) h2 {
    color: var(--gc-text);
    font-size: clamp(2rem, 4.2vw, 3.45rem);
}

.cc-event-grand-choral-page .cc-event-copy > p:not(.cc-event-eyebrow) {
    color: var(--gc-muted);
    font-size: clamp(0.98rem, 1.4vw, 1.08rem);
}

.cc-event-grand-choral-page .cc-event-photo {
    min-height: 34rem;
    background: #171025;
}

.cc-event-grand-choral-page .cc-event-photo::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(12, 6, 23, 0.35));
    content: "";
    pointer-events: none;
}

.cc-event-grand-choral-page .cc-event-photo img {
    transition: transform 0.8s ease;
}

.cc-event-grand-choral-page :where(
    [data-position="cc-main-top-02"],
    [data-position="cc-main-top-03"]
):hover .cc-event-photo img {
    transform: scale(1.018);
}

/* Film and history close the page like an encore. */
.cc-event-grand-choral-page [data-position="cc-main-top-04"] {
    width: min(calc(100% - clamp(2rem, 7vw, 7rem)), 82rem);
    grid-template-columns: minmax(0, 1.18fr) minmax(20rem, 0.82fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    margin-top: clamp(4rem, 9vw, 7rem);
    margin-bottom: 0;
}

.cc-event-grand-choral-page [data-position="cc-main-top-04"] > .no-card {
    background: linear-gradient(145deg, rgba(29, 17, 47, 0.96), rgba(17, 10, 29, 0.96));
    border-color: var(--gc-line);
    border-radius: clamp(1rem, 2vw, 1.4rem);
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.25), inset 0 1px rgba(255, 255, 255, 0.025);
}

.cc-event-grand-choral-page .cc-event-video {
    padding: clamp(1.6rem, 3.2vw, 2.5rem);
}

.cc-event-grand-choral-page .cc-event-video__frame {
    background: #08040f;
    border: 1px solid rgba(220, 194, 239, 0.16);
    border-radius: 1rem;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.38), 0 0 2rem rgba(101, 54, 159, 0.12);
}

.cc-event-grand-choral-page .cc-event-copy--history {
    justify-content: center;
}

.cc-event-grand-choral-page .cc-event-copy--history .cc-event-cta--outline {
    color: #f0e6f6;
    border-color: rgba(219, 194, 237, 0.42);
}

.cc-event-grand-choral-page .cc-event-copy--history .cc-event-cta--outline:hover,
.cc-event-grand-choral-page .cc-event-copy--history .cc-event-cta--outline:focus-visible {
    color: #160b22;
    background: #d8b1f4;
    border-color: #d8b1f4;
}

/* The only annually refreshed block: everything current lives here. */
.cc-event-grand-choral-page .cc-gc-current {
    position: relative;
    margin-bottom: clamp(4.5rem, 10vw, 8rem);
    overflow: hidden;
    background: #08070c;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: clamp(1.1rem, 2.5vw, 1.85rem);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.42), 0 0 4rem rgba(238, 36, 203, 0.08);
}

.cc-event-grand-choral-page .cc-gc-current__visual {
    position: relative;
    margin: 0;
    overflow: hidden;
    background: #050507;
    aspect-ratio: 2.96 / 1;
}

.cc-event-grand-choral-page .cc-gc-current__visual::after {
    position: absolute;
    inset: auto 0 0;
    height: 42%;
    background: linear-gradient(180deg, transparent, rgba(8, 7, 12, 0.72));
    content: "";
    pointer-events: none;
}

.cc-event-grand-choral-page .cc-gc-current__visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-event-grand-choral-page .cc-gc-current__content {
    display: grid;
    grid-template-columns: minmax(18rem, 0.75fr) minmax(0, 1.25fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
    padding: clamp(2rem, 5vw, 4.5rem);
    background:
        radial-gradient(circle at 11% 12%, rgba(241, 30, 211, 0.12), transparent 19rem),
        linear-gradient(135deg, #0a0910, #111018);
}

.cc-event-grand-choral-page .cc-gc-current__heading h2 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.8rem, 6vw, 5.8rem);
    font-weight: 880;
    letter-spacing: -0.07em;
    line-height: 0.85;
}

.cc-event-grand-choral-page .cc-gc-current__heading h2 span {
    display: block;
    margin-bottom: 0.65rem;
    color: #ff2bd6;
    font-size: 0.24em;
    font-weight: 850;
    letter-spacing: 0.2em;
    line-height: 1;
}

.cc-event-grand-choral-page .cc-gc-current__story > p {
    max-width: 46rem;
    margin: 0;
    color: #dfd9e3;
    font-size: clamp(1rem, 1.6vw, 1.15rem);
    line-height: 1.7;
}

.cc-event-grand-choral-page .cc-gc-current__story > p strong {
    color: #ffffff;
}

.cc-event-grand-choral-page .cc-gc-current__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 2rem 0 0;
    padding: 1.1rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
    list-style: none;
}

.cc-event-grand-choral-page .cc-gc-current__facts li {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.25rem;
    margin: 0;
    padding: 0 1rem;
}

.cc-event-grand-choral-page .cc-gc-current__facts li:first-child {
    padding-left: 0;
}

.cc-event-grand-choral-page .cc-gc-current__facts li + li {
    border-left: 1px solid rgba(255, 255, 255, 0.13);
}

.cc-event-grand-choral-page .cc-gc-current__facts span {
    color: #bcb2c1;
    font-size: 0.67rem;
    font-weight: 760;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.cc-event-grand-choral-page .cc-gc-current__facts strong {
    overflow-wrap: anywhere;
    color: #ffffff;
    font-size: 0.88rem;
    line-height: 1.35;
}

.cc-event-grand-choral-page .cc-gc-current .cc-event-actions {
    margin-top: 1.7rem;
}

.cc-event-grand-choral-page .cc-gc-current .cc-event-cta {
    margin-top: 0;
    color: #0d0813;
    background: linear-gradient(110deg, #ffdd42, #ff9a25);
    border-color: transparent;
    box-shadow: 0 0.8rem 2rem rgba(255, 164, 36, 0.18);
}

.cc-event-grand-choral-page .cc-gc-current .cc-event-cta:hover,
.cc-event-grand-choral-page .cc-gc-current .cc-event-cta:focus-visible {
    color: #0d0813;
    background: linear-gradient(110deg, #ffe86f, #ffb14f);
    border-color: transparent;
}

.cc-event-grand-choral-page .cc-gc-current__document {
    display: inline-flex;
    min-height: 2.8rem;
    gap: 0.55rem;
    align-items: center;
    color: #f6eef8;
    font-size: 0.84rem;
    font-weight: 760;
    text-decoration-color: rgba(255, 255, 255, 0.35);
    text-underline-offset: 0.25em;
}

.cc-event-grand-choral-page .cc-gc-current__document:hover,
.cc-event-grand-choral-page .cc-gc-current__document:focus-visible {
    color: #ffdc53;
}

/* Closing scale piece: the page ends on the size of the event. */
.cc-event-grand-choral-page [data-position="cc-main-top-05"] {
    display: block;
    width: min(calc(100% - clamp(1.25rem, 4vw, 4rem)), 92rem);
    max-width: 92rem;
    margin-top: clamp(5rem, 11vw, 9rem);
}

.cc-event-grand-choral-page [data-position="cc-main-top-05"] > .no-card {
    min-width: 0;
}

.cc-event-grand-choral-page .cc-gc-finale {
    position: relative;
    padding: clamp(1.5rem, 4vw, 3.5rem) 0 0;
    overflow: hidden;
}

.cc-event-grand-choral-page .cc-gc-finale::before {
    position: absolute;
    z-index: -1;
    top: -0.13em;
    right: -0.02em;
    color: rgba(211, 176, 239, 0.055);
    content: "900 VOIX";
    font-size: clamp(5rem, 15vw, 14rem);
    font-weight: 900;
    letter-spacing: -0.08em;
    line-height: 0.8;
    white-space: nowrap;
}

.cc-event-grand-choral-page .cc-gc-finale__intro {
    position: relative;
    z-index: 1;
    max-width: 64rem;
    margin: 0 auto clamp(2.5rem, 6vw, 4.5rem);
    padding-inline: clamp(0.75rem, 4vw, 3rem);
    text-align: center;
}

.cc-event-grand-choral-page .cc-gc-finale__intro .cc-event-eyebrow {
    color: var(--gc-accent);
}

.cc-event-grand-choral-page .cc-gc-finale__intro h2 {
    margin: 0 0 1.35rem;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 6.9rem);
    font-weight: 880;
    letter-spacing: -0.07em;
    line-height: 0.88;
}

.cc-event-grand-choral-page .cc-gc-finale__intro h2 span {
    color: #cfa1f2;
}

.cc-event-grand-choral-page .cc-gc-finale__intro > p:not(.cc-event-eyebrow) {
    max-width: 47rem;
    margin: 0 auto;
    color: #cfc3d7;
    font-size: clamp(1rem, 1.7vw, 1.18rem);
    line-height: 1.72;
}

.cc-event-grand-choral-page .cc-gc-finale__gallery {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(18rem, 0.75fr);
    grid-template-rows: repeat(2, clamp(15rem, 25vw, 23rem));
    gap: clamp(0.65rem, 1.5vw, 1.2rem);
}

.cc-event-grand-choral-page .cc-gc-finale__photo {
    position: relative;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background: #170e25;
    border: 1px solid rgba(230, 207, 246, 0.18);
    border-radius: clamp(0.75rem, 1.5vw, 1.25rem);
}

.cc-event-grand-choral-page .cc-gc-finale__photo::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 67%, rgba(10, 5, 18, 0.35));
    content: "";
    pointer-events: none;
}

.cc-event-grand-choral-page .cc-gc-finale__photo--wide {
    grid-row: 1 / -1;
}

.cc-event-grand-choral-page .cc-gc-finale__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s cubic-bezier(0.2, 0.65, 0.25, 1);
}

.cc-event-grand-choral-page .cc-gc-finale__photo--wide img {
    object-position: center;
}

.cc-event-grand-choral-page .cc-gc-finale__photo:hover img {
    transform: scale(1.025);
}

.cc-event-grand-choral-page .cc-gc-finale__signature {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    align-items: center;
    justify-content: center;
    margin: clamp(2rem, 5vw, 3.5rem) 0 0;
    color: #ab97b8;
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cc-event-grand-choral-page .cc-gc-finale__signature span + span::before {
    margin-right: 1.5rem;
    color: #a980c1;
    content: "✦";
}

@media (max-width: 991.98px) {
    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media {
        height: clamp(40rem, 86vw, 49rem);
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media::after {
        background:
            linear-gradient(90deg, rgba(10, 5, 20, 0.84) 0%, rgba(10, 5, 20, 0.4) 58%, rgba(10, 5, 20, 0.06) 100%),
            linear-gradient(180deg, rgba(7, 3, 16, 0.08) 27%, rgba(9, 4, 18, 0.97) 100%);
    }

    .cc-event-grand-choral-page .cc-gc-hero h1 {
        font-size: clamp(4rem, 12vw, 6.5rem);
    }

    .cc-event-grand-choral-page [data-position="cc-main-top-04"] {
        grid-template-columns: 1fr;
    }

    .cc-event-grand-choral-page .cc-gc-current__content {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .cc-event-grand-choral-page .cc-gc-finale__gallery {
        grid-template-columns: minmax(0, 1.25fr) minmax(14rem, 0.75fr);
    }
}

@media (max-width: 767.98px) {
    .cc-event-grand-choral-page .container-component {
        padding-top: 0.75rem;
        padding-bottom: 4rem;
    }

    .cc-event-grand-choral-page .cc-module-row,
    .cc-event-grand-choral-page [data-position="cc-main-top-01"],
    .cc-event-grand-choral-page :where(
        [data-position="cc-main-top-02"],
        [data-position="cc-main-top-03"],
        [data-position="cc-main-top-04"],
        [data-position="cc-main-top-05"]
    ) {
        width: calc(100% - 1.25rem);
    }

    .cc-event-grand-choral-page .cc-gc-hero {
        border-radius: 1.15rem;
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media {
        height: clamp(38rem, 142vw, 46rem);
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media img {
        object-position: 58% center;
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media::after {
        background:
            linear-gradient(180deg, rgba(8, 4, 17, 0.03) 16%, rgba(9, 4, 18, 0.3) 40%, rgba(9, 4, 18, 0.98) 83%),
            linear-gradient(90deg, rgba(10, 5, 20, 0.42), transparent 75%);
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__content {
        inset: auto 0 0;
        width: 100%;
        margin: 0;
        padding: 1.35rem;
    }

    .cc-event-grand-choral-page .cc-gc-hero h1 {
        margin-bottom: 0.8rem;
        font-size: clamp(3.35rem, 17vw, 5.2rem);
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-gc-hero__lead {
        font-size: 0.96rem;
        line-height: 1.5;
    }

    .cc-event-grand-choral-page .cc-gc-hero__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 1.35rem;
        padding: 0;
    }

    .cc-event-grand-choral-page .cc-gc-hero__facts li {
        min-height: 4.25rem;
        padding: 0.65rem 0.8rem;
    }

    .cc-event-grand-choral-page .cc-gc-hero__facts li + li {
        border-left: 0;
    }

    .cc-event-grand-choral-page .cc-gc-hero__facts li:nth-child(even) {
        border-left: 1px solid rgba(235, 220, 246, 0.16);
    }

    .cc-event-grand-choral-page .cc-gc-hero__facts li:nth-child(n + 3) {
        border-top: 1px solid rgba(235, 220, 246, 0.16);
    }

    .cc-event-grand-choral-page :where(
        [data-position="cc-main-top-02"],
        [data-position="cc-main-top-03"]
    ) {
        border-radius: 1rem;
    }

    .cc-event-grand-choral-page .cc-event-copy {
        padding: 1.65rem;
    }

    .cc-event-grand-choral-page .cc-event-photo {
        min-height: clamp(19rem, 72vw, 27rem);
    }

    .cc-event-grand-choral-page .cc-gc-current {
        border-radius: 1rem;
    }

    .cc-event-grand-choral-page .cc-gc-current__visual {
        min-height: 18rem;
        aspect-ratio: auto;
    }

    .cc-event-grand-choral-page .cc-gc-current__visual img {
        object-position: center;
    }

    .cc-event-grand-choral-page .cc-gc-current__content {
        padding: 1.65rem;
    }

    .cc-event-grand-choral-page .cc-gc-current__heading h2 {
        font-size: clamp(3rem, 16vw, 4.6rem);
    }

    .cc-event-grand-choral-page .cc-gc-current__facts {
        grid-template-columns: 1fr;
        padding-block: 0.35rem;
    }

    .cc-event-grand-choral-page .cc-gc-current__facts li,
    .cc-event-grand-choral-page .cc-gc-current__facts li:first-child {
        padding: 0.75rem 0;
    }

    .cc-event-grand-choral-page .cc-gc-current__facts li + li {
        border-top: 1px solid rgba(255, 255, 255, 0.13);
        border-left: 0;
    }

    .cc-event-grand-choral-page .cc-gc-finale__intro {
        text-align: left;
    }

    .cc-event-grand-choral-page .cc-gc-finale__intro > p:not(.cc-event-eyebrow) {
        margin-left: 0;
    }

    .cc-event-grand-choral-page .cc-gc-finale__gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: minmax(20rem, 75vw) minmax(13rem, 48vw);
    }

    .cc-event-grand-choral-page .cc-gc-finale__photo--wide {
        grid-column: 1 / -1;
        grid-row: auto;
    }
}

@media (max-width: 430px) {
    .cc-event-grand-choral-page .cc-gc-hero .cc-event-hero__media {
        height: 43rem;
    }

    .cc-event-grand-choral-page .cc-gc-hero .cc-event-actions {
        align-items: flex-start;
    }

    .cc-event-grand-choral-page .cc-gc-hero__anchor {
        min-height: 2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-event-grand-choral-page :where(.cc-event-photo, .cc-gc-finale__photo) img {
        transition: none;
    }
}

/* Complete Rendez-vous chantants agenda */
.cc-event-section-heading--agenda {
    max-width: 52rem;
}

.cc-rendezvous-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
    max-width: 72rem;
    margin: 0 auto;
}

.cc-rendezvous-card {
    display: flex;
    min-width: 0;
    min-height: 34rem;
    flex-direction: column;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e3dae7;
    border-radius: 1.05rem;
    box-shadow: 0 0.75rem 2rem rgba(54, 33, 65, 0.07);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-rendezvous-card:hover {
    border-color: #cdbed5;
    box-shadow: 0 1.1rem 2.5rem rgba(54, 33, 65, 0.13);
    transform: translateY(-4px);
}

.cc-rendezvous-card figure {
    height: 13rem;
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-rendezvous-card figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.cc-rendezvous-card:hover figure img {
    transform: scale(1.035);
}

.cc-rendezvous-card .cc-rendezvous-card__logo {
    padding: 1.4rem;
    background: #f8faf9;
}

.cc-rendezvous-card .cc-rendezvous-card__logo img {
    object-fit: contain;
}

.cc-rendezvous-card:hover .cc-rendezvous-card__logo img {
    transform: none;
}

.cc-rendezvous-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.35rem;
}

.cc-rendezvous-status {
    display: inline-flex;
    margin: 0 0 1rem;
    padding: 0.38rem 0.62rem;
    color: #5a2c83;
    background: #f1eaf4;
    border: 1px solid #decfe5;
    border-radius: 999px;
    font-size: 0.63rem;
    font-weight: 850;
    letter-spacing: 0.075em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-rendezvous-status--open {
    color: #28634f;
    background: #eaf5f0;
    border-color: #c9e2d7;
}

.cc-rendezvous-status--current {
    color: #8a4f18;
    background: #fff3e5;
    border-color: #f0d6b8;
}

.cc-rendezvous-status--closed {
    color: #6f6474;
    background: #f2eff3;
    border-color: #ded7e1;
}

.cc-rendezvous-status--past {
    color: #665d69;
    background: #efedf0;
    border-color: #d9d3dc;
}

.cc-rendezvous-status--soon {
    color: #755929;
    background: #faf5e8;
    border-color: #e8dbb9;
}

.cc-rendezvous-card .cc-event-date {
    margin-bottom: 0.35rem;
}

.cc-rendezvous-card.is-past {
    background: #fcfbfc;
    border-color: #ded9e0;
}

.cc-rendezvous-card.is-past figure img {
    filter: saturate(0.72) contrast(0.96);
}

.cc-rendezvous-card .cc-event-location {
    margin-bottom: 0.75rem;
    color: #716675;
}

.cc-rendezvous-card h3 {
    margin: 0 0 0.55rem;
    color: #5a2c83;
    font-size: 1.45rem;
    font-weight: 830;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.cc-rendezvous-card__theme {
    margin: 0;
    color: #514758;
    font-size: 0.9rem;
    font-weight: 730;
    line-height: 1.45;
}

.cc-rendezvous-card__team {
    margin: 0.65rem 0 0;
    color: #746a78;
    font-size: 0.8rem;
    line-height: 1.52;
}

.cc-rendezvous-card__summary {
    margin: 0.75rem 0 0;
    color: #625769;
    font-size: 0.88rem;
    line-height: 1.55;
}

.cc-rendezvous-card__contact {
    color: #5a2c83;
    font-size: 0.8rem;
    font-weight: 720;
    text-decoration-color: #cdbed5;
    text-underline-offset: 0.2em;
}

.cc-rendezvous-card__contact:hover,
.cc-rendezvous-card__contact:focus-visible {
    color: #442063;
}

.cc-rendezvous-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1.45rem;
}

.cc-rendezvous-jump a {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    padding: 0.55rem 0.9rem;
    color: #5a2c83;
    background: #f7f2fa;
    border: 1px solid #decfe5;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.2;
    text-decoration: none;
}

.cc-rendezvous-jump a:hover,
.cc-rendezvous-jump a:focus-visible {
    color: #fff;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-rendezvous-section,
.cc-rendezvous-network {
    scroll-margin-top: 5rem;
}

.cc-rendezvous-network {
    max-width: 72rem;
    margin: clamp(3.5rem, 7vw, 6rem) auto 0;
    padding-top: clamp(2rem, 5vw, 3.5rem);
    border-top: 1px solid #e3dae7;
}

.cc-rendezvous-network__intro {
    display: flex;
    gap: 1.25rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.cc-rendezvous-network__intro h2 {
    margin: 0 0 0.65rem;
    color: #5a2c83;
    font-size: clamp(1.9rem, 3.7vw, 3rem);
    font-weight: 840;
    letter-spacing: -0.045em;
    line-height: 1.08;
}

.cc-rendezvous-network__intro p:last-child {
    max-width: 43rem;
    margin: 0;
    color: #6d6372;
    line-height: 1.6;
}

.cc-rendezvous-network__intro .cc-event-cta {
    flex: 0 0 auto;
    margin: 0;
}

.cc-rendezvous-grid--members {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cc-rendezvous-grid--members .cc-rendezvous-card:only-child {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    min-height: 0;
}

.cc-rendezvous-grid--members .cc-rendezvous-card:only-child figure {
    height: 100%;
    min-height: 20rem;
}

.cc-rendezvous-network .cc-event-callout {
    max-width: none;
    margin-bottom: 0;
}

.cc-rendezvous-card__link,
.cc-rendezvous-card__pending {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    margin-top: auto;
    padding-top: 1.25rem;
    color: #5a2c83;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-rendezvous-card__link:hover,
.cc-rendezvous-card__link:focus-visible {
    color: #442063;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.cc-rendezvous-card__pending {
    color: #8b818f;
}

.cc-rendezvous-grid + .cc-event-callout {
    margin-top: clamp(2.5rem, 6vw, 4.5rem);
}

/* Native, provider-independent calendar actions. */
.cc-rendezvous-card__actions {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 0.65rem;
    align-items: flex-start;
    margin-top: auto;
    padding-top: 1.25rem;
}

.cc-rendezvous-card__actions .cc-rendezvous-card__link,
.cc-rendezvous-card__actions .cc-rendezvous-card__pending {
    margin-top: 0;
    padding-top: 0;
}

.cc-calendar-menu {
    position: relative;
    z-index: 2;
    width: 100%;
}

.cc-calendar-menu[open] {
    z-index: 8;
}

.cc-calendar-menu summary {
    display: inline-flex;
    gap: 0.55rem;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 0.9rem;
    color: #ffffff;
    background: #5a2c83;
    border: 1px solid #5a2c83;
    border-radius: 999px;
    box-shadow: 0 0.55rem 1.1rem rgba(63, 30, 85, 0.14);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 820;
    line-height: 1.2;
    list-style: none;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-calendar-menu summary::-webkit-details-marker {
    display: none;
}

.cc-calendar-menu summary::after {
    width: 0.42rem;
    height: 0.42rem;
    margin-left: 0.1rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: translateY(-0.12rem) rotate(45deg);
    transition: transform 0.2s ease;
}

.cc-calendar-menu[open] summary::after {
    transform: translateY(0.12rem) rotate(225deg);
}

.cc-calendar-menu summary:hover,
.cc-calendar-menu summary:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
    box-shadow: 0 0.75rem 1.4rem rgba(63, 30, 85, 0.22);
    outline: none;
    transform: translateY(-1px);
}

.cc-calendar-menu__panel {
    position: absolute;
    bottom: calc(100% + 0.6rem);
    left: 0;
    display: grid;
    width: min(18rem, calc(100vw - 3rem));
    overflow: hidden;
    padding: 0.45rem;
    background: #ffffff;
    border: 1px solid #ded2e4;
    border-radius: 0.9rem;
    box-shadow: 0 1rem 2.25rem rgba(42, 23, 52, 0.2);
}

.cc-calendar-menu__panel a {
    display: grid;
    grid-template-columns: 1.7rem minmax(0, 1fr);
    gap: 0.65rem;
    align-items: center;
    padding: 0.68rem 0.72rem;
    color: #3f1e55;
    border-radius: 0.62rem;
    text-decoration: none;
}

.cc-calendar-menu__panel a:hover,
.cc-calendar-menu__panel a:focus-visible {
    color: #3f1e55;
    background: #f4eef7;
    outline: none;
    text-decoration: none;
}

.cc-calendar-menu__panel > a > span:first-child {
    color: #6d3d8d;
    font-size: 1rem;
    text-align: center;
}

.cc-calendar-menu__panel strong,
.cc-calendar-menu__panel small {
    display: block;
}

.cc-calendar-menu__panel strong {
    font-size: 0.78rem;
    line-height: 1.25;
}

.cc-calendar-menu__panel small {
    margin-top: 0.12rem;
    color: #776c7b;
    font-size: 0.68rem;
    line-height: 1.25;
}

@media (max-width: 575.98px) {
    .cc-calendar-menu summary {
        width: 100%;
    }

    .cc-calendar-menu__panel {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-calendar-menu summary,
    .cc-calendar-menu summary::after {
        transition: none;
    }
}

/* Grand Choral: a compact echo of the event's immersive night identity. */
.cc-rendezvous-card--grand-choral {
    color: #f7f2fb;
    background:
        radial-gradient(circle at 92% 78%, rgba(177, 64, 119, 0.2), transparent 13rem),
        radial-gradient(circle at 8% 12%, rgba(100, 56, 165, 0.28), transparent 15rem),
        linear-gradient(150deg, #10091d 0%, #171027 58%, #0d0718 100%);
    border-color: rgba(207, 180, 230, 0.28);
    box-shadow: 0 1rem 2.6rem rgba(20, 8, 32, 0.25), 0 0 2rem rgba(99, 61, 169, 0.08);
}

.cc-rendezvous-card--grand-choral:hover {
    border-color: rgba(220, 190, 242, 0.46);
    box-shadow: 0 1.3rem 3rem rgba(20, 8, 32, 0.34), 0 0 2.4rem rgba(118, 70, 178, 0.16);
}

.cc-rendezvous-card--grand-choral figure {
    position: relative;
    background: #08040f;
}

.cc-rendezvous-card--grand-choral figure::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(13, 7, 24, 0.72));
    content: "";
    pointer-events: none;
}

.cc-rendezvous-card--grand-choral .cc-rendezvous-status--closed {
    color: #f1e7f8;
    background: rgba(199, 149, 237, 0.12);
    border-color: rgba(218, 186, 242, 0.3);
}

.cc-rendezvous-card--grand-choral .cc-event-date {
    color: #d9b5f3;
}

.cc-rendezvous-card--grand-choral .cc-event-location {
    color: #cbbdd5;
}

.cc-rendezvous-card--grand-choral h3 {
    color: #ffffff;
    text-shadow: 0 0.25rem 1rem rgba(7, 2, 14, 0.42);
}

.cc-rendezvous-card--grand-choral .cc-rendezvous-card__theme {
    color: #f2eaf7;
}

.cc-rendezvous-card--grand-choral .cc-rendezvous-card__team {
    color: #cbbdd5;
}

.cc-rendezvous-card--grand-choral .cc-calendar-menu summary {
    color: #190d26;
    background: linear-gradient(115deg, #f4d8ff, #c99df1 56%, #ffac86);
    border-color: transparent;
    box-shadow: 0 0.75rem 1.7rem rgba(131, 76, 189, 0.28);
}

.cc-rendezvous-card--grand-choral .cc-calendar-menu summary:hover,
.cc-rendezvous-card--grand-choral .cc-calendar-menu summary:focus-visible {
    color: #190d26;
    background: linear-gradient(115deg, #ffffff, #ddbcf8 56%, #ffc5a9);
    border-color: transparent;
    box-shadow: 0 0.9rem 2rem rgba(142, 89, 199, 0.38);
}

.cc-rendezvous-card--grand-choral .cc-rendezvous-card__link {
    color: #f1dffb;
    text-decoration-color: #c795ed;
}

.cc-rendezvous-card--grand-choral .cc-rendezvous-card__link:hover,
.cc-rendezvous-card--grand-choral .cc-rendezvous-card__link:focus-visible {
    color: #ffffff;
}

@media (max-width: 991.98px) {
    .cc-rendezvous-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .cc-rendezvous-network__intro {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-rendezvous-grid--members .cc-rendezvous-card:only-child {
        display: flex;
    }

    .cc-rendezvous-grid--members .cc-rendezvous-card:only-child figure {
        height: 13rem;
        min-height: 0;
    }
}

@media (max-width: 575.98px) {
    .cc-rendezvous-grid {
        grid-template-columns: 1fr;
    }

    .cc-rendezvous-card {
        min-height: 31rem;
    }
}

/* =========================================================
   Formations — pedagogical paths and editorial subpages
   ========================================================= */
.cc-training-page .container-component > .mod-breadcrumbs__wrapper,
.cc-training-detail-page .container-component > .mod-breadcrumbs__wrapper,
.cc-training-scholarship-page .container-component > .mod-breadcrumbs__wrapper,
.cc-training-page .container-component > main,
.cc-training-detail-page .container-component > main {
    display: none;
}

.cc-training-page .container-banner,
.cc-training-detail-page .container-banner,
.cc-training-scholarship-page .container-banner {
    display: none;
}

.cc-training-page .container-component,
.cc-training-detail-page .container-component,
.cc-training-scholarship-page .container-component {
    padding-top: clamp(1.75rem, 4vw, 3.5rem);
}

.cc-training-page .cc-module-row,
.cc-training-detail-page .cc-module-row {
    width: min(100%, 74rem);
    margin-inline: auto;
}

.cc-training-page [data-position="cc-main-top-01"],
.cc-training-detail-page [data-position="cc-main-top-01"] {
    display: block;
    width: min(100%, 78rem);
    max-width: 78rem;
}

.cc-training-page [data-position="cc-main-top-01"] > .no-card,
.cc-training-detail-page [data-position="cc-main-top-01"] > .no-card,
.cc-training-page [data-position^="cc-main-top-"] > .no-card,
.cc-training-detail-page [data-position^="cc-main-top-"] > .no-card {
    min-width: 0;
}

.cc-training-eyebrow {
    margin: 0 0 0.8rem;
    color: #ef765f;
    font-size: 0.73rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-training-cta {
    display: inline-flex;
    gap: 1.25rem;
    align-items: center;
    justify-content: space-between;
    min-height: 3.15rem;
    padding: 0.75rem 1.15rem 0.75rem 1.35rem;
    color: #ffffff;
    background: #5a2c83;
    border: 1px solid #5a2c83;
    border-radius: 999px;
    box-shadow: 0 0.7rem 1.4rem rgba(63, 30, 85, 0.15);
    font-size: 0.84rem;
    font-weight: 820;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.cc-training-cta > span:last-child {
    font-size: 1.15em;
}

.cc-training-cta:hover,
.cc-training-cta:focus-visible {
    color: #ffffff;
    background: #442063;
    border-color: #442063;
    box-shadow: 0 0.9rem 1.8rem rgba(63, 30, 85, 0.22);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-training-cta--light {
    color: #3f1e55;
    background: #ffffff;
    border-color: rgba(255, 255, 255, 0.72);
    box-shadow: 0 0.8rem 1.8rem rgba(35, 15, 48, 0.22);
}

.cc-training-cta--light:hover,
.cc-training-cta--light:focus-visible {
    color: #3f1e55;
    background: #fff6f2;
    border-color: #fff6f2;
}

.cc-training-cta--outline {
    color: #5a2c83;
    background: transparent;
    border-color: #bca9c8;
    box-shadow: none;
}

.cc-training-cta--outline:hover,
.cc-training-cta--outline:focus-visible {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-training-heading {
    max-width: 48rem;
    margin: 0 auto clamp(1.8rem, 4vw, 3rem);
    text-align: center;
}

.cc-training-heading--left {
    margin-inline: 0;
    text-align: left;
}

.cc-training-heading h2 {
    margin: 0 0 0.85rem;
    color: #3f1e55;
    font-size: clamp(1.9rem, 4.2vw, 3.35rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-training-heading > p:not(.cc-training-eyebrow) {
    margin: 0;
    color: #665b6b;
    font-size: clamp(0.98rem, 1.7vw, 1.08rem);
    line-height: 1.7;
}

/* Landing hero: deliberately more workshop/notebook-like than Events. */
.cc-training-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(20rem, 0.98fr);
    min-height: 39rem;
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 12% 15%, rgba(239, 118, 95, 0.34), transparent 27%),
    linear-gradient(135deg, #3f1e55 0%, #5a2c83 68%, #69418a 100%);
    border-radius: 1.5rem;
    box-shadow: 0 1.25rem 3rem rgba(49, 23, 66, 0.2);
}

.cc-training-hero__content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(2rem, 5vw, 4.6rem);
}

.cc-training-hero__content::after {
    position: absolute;
    right: 2rem;
    bottom: 1.5rem;
    width: 5.5rem;
    height: 5.5rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    content: "";
}

.cc-training-hero .cc-training-eyebrow,
.cc-training-detail-hero .cc-training-eyebrow,
.cc-scholarship-hero .cc-training-eyebrow {
    color: #ffc3b6;
}

.cc-training-hero h1 {
    max-width: 10ch;
    margin: 0 0 1.3rem;
    color: #ffffff;
    font-size: clamp(2.85rem, 6.2vw, 5.6rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.9;
}

.cc-training-hero__content > p:not(.cc-training-eyebrow) {
    max-width: 37rem;
    margin: 0 0 1.65rem;
    color: rgba(255, 255, 255, 0.87);
    font-size: clamp(1rem, 1.8vw, 1.13rem);
    line-height: 1.68;
}

.cc-training-hero__markers {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0 0 1.8rem;
}

.cc-training-hero__markers span {
    padding: 0.48rem 0.76rem;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 780;
    letter-spacing: 0.04em;
}

.cc-training-hero__media {
    position: relative;
    min-height: 39rem;
    margin: 0;
    overflow: hidden;
}

.cc-training-hero__media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(63, 30, 85, 0.3), transparent 42%);
    content: "";
    pointer-events: none;
}

.cc-training-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cc-training-hero__media figcaption {
    position: absolute;
    z-index: 1;
    right: 1.5rem;
    bottom: 1.5rem;
    left: 1.5rem;
    display: grid;
    gap: 0.25rem;
    padding: 1.05rem 1.15rem;
    color: #3f1e55;
    background: rgba(255, 255, 255, 0.91);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 0.9rem;
    box-shadow: 0 0.8rem 2rem rgba(30, 13, 39, 0.18);
    backdrop-filter: blur(9px);
}

.cc-training-hero__media figcaption strong {
    font-size: 0.87rem;
    font-weight: 850;
}

.cc-training-hero__media figcaption span {
    color: #675a6c;
    font-size: 0.74rem;
    line-height: 1.45;
}

.cc-training-page [data-position="cc-main-top-01"] .cc-training-heading {
    margin-top: clamp(3.5rem, 8vw, 6rem);
}

.cc-training-page [data-position="cc-main-top-02"] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
    margin-bottom: clamp(3.5rem, 7vw, 5.5rem);
}

.cc-training-path {
    --path-accent: #ef765f;
    position: relative;
    display: grid;
    grid-template-rows: 15rem 1fr;
    min-width: 0;
    overflow: hidden;
    color: #4b4050;
    background: #ffffff;
    border: 1px solid #e3d9e7;
    border-radius: 1.25rem;
    box-shadow: 0 0.85rem 2rem rgba(54, 33, 65, 0.08);
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.cc-training-path--mint {
    --path-accent: #69b7a5;
}

.cc-training-path--gold {
    --path-accent: #e7ad4f;
}

.cc-training-path--plum {
    --path-accent: #8e6aa5;
}

.cc-training-path::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 0.32rem;
    background: var(--path-accent);
    content: "";
    transform: scaleX(0.18);
    transform-origin: left;
    transition: transform 0.35s ease;
}

.cc-training-path:hover,
.cc-training-path:focus-visible {
    color: #4b4050;
    border-color: #cdbed5;
    box-shadow: 0 1.25rem 2.8rem rgba(54, 33, 65, 0.14);
    text-decoration: none;
    transform: translateY(-5px);
}

.cc-training-path:hover::after,
.cc-training-path:focus-visible::after {
    transform: scaleX(1);
}

.cc-training-path figure {
    margin: 0;
    overflow: hidden;
    background: #eee8f1;
}

.cc-training-path figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.cc-training-path:hover figure img {
    transform: scale(1.035);
}

.cc-training-path__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 22rem;
    padding: clamp(1.35rem, 3vw, 2rem);
}

.cc-training-path__top {
    display: flex;
    width: 100%;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 1.1rem;
}

.cc-training-path__number {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    place-items: center;
    color: #ffffff;
    background: var(--path-accent);
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 900;
}

.cc-training-path__format {
    color: #817487;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-align: right;
    text-transform: uppercase;
}

.cc-training-path h2 {
    margin: 0 0 0.85rem;
    color: #3f1e55;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    font-weight: 850;
    letter-spacing: -0.04em;
    line-height: 1.06;
}

.cc-training-path__body > p {
    margin: 0 0 1.1rem;
    color: #665b6b;
    font-size: 0.91rem;
    line-height: 1.62;
}

.cc-training-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 1.25rem;
    padding: 0;
    list-style: none;
}

.cc-training-tags li {
    padding: 0.35rem 0.58rem;
    color: #5a2c83;
    background: #f4eef6;
    border-radius: 999px;
    font-size: 0.66rem;
    font-weight: 790;
}

.cc-training-path__link {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    margin-top: auto;
    color: #5a2c83;
    font-size: 0.82rem;
    font-weight: 850;
}

.cc-training-callout {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    padding: clamp(1.6rem, 4vw, 2.6rem);
    background: linear-gradient(135deg, #fbf7fc, #fff9f6);
    border: 1px solid #e1d5e5;
    border-radius: 1.2rem;
    box-shadow: 0 0.8rem 2rem rgba(54, 33, 65, 0.07);
}

.cc-training-callout h2 {
    margin: 0 0 0.65rem;
    color: #3f1e55;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 850;
    letter-spacing: -0.035em;
    line-height: 1.06;
}

.cc-training-callout p:not(.cc-training-eyebrow) {
    max-width: 43rem;
    margin: 0;
    color: #665b6b;
    line-height: 1.6;
}

.cc-training-page [data-position="cc-main-top-03"] {
    display: block;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

/* Detail-page hero. */
.cc-training-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.9fr);
    min-height: 35rem;
    overflow: hidden;
    color: #ffffff;
    background: linear-gradient(145deg, #3f1e55, #5a2c83);
    border-radius: 1.5rem;
    box-shadow: 0 1.2rem 2.8rem rgba(49, 23, 66, 0.18);
}

.cc-training-detail-hero--lalafab {
    background: linear-gradient(145deg, #4b214e, #7d354f 63%, #a14f55);
}

.cc-training-detail-hero--arrangement {
    background: linear-gradient(145deg, #204c48, #397f74 65%, #569d8f);
}

.cc-training-detail-hero__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.cc-training-detail-hero h1 {
    max-width: 10ch;
    margin: 0 0 1.15rem;
    color: #ffffff;
    font-size: clamp(2.65rem, 5.6vw, 5rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.92;
}

.cc-training-detail-hero__content > p:not(.cc-training-eyebrow) {
    max-width: 38rem;
    margin: 0 0 1.5rem;
    color: rgba(255, 255, 255, 0.87);
    font-size: clamp(1rem, 1.75vw, 1.1rem);
    line-height: 1.65;
}

.cc-training-detail-hero__media {
    position: relative;
    min-height: 35rem;
    margin: 0;
    overflow: hidden;
}

.cc-training-detail-hero__media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(63, 30, 85, 0.24), transparent 48%);
    content: "";
}

.cc-training-detail-hero--lalafab .cc-training-detail-hero__media::after {
    background: linear-gradient(90deg, rgba(75, 33, 78, 0.25), transparent 48%);
}

.cc-training-detail-hero--arrangement .cc-training-detail-hero__media::after {
    background: linear-gradient(90deg, rgba(32, 76, 72, 0.24), transparent 48%);
}

.cc-training-detail-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-training-detail-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin: 0 0 1.7rem;
}

.cc-training-detail-hero__facts span {
    display: grid;
    gap: 0.05rem;
    min-width: 6rem;
    padding: 0.6rem 0.8rem;
    color: rgba(255, 255, 255, 0.74);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.75rem;
    font-size: 0.69rem;
    font-weight: 750;
}

.cc-training-detail-hero__facts strong {
    color: #ffffff;
    font-size: 1.22rem;
    font-weight: 900;
    line-height: 1;
}

.cc-training-session-ticket {
    display: grid;
    gap: 0.18rem;
    margin: 0 0 1.6rem;
    padding: 0.9rem 1rem;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-left: 0.32rem solid #ffc3b6;
    border-radius: 0.2rem 0.8rem 0.8rem 0.2rem;
}

.cc-training-session-ticket span,
.cc-training-session-ticket small {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-training-session-ticket strong {
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 900;
}

.cc-training-detail-page [data-position="cc-main-top-02"],
.cc-training-detail-page [data-position="cc-main-top-03"],
.cc-training-detail-page [data-position="cc-main-top-04"] {
    display: block;
    margin-top: clamp(3.5rem, 8vw, 6rem);
}

.cc-training-detail-page [data-position="cc-main-top-04"] {
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

/* Training in your choir. */
.cc-training-module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cc-training-module-grid article {
    position: relative;
    min-height: 17rem;
    overflow: hidden;
    padding: clamp(1.35rem, 3vw, 2rem);
    background: #ffffff;
    border: 1px solid #e1d7e5;
    border-radius: 1.05rem;
    box-shadow: 0 0.7rem 1.8rem rgba(54, 33, 65, 0.07);
}

.cc-training-module-grid article::after {
    position: absolute;
    right: -2.2rem;
    bottom: -2.2rem;
    width: 6rem;
    height: 6rem;
    background: #f6eff7;
    border-radius: 50%;
    content: "";
}

.cc-training-module-number {
    display: inline-grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    margin: 0 0 1.15rem;
    color: #ffffff;
    background: #ef765f;
    border-radius: 0.75rem;
    font-size: 0.72rem;
    font-weight: 900;
    transform: rotate(-3deg);
}

.cc-training-module-grid article:nth-child(2) .cc-training-module-number {
    background: #69b7a5;
}

.cc-training-module-grid article:nth-child(3) .cc-training-module-number {
    background: #e7ad4f;
}

.cc-training-module-grid article:nth-child(4) .cc-training-module-number {
    background: #8e6aa5;
}

.cc-training-module-grid h3 {
    margin: 0 0 0.7rem;
    color: #3f1e55;
    font-size: 1.45rem;
    font-weight: 850;
    letter-spacing: -0.035em;
}

.cc-training-module-grid p {
    margin: 0 0 1rem;
    color: #665b6b;
    line-height: 1.62;
}

.cc-training-module-grid small {
    display: block;
    color: #827687;
    font-size: 0.73rem;
    font-weight: 700;
    line-height: 1.5;
}

.cc-training-pricing {
    padding: clamp(1.6rem, 4vw, 3rem);
    background: #f8f3f9;
    border: 1px solid #e2d7e6;
    border-radius: 1.35rem;
}

.cc-training-pricing__intro {
    max-width: 48rem;
    margin: 0 0 1.6rem;
}

.cc-training-pricing__intro h2 {
    margin: 0 0 0.75rem;
    color: #3f1e55;
    font-size: clamp(1.85rem, 4vw, 3rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-training-pricing__intro > p:not(.cc-training-eyebrow) {
    margin: 0;
    color: #665b6b;
    line-height: 1.68;
}

.cc-training-pricing__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 1.4rem;
}

.cc-training-pricing__cards article {
    padding: 1.5rem;
    background: #ffffff;
    border: 1px solid #ded2e3;
    border-radius: 1rem;
}

.cc-training-pricing__cards .cc-training-pricing__featured {
    color: #ffffff;
    background: #5a2c83;
    border-color: #5a2c83;
}

.cc-training-pricing__cards article > span {
    color: #ef765f;
    font-size: 0.69rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.cc-training-pricing__cards h3 {
    margin: 0.5rem 0 0;
    color: #3f1e55;
    font-size: 1.45rem;
    font-weight: 850;
}

.cc-training-pricing__featured h3,
.cc-training-pricing__featured .cc-training-price {
    color: #ffffff;
}

.cc-training-price {
    margin: 0.65rem 0 0.25rem;
    color: #5a2c83;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
}

.cc-training-pricing__cards p:not(.cc-training-price) {
    margin: 0 0 0.55rem;
    font-weight: 750;
}

.cc-training-pricing__cards small {
    color: inherit;
    opacity: 0.68;
}

/* LALAFAB tracks. */
.cc-training-track {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr);
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e1d7e5;
    border-radius: 1.3rem;
    box-shadow: 0 0.9rem 2.2rem rgba(54, 33, 65, 0.08);
}

.cc-training-track__rail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    min-height: 100%;
    padding: 1.6rem 1.3rem;
    color: #ffffff;
    background: #ef765f;
}

.cc-training-track--reverse .cc-training-track__rail {
    background: #69b7a5;
}

.cc-training-track__rail span,
.cc-training-track__rail small {
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-training-track__rail strong {
    font-size: 1.55rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.95;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}

.cc-training-track__content {
    min-width: 0;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.cc-training-track__content h2 {
    margin: 0 0 0.8rem;
    color: #3f1e55;
    font-size: clamp(1.9rem, 4vw, 3rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-training-track__content > p:not(.cc-training-eyebrow) {
    max-width: 52rem;
    margin: 0 0 1.35rem;
    color: #665b6b;
    line-height: 1.68;
}

.cc-training-skill-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 0 0 1.5rem;
}

.cc-training-skill-grid span {
    position: relative;
    padding: 0.65rem 0.75rem 0.65rem 1.8rem;
    color: #574b5d;
    background: #faf7fb;
    border: 1px solid #ebe3ed;
    border-radius: 0.65rem;
    font-size: 0.78rem;
    font-weight: 730;
}

.cc-training-skill-grid span::before {
    position: absolute;
    top: 0.85rem;
    left: 0.75rem;
    width: 0.43rem;
    height: 0.43rem;
    background: #ef765f;
    border-radius: 50%;
    content: "";
}

.cc-training-track--reverse .cc-training-skill-grid span::before {
    background: #69b7a5;
}

.cc-training-video {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #22172a;
    border-radius: 0.9rem;
}

.cc-training-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.cc-training-practical {
    padding: clamp(1.6rem, 4vw, 3rem);
    background: linear-gradient(140deg, #f7f2f8, #fff9f6);
    border: 1px solid #e2d7e6;
    border-radius: 1.35rem;
}

.cc-training-practical__grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 1fr;
    gap: 1rem;
    margin: 0 0 1.5rem;
}

.cc-training-practical__grid article {
    padding: 1.4rem;
    background: #ffffff;
    border: 1px solid #e2d8e6;
    border-radius: 1rem;
}

.cc-training-practical__icon {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    margin: 0 0 1rem;
    color: #ffffff;
    background: #5a2c83;
    border-radius: 50%;
    font-weight: 900;
}

.cc-training-practical__grid article:nth-child(2) .cc-training-practical__icon {
    background: #ef765f;
}

.cc-training-practical__grid article:nth-child(3) .cc-training-practical__icon {
    background: #69b7a5;
}

.cc-training-practical__grid h3 {
    margin: 0 0 0.7rem;
    color: #3f1e55;
    font-size: 1.2rem;
    font-weight: 850;
}

.cc-training-practical__grid p {
    margin: 0;
    color: #665b6b;
    font-size: 0.82rem;
    line-height: 1.62;
}

.cc-training-practical__price {
    margin: 0 0 0.55rem !important;
    color: #5a2c83 !important;
    font-size: clamp(2rem, 4vw, 2.8rem) !important;
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1 !important;
}

/* Arrangement: a compact five-step learning timeline. */
.cc-arrangement-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 1.25rem;
    padding: 0;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #d9e6e2;
    border-radius: 1.15rem;
    box-shadow: 0 0.8rem 2rem rgba(39, 76, 70, 0.08);
    list-style: none;
}

.cc-arrangement-steps li {
    position: relative;
    padding: 1.35rem 1.1rem;
    border-right: 1px solid #e2ece9;
}

.cc-arrangement-steps li:last-child {
    border-right: 0;
}

.cc-arrangement-steps li > span {
    display: block;
    margin: 0 0 1.8rem;
    color: #69b7a5;
    font-size: 0.72rem;
    font-weight: 900;
}

.cc-arrangement-steps li > span::after {
    position: absolute;
    top: 2.83rem;
    right: 0;
    left: 1.1rem;
    height: 1px;
    background: #cfe1dc;
    content: "";
}

.cc-arrangement-steps h3 {
    margin: 0 0 0.5rem;
    color: #285e57;
    font-size: 1.1rem;
    font-weight: 850;
}

.cc-arrangement-steps p {
    margin: 0;
    color: #665b6b;
    font-size: 0.77rem;
    line-height: 1.55;
}

.cc-arrangement-panels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.cc-arrangement-panels article {
    padding: 1.35rem;
    background: #f7fbfa;
    border: 1px solid #dce9e5;
    border-radius: 0.95rem;
}

.cc-arrangement-panels h3 {
    margin: 0 0 0.55rem;
    color: #285e57;
    font-size: 1.15rem;
    font-weight: 850;
}

.cc-arrangement-panels p:not(.cc-training-eyebrow) {
    margin: 0;
    color: #665b6b;
    font-size: 0.82rem;
    line-height: 1.6;
}

.cc-training-arrangement-info {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    overflow: hidden;
    background: #f6faf9;
    border: 1px solid #d8e6e2;
    border-radius: 1.25rem;
}

.cc-training-arrangement-info > div,
.cc-training-arrangement-info > aside {
    padding: clamp(1.5rem, 4vw, 2.7rem);
}

.cc-training-arrangement-info h2 {
    margin: 0 0 1rem;
    color: #285e57;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-training-arrangement-info ul {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cc-training-arrangement-info li {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr);
    gap: 1rem;
    padding: 0.85rem 0;
    border-top: 1px solid #dce9e5;
}

.cc-training-arrangement-info li strong {
    color: #285e57;
}

.cc-training-arrangement-info li span {
    color: #665b6b;
}

.cc-training-arrangement-info > aside {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    background: #e9f4f1;
}

.cc-training-status {
    display: inline-flex;
    margin: 0 0 1rem;
    padding: 0.42rem 0.7rem;
    color: #5a2c83;
    background: #f0e8f3;
    border: 1px solid #d9c9df;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-training-arrangement-info aside > p:not(.cc-training-practical__price) {
    margin: 0 0 1.25rem;
    color: #526963;
    font-size: 0.84rem;
    line-height: 1.6;
}

/* Bourse Valembois article. */
.cc-training-scholarship-page .container-component > main {
    width: min(100%, 76rem);
    max-width: 76rem;
    margin-inline: auto;
}

.cc-training-scholarship-page .com-content-article > .article-info,
.cc-training-scholarship-page .com-content-article > h1,
.cc-training-scholarship-page .com-content-article__body > p:empty {
    display: none;
}

.cc-scholarship-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.95fr);
    min-height: 36rem;
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 15% 10%, rgba(239, 118, 95, 0.33), transparent 28%),
    linear-gradient(145deg, #3f1e55, #6d3f7f);
    border-radius: 1.5rem;
    box-shadow: 0 1.2rem 2.8rem rgba(49, 23, 66, 0.18);
}

.cc-scholarship-hero__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.cc-scholarship-hero h1 {
    max-width: 11ch;
    margin: 0 0 1.2rem;
    color: #ffffff;
    font-size: clamp(2.55rem, 5.6vw, 4.8rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.92;
}

.cc-scholarship-hero__content > p:not(.cc-training-eyebrow) {
    max-width: 38rem;
    margin: 0 0 1.25rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1rem, 1.7vw, 1.1rem);
    line-height: 1.65;
}

.cc-scholarship-hero .cc-training-status {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.27);
}

.cc-scholarship-hero figure {
    min-height: 36rem;
    margin: 0;
    overflow: hidden;
}

.cc-scholarship-hero figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-scholarship-benefits,
.cc-scholarship-story,
.cc-scholarship-cycle,
.cc-scholarship-apply {
    margin-top: clamp(3.5rem, 8vw, 6rem);
}

.cc-scholarship-benefits > div:last-child {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cc-scholarship-benefits article {
    padding: clamp(1.4rem, 3vw, 2rem);
    background: #ffffff;
    border: 1px solid #e2d7e6;
    border-radius: 1.05rem;
    box-shadow: 0 0.75rem 1.8rem rgba(54, 33, 65, 0.07);
}

.cc-scholarship-benefits article > span {
    display: block;
    margin: 0 0 1rem;
    color: #ef765f;
    font-size: 0.75rem;
    font-weight: 900;
}

.cc-scholarship-benefits h3 {
    margin: 0 0 0.7rem;
    color: #3f1e55;
    font-size: 1.45rem;
    font-weight: 850;
    letter-spacing: -0.035em;
}

.cc-scholarship-benefits p {
    margin: 0;
    color: #665b6b;
    line-height: 1.65;
}

.cc-scholarship-story {
    display: grid;
    grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
    overflow: hidden;
    background: #f8f3f9;
    border: 1px solid #e2d7e6;
    border-radius: 1.3rem;
}

.cc-scholarship-story figure {
    min-height: 28rem;
    margin: 0;
    overflow: hidden;
}

.cc-scholarship-story figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cc-scholarship-story > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.6rem, 4vw, 3rem);
}

.cc-scholarship-story h2 {
    margin: 0 0 1rem;
    color: #3f1e55;
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-scholarship-story p:not(.cc-training-eyebrow) {
    margin: 0 0 0.8rem;
    color: #665b6b;
    line-height: 1.68;
}

.cc-scholarship-cycle {
    position: relative;
    overflow: hidden;
    padding: clamp(1.7rem, 5vw, 3.4rem);
    color: #ffffff;
    background: radial-gradient(circle at 95% 0%, rgba(239, 118, 95, 0.34), transparent 30%),
    linear-gradient(145deg, #3f1e55, #5a2c83);
    border-radius: 1.3rem;
    box-shadow: 0 1rem 2.4rem rgba(49, 23, 66, 0.14);
}

.cc-scholarship-cycle .cc-training-heading {
    max-width: 50rem;
}

.cc-scholarship-cycle .cc-training-eyebrow {
    color: #ffc3b6;
}

.cc-scholarship-cycle .cc-training-heading h2 {
    color: #ffffff;
}

.cc-scholarship-cycle .cc-training-heading > p:not(.cc-training-eyebrow) {
    color: rgba(255, 255, 255, 0.78);
}

.cc-scholarship-cycle__timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.cc-scholarship-cycle__timeline::before {
    position: absolute;
    z-index: 0;
    top: 1.28rem;
    right: 14%;
    left: 14%;
    height: 1px;
    background: rgba(255, 255, 255, 0.28);
    content: "";
}

.cc-scholarship-cycle__timeline article {
    position: relative;
    z-index: 1;
    padding: 1.25rem;
    background: rgba(255, 255, 255, 0.075);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0.95rem;
    backdrop-filter: blur(5px);
}

.cc-scholarship-cycle__timeline article > span {
    display: inline-flex;
    min-height: 2.55rem;
    align-items: center;
    margin: 0 0 1rem;
    padding: 0.45rem 0.75rem;
    color: #3f1e55;
    background: #ffffff;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.cc-scholarship-cycle__timeline .cc-scholarship-cycle__next > span {
    color: #ffffff;
    background: #ef765f;
}

.cc-scholarship-cycle__timeline h3 {
    margin: 0 0 0.55rem;
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 850;
    letter-spacing: -0.025em;
}

.cc-scholarship-cycle__timeline p {
    margin: 0;
    color: rgba(255, 255, 255, 0.73);
    font-size: 0.82rem;
    line-height: 1.6;
}

.cc-scholarship-apply__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 clamp(2rem, 5vw, 3.5rem);
}

.cc-scholarship-apply__grid article {
    padding: 1.4rem;
    background: #ffffff;
    border-top: 0.28rem solid #ef765f;
    border-right: 1px solid #e2d7e6;
    border-bottom: 1px solid #e2d7e6;
    border-left: 1px solid #e2d7e6;
    border-radius: 0.25rem 0.25rem 0.95rem 0.95rem;
}

.cc-scholarship-apply__grid article:nth-child(2) {
    border-top-color: #69b7a5;
}

.cc-scholarship-apply__grid article:nth-child(3) {
    border-top-color: #e7ad4f;
}

.cc-scholarship-apply__grid h3 {
    margin: 0 0 0.75rem;
    color: #3f1e55;
    font-size: 1.2rem;
    font-weight: 850;
}

.cc-scholarship-apply__grid p,
.cc-scholarship-apply__grid li {
    color: #665b6b;
    font-size: 0.84rem;
    line-height: 1.62;
}

.cc-scholarship-apply__grid ul {
    margin: 0;
    padding-left: 1.1rem;
}

.cc-scholarship-page .cc-training-callout {
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

@media (max-width: 991.98px) {
    .cc-training-hero,
    .cc-training-detail-hero,
    .cc-scholarship-hero {
        grid-template-columns: 1fr;
    }

    .cc-training-hero__media,
    .cc-training-detail-hero__media,
    .cc-scholarship-hero figure {
        min-height: 24rem;
        height: 24rem;
    }

    .cc-training-hero__media {
        order: -1;
    }

    .cc-training-hero__content,
    .cc-training-detail-hero__content,
    .cc-scholarship-hero__content {
        padding: clamp(1.7rem, 6vw, 3.2rem);
    }

    .cc-training-hero h1,
    .cc-training-detail-hero h1,
    .cc-scholarship-hero h1 {
        max-width: 13ch;
    }

    .cc-training-practical__grid,
    .cc-arrangement-panels,
    .cc-scholarship-cycle__timeline,
    .cc-scholarship-apply__grid {
        grid-template-columns: 1fr;
    }

    .cc-scholarship-cycle__timeline::before {
        display: none;
    }

    .cc-arrangement-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cc-arrangement-steps li:nth-child(3) {
        border-right: 0;
    }

    .cc-arrangement-steps li:nth-child(n+4) {
        border-top: 1px solid #e2ece9;
    }
}

@media (max-width: 767.98px) {
    .cc-training-page [data-position="cc-main-top-02"],
    .cc-training-module-grid,
    .cc-training-pricing__cards,
    .cc-scholarship-benefits > div:last-child {
        grid-template-columns: 1fr;
    }

    .cc-training-path__body {
        min-height: auto;
    }

    .cc-training-callout {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-training-track {
        grid-template-columns: 1fr;
    }

    .cc-training-track__rail {
        min-height: 6.5rem;
        flex-direction: row;
        align-items: center;
    }

    .cc-training-track__rail strong {
        font-size: 1.35rem;
        text-align: center;
        writing-mode: horizontal-tb;
        transform: none;
    }

    .cc-training-arrangement-info,
    .cc-scholarship-story {
        grid-template-columns: 1fr;
    }

    .cc-scholarship-story figure {
        min-height: 21rem;
        height: 21rem;
    }
}

@media (max-width: 575.98px) {
    .cc-training-hero,
    .cc-training-detail-hero,
    .cc-scholarship-hero {
        border-radius: 1.1rem;
    }

    .cc-training-hero__media,
    .cc-training-detail-hero__media,
    .cc-scholarship-hero figure {
        min-height: 18rem;
        height: 18rem;
    }

    .cc-training-hero__media figcaption {
        right: 0.8rem;
        bottom: 0.8rem;
        left: 0.8rem;
    }

    .cc-training-hero__content::after {
        display: none;
    }

    .cc-training-path {
        grid-template-rows: 12rem auto;
    }

    .cc-training-skill-grid,
    .cc-arrangement-steps {
        grid-template-columns: 1fr;
    }

    .cc-arrangement-steps li,
    .cc-arrangement-steps li:nth-child(3) {
        border-top: 1px solid #e2ece9;
        border-right: 0;
    }

    .cc-arrangement-steps li:first-child {
        border-top: 0;
    }

    .cc-training-arrangement-info li {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }

    .cc-training-cta {
        width: 100%;
    }
}

/* =========================================================
   Documents — Phoca Download / semiannual leaflets override
   ========================================================= */
.cc-semestrials-page .container-banner,
.cc-semestrials-page .container-component > .mod-breadcrumbs__wrapper,
.cc-semestrials-page [data-position="cc-main-top-01"] {
    display: none;
}

.cc-semestrials-page .container-component {
    align-self: start;
    padding-top: clamp(1.75rem, 4vw, 3.5rem);
}

.cc-semestrials-page .container-component > main {
    width: min(100%, 78rem);
    max-width: 78rem;
    margin-inline: auto;
}

.cc-pd-library {
    --pd-purple: #202020;
    --pd-violet: #202020;
    --pd-coral: #ef765f;
    --pd-mint: #505050;
    --pd-ink: #4c4c4c;
    --pd-muted: #747474;
    color: var(--pd-ink);
}

.cc-pd-eyebrow {
    margin: 0 0 0.8rem;
    color: var(--pd-coral);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-pd-primary-link,
.cc-pd-secondary-link {
    display: inline-flex;
    gap: 1.1rem;
    align-items: center;
    justify-content: space-between;
    min-height: 3.15rem;
    padding: 0.75rem 1.1rem 0.75rem 1.3rem;
    border-radius: 999px;
    font-size: 0.83rem;
    font-weight: 830;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.cc-pd-primary-link {
    color: var(--pd-purple);
    background: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.72);
    box-shadow: 0 0.8rem 1.8rem rgba(38, 38, 38, 0.2);
}

.cc-pd-primary-link:hover,
.cc-pd-primary-link:focus-visible {
    color: var(--pd-purple);
    background: #fff5f1;
    border-color: #fff5f1;
    box-shadow: 0 1rem 2rem rgba(38, 38, 38, 0.25);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-pd-secondary-link {
    color: var(--pd-violet);
    background: transparent;
    border: 1px solid #bdcbce;
}

.cc-pd-secondary-link:hover,
.cc-pd-secondary-link:focus-visible {
    color: #ffffff;
    background: var(--pd-violet);
    border-color: var(--pd-violet);
    text-decoration: none;
    transform: translateY(-2px);
}

/* Paper-stack hero: no carousel and no decorative stock photo. */
.cc-pd-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(20rem, 0.88fr);
    min-height: 38rem;
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 12% 10%, rgba(239, 118, 95, 0.36), transparent 28%),
    linear-gradient(140deg, #383838 0%, #545454 58%, #747474 100%);
    border-radius: 1.5rem;
    box-shadow: 0 1.2rem 3rem rgba(54, 54, 54, 0.2);
}

.cc-pd-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.cc-pd-hero .cc-pd-eyebrow {
    color: #ffc3b6;
}

.cc-pd-hero h1 {
    max-width: 11ch;
    margin: 0 0 1.3rem;
    color: #ffffff;
    font-size: clamp(2.8rem, 6vw, 5.35rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.91;
}

.cc-pd-hero__content > p:not(.cc-pd-eyebrow) {
    max-width: 42rem;
    margin: 0 0 1.5rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1rem, 1.75vw, 1.1rem);
    line-height: 1.68;
}

.cc-pd-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0 0 1.7rem;
}

.cc-pd-hero__facts span {
    display: grid;
    gap: 0.08rem;
    min-width: 6.5rem;
    padding: 0.58rem 0.75rem;
    color: rgba(255, 255, 255, 0.7);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.75rem;
    font-size: 0.65rem;
    font-weight: 740;
}

.cc-pd-hero__facts strong {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 900;
}

.cc-pd-hero__visual {
    position: relative;
    min-height: 38rem;
    overflow: hidden;
    background: repeating-linear-gradient(165deg, transparent 0 2.2rem, rgba(255, 255, 255, 0.025) 2.2rem 2.25rem),
    rgba(255, 255, 255, 0.04);
}

.cc-pd-hero__visual::before {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 70% 45%, rgba(255, 255, 255, 0.14), transparent 45%);
    content: "";
}

.cc-pd-hero__sheet {
    position: absolute;
    display: flex;
    flex-direction: column;
    width: min(18rem, 68%);
    aspect-ratio: 0.72;
    overflow: hidden;
    padding: 1.6rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 0.45rem;
    box-shadow: 0 1.5rem 3rem rgba(26, 26, 26, 0.28);
}

.cc-pd-hero__sheet::after {
    position: absolute;
    right: -34%;
    bottom: -13%;
    width: 17rem;
    height: 17rem;
    border: 2.4rem solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    content: "";
}

.cc-pd-hero__sheet--back {
    top: 9%;
    left: -12%;
    align-items: flex-end;
    justify-content: flex-end;
    color: #ffffff;
    background: #9b9b9b;
    transform: rotate(-12deg);
}

.cc-pd-hero__sheet--back span {
    font-size: 3rem;
    font-weight: 900;
}

.cc-pd-hero__sheet--middle {
    top: 16%;
    left: 14%;
    align-items: flex-end;
    justify-content: flex-end;
    color: #ffffff;
    background: #a5a5a5;
    font-size: 2rem;
    font-weight: 900;
    line-height: 0.9;
    text-align: right;
    transform: rotate(7deg);
}

.cc-pd-hero__sheet--front {
    z-index: 2;
    top: 12%;
    right: -7%;
    color: #202020;
    background: #fffaf7;
    transform: rotate(-2deg);
}

.cc-pd-hero__sheet--front::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 0.7rem;
    background: #ef765f;
    content: "";
}

.cc-pd-hero__sheet--front small {
    color: #ef765f;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-pd-hero__sheet--front strong {
    max-width: 8ch;
    margin-top: auto;
    font-size: 2.35rem;
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.9;
}

.cc-pd-hero__sheet--front > span:not(.cc-pd-cover__lines) {
    position: relative;
    z-index: 1;
    margin-top: 0.8rem;
    color: #747474;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.05em;
    line-height: 1.25;
    text-transform: uppercase;
}

/* Reusable CSS booklet cover. */
.cc-pd-cover {
    --cover-accent: #ef765f;
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    padding: 1.25rem;
    color: #202020;
    background: #fffaf7;
    border: 1px solid rgba(69, 69, 69, 0.1);
    border-radius: 0.55rem;
    box-shadow: 0 1rem 2rem rgba(54, 54, 54, 0.13);
}

.cc-pd-cover--summer {
    --cover-accent: #505050;
}

.cc-pd-cover--winter {
    --cover-accent: #ef765f;
}

.cc-pd-cover::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 0.5rem;
    background: var(--cover-accent);
    content: "";
}

.cc-pd-cover::after {
    position: absolute;
    right: -4.1rem;
    bottom: -4.5rem;
    width: 11rem;
    height: 11rem;
    border: 1.6rem solid color-mix(in srgb, var(--cover-accent) 25%, transparent);
    border-radius: 50%;
    content: "";
}

.cc-pd-cover__brand {
    color: #202020;
    font-size: 0.54rem;
    font-weight: 850;
    letter-spacing: 0.07em;
    line-height: 1.05;
    text-transform: uppercase;
}

.cc-pd-cover__mark {
    position: absolute;
    top: 1.05rem;
    right: 1rem;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    color: #ffffff;
    background: var(--cover-accent);
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: 900;
    text-transform: uppercase;
}

.cc-pd-cover__label {
    margin-top: auto;
    color: var(--cover-accent);
    font-size: 0.55rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-pd-cover > strong {
    position: relative;
    z-index: 1;
    margin: 0.4rem 0 0;
    color: #202020;
    font-size: clamp(1.45rem, 3vw, 2.15rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.9;
}

.cc-pd-cover__year {
    position: relative;
    z-index: 1;
    margin-top: 0.12rem;
    color: #202020;
    font-size: 1rem;
    font-weight: 900;
}

.cc-pd-cover__lines {
    position: absolute;
    top: 35%;
    right: 1.2rem;
    left: 1.2rem;
    height: 2rem;
    border-top: 1px solid #dae2e3;
    border-bottom: 1px solid #dae2e3;
}

.cc-pd-cover__lines::after {
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 1px;
    background: #dae2e3;
    content: "";
}

/* Latest issue. */
.cc-pd-latest {
    display: grid;
    grid-template-columns: minmax(16rem, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(1.5rem, 5vw, 4.5rem);
    align-items: center;
    margin-top: clamp(4rem, 9vw, 7rem);
    padding: clamp(1.6rem, 5vw, 3.6rem);
    background: linear-gradient(135deg, #eff9fa, #fff8f4);
    border: 1px solid #d9e1e3;
    border-radius: 1.35rem;
    box-shadow: 0 0.9rem 2.3rem rgba(59, 59, 59, 0.08);
}

.cc-pd-latest__cover {
    width: min(100%, 21rem);
    margin-inline: auto;
    aspect-ratio: 0.74;
    transform: rotate(-2.5deg);
    transition: transform 0.3s ease;
}

.cc-pd-latest:hover .cc-pd-latest__cover {
    transform: rotate(-1deg) translateY(-3px);
}

.cc-pd-cover--large {
    padding: clamp(1.4rem, 4vw, 2.2rem);
    box-shadow: 0 1.5rem 2.8rem rgba(54, 54, 54, 0.17);
}

.cc-pd-cover--large .cc-pd-cover__brand {
    font-size: 0.68rem;
}

.cc-pd-cover--large .cc-pd-cover__mark {
    top: 1.6rem;
    right: 1.5rem;
    width: 3rem;
    height: 3rem;
    font-size: 0.9rem;
}

.cc-pd-cover--large > strong {
    font-size: clamp(2.3rem, 5vw, 3.8rem);
}

.cc-pd-cover--large .cc-pd-cover__year {
    font-size: 1.65rem;
}

.cc-pd-latest__content h2 {
    margin: 0 0 1rem;
    color: #202020;
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 600;
    letter-spacing: -0.055em;
    line-height: 0.95;
}

.cc-pd-latest__content h2 strong {
    font-weight: 900;
}

.cc-pd-latest__lead {
    max-width: 42rem;
    margin: 0 0 1.1rem;
    color: #666666;
    font-size: 1rem;
    line-height: 1.68;
}

.cc-pd-latest__content ul {
    display: grid;
    gap: 0.55rem;
    margin: 0 0 1.45rem;
    padding: 0;
    list-style: none;
}

.cc-pd-latest__content li {
    position: relative;
    padding-left: 1.5rem;
    color: #575757;
    font-size: 0.86rem;
    font-weight: 700;
}

.cc-pd-latest__content li::before {
    position: absolute;
    top: 0.45rem;
    left: 0;
    width: 0.55rem;
    height: 0.55rem;
    background: #ef765f;
    border-radius: 50%;
    content: "";
}

.cc-pd-latest__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.cc-pd-latest .cc-pd-primary-link {
    color: #ffffff;
    background: #696969;
    border-color: #696969;
    box-shadow: 0 0.8rem 1.7rem rgba(69, 69, 69, 0.18);
}

.cc-pd-latest .cc-pd-primary-link:hover,
.cc-pd-latest .cc-pd-primary-link:focus-visible {
    color: #ffffff;
    background: #4f4f4f;
    border-color: #4f4f4f;
}

/* Recent issues and deep archive. */
.cc-pd-editions {
    margin-top: clamp(4rem, 9vw, 7rem);
}

.cc-pd-section-heading {
    display: flex;
    gap: 2rem;
    align-items: flex-end;
    justify-content: space-between;
    margin: 0 0 clamp(1.8rem, 4vw, 3rem);
}

.cc-pd-section-heading h2 {
    margin: 0;
    color: #202020;
    font-size: clamp(2rem, 4.7vw, 3.6rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.96;
}

.cc-pd-section-heading > p {
    max-width: 27rem;
    margin: 0;
    color: #747474;
    font-size: 0.86rem;
    line-height: 1.6;
}

.cc-pd-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2.3vw, 1.5rem);
}

.cc-pd-card {
    --card-accent: #ef765f;
    display: grid;
    grid-template-columns: minmax(7.8rem, 0.76fr) minmax(0, 1.24fr);
    min-width: 0;
    min-height: 17.5rem;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #d9e1e3;
    border-radius: 1.05rem;
    box-shadow: 0 0.75rem 1.8rem rgba(59, 59, 59, 0.07);
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.cc-pd-card--summer {
    --card-accent: #505050;
}

.cc-pd-card--winter {
    --card-accent: #ef765f;
}

.cc-pd-card:hover {
    border-color: #bfccce;
    box-shadow: 0 1.1rem 2.3rem rgba(59, 59, 59, 0.12);
    transform: translateY(-4px);
}

.cc-pd-card__preview {
    min-width: 0;
    padding: 0.8rem 0 0.8rem 0.8rem;
    background: color-mix(in srgb, var(--card-accent) 10%, #ffffff);
    text-decoration: none;
}

.cc-pd-card__preview .cc-pd-cover {
    min-height: 100%;
    border-radius: 0.45rem;
    box-shadow: 0 0.75rem 1.4rem rgba(54, 54, 54, 0.11);
}

.cc-pd-card__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 1.2rem 1rem;
}

.cc-pd-card__kicker {
    margin: 0 0 0.65rem;
    color: var(--card-accent);
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.cc-pd-card h3 {
    margin: 0 0 0.65rem;
    color: #202020;
    font-size: 1.25rem;
    font-weight: 650;
    letter-spacing: -0.035em;
    line-height: 1;
}

.cc-pd-card h3 strong {
    display: block;
    margin-top: 0.15rem;
    font-size: 1.7rem;
    font-weight: 900;
}

.cc-pd-card__body > p:not(.cc-pd-card__kicker) {
    margin: 0 0 1rem;
    color: #747474;
    font-size: 0.73rem;
    line-height: 1.5;
}

.cc-pd-card__actions {
    display: grid;
    width: 100%;
    gap: 0.3rem;
    margin-top: auto;
}

.cc-pd-card__actions a {
    display: flex;
    gap: 0.7rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.46rem 0;
    color: #202020;
    border-bottom: 1px solid #e9edee;
    font-size: 0.72rem;
    font-weight: 820;
    text-decoration: none;
}

.cc-pd-card__actions a:last-child {
    border-bottom: 0;
}

.cc-pd-card__actions a:hover,
.cc-pd-card__actions a:focus-visible {
    color: #202020;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.cc-pd-archive {
    margin-top: clamp(2rem, 5vw, 3.5rem);
    overflow: hidden;
    background: #f8f4f9;
    border: 1px solid #d8e0e2;
    border-radius: 1.2rem;
}

.cc-pd-archive summary {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: clamp(1.3rem, 3vw, 2rem);
    cursor: pointer;
    list-style: none;
}

.cc-pd-archive summary::-webkit-details-marker {
    display: none;
}

.cc-pd-archive summary > span:first-child {
    display: grid;
    gap: 0.2rem;
}

.cc-pd-archive summary small {
    color: #ef765f;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.cc-pd-archive summary strong {
    color: #202020;
    font-size: clamp(1.3rem, 3vw, 2rem);
    font-weight: 900;
    letter-spacing: -0.035em;
}

.cc-pd-archive__toggle {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 auto;
    place-items: center;
    color: #ffffff;
    background: #696969;
    border-radius: 50%;
    font-size: 1.35rem;
    font-weight: 500;
    transition: transform 0.28s ease;
}

.cc-pd-archive[open] .cc-pd-archive__toggle {
    transform: rotate(45deg);
}

.cc-pd-grid--archive {
    padding: 0 clamp(1rem, 3vw, 2rem) clamp(1rem, 3vw, 2rem);
}

.cc-pd-callout {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    margin: clamp(3.5rem, 8vw, 6rem) 0 clamp(2rem, 5vw, 4rem);
    padding: clamp(1.6rem, 4vw, 2.6rem);
    background: linear-gradient(135deg, #fbf7fc, #fff8f4);
    border: 1px solid #d8e0e2;
    border-radius: 1.2rem;
    box-shadow: 0 0.8rem 2rem rgba(59, 59, 59, 0.07);
}

.cc-pd-callout h2 {
    margin: 0 0 0.65rem;
    color: #202020;
    font-size: clamp(1.55rem, 3.2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-pd-callout p:not(.cc-pd-eyebrow) {
    max-width: 43rem;
    margin: 0;
    color: #666666;
    line-height: 1.6;
}

@media (max-width: 1199.98px) {
    .cc-pd-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .cc-pd-hero {
        grid-template-columns: 1fr;
    }

    .cc-pd-hero__visual {
        min-height: 27rem;
        order: -1;
    }

    .cc-pd-hero__sheet {
        width: min(17rem, 42%);
    }

    .cc-pd-hero__sheet--back {
        left: 12%;
    }

    .cc-pd-hero__sheet--middle {
        left: 34%;
    }

    .cc-pd-hero__sheet--front {
        right: 9%;
    }

    .cc-pd-hero h1 {
        max-width: 14ch;
    }

    .cc-pd-latest {
        grid-template-columns: minmax(14rem, 0.75fr) minmax(0, 1.25fr);
        gap: 2rem;
    }
}

@media (max-width: 767.98px) {
    .cc-pd-latest,
    .cc-pd-grid {
        grid-template-columns: 1fr;
    }

    .cc-pd-latest__cover {
        width: min(82%, 19rem);
    }

    .cc-pd-section-heading,
    .cc-pd-callout {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-pd-section-heading > p {
        max-width: 38rem;
    }

    .cc-pd-card {
        grid-template-columns: minmax(8.2rem, 0.65fr) minmax(0, 1.35fr);
    }
}

@media (max-width: 575.98px) {
    .cc-pd-hero {
        border-radius: 1.05rem;
    }

    .cc-pd-hero__visual {
        min-height: 21rem;
    }

    .cc-pd-hero__sheet {
        width: 54%;
        padding: 1rem;
    }

    .cc-pd-hero__sheet--back {
        left: -7%;
    }

    .cc-pd-hero__sheet--middle {
        left: 23%;
    }

    .cc-pd-hero__sheet--front {
        right: -5%;
    }

    .cc-pd-hero__sheet--front strong {
        font-size: 1.65rem;
    }

    .cc-pd-primary-link,
    .cc-pd-secondary-link {
        width: 100%;
    }

    .cc-pd-card {
        grid-template-columns: 7.5rem minmax(0, 1fr);
        min-height: 16.5rem;
    }

    .cc-pd-card__preview {
        padding: 0.6rem 0 0.6rem 0.6rem;
    }

    .cc-pd-cover {
        padding: 0.8rem;
    }

    .cc-pd-cover__mark {
        top: 0.75rem;
        right: 0.65rem;
        width: 1.6rem;
        height: 1.6rem;
    }

    .cc-pd-cover__brand {
        font-size: 0.43rem;
    }

    .cc-pd-card__body {
        padding: 1rem 0.8rem;
    }

    .cc-pd-archive summary strong {
        font-size: 1.15rem;
    }
}

/* =========================================================
   Partitions — editorial landing page (catalogue untouched)
   ========================================================= */
.cc-partitions-page .container-banner,
.cc-partitions-page .container-component > .mod-breadcrumbs__wrapper,
.cc-partitions-page .container-component > main {
    display: none;
}

.cc-partitions-page .container-component {
    align-self: start;
    padding-top: clamp(1.75rem, 4vw, 3.5rem);
}

.cc-partitions-page .cc-module-row {
    width: min(100%, 74rem);
    margin-inline: auto;
}

.cc-partitions-page [data-position="cc-main-top-01"] {
    display: block;
    width: min(100%, 78rem);
    max-width: 78rem;
}

.cc-partitions-page [data-position^="cc-main-top-"] > .no-card {
    min-width: 0;
}

.cc-partitions-eyebrow {
    margin: 0 0 0.8rem;
    color: #202020;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-partitions-cta {
    display: inline-flex;
    gap: 1.2rem;
    align-items: center;
    justify-content: space-between;
    min-height: 3.15rem;
    padding: 0.75rem 1.1rem 0.75rem 1.3rem;
    color: #ffffff;
    background: #696969;
    border: 1px solid #696969;
    border-radius: 999px;
    box-shadow: 0 0.75rem 1.6rem rgba(69, 69, 69, 0.17);
    font-size: 0.83rem;
    font-weight: 830;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.cc-partitions-cta:hover,
.cc-partitions-cta:focus-visible {
    color: #ffffff;
    background: #4f4f4f;
    border-color: #4f4f4f;
    box-shadow: 0 0.95rem 1.9rem rgba(69, 69, 69, 0.23);
    text-decoration: none;
    transform: translateY(-2px);
}

.cc-partitions-cta--light {
    color: #202020;
    background: #ffffff;
    border-color: rgba(255, 255, 255, 0.74);
    box-shadow: 0 0.8rem 1.8rem rgba(33, 33, 33, 0.22);
}

.cc-partitions-cta--light:hover,
.cc-partitions-cta--light:focus-visible {
    color: #202020;
    background: #eef9f7;
    border-color: #eef9f7;
}

.cc-partitions-cta--outline {
    color: #202020;
    background: transparent;
    border-color: #b8c7c9;
    box-shadow: none;
}

.cc-partitions-cta--outline:hover,
.cc-partitions-cta--outline:focus-visible {
    color: #ffffff;
    background: #696969;
    border-color: #696969;
}

.cc-partitions-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(21rem, 0.96fr);
    min-height: 38rem;
    overflow: hidden;
    color: #ffffff;
    background: repeating-linear-gradient(0deg, transparent 0 3.2rem, rgba(255, 255, 255, 0.035) 3.2rem 3.25rem),
    linear-gradient(140deg, #383838, #5d5d5d 70%, #7b7b7b);
    border-radius: 1.5rem;
    box-shadow: 0 1.2rem 3rem rgba(54, 54, 54, 0.19);
}

.cc-partitions-hero__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.cc-partitions-hero__content::after {
    position: absolute;
    right: 1.7rem;
    bottom: 1.7rem;
    width: 4.8rem;
    height: 4.8rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    content: "";
}

.cc-partitions-hero .cc-partitions-eyebrow {
    color: #9cddd4;
}

.cc-partitions-hero h1 {
    max-width: 10.5ch;
    margin: 0 0 1.25rem;
    color: #ffffff;
    font-size: clamp(2.75rem, 5.9vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.91;
}

.cc-partitions-hero__content > p:not(.cc-partitions-eyebrow) {
    max-width: 39rem;
    margin: 0 0 1.45rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1rem, 1.75vw, 1.1rem);
    line-height: 1.68;
}

.cc-partitions-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1.65rem;
}

.cc-partitions-hero__tags span {
    padding: 0.44rem 0.67rem;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    font-size: 0.67rem;
    font-weight: 780;
}

.cc-partitions-hero__media {
    position: relative;
    min-height: 38rem;
    margin: 0;
    overflow: hidden;
}

.cc-partitions-hero__media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(59, 59, 59, 0.3), transparent 44%);
    content: "";
    pointer-events: none;
}

.cc-partitions-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cc-partitions-hero__media figcaption {
    position: absolute;
    z-index: 1;
    right: 1.4rem;
    bottom: 1.4rem;
    left: 1.4rem;
    display: grid;
    gap: 0.2rem;
    padding: 1rem 1.1rem;
    color: #202020;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 0.9rem;
    box-shadow: 0 0.8rem 1.8rem rgba(33, 33, 33, 0.17);
    backdrop-filter: blur(8px);
}

.cc-partitions-hero__media figcaption strong {
    font-size: 0.86rem;
    font-weight: 850;
}

.cc-partitions-hero__media figcaption span {
    color: #6f6f6f;
    font-size: 0.72rem;
    line-height: 1.45;
}

.cc-partitions-origin {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
    margin-top: clamp(4rem, 9vw, 7rem);
}

.cc-partitions-origin__intro h2 {
    margin: 0 0 1rem;
    color: #202020;
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.96;
}

.cc-partitions-origin__intro > p:not(.cc-partitions-eyebrow) {
    margin: 0;
    color: #666666;
    line-height: 1.7;
}

.cc-partitions-origin__steps {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    background: #ffffff;
    border: 1px solid #d8e0e2;
    border-radius: 1.15rem;
    box-shadow: 0 0.8rem 2rem rgba(59, 59, 59, 0.07);
    list-style: none;
}

.cc-partitions-origin__steps li {
    position: relative;
    display: grid;
    grid-template-columns: 6rem 7rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid #e5ebec;
}

.cc-partitions-origin__steps li:last-child {
    border-bottom: 0;
}

.cc-partitions-origin__steps li::before {
    position: absolute;
    top: 50%;
    left: -0.35rem;
    width: 0.7rem;
    height: 0.7rem;
    background: #a5a5a5;
    border: 0.18rem solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #cde3de;
    content: "";
    transform: translateY(-50%);
}

.cc-partitions-origin__steps li:nth-child(2)::before {
    background: #ef765f;
}

.cc-partitions-origin__steps li:nth-child(3)::before {
    background: #8d8d8d;
}

.cc-partitions-origin__steps span {
    color: #202020;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-partitions-origin__steps h3 {
    margin: 0;
    color: #202020;
    font-size: 1.06rem;
    font-weight: 850;
}

.cc-partitions-origin__steps p {
    margin: 0;
    color: #747474;
    font-size: 0.78rem;
    line-height: 1.55;
}

.cc-partitions-page [data-position="cc-main-top-02"] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
    margin-top: clamp(4rem, 9vw, 7rem);
}

.cc-partitions-resource {
    --resource-accent: #505050;
    display: grid;
    grid-template-rows: 16rem 1fr;
    min-width: 0;
    overflow: hidden;
    color: #4d4d4d;
    background: #ffffff;
    border: 1px solid #d8e0e2;
    border-radius: 1.2rem;
    box-shadow: 0 0.85rem 2rem rgba(59, 59, 59, 0.08);
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.cc-partitions-resource--leaflets {
    --resource-accent: #ef765f;
}

.cc-partitions-resource:hover,
.cc-partitions-resource:focus-visible {
    color: #4d4d4d;
    border-color: #bccacc;
    box-shadow: 0 1.25rem 2.7rem rgba(59, 59, 59, 0.14);
    text-decoration: none;
    transform: translateY(-5px);
}

.cc-partitions-resource figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    background: #e5ebec;
}

.cc-partitions-resource figure::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 56%, rgba(44, 44, 44, 0.18));
    content: "";
}

.cc-partitions-resource figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.cc-partitions-resource:hover figure img {
    transform: scale(1.035);
}

.cc-partitions-resource__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 22rem;
    padding: clamp(1.35rem, 3vw, 2rem);
}

.cc-partitions-resource__top {
    display: flex;
    width: 100%;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 1.25rem;
}

.cc-partitions-resource__number {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    place-items: center;
    color: #ffffff;
    background: var(--resource-accent);
    border-radius: 50%;
    font-size: 0.73rem;
    font-weight: 900;
}

.cc-partitions-resource__format {
    color: #818181;
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.06em;
    text-align: right;
    text-transform: uppercase;
}

.cc-partitions-resource .cc-partitions-eyebrow {
    color: var(--resource-accent);
}

.cc-partitions-resource h2 {
    margin: 0 0 0.85rem;
    color: #202020;
    font-size: clamp(1.65rem, 3.3vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-partitions-resource__body > p:not(.cc-partitions-eyebrow) {
    margin: 0 0 1.2rem;
    color: #666666;
    font-size: 0.91rem;
    line-height: 1.62;
}

.cc-partitions-resource__link {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    margin-top: auto;
    color: #202020;
    font-size: 0.82rem;
    font-weight: 850;
}

.cc-partitions-page [data-position="cc-main-top-03"] {
    display: block;
    margin: clamp(3.5rem, 8vw, 6rem) auto clamp(2rem, 5vw, 4rem);
}

.cc-partitions-partner {
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr) auto;
    gap: clamp(1.3rem, 3vw, 2.2rem);
    align-items: center;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: linear-gradient(135deg, #f6fbfa, #fbf7fc);
    border: 1px solid #d9e6e2;
    border-radius: 1.2rem;
    box-shadow: 0 0.8rem 2rem rgba(59, 59, 59, 0.07);
}

.cc-partitions-partner__mark {
    display: flex;
    width: 8rem;
    height: 8rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: #454545;
    border-radius: 50%;
    line-height: 0.9;
    text-align: center;
}

.cc-partitions-partner__mark span {
    font-size: 0.68rem;
    font-weight: 730;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cc-partitions-partner__mark strong {
    color: #9cddd4;
    font-size: 1.45rem;
    font-weight: 900;
    letter-spacing: -0.04em;
}

.cc-partitions-partner h2 {
    margin: 0 0 0.6rem;
    color: #202020;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-partitions-partner p:not(.cc-partitions-eyebrow) {
    max-width: 42rem;
    margin: 0;
    color: #666666;
    line-height: 1.62;
}

@media (max-width: 991.98px) {
    .cc-partitions-hero {
        grid-template-columns: 1fr;
    }

    .cc-partitions-hero__media {
        min-height: 25rem;
        height: 25rem;
        order: -1;
    }

    .cc-partitions-hero h1 {
        max-width: 13ch;
    }

    .cc-partitions-origin {
        grid-template-columns: 1fr;
    }

    .cc-partitions-partner {
        grid-template-columns: 7rem minmax(0, 1fr);
    }

    .cc-partitions-partner__mark {
        width: 6.5rem;
        height: 6.5rem;
    }

    .cc-partitions-partner .cc-partitions-cta {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 767.98px) {
    .cc-partitions-page [data-position="cc-main-top-02"] {
        grid-template-columns: 1fr;
    }

    .cc-partitions-resource__body {
        min-height: auto;
    }

    .cc-partitions-resource__link {
        margin-top: 1rem;
    }

    .cc-partitions-origin__steps li {
        grid-template-columns: 5.2rem minmax(0, 1fr);
    }

    .cc-partitions-origin__steps p {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .cc-partitions-hero {
        border-radius: 1.05rem;
    }

    .cc-partitions-hero__media {
        min-height: 19rem;
        height: 19rem;
    }

    .cc-partitions-hero__media figcaption {
        right: 0.8rem;
        bottom: 0.8rem;
        left: 0.8rem;
    }

    .cc-partitions-hero__content::after {
        display: none;
    }

    .cc-partitions-resource {
        grid-template-rows: 12rem auto;
    }

    .cc-partitions-partner {
        grid-template-columns: 1fr;
    }

    .cc-partitions-partner__mark {
        width: 5.8rem;
        height: 5.8rem;
    }

    .cc-partitions-partner .cc-partitions-cta,
    .cc-partitions-cta {
        width: 100%;
    }
}

/* ========================================================================
   HikaShop public store — menu item 107
   Scoped to the public shop so payment and registration products keep their
   dedicated layouts.
   ======================================================================== */

body.itemid-107 {
    --cc-shop-ink: #33253a;
    --cc-shop-purple: #5a2c83;
    --cc-shop-purple-dark: #3f1e55;
    --cc-shop-lilac: #f4eef8;
    --cc-shop-mint: #9cddd4;
    --cc-shop-coral: #f0a07d;
    --cc-shop-line: #e8deec;
}

body.itemid-107 .container-component {
    max-width: 81rem;
}

body.itemid-107 .mod-breadcrumbs__wrapper {
    margin-top: 1rem;
}

body.itemid-107 .breadcrumb {
    padding-inline: 0 !important;
    color: #766a7b;
    background: transparent;
    font-size: 0.82rem;
}

body.itemid-107 .breadcrumb a {
    color: var(--cc-shop-purple);
    text-decoration: none;
}

body.itemid-107 [data-position="cc-main-top-01"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    gap: 0.75rem;
    align-items: stretch;
    margin: 0.5rem 0 1.6rem;
}

body.itemid-107 [data-position="cc-main-top-01"] > .cc-main-top-01 {
    min-width: 0;
    margin: 0;
}

body.itemid-107 .cc-shop-trust-item {
    display: flex;
}

body.itemid-107 .cc-shop-trust-item .mod-custom {
    width: 100%;
}

.cc-shop-trust {
    display: flex;
    height: 100%;
    min-height: 4.5rem;
    gap: 0.85rem;
    align-items: center;
    padding: 0.85rem 1rem;
    color: var(--cc-shop-ink);
    background: #fff;
    border: 1px solid var(--cc-shop-line);
    border-radius: 0.9rem;
    box-shadow: 0 0.5rem 1.3rem rgba(53, 30, 65, 0.055);
}

.cc-shop-trust > i {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 2.25rem;
    place-items: center;
    color: var(--cc-shop-purple);
    background: var(--cc-shop-lilac);
    border-radius: 50%;
    font-size: 0.9rem;
}

.cc-shop-trust span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    line-height: 1.22;
}

.cc-shop-trust strong {
    color: var(--cc-shop-purple-dark);
    font-size: 0.82rem;
    font-weight: 850;
}

.cc-shop-trust small {
    margin-top: 0.18rem;
    color: #766a7b;
    font-size: 0.72rem;
}

.cc-shop-cart {
    align-self: center;
    justify-self: end;
    width: max-content;
    max-width: 100%;
}

.cc-shop-cart .hikashop_small_cart_checkout_link,
.cc-shop-cart .hikashop_cart_input_button {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1rem;
    color: #fff;
    background: var(--cc-shop-purple, #5a2c83);
    border: 0;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.cc-module-row:has(> .cc-shop-cart:only-child) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Store cart shortcut: keep HikaShop's AJAX link, make its purpose explicit. */

.cc-shop-cart .hikashop_small_cart_checkout_link.cc-mini-cart {
    display: grid;
    min-height: 3.35rem;
    grid-template-columns: auto minmax(0, auto) auto;
    gap: 0.65rem;
    align-items: center;
    padding: 0.42rem 0.45rem 0.42rem 0.65rem;
    background: linear-gradient(135deg, #552675, #6f3697);
    box-shadow: 0 0.7rem 1.6rem rgba(75, 31, 103, 0.2);
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.cc-shop-cart .hikashop_small_cart_checkout_link.cc-mini-cart:hover,
.cc-shop-cart .hikashop_small_cart_checkout_link.cc-mini-cart:focus-visible {
    color: #ffffff;
    background: linear-gradient(135deg, #482060, #64308a);
    box-shadow: 0 0.9rem 2rem rgba(75, 31, 103, 0.28);
    transform: translateY(-1px);
}

.cc-mini-cart__icon {
    display: inline-grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    background: rgba(255, 255, 255, 0.13);
    border-radius: 50%;
    font-size: 0.88rem;
}

.cc-mini-cart__copy {
    display: grid;
    gap: 0.08rem;
    text-align: left;
}

.cc-mini-cart__label {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.075em;
    line-height: 1.1;
    text-transform: uppercase;
}

.cc-mini-cart__total {
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 900;
    line-height: 1.15;
}

.cc-mini-cart__action {
    display: inline-flex;
    min-height: 2.35rem;
    gap: 0.38rem;
    align-items: center;
    padding: 0 0.78rem;
    color: #552675;
    background: #ffffff;
    border-radius: 999px;
    font-size: 0.69rem;
    font-weight: 900;
}

/* Checkout payment choices and address books. */

.cc-checkout-core .hikashop_payment_methods_table,
.cc-checkout-core .hikashop_payment_methods_table tbody {
    display: grid;
    width: 100%;
    gap: 0.45rem;
    margin: 0;
    background: transparent;
    border: 0 !important;
}

.cc-checkout-core .hikashop_payment_methods_table tr {
    display: block;
    background: transparent;
    border: 0 !important;
}

.cc-checkout-core .hikashop_payment_methods_table tr td,
.cc-checkout-core .hikashop_payment_methods_table tr td:first-child,
.cc-checkout-core .hikashop_payment_methods_table tr td:last-child {
    display: grid;
    width: 100%;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.18rem 0.75rem;
    align-items: center;
    padding: 0.9rem 1rem;
    background: #faf9fb;
    border: 0 !important;
    border-radius: 0.8rem;
    box-shadow: none;
    cursor: pointer;
    transition: background-color 150ms ease;
}

.cc-checkout-core .hikashop_payment_methods_table tr:hover td {
    background: #f7f3f9;
}

.cc-checkout-core .hikashop_payment_methods_table tr:is(.is-selected, :has(.hikashop_checkout_payment_radio:checked)) td {
    background: #f2ecf5;
    box-shadow: none;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_radio {
    width: 1.25rem;
    height: 1.25rem;
    grid-column: 1;
    grid-row: 1 / span 2;
    margin: 0;
    appearance: none;
    background: #ffffff;
    border: 2px solid #b8a7c1;
    border-radius: 50%;
    cursor: pointer;
    transition: border 140ms ease, box-shadow 140ms ease;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_radio:checked {
    border: 0.38rem solid #65318a;
    box-shadow: 0 0 0 3px rgba(101, 49, 138, 0.1);
}

.cc-checkout-core .hikashop_payment_methods_table label {
    grid-column: 2;
    margin: 0;
    cursor: pointer;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_name {
    color: #4b275f;
    font-size: 0.86rem;
    font-weight: 850;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_cost {
    grid-column: 3;
    justify-self: end;
    color: #65318a;
    font-size: 0.77rem;
    font-weight: 850;
}

.cc-checkout-core .hikashop_payment_methods_table tr:has(.hikashop_checkout_payment_images) .hikashop_checkout_payment_cost {
    grid-column: 2;
    justify-self: start;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_images {
    display: none !important;
}

.cc-checkout-core .cc-payment-method__visual {
    display: flex;
    min-width: 0;
    grid-column: 3;
    grid-row: 1 / span 2;
    gap: 0.45rem;
    align-items: center;
    justify-self: end;
    padding: 0;
    color: #786a7e;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.cc-checkout-core .cc-payment-method__icon {
    display: inline-grid;
    width: 1.85rem;
    height: 1.85rem;
    flex: 0 0 1.85rem;
    place-items: center;
    color: #65318a;
    background: #eee6f2;
    border-radius: 0.55rem;
    box-shadow: none;
    font-size: 0.72rem;
}

.cc-checkout-core .cc-payment-method__visual-copy {
    display: grid;
    min-width: 0;
}

.cc-checkout-core .cc-payment-method__visual-copy > strong {
    color: #76697b;
    font-size: 0.62rem;
    font-weight: 750;
    line-height: 1.15;
    white-space: nowrap;
}

.cc-checkout-core .hikashop_payment_methods_table tr:is(.is-selected, :has(.hikashop_checkout_payment_radio:checked)) .cc-payment-method__visual {
    color: #5d3b6d;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_description {
    grid-column: 2;
    margin: 0.08rem 0 0;
    color: #776b7c;
    font-size: 0.7rem;
    line-height: 1.4;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_description > :first-child {
    margin-top: 0;
}

.cc-checkout-core .hikashop_payment_methods_table .hikashop_checkout_payment_description > :last-child {
    margin-bottom: 0;
}

.cc-checkout-core .hikashop_checkout_payment.is-updating .hikashop_payment_methods_table {
    cursor: progress;
    opacity: 0.72;
    pointer-events: none;
}

.cc-checkout-core .hikashop_payment_methods_table :is(.hikashop_checkout_credit_card, .hikashop_checkout_payment_custom_html) {
    grid-column: 1 / -1;
}

.cc-checkout-core .cc-address-book {
    min-width: 0;
    margin: 0;
    padding: 1rem;
    background: #ffffff;
    border: 1px solid #e2d8e6;
    border-radius: 1rem;
    box-shadow: 0 0.55rem 1.5rem rgba(70, 36, 87, 0.055);
}

.cc-address-book__native-legend {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cc-address-book__head {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    justify-content: space-between;
    margin: -0.1rem 0 0.9rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid #eee7f0;
}

.cc-address-book__title {
    color: #4f2864;
    font-size: 0.92rem;
    font-weight: 900;
}

.cc-checkout-core .cc-address-book__add,
.cc-checkout-core .hikashop_checkout_address_new_button.cc-address-book__add {
    display: inline-flex;
    min-height: 2.4rem;
    flex: 0 0 auto;
    gap: 0.42rem;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0.5rem 0.78rem;
    color: #ffffff;
    background: linear-gradient(135deg, #5a2c83, #713897);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 0.45rem 1rem rgba(78, 35, 104, 0.16);
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1;
}

.cc-checkout-core .cc-address-book__add:hover,
.cc-checkout-core .cc-address-book__add:focus-visible {
    color: #ffffff;
    background: linear-gradient(135deg, #492169, #622f88);
    box-shadow: 0 0.65rem 1.3rem rgba(78, 35, 104, 0.23);
    transform: translateY(-1px);
}

.cc-checkout-core .cc-address-book .hika_address_element {
    position: relative;
    margin: 0 0 0.7rem;
    padding: 0.75rem;
    background: #fbf9fc;
    border: 1px solid #e7dfe9;
    border-radius: 0.85rem;
}

.cc-checkout-core .cc-address-book .hika_address_element:has(input[type="radio"]:checked) {
    background: linear-gradient(135deg, #fdfbfe, #f5edf8);
    border-color: #8b5aa4;
    box-shadow: 0 0 0 2px rgba(101, 49, 138, 0.08);
}

.cc-checkout-core .cc-address-book .hika_edit {
    display: flex;
    gap: 0.45rem;
    align-items: center;
    justify-content: flex-end;
    float: none;
    margin: 0 0 0.55rem;
}

.cc-checkout-core .cc-address-book .hika_edit input[type="radio"] {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0 auto 0 0;
}

.cc-checkout-core .cc-address-book .hika_edit a {
    display: inline-flex;
    min-height: 2rem;
    gap: 0.35rem;
    align-items: center;
    padding: 0.35rem 0.55rem;
    color: #633484;
    background: #ffffff;
    border: 1px solid #dfd3e4;
    border-radius: 999px;
    font-size: 0.67rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-checkout-core .cc-address-book .hika_address_display {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

@media (max-width: 575.98px) {
    .cc-mini-cart__action {
        padding-inline: 0.68rem;
    }

    .cc-address-book__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-checkout-core .cc-address-book__add {
        width: 100%;
    }

    .cc-checkout-core .hikashop_payment_methods_table tr td,
    .cc-checkout-core .hikashop_payment_methods_table tr td:first-child,
    .cc-checkout-core .hikashop_payment_methods_table tr td:last-child {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .cc-checkout-core .hikashop_payment_methods_table :is(
        .hikashop_checkout_payment_cost,
        .hikashop_checkout_payment_images,
        .hikashop_checkout_payment_description
    ) {
        grid-column: 2;
        grid-row: auto;
        justify-self: start;
    }

    .cc-checkout-core .cc-payment-method__visual {
        width: fit-content;
        max-width: 100%;
        min-width: 0;
        grid-column: 2;
        grid-row: auto;
        justify-self: start;
    }

    .cc-checkout-core .cc-payment-method__visual-copy > strong {
        white-space: normal;
    }
}

/* Store introduction */

.cc-shop-hero {
    position: relative;
    display: grid;
    min-height: 30rem;
    grid-template-columns: minmax(0, 1.38fr) minmax(18rem, 0.62fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
    margin: 0 0 clamp(3.8rem, 8vw, 6.5rem);
    padding: clamp(2rem, 5vw, 4.75rem);
    overflow: hidden;
    color: #fff;
    background: radial-gradient(circle at 12% 110%, rgba(156, 221, 212, 0.28), transparent 36%),
    linear-gradient(128deg, #351b49 0%, #572778 56%, #733b84 100%);
    border-radius: 1.55rem;
    box-shadow: 0 1.5rem 3.5rem rgba(63, 30, 85, 0.19);
}

.cc-shop-hero::before,
.cc-shop-hero::after {
    position: absolute;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    pointer-events: none;
}

.cc-shop-hero::before {
    width: 25rem;
    height: 25rem;
    top: -14rem;
    right: -7rem;
}

.cc-shop-hero::after {
    width: 15rem;
    height: 15rem;
    right: 19rem;
    bottom: -11rem;
}

.cc-shop-hero__content,
.cc-shop-feature {
    position: relative;
    z-index: 1;
}

.cc-shop-eyebrow {
    margin: 0 0 0.85rem;
    color: var(--cc-shop-purple);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cc-shop-hero .cc-shop-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--cc-shop-mint);
}

.cc-shop-hero .cc-shop-eyebrow::before {
    width: 1.8rem;
    height: 1px;
    content: "";
    background: currentColor;
}

.cc-shop-hero h1 {
    max-width: 12ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.55rem, 5.3vw, 5.25rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.92;
}

.cc-shop-hero__lead {
    max-width: 41rem;
    margin: 1.5rem 0 1.8rem;
    color: rgba(255, 255, 255, 0.83);
    font-size: clamp(1rem, 1.7vw, 1.17rem);
    line-height: 1.65;
}

.cc-shop-collections {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.cc-shop-collections a {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    padding: 0.52rem 0.82rem;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 750;
    text-decoration: none;
    transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.cc-shop-collections a:hover,
.cc-shop-collections a:focus-visible {
    color: var(--cc-shop-purple-dark);
    background: var(--cc-shop-mint);
    border-color: var(--cc-shop-mint);
    transform: translateY(-2px);
}

.cc-shop-feature {
    display: grid;
    min-height: 22rem;
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
    color: var(--cc-shop-purple-dark);
    background: #fbf9fc;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 1.45rem;
    box-shadow: 0 1.35rem 2.8rem rgba(18, 8, 25, 0.28);
    isolation: isolate;
    text-decoration: none;
    transition: transform 220ms ease, box-shadow 220ms ease;
}

.cc-shop-feature:hover,
.cc-shop-feature:focus-visible {
    color: var(--cc-shop-purple-dark);
    box-shadow: 0 1.75rem 3.4rem rgba(18, 8, 25, 0.38);
    transform: translateY(-5px);
}

.cc-shop-feature__visual {
    position: relative;
    display: grid;
    min-height: 13.8rem;
    place-items: center;
    padding: 1.35rem 0.65rem 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 72% 28%, rgba(156, 221, 212, 0.74), transparent 25%),
        radial-gradient(circle at 18% 92%, rgba(249, 185, 0, 0.2), transparent 29%),
        linear-gradient(145deg, #f7f0f9 0%, #ece2f0 100%);
}

.cc-shop-feature__visual::after {
    position: absolute;
    width: 72%;
    height: 1.4rem;
    bottom: 0.6rem;
    left: 14%;
    z-index: 0;
    content: "";
    background: rgba(54, 25, 68, 0.23);
    border-radius: 50%;
    filter: blur(0.85rem);
}

.cc-shop-feature__visual img {
    position: relative;
    z-index: 1;
    width: min(112%, 22rem);
    max-width: none;
    height: auto;
    margin-bottom: -0.4rem;
    filter: drop-shadow(0 0.8rem 0.7rem rgba(44, 22, 54, 0.2));
    transform: rotate(-1.5deg) translateY(0.35rem);
    transition: transform 260ms ease;
}

.cc-shop-feature:hover .cc-shop-feature__visual img,
.cc-shop-feature:focus-visible .cc-shop-feature__visual img {
    transform: rotate(0deg) translateY(0.1rem) scale(1.035);
}

.cc-shop-feature__label {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 2;
    padding: 0.42rem 0.68rem;
    color: #fff;
    background: var(--cc-shop-purple-dark);
    border-radius: 999px;
    box-shadow: 0 0.45rem 1rem rgba(54, 25, 68, 0.18);
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-shop-feature__body {
    display: flex;
    flex-direction: column;
    padding: 1.15rem 1.3rem 1.3rem;
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid rgba(82, 42, 105, 0.1);
}

.cc-shop-feature__collection {
    margin-bottom: 0.22rem;
    color: #6c5875;
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-shop-feature strong {
    color: var(--cc-shop-purple-dark);
    font-size: clamp(1.55rem, 2.6vw, 2.05rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.cc-shop-feature__meta {
    margin-top: 0.48rem;
    color: #6e6273;
    font-size: 0.75rem;
    line-height: 1.45;
}

.cc-shop-feature__link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.55rem;
    margin-top: 0.85rem;
    color: var(--cc-shop-purple);
    font-size: 0.76rem;
    font-weight: 850;
}

.cc-shop-feature__arrow {
    display: inline-grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    color: var(--cc-shop-purple-dark);
    background: var(--cc-shop-mint);
    border-radius: 50%;
    font-size: 0.92rem;
    transition: transform 180ms ease;
}

.cc-shop-feature:hover .cc-shop-feature__arrow,
.cc-shop-feature:focus-visible .cc-shop-feature__arrow {
    transform: translateX(3px);
}

.cc-shop-heading {
    max-width: 46rem;
    margin: 0 0 clamp(2.5rem, 5vw, 4rem);
}

.cc-shop-heading h2 {
    margin: 0;
    color: var(--cc-shop-purple-dark);
    font-size: clamp(2.15rem, 4.5vw, 4.15rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.98;
}

.cc-shop-heading > p:last-child {
    max-width: 39rem;
    margin: 1rem 0 0;
    color: #706475;
    line-height: 1.65;
}

/* Product collections and cards */

body.itemid-107.layout-listing .hikashop_products_pagination_top,
body.itemid-107.layout-listing .hikashop_results_counter,
body.itemid-107 .hikashop_footer {
    display: none !important;
}

body.itemid-107.layout-listing .hikashop_products_listing_main > h2 {
    position: relative;
    margin: clamp(3.8rem, 8vw, 6.5rem) 0 1.5rem;
    padding-top: 1.05rem;
    color: var(--cc-shop-purple-dark);
    border-top: 1px solid var(--cc-shop-line);
    font-size: clamp(1.75rem, 3.8vw, 2.8rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1;
}

body.itemid-107.layout-listing .hikashop_products_listing_main > h2::before {
    display: block;
    margin-bottom: 0.55rem;
    color: #977aa7;
    content: "Collection";
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.itemid-107.layout-listing .hikashop_products_listing {
    scroll-margin-top: 7rem;
}

body.itemid-107.layout-listing .hikashop_products > .hk-row-fluid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: clamp(1rem, 2.5vw, 1.7rem);
    margin: 0 !important;
}

body.itemid-107.layout-listing .hikashop_products > .hk-row-fluid > .hikashop_product {
    width: auto !important;
    max-width: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    padding: 0 !important;
}

body.itemid-107.layout-listing .hikashop_container,
body.itemid-107.layout-listing .hikashop_subcontainer {
    height: 100% !important;
}

body.itemid-107.layout-listing .hikashop_subcontainer {
    overflow: hidden;
    background: #fff !important;
    border: 1px solid var(--cc-shop-line);
    border-radius: 1.2rem;
    box-shadow: 0 0.65rem 1.8rem rgba(63, 30, 85, 0.07);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

body.itemid-107.layout-listing .hikashop_subcontainer:hover {
    border-color: #d2bfdc;
    box-shadow: 0 1.2rem 2.7rem rgba(63, 30, 85, 0.14);
    transform: translateY(-6px);
}

body.itemid-107.layout-listing .hikashop_listing_img_title {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: stretch;
    padding: 0.75rem 0.75rem 1.15rem;
    text-align: left !important;
}

body.itemid-107.layout-listing .hikashop_product_image {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 1rem;
    order: 1;
}

body.itemid-107.layout-listing .hikashop_product_image_subdiv {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 0.82;
    overflow: hidden;
    background: radial-gradient(circle at 50% 35%, #fff 0%, #f9f6fa 65%, #f0e9f3 100%);
    border-radius: 0.85rem;
}

body.itemid-107.layout-listing .hikashop_product_image_subdiv > a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 0.8rem;
}

body.itemid-107.layout-listing .hikashop_product_listing_image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain;
    filter: drop-shadow(0 0.7rem 0.8rem rgba(45, 25, 54, 0.12));
    transition: transform 260ms ease;
}

body.itemid-107.layout-listing .hikashop_subcontainer:hover .hikashop_product_listing_image {
    transform: scale(1.045);
}

body.itemid-107.layout-listing .hikashop_product_name {
    display: block;
    padding: 0 0.45rem;
    order: 2;
}

body.itemid-107.layout-listing .hikashop_product_name > a {
    display: flex;
    min-height: 7rem;
    flex-direction: column;
    color: var(--cc-shop-ink);
    font-size: clamp(1rem, 1.7vw, 1.18rem);
    font-weight: 820;
    letter-spacing: -0.025em;
    line-height: 1.32;
    text-decoration: none;
}

body.itemid-107.layout-listing .hikashop_product_name > a::after {
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    padding-top: 1rem;
    color: var(--cc-shop-purple);
    content: "Découvrir  →";
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

body.itemid-107.layout-listing .hikashop_product_price_full {
    display: block;
    padding: 0 0.45rem;
    color: var(--cc-shop-purple);
    order: 3;
    font-size: 1.08rem;
    font-weight: 900;
}

body.itemid-107.layout-listing .hikashop_product_price_per_unit {
    display: none;
}

body.itemid-107.layout-listing .hikashop_product_code_list {
    order: 4;
}

body.itemid-107.layout-listing .hikashop_products_pagination_bottom {
    margin-top: 3rem;
}

body.itemid-107.layout-listing .hikashop_products_pagination_bottom .list-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background: var(--cc-shop-lilac);
    border-radius: 1rem;
}

body.itemid-107.layout-listing .hikashop_pagination .page-link {
    color: var(--cc-shop-purple);
    border-color: #dfd1e5;
}

body.itemid-107.layout-listing .hikashop_pagination .active .page-link {
    color: #fff;
    background: var(--cc-shop-purple);
    border-color: var(--cc-shop-purple);
}

/* Product page */

.cc-shop-back {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    margin: 0.5rem 0 1.5rem;
    color: var(--cc-shop-purple);
    font-size: 0.8rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-shop-back:hover,
.cc-shop-back:focus-visible {
    color: var(--cc-shop-purple-dark);
}

body.itemid-107.layout-show .hikashop_product_page {
    max-width: 1120px;
    margin: 0 auto;
}

.cc-shop-product-layout .hikashop_product_top_part h1 {
    position: relative;
    max-width: 19ch;
    margin: 0 0 clamp(2rem, 5vw, 3.3rem);
    padding-top: 1.5rem;
    color: var(--cc-shop-purple-dark);
    font-size: clamp(2.4rem, 5vw, 4.75rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.98;
}

.cc-shop-product-layout .hikashop_product_top_part h1::before {
    position: absolute;
    top: 0;
    left: 0;
    color: #977aa7;
    content: "Boutique officielle";
    font-size: 0.67rem;
    font-weight: 900;
    letter-spacing: 0.15em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-shop-product-layout > .hk-row-fluid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(20rem, 0.9fr) !important;
    gap: clamp(1.3rem, 4vw, 3.3rem);
    align-items: stretch;
    margin: 0 !important;
}

.cc-shop-product-layout #hikashop_product_left_part,
.cc-shop-product-layout #hikashop_product_right_part {
    width: auto !important;
    max-width: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
}

.cc-shop-product-layout #hikashop_product_left_part {
    display: grid;
    min-height: 32rem;
    place-items: center;
    padding: clamp(1.3rem, 4vw, 3.3rem);
    overflow: hidden;
    background: radial-gradient(circle at 50% 40%, #fff 0%, #f8f3fa 62%, #efe6f2 100%);
    border: 1px solid var(--cc-shop-line);
    border-radius: 1.4rem;
}

.cc-shop-product-layout #hikashop_product_image_main,
.cc-shop-product-layout #hikashop_main_image_div,
.cc-shop-product-layout .hikashop_product_main_image,
.cc-shop-product-layout .hikashop_product_main_image_subdiv {
    width: 100%;
}

.cc-shop-product-layout #hikashop_main_image {
    width: min(100%, 31rem) !important;
    height: auto !important;
    max-height: 31rem;
    margin: 0 !important;
    object-fit: contain;
    filter: drop-shadow(0 1rem 1.2rem rgba(44, 25, 54, 0.15));
}

.cc-shop-product-layout #hikashop_product_right_part {
    display: flex;
    min-height: 32rem;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem);
    background: linear-gradient(145deg, #fff, #f8f2fa);
    border: 1px solid var(--cc-shop-line);
    border-radius: 1.4rem;
    box-shadow: 0 1rem 2.8rem rgba(63, 30, 85, 0.08);
}

.cc-shop-product-layout #hikashop_product_price_main {
    display: block;
    margin-bottom: 1rem;
    color: var(--cc-shop-purple);
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    font-weight: 900;
    letter-spacing: -0.04em;
}

.cc-shop-product-layout .hikashop_product_price_per_unit {
    display: none;
}

.cc-shop-product-layout .hikashop_product_stock_count {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 1.25rem;
    padding: 0.42rem 0.68rem;
    color: #356b62;
    background: #e7f6f3;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.cc-shop-product-layout .hikashop_product_stock_count::before {
    width: 0.42rem;
    height: 0.42rem;
    content: "";
    background: #48a290;
    border-radius: 50%;
}

.cc-shop-product-layout .hikashop_product_quantity_main {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    align-items: center;
}

.cc-shop-product-layout .hikashop_quantity_form table {
    display: grid;
    grid-template-columns: 3.4rem 2.3rem;
    grid-template-rows: 1.625rem 1.625rem;
    margin: 0;
}

.cc-shop-product-layout .hikashop_quantity_form tbody,
.cc-shop-product-layout .hikashop_quantity_form tr {
    display: contents;
}

.cc-shop-product-layout .hikashop_quantity_form td {
    display: block;
    padding: 0;
}

.cc-shop-product-layout .hikashop_quantity_form tr:first-child td:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
}

.cc-shop-product-layout .hikashop_quantity_form tr:first-child td:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
}

.cc-shop-product-layout .hikashop_quantity_form tr:first-child td:last-child {
    display: none;
}

.cc-shop-product-layout .hikashop_quantity_form tr:last-child td {
    grid-column: 2;
    grid-row: 2;
}

.cc-shop-product-layout .hikashop_product_quantity_field {
    width: 3.4rem !important;
    height: 3.25rem;
    padding: 0.4rem;
    color: var(--cc-shop-ink);
    background: #fff;
    border: 1px solid #d9cadd;
    border-radius: 0.75rem 0 0 0.75rem;
    font-weight: 800;
    text-align: center;
}

.cc-shop-product-layout .hikashop_product_quantity_field_change {
    display: grid;
    width: 2.3rem;
    height: 1.625rem;
    place-items: center;
    padding: 0;
    color: var(--cc-shop-purple);
    background: #fff;
    border: 1px solid #d9cadd;
    border-left: 0;
    border-radius: 0 0.75rem 0 0;
    font-size: 0.8rem;
    text-decoration: none;
}

.cc-shop-product-layout .hikashop_product_quantity_field_change_minus {
    border-top: 0;
    border-radius: 0 0 0.75rem 0;
}

.cc-shop-product-layout .hikacart {
    display: inline-flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.3rem;
    color: #fff !important;
    background: linear-gradient(135deg, var(--cc-shop-purple), #724093) !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 0.8rem 1.7rem rgba(90, 44, 131, 0.22);
    font-size: 0.84rem;
    font-weight: 900;
    text-decoration: none;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.cc-shop-product-layout .hikacart:hover,
.cc-shop-product-layout .hikacart:focus-visible {
    box-shadow: 0 1rem 2.2rem rgba(90, 44, 131, 0.32);
    transform: translateY(-2px);
}

.cc-shop-product-layout .hikashop_product_options,
.cc-shop-product-layout .hikashop_product_characteristics {
    margin-bottom: 1rem;
}

.cc-shop-product-layout select,
.cc-shop-product-layout .form-select {
    min-height: 3rem;
    border-color: #d9cadd;
    border-radius: 0.75rem;
}

.cc-shop-product-layout #hikashop_product_bottom_part {
    margin-top: clamp(1.5rem, 4vw, 3rem);
    padding: clamp(1.5rem, 4vw, 3.5rem);
    color: #5f5364;
    background: #fff;
    border: 1px solid var(--cc-shop-line);
    border-radius: 1.4rem;
    box-shadow: 0 0.8rem 2.2rem rgba(63, 30, 85, 0.055);
    font-size: 1rem;
    line-height: 1.72;
}

.cc-shop-product-layout #hikashop_product_description_main > :first-child {
    margin-top: 0;
}

.cc-shop-product-layout #hikashop_product_description_main h1,
.cc-shop-product-layout #hikashop_product_description_main h1 * {
    max-width: 33ch;
    margin: 0 0 1.4rem;
    color: var(--cc-shop-purple-dark) !important;
    font-size: clamp(1.45rem, 3vw, 2.35rem) !important;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.12;
}

.cc-shop-product-layout #hikashop_product_description_main [style*="color"] {
    color: inherit !important;
}

/* Product copy kept deliberately semantic: one wrapper, headings, paragraphs
   and native lists remain easy to edit from the HikaShop editor. */
.cc-shop-product-layout .cc-product-copy {
    max-width: 58rem;
}

.cc-shop-product-layout .cc-product-copy > :first-child {
    margin-top: 0;
}

.cc-shop-product-layout .cc-product-copy > :last-child {
    margin-bottom: 0;
}

.cc-shop-product-layout .cc-product-lead {
    max-width: 42ch;
    margin-bottom: 1.4rem;
    color: var(--cc-shop-purple-dark);
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    font-weight: 780;
    letter-spacing: -0.025em;
    line-height: 1.35;
}

.cc-shop-product-layout .cc-product-summary {
    max-width: 62ch;
    margin: -0.55rem 0 1.5rem;
    padding-left: 1rem;
    color: #6d5c73;
    border-left: 3px solid var(--cc-shop-mint);
    font-size: 0.96rem;
    font-weight: 650;
}

.cc-shop-product-layout .cc-product-copy h2 {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    margin: clamp(1.8rem, 4vw, 2.65rem) 0 0.9rem;
    color: var(--cc-shop-purple-dark);
    font-size: clamp(1.12rem, 2vw, 1.42rem);
    font-weight: 880;
    letter-spacing: -0.025em;
    line-height: 1.25;
}

.cc-shop-product-layout .cc-product-copy h2::before {
    width: 0.55rem;
    height: 0.55rem;
    flex: 0 0 auto;
    content: "";
    background: linear-gradient(135deg, var(--cc-shop-mint), #70c4b8);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
}

.cc-shop-product-layout .cc-product-copy p {
    max-width: 72ch;
    margin-bottom: 0.9rem;
}

.cc-shop-product-layout .cc-product-copy a {
    color: var(--cc-shop-purple);
    font-weight: 760;
    text-decoration-color: rgba(90, 44, 131, 0.3);
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.18em;
}

.cc-shop-product-layout .cc-product-copy a:hover,
.cc-shop-product-layout .cc-product-copy a:focus-visible {
    color: var(--cc-shop-purple-dark);
    text-decoration-color: currentColor;
}

.cc-shop-product-layout .cc-product-copy ul:not(.cc-product-tracklist) {
    display: grid;
    gap: 0.55rem;
    max-width: 72ch;
    margin: 0 0 1.15rem;
    padding: 0;
    list-style: none;
}

.cc-shop-product-layout .cc-product-copy ul:not(.cc-product-tracklist) > li {
    position: relative;
    padding-left: 1.4rem;
}

.cc-shop-product-layout .cc-product-copy ul:not(.cc-product-tracklist) > li::before {
    position: absolute;
    top: 0.67em;
    left: 0.1rem;
    width: 0.42rem;
    height: 0.42rem;
    content: "";
    background: var(--cc-shop-mint);
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #74bdb3;
}

.cc-shop-product-layout .cc-product-copy ol:not(.cc-product-tracklist) {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0 0 1.3rem;
    padding: 0;
    counter-reset: cc-product-step;
    list-style: none;
}

.cc-shop-product-layout .cc-product-copy ol:not(.cc-product-tracklist) > li {
    position: relative;
    min-height: 100%;
    padding: 2.7rem 1rem 1rem;
    color: #5d5062;
    background: linear-gradient(145deg, #fbf8fc, #f5eef8);
    border: 1px solid var(--cc-shop-line);
    border-radius: 0.9rem;
    counter-increment: cc-product-step;
}

.cc-shop-product-layout .cc-product-copy ol:not(.cc-product-tracklist) > li::before {
    position: absolute;
    top: 0.8rem;
    left: 1rem;
    display: grid;
    width: 1.45rem;
    height: 1.45rem;
    place-items: center;
    color: #fff;
    content: counter(cc-product-step);
    background: var(--cc-shop-purple);
    border-radius: 50%;
    font-size: 0.68rem;
    font-weight: 900;
}

.cc-shop-product-layout .cc-product-tracklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 0.8rem;
    margin: 0 0 1.35rem;
    padding: 0;
    counter-reset: cc-track;
    list-style: none;
}

.cc-shop-product-layout .cc-product-tracklist > li {
    position: relative;
    min-width: 0;
    padding: 0.75rem 0.85rem 0.75rem 2.65rem;
    color: #514457;
    background: #faf7fb;
    border: 1px solid #eee6f0;
    border-radius: 0.75rem;
    line-height: 1.45;
}

.cc-shop-product-layout ol.cc-product-tracklist > li {
    counter-increment: cc-track;
}

.cc-shop-product-layout ol.cc-product-tracklist > li::before,
.cc-shop-product-layout ul.cc-product-tracklist > li::before {
    position: absolute;
    top: 0.72rem;
    left: 0.8rem;
    display: grid;
    width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    color: var(--cc-shop-purple);
    background: #eee3f3;
    border-radius: 50%;
    font-size: 0.65rem;
    font-weight: 900;
}

.cc-shop-product-layout ol.cc-product-tracklist > li::before {
    content: counter(cc-track);
}

.cc-shop-product-layout ul.cc-product-tracklist > li::before {
    content: "♪";
    font-size: 0.8rem;
}

.cc-shop-product-layout .cc-product-video {
    position: relative;
    max-width: 52rem;
    aspect-ratio: 16 / 9;
    margin-top: 1rem;
    overflow: hidden;
    background: #1f1525;
    border-radius: 1rem;
    box-shadow: 0 1rem 2rem rgba(45, 28, 53, 0.14);
}

.cc-shop-product-layout .cc-product-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.cc-shop-product-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1rem;
    padding: 1rem;
    color: #65576a;
    background: var(--cc-shop-lilac);
    border-radius: 1.1rem;
}

.cc-shop-product-trust span {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    justify-content: center;
    font-size: 0.76rem;
    text-align: center;
}

.cc-shop-product-trust i {
    color: var(--cc-shop-purple);
}

.cc-shop-product-trust strong {
    color: var(--cc-shop-purple-dark);
    font-weight: 800;
}

@media (max-width: 991.98px) {
    body.itemid-107 [data-position="cc-main-top-01"] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.itemid-107 .cc-shop-cart {
        grid-column: 1 / -1;
    }

    .cc-shop-hero {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .cc-shop-feature {
        width: min(100%, 42rem);
        min-height: 0;
        grid-template-columns: minmax(13.5rem, 0.9fr) minmax(0, 1.1fr);
        grid-template-rows: 1fr;
        justify-self: center;
        transform: none;
    }

    .cc-shop-feature__visual {
        min-height: 18rem;
    }

    .cc-shop-feature__body {
        justify-content: center;
        border-top: 0;
        border-left: 1px solid rgba(82, 42, 105, 0.1);
    }

    .cc-shop-product-layout > .hk-row-fluid {
        grid-template-columns: 1fr !important;
    }

    .cc-shop-product-layout #hikashop_product_left_part,
    .cc-shop-product-layout #hikashop_product_right_part {
        min-height: 0;
    }
}

@media (max-width: 767.98px) {
    body.itemid-107 [data-position="cc-main-top-01"] {
        grid-template-columns: 1fr;
    }

    body.itemid-107.layout-listing .hikashop_products > .hk-row-fluid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .cc-shop-product-trust {
        grid-template-columns: 1fr;
    }

    .cc-shop-product-layout .cc-product-copy ol:not(.cc-product-tracklist),
    .cc-shop-product-layout .cc-product-tracklist {
        grid-template-columns: 1fr;
    }

    .cc-shop-product-trust span {
        justify-content: flex-start;
        text-align: left;
    }
}

@media (max-width: 575.98px) {
    body.itemid-107 .container-component {
        width: min(100% - 1.2rem, 1240px);
    }

    .cc-shop-hero {
        gap: 1.5rem;
        padding: 1.3rem;
        border-radius: 1.1rem;
    }

    .cc-shop-hero h1 {
        font-size: clamp(2.35rem, 13vw, 3.8rem);
    }

    .cc-shop-feature {
        width: 100%;
        min-height: 0;
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 1fr) auto;
    }

    .cc-shop-feature__visual {
        min-height: 13.2rem;
    }

    .cc-shop-feature__body {
        border-top: 1px solid rgba(82, 42, 105, 0.1);
        border-left: 0;
    }

    body.itemid-107.layout-listing .hikashop_products > .hk-row-fluid {
        grid-template-columns: 1fr !important;
    }

    body.itemid-107.layout-listing .hikashop_product_name > a {
        min-height: 6.1rem;
    }

    .cc-shop-product-layout .hikashop_product_top_part h1 {
        font-size: clamp(2.15rem, 12vw, 3.6rem);
    }

    .cc-shop-product-layout #hikashop_product_left_part,
    .cc-shop-product-layout #hikashop_product_right_part,
    .cc-shop-product-layout #hikashop_product_bottom_part {
        padding: 1.15rem;
        border-radius: 1rem;
    }

    .cc-shop-product-layout .hikashop_product_quantity_main {
        align-items: stretch;
    }

    .cc-shop-product-layout .hikacart {
        width: 100%;
    }
}

/* ========================================================================
   HikaShop score catalogue — menu item 238 / category 37
   A research interface rather than a second commercial storefront.
   ======================================================================== */

body.itemid-238 {
    --cc-score-ink: #303030;
    --cc-score-purple: #202020;
    --cc-score-purple-dark: #202020;
    --cc-score-plum: #626262;
    --cc-score-mint: #9cddd4;
    --cc-score-paper: #fbfaf7;
    --cc-score-lilac: #eef8fa;
    --cc-score-line: #e0e6e7;
    --cc-score-muted: #737373;
}

/* Center the catalogue independently of its filter rail when space allows.
   On narrower desktops the rail stays separate and results use remaining room. */
@supports (display: grid) {
    @media (min-width: 992px) {
        body.itemid-238.layout-listing.wrapper-fluid .site-grid {
            --cc-catalogue-rail-width: clamp(16rem, 17vw, 17rem);
            --cc-catalogue-rail-gap: clamp(1rem, 1.5vw, 1.5rem);
            --cc-catalogue-page-gutter: clamp(1rem, 1.5vw, 1.5rem);
            --cc-catalogue-main-width: min(76rem, calc(100vw - var(--cc-catalogue-rail-width) - var(--cc-catalogue-rail-gap) - 2 * var(--cc-catalogue-page-gutter)));
            --cc-catalogue-main-start: max(
                calc(var(--cc-catalogue-page-gutter) + var(--cc-catalogue-rail-width) + var(--cc-catalogue-rail-gap)),
                calc((100vw - var(--cc-catalogue-main-width)) / 2)
            );
            --cc-catalogue-hero-width: min(90rem, calc(100vw - 2 * var(--cc-catalogue-page-gutter)));
        }

        body.itemid-238.layout-listing.wrapper-fluid .site-grid > .container-component {
            grid-column: full-start / full-end;
            justify-self: start;
            width: var(--cc-catalogue-main-width);
            margin-inline-start: var(--cc-catalogue-main-start);
        }

        body.itemid-238.layout-listing.wrapper-fluid .site-grid > .container-sidebar-left {
            grid-column: full-start / full-end;
            justify-self: start;
            width: var(--cc-catalogue-rail-width);
            margin-block-start: var(--cc-catalogue-filter-offset, 0px);
            margin-inline-start: max(
                var(--cc-catalogue-page-gutter),
                calc((100vw - var(--cc-catalogue-main-width)) / 2 - var(--cc-catalogue-rail-width) - var(--cc-catalogue-rail-gap))
            );
        }

        body.itemid-238.layout-listing.wrapper-fluid .container-sidebar-left > .sidebar-left.card {
            margin-block-start: 0;
            position: sticky;
            top: var(--cc-catalogue-sticky-top, 1rem);
        }

        body.itemid-238.layout-listing.wrapper-fluid .cc-catalogue-filter-panel {
            position: static;
            max-height: calc(100dvh - var(--cc-catalogue-sticky-top, 1rem) - 1rem);
        }

        body.itemid-238.layout-show.wrapper-fluid .site-grid {
            grid-template-columns: [full-start] minmax(1rem, 1fr)
                [main-start] repeat(4, minmax(0, 20rem))
                [main-end] minmax(1rem, 1fr)
                [full-end];
        }
    }
}

body.itemid-238 .mod-breadcrumbs__wrapper {
    margin-top: 1rem;
}

body.itemid-238 .breadcrumb {
    padding-inline: 0 !important;
    color: #777777;
    background: transparent;
    font-size: 0.8rem;
}

body.itemid-238 .breadcrumb a {
    color: var(--cc-score-purple);
    text-decoration: none;
}

body.itemid-238 .hikashop_footer {
    display: none !important;
}

.cc-catalogue-eyebrow {
    margin: 0 0 0.7rem;
    color: var(--cc-score-purple);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

/* Catalogue introduction and primary search */

.cc-catalogue-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: end;
    margin: 0.4rem 0 clamp(3.5rem, 7vw, 5.5rem);
    padding: clamp(2rem, 5vw, 4rem);
    overflow: hidden;
    color: #fff;
    background: radial-gradient(circle at 92% 12%, rgba(156, 221, 212, 0.2), transparent 29%),
    linear-gradient(128deg, #363636 0%, #4f4f4f 52%, #696969 100%);
    border-radius: 1.45rem;
    box-shadow: 0 1.4rem 3rem rgba(69, 69, 69, 0.17);
}

.cc-catalogue-hero::before {
    position: absolute;
    width: 34rem;
    height: 12rem;
    top: 1rem;
    right: -7rem;
    content: "";
    opacity: 0.16;
    background: repeating-linear-gradient(
            to bottom,
            transparent 0,
            transparent 1.05rem,
            #fff 1.05rem,
            #fff 1.1rem,
            transparent 1.1rem,
            transparent 2.15rem
    );
    transform: rotate(-7deg);
    pointer-events: none;
}

.cc-catalogue-hero::after {
    position: absolute;
    width: 7rem;
    height: 7rem;
    top: 3.1rem;
    right: 7rem;
    content: "♪";
    color: rgba(255, 255, 255, 0.15);
    font-family: var(--cc-font-family, "Sora", sans-serif);
    font-size: 8rem;
    line-height: 1;
    transform: rotate(7deg);
    pointer-events: none;
}

.cc-catalogue-hero__copy,
.cc-catalogue-stats,
.cc-catalogue-hero__search {
    position: relative;
    z-index: 1;
}

.cc-catalogue-hero .cc-catalogue-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--cc-score-mint);
}

.cc-catalogue-hero .cc-catalogue-eyebrow::before {
    width: 1.8rem;
    height: 1px;
    content: "";
    background: currentColor;
}

.cc-catalogue-hero h1 {
    max-width: 13ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.45rem, 5vw, 4.8rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.94;
}

.cc-catalogue-hero__copy > p:not(.cc-catalogue-eyebrow) {
    max-width: 42rem;
    margin: 1.25rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.98rem;
    line-height: 1.65;
}

.cc-catalogue-hero__copy > .cc-catalogue-hero__partner {
    max-width: 38rem;
    margin-top: 0.75rem;
    color: var(--cc-score-mint);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.015em;
    line-height: 1.45;
}

.cc-catalogue-stats {
    display: grid;
    gap: 0.7rem;
    margin: 0;
}

.cc-catalogue-stats > div {
    display: grid;
    min-width: 9.5rem;
    grid-template-columns: auto 1fr;
    gap: 0.6rem;
    align-items: center;
    padding: 0.7rem 0.85rem;
    background: rgba(255, 255, 255, 0.075);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.85rem;
}

.cc-catalogue-stats dt {
    color: var(--cc-score-mint);
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: -0.04em;
}

.cc-catalogue-stats dd {
    max-width: 8rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.68rem;
    line-height: 1.25;
}

.cc-catalogue-hero__search {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(13rem, 0.42fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
    margin-top: 0.5rem;
    padding: 1rem;
    color: var(--cc-score-ink);
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 1rem 2rem rgba(25, 25, 25, 0.2);
}

.cc-catalogue-search-heading {
    display: flex;
    flex-direction: column;
    padding-left: 0.35rem;
}

.cc-catalogue-search-heading span {
    color: var(--cc-score-purple-dark);
    font-size: 0.9rem;
    font-weight: 900;
}

.cc-catalogue-search-heading small {
    margin-top: 0.2rem;
    color: var(--cc-score-muted);
    font-size: 0.69rem;
    line-height: 1.35;
}

.cc-catalogue-search-module,
.cc-catalogue-search-module .hikashop_filter_main_div,
.cc-catalogue-search-module form {
    min-width: 0;
    width: 100%;
}

/* These modules have their own accordion; keep the text search and criteria
   reachable when HikaShop's native mobile collapse hides its inner wrapper. */
.cc-catalogue-search-module .hikashop_filter_main_div,
.cc-catalogue-filter-panel .hikashop_filter_main_div {
    display: block !important;
}

.cc-catalogue-search-module .hikashop_filter_collapsable_title_mobile,
.cc-catalogue-search-module .hikashop_filter_title,
.cc-catalogue-search-module br,
.cc-catalogue-search-module .hikashop_filter_button_outside,
.cc-catalogue-search-module .hikashop_reset_button_outside {
    display: none !important;
}

.cc-catalogue-search-module .hikashop_filter_main {
    width: 100% !important;
    min-height: 0 !important;
    float: none !important;
}

.cc-catalogue-search-module .filter_values_container {
    position: relative;
    display: block;
}

.cc-catalogue-search-module .filter_values_container::before {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 1rem;
    color: var(--cc-score-purple);
    content: "\f002";
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free";
    font-size: 0.9rem;
    font-weight: 900;
    transform: translateY(-50%);
    pointer-events: none;
}

.cc-catalogue-search-module input[type="text"] {
    width: 100%;
    height: 3.45rem;
    padding: 0.75rem 1rem 0.75rem 2.75rem;
    color: var(--cc-score-ink);
    background: var(--cc-score-lilac);
    border: 1px solid #d5dee0;
    border-radius: 0.8rem;
    box-shadow: none;
    font-size: 0.96rem;
}

.cc-catalogue-search-module input[type="text"]:focus {
    background: #fff;
    border-color: var(--cc-score-purple);
    box-shadow: 0 0 0 0.2rem rgba(105, 105, 105, 0.12);
}

.cc-catalogue-search-module .filter_values_container:has(.cc-catalogue-search-submit) {
    display: flex;
    min-height: 3.45rem;
    gap: 0.45rem;
    align-items: center;
    padding: 0.45rem 0.55rem 0.45rem 2.75rem;
    background: var(--cc-score-lilac);
    border: 1px solid #d5dee0;
    border-radius: 0.8rem;
}

.cc-catalogue-search-module .filter_values_container:has(.cc-catalogue-search-submit) > input[type="text"] {
    width: auto;
    min-width: 0;
    height: 2.5rem;
    flex: 1 1 0;
    padding: 0.5rem 0.2rem;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.cc-catalogue-search-module .filter_values_container:has(.cc-catalogue-search-submit) > input[type="text"]:focus {
    background: transparent;
    box-shadow: none;
    outline: 0;
}

.cc-catalogue-search-reset {
    display: inline-flex;
    min-height: 2.3rem;
    flex: 0 0 auto;
    gap: 0.35rem;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.7rem;
    color: var(--cc-score-purple-dark);
    background: #fff;
    border: 1px solid #d5dee0;
    border-radius: 999px;
    box-shadow: 0 2px 6px rgba(69, 69, 69, 0.06);
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.cc-catalogue-search-reset[hidden] {
    display: none !important;
}

.cc-catalogue-search-reset::before {
    content: "↺";
    color: #959595;
    font-size: 0.9rem;
    font-weight: 700;
}

.cc-catalogue-search-reset:hover,
.cc-catalogue-search-reset:focus-visible {
    color: #fff;
    background: var(--cc-score-purple);
    border-color: var(--cc-score-purple);
    box-shadow: 0 4px 10px rgba(69, 69, 69, 0.18);
    text-decoration: none;
    transform: translateY(-1px);
}

.cc-catalogue-search-submit {
    min-height: 2.3rem;
    flex: 0 0 auto;
    padding: 0.5rem 0.85rem;
    color: #fff;
    background: var(--cc-score-purple);
    border: 1px solid var(--cc-score-purple);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
}

.cc-catalogue-search-submit:hover,
.cc-catalogue-search-submit:focus-visible {
    background: var(--cc-score-purple-dark);
    border-color: var(--cc-score-purple-dark);
}

.cc-catalogue-auto-filters .cc-catalogue-filter-panel .hikashop_filter_button_outside,
.cc-catalogue-auto-filters .cc-catalogue-filter-panel .hikashop_filter_button_inside {
    display: none;
}

@media (max-width: 575px) {
    .cc-catalogue-hero__search {
        min-width: 0;
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-catalogue-search-module .hikashop_filter_main .filter_values_container:has(.cc-catalogue-search-submit) {
        box-sizing: border-box;
        flex-wrap: wrap;
        padding-left: 0.55rem;
    }

    .cc-catalogue-search-module .filter_values_container:has(.cc-catalogue-search-submit)::before {
        top: 1.7rem;
    }

    .cc-catalogue-search-module .filter_values_container:has(.cc-catalogue-search-submit) > input[type="text"] {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        flex-basis: 100%;
        padding-left: 2.1rem;
    }

    .cc-catalogue-search-submit,
    .cc-catalogue-search-reset {
        flex: 1 1 auto;
        padding-inline: 0.55rem;
        font-size: 0.64rem;
    }
}

.cc-catalogue-search-reset:hover::before,
.cc-catalogue-search-reset:focus-visible::before {
    color: #fff;
}

.cc-catalogue-search-reset:focus-visible {
    outline: 3px solid rgba(105, 105, 105, 0.2);
    outline-offset: 2px;
}

.cc-catalogue-search-module .filter_active .filter_values_container:not(:has(.cc-catalogue-search-submit)) {
    display: flex;
    min-height: 3.45rem;
    gap: 0.65rem;
    align-items: center;
    padding: 0.7rem 0.8rem 0.7rem 2.75rem;
    background: var(--cc-score-lilac);
    border: 1px solid #d5dee0;
    border-radius: 0.8rem;
}

.cc-catalogue-search-module .hikashop_filter_list_selected {
    overflow: hidden;
    color: var(--cc-score-purple-dark);
    font-size: 0.86rem;
    font-weight: 850 !important;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-catalogue-search-module .filter_active a[title*="Supprimer"] {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    align-items: center;
    justify-content: center;
    margin-left: 0.25rem;
    padding: 0;
    color: var(--cc-score-purple);
    background: #fff;
    border: 1px solid #d0dadc;
    border-radius: 999px;
    box-shadow: 0 2px 7px rgba(69, 69, 69, 0.08);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.cc-catalogue-search-module .filter_active .filter_values_container:has(.cc-catalogue-search-reset:not([hidden])) .hikashop_filter_list_selected {
    min-width: 0;
    flex: 1 1 auto;
}

.cc-catalogue-search-module .filter_active .filter_values_container:has(.cc-catalogue-search-reset:not([hidden])) a[title*="Supprimer"] {
    margin-left: 0;
}

.cc-catalogue-search-module .filter_active a[title*="Supprimer"]:hover,
.cc-catalogue-search-module .filter_active a[title*="Supprimer"]:focus-visible {
    color: #fff;
    background: var(--cc-score-purple);
    border-color: var(--cc-score-purple);
    box-shadow: 0 4px 11px rgba(69, 69, 69, 0.2);
    transform: scale(1.06);
}

.cc-catalogue-search-module .filter_active a[title*="Supprimer"]:focus-visible {
    outline: 3px solid rgba(105, 105, 105, 0.2);
    outline-offset: 2px;
}

.hikashop_filter_suggestions.cc-catalogue-search-suggestions {
    position: fixed !important;
    z-index: 1200;
    right: auto;
    bottom: auto;
    box-sizing: border-box;
    max-width: calc(100vw - 1rem);
    max-height: min(22rem, 55vh);
    margin: 0;
    padding: 0.45rem;
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 0.9rem;
    box-shadow: 0 1rem 2.2rem rgba(54, 54, 54, 0.2);
    overscroll-behavior: contain;
}

.hikashop_filter_suggestions.cc-catalogue-search-suggestions::before {
    display: block;
    margin: 0 0 0.25rem;
    padding: 0.25rem 0.65rem 0.45rem;
    color: var(--cc-score-muted);
    border-bottom: 1px solid var(--cc-score-line);
    content: "Suggestions de partitions";
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.hikashop_filter_suggestions.cc-catalogue-search-suggestions .hikashop_filter_suggestion {
    margin: 0.12rem 0;
    padding: 0.7rem 0.8rem;
    color: var(--cc-score-ink);
    border-radius: 0.6rem;
    white-space: normal;
    transition: background-color 140ms ease, color 140ms ease;
}

.hikashop_filter_suggestions.cc-catalogue-search-suggestions .hikashop_filter_suggestion:hover,
.hikashop_filter_suggestions.cc-catalogue-search-suggestions .hikashop_filter_suggestion_active {
    color: var(--cc-score-purple-dark);
    background: var(--cc-score-lilac);
}

.hikashop_filter_suggestions.cc-catalogue-search-suggestions .hikashop_filter_suggestion_source {
    color: var(--cc-score-muted);
    font-size: 0.68rem;
}

.cc-catalogue-results-heading {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
    margin: 0 0 1.3rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--cc-score-line);
}

.cc-catalogue-results-heading h2 {
    margin: 0;
    color: var(--cc-score-purple-dark);
    font-size: clamp(2rem, 4vw, 3.45rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.95;
}

.cc-catalogue-results-heading > a {
    display: inline-flex;
    min-height: 2.7rem;
    gap: 0.5rem;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 0.9rem;
    color: var(--cc-score-purple);
    background: var(--cc-score-lilac);
    border: 1px solid #d5dee0;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 850;
    text-decoration: none;
}

/* Advanced filters */

body.itemid-238 .sidebar-left.card {
    overflow: visible;
    background: transparent;
    border: 0;
    box-shadow: none;
}

body.itemid-238 .sidebar-left.card > .card-body {
    padding: 0;
}

.cc-catalogue-filter-panel {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    padding: 1rem;
    overflow: auto;
    overflow-x: hidden;
    color: var(--cc-score-ink);
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 1.15rem;
    box-shadow: 0 0.8rem 2rem rgba(69, 69, 69, 0.08);
    scrollbar-color: #c1ced0 transparent;
    scrollbar-width: thin;
}

.cc-catalogue-filter-panel__header {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    padding: 0.15rem 0.1rem 0.9rem;
}

.cc-catalogue-filter-panel__icon {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    flex: 0 0 2.65rem;
    place-items: center;
    color: var(--cc-score-purple);
    background: var(--cc-score-lilac);
    border-radius: 0.75rem;
}

.cc-catalogue-filter-panel__header p {
    margin: 0 0 0.12rem;
    color: #999999;
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.cc-catalogue-filter-panel__header h2 {
    margin: 0;
    color: var(--cc-score-purple-dark);
    font-size: 1.02rem;
    font-weight: 900;
    letter-spacing: -0.025em;
}

.cc-catalogue-filter-panel__hint {
    margin: 0;
    padding: 0 0.1rem 0.9rem;
    color: var(--cc-score-muted);
    font-size: 0.68rem;
    line-height: 1.45;
}

.cc-catalogue-filter-panel__selection:not([hidden]) {
    margin: 0 0 0.8rem;
    padding: 0.75rem 0.8rem;
    background: var(--cc-score-lilac);
    border: 1px solid var(--cc-score-line);
    border-radius: 0.75rem;
}

.cc-catalogue-filter-panel__selection p {
    margin: 0 0 0.45rem;
    color: var(--cc-score-purple-dark);
    font-size: 0.68rem;
    font-weight: 850;
}

.cc-catalogue-filter-panel__selection ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cc-catalogue-filter-panel__selection li {
    max-width: 100%;
    padding: 0.28rem 0.55rem;
    overflow-wrap: anywhere;
    color: var(--cc-score-purple-dark);
    background: #fff;
    border: 1px solid #d5dee0;
    border-radius: 0.55rem;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.3;
}

.cc-catalogue-filter-panel .hikashop_filter_collapsable_title_mobile,
.cc-catalogue-filter-panel .hikashop_filter_main_Rechercher_9 {
    display: none !important;
}

.cc-catalogue-filter-panel .hikashop_filter_main_div,
.cc-catalogue-filter-panel form {
    width: 100%;
}

.cc-catalogue-filter-panel form {
    display: flex;
    flex-direction: column;
}

.cc-catalogue-filter-panel .hikashop_filter_main {
    width: 100% !important;
    min-height: 0 !important;
    float: none !important;
    border-top: 1px solid var(--cc-score-line);
}

.cc-catalogue-filter-panel .hikashop_filter_main > div {
    width: 100%;
}

.cc-catalogue-filter-panel .hikashop_filter_title {
    position: relative;
    display: flex;
    min-height: 3rem;
    gap: 0.45rem;
    align-items: center;
    padding: 0.65rem 1.55rem 0.65rem 0.1rem;
    color: var(--cc-score-purple-dark);
    cursor: pointer;
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.2;
    outline: none;
}

.cc-catalogue-filter-panel .hikashop_filter_title::after {
    position: absolute;
    right: 0.2rem;
    color: #a1a1a1;
    content: "+";
    font-size: 1rem;
    font-weight: 600;
}

.cc-catalogue-filter-panel .hikashop_filter_title:focus-visible {
    color: var(--cc-score-purple);
    text-decoration: underline;
    text-underline-offset: 0.2rem;
}

.cc-catalogue-filter-panel .is-open .hikashop_filter_title::after {
    content: "−";
}

.cc-filter-count {
    display: inline-flex;
    min-width: 1.45rem;
    height: 1.35rem;
    align-items: center;
    justify-content: center;
    padding: 0 0.32rem;
    color: #806c88;
    background: var(--cc-score-lilac);
    border-radius: 999px;
    font-size: 0.58rem;
    font-weight: 800;
}

.cc-catalogue-filter-panel .hikashop_filter_main br {
    display: none;
}

.cc-catalogue-filter-panel .filter_values_container,
.cc-catalogue-filter-panel .cc-filter-local-search {
    display: none;
}

.cc-catalogue-filter-panel .is-open .filter_values_container {
    display: block;
    max-height: 13rem;
    margin: 0 0 0.8rem;
    padding: 0.2rem 0.15rem 0.2rem 0;
    overflow: auto;
    scrollbar-color: #c1ced0 transparent;
    scrollbar-width: thin;
}

.cc-catalogue-filter-panel .is-open .cc-filter-checkbox-values {
    display: flex;
    flex-direction: column;
}

.cc-catalogue-filter-panel .cc-filter-checkbox-values .hikashop_filter_checkbox:has(input:checked) {
    order: -1;
}

.cc-catalogue-filter-panel .is-open .cc-filter-local-search {
    display: block;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group:not(.is-open) .hikashop_filter_cursor_range,
.cc-catalogue-filter-panel .cc-filter-cursor-group:not(.is-open) [id^="slider_"] {
    display: none !important;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group.is-open .hikashop_filter_cursor_range {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 0.8rem auto 0.9rem;
    padding: 0.4rem 0.7rem;
    color: var(--cc-score-purple-dark);
    background: var(--cc-score-lilac);
    border: 1px solid var(--cc-score-line);
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 750;
    text-align: center;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .hikashop_filter_cursor_range + a {
    display: none !important;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .slider_input_start_group,
.cc-catalogue-filter-panel .cc-filter-cursor-group .slider_input_end_group {
    display: inline-flex;
    width: calc(50% - 0.35rem);
    box-sizing: border-box;
    flex-direction: column;
    gap: 0.3rem;
    margin: 0.1rem 0.35rem 0.6rem 0;
    vertical-align: top;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .slider_input_end_group {
    margin-right: 0;
    margin-left: 0.35rem;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .slider_input_text {
    color: var(--cc-score-muted);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .slider_input {
    width: 100%;
    max-width: none !important;
    height: 2.4rem;
    box-sizing: border-box;
    padding: 0.45rem 0.65rem;
    color: var(--cc-score-ink);
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 0.65rem;
    box-shadow: none;
    font-size: 0.78rem;
    font-weight: 700;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .slider_input:focus {
    border-color: var(--cc-score-purple);
    box-shadow: 0 0 0 3px rgba(105, 105, 105, 0.12);
    outline: 0;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group.is-open [id^="slider_"] {
    display: block;
    width: calc(100% - 1.5rem) !important;
    box-sizing: border-box;
    margin: 1.1rem 0.75rem 1.35rem !important;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-target {
    height: 0.45rem;
    background: #e8edee;
    border: 0;
    border-radius: 999px;
    box-shadow: inset 0 1px 2px rgba(69, 69, 69, 0.1);
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-connects,
.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-connect {
    border-radius: 999px;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-connect {
    background: linear-gradient(90deg, #8d8d8d, var(--cc-score-purple));
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-horizontal .noUi-handle {
    top: -0.4rem;
    right: -0.625rem;
    width: 1.25rem;
    height: 1.25rem;
    background: #fff;
    border: 2px solid var(--cc-score-purple);
    border-radius: 50%;
    box-shadow: 0 2px 7px rgba(69, 69, 69, 0.2);
    cursor: grab;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-handle::before,
.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-handle::after {
    display: none;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-handle:focus-visible {
    outline: 3px solid rgba(105, 105, 105, 0.2);
    outline-offset: 3px;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-handle.noUi-active {
    box-shadow: 0 2px 9px rgba(69, 69, 69, 0.3);
    cursor: grabbing;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group .noUi-tooltip {
    padding: 0.28rem 0.55rem;
    color: #fff;
    background: var(--cc-score-purple-dark);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 0.2rem 0.55rem rgba(69, 69, 69, 0.18);
    font-size: 0.65rem;
    font-weight: 850;
}

.cc-catalogue-filter-panel .cc-filter-cursor-group.is-open [id^="slider_"]:not(.noUi-target) {
    padding: 0.45rem 0.65rem;
    color: var(--cc-score-purple-dark);
    background: var(--cc-score-lilac);
    border-radius: 0.6rem;
    font-size: 0.72rem;
    font-weight: 850;
    text-align: center;
}

.cc-filter-local-search {
    width: 100%;
    height: 2.45rem;
    margin: 0 0 0.55rem;
    padding: 0.5rem 0.65rem;
    color: var(--cc-score-ink);
    background: var(--cc-score-paper);
    border: 1px solid #ded5e1;
    border-radius: 0.6rem;
    font-size: 0.7rem;
}

.cc-filter-local-search:focus {
    background: #fff;
    border-color: var(--cc-score-purple);
    box-shadow: 0 0 0 0.16rem rgba(90, 44, 131, 0.1);
    outline: none;
}

.cc-catalogue-filter-panel .hikashop_filter_checkbox {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    padding: 0.27rem 0.15rem;
    color: #656565;
    font-size: 0.68rem;
    line-height: 1.3;
}

.cc-catalogue-filter-panel .hikashop_filter_checkbox input {
    width: 0.9rem;
    height: 0.9rem;
    flex: 0 0 0.9rem;
    margin: 0.05rem 0 0;
    accent-color: var(--cc-score-purple);
}

.cc-catalogue-filter-panel .hikashop_filter_checkbox label {
    cursor: pointer;
}

.cc-catalogue-filter-panel .hikashop_filter_checkbox:has(input:checked) {
    color: var(--cc-score-purple-dark);
    font-weight: 800;
}

.cc-catalogue-filter-panel .hikashop_filter_button_outside,
.cc-catalogue-filter-panel .hikashop_reset_button_outside {
    display: block;
    width: 100%;
    margin: 0.7rem 0 0 !important;
    float: none !important;
}

.cc-catalogue-filter-panel .hikashop_filter_button_outside input,
.cc-catalogue-filter-panel .hikashop_reset_button_outside a {
    display: inline-flex;
    width: 100%;
    min-height: 2.6rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 850;
    text-decoration: none;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.cc-catalogue-filter-panel .hikashop_filter_button_outside input {
    color: #fff;
    background: var(--cc-score-purple);
    border: 1px solid var(--cc-score-purple);
    box-shadow: 0 0.35rem 0.85rem rgba(69, 69, 69, 0.14);
    cursor: pointer;
}

.cc-catalogue-filter-panel .hikashop_filter_button_outside input:hover,
.cc-catalogue-filter-panel .hikashop_filter_button_outside input:focus-visible {
    background: var(--cc-score-purple-dark);
    border-color: var(--cc-score-purple-dark);
    box-shadow: 0 0.45rem 1rem rgba(69, 69, 69, 0.2);
    transform: translateY(-1px);
}

.cc-catalogue-filter-panel .hikashop_reset_button_outside a {
    gap: 0.4rem;
    color: var(--cc-score-muted);
    background: #fff;
    border: 1px solid var(--cc-score-line);
}

.cc-catalogue-filter-panel .hikashop_reset_button_outside a::before {
    content: "↺";
    color: #959595;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1;
}

.cc-catalogue-filter-panel .hikashop_reset_button_outside a:hover,
.cc-catalogue-filter-panel .hikashop_reset_button_outside a:focus-visible {
    color: var(--cc-score-purple-dark);
    background: var(--cc-score-lilac);
    border-color: #cdd7d9;
    box-shadow: 0 0.25rem 0.7rem rgba(69, 69, 69, 0.08);
}

/* Results toolbar and pagination */

body.itemid-238.layout-listing .hikashop_products_pagination {
    margin: 0 0 1.2rem;
}

body.itemid-238.layout-listing .hikashop_products_pagination .list-footer {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.7rem 0.85rem;
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 0.9rem;
    box-shadow: 0 0.35rem 1rem rgba(48, 48, 48, 0.035);
}

body.itemid-238.layout-listing .hikashop_products_pagination .limit {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    color: var(--cc-score-muted);
    font-size: 0.68rem;
}

body.itemid-238.layout-listing .hikashop_pagination_dropdown {
    min-width: 4.3rem;
    height: 2.35rem;
    padding-block: 0.25rem;
    border-color: #d3dcde;
    border-radius: 0.55rem;
    font-size: 0.72rem;
}

body.itemid-238.layout-listing .hikashop_pagination {
    margin: 0;
}

body.itemid-238.layout-listing .hikashop_pagination .page-link {
    min-width: 2.15rem;
    color: var(--cc-score-purple);
    background: #fff;
    border-color: #d4dddf;
    font-size: 0.7rem;
    text-align: center;
}

body.itemid-238.layout-listing .hikashop_pagination .active .page-link {
    color: #fff;
    background: var(--cc-score-purple);
    border-color: var(--cc-score-purple);
}

body.itemid-238.layout-listing .hikashop_products_pagination .counter {
    display: none;
}

body.itemid-238.layout-listing .hikashop_results_counter {
    display: flex;
    width: fit-content;
    max-width: 100%;
    margin: 0.7rem 0 0;
    padding: 0.42rem 0.7rem;
    color: var(--cc-score-purple-dark);
    background: #eaf7f4;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
}

/* Dense score result cards */

body.itemid-238.layout-listing .hikashop_products:has(.cc-score-card) {
    padding: 0.85rem;
    background: transparent;
    border-radius: 1.35rem;
}

body.itemid-238.layout-listing .hikashop_products > .hk-row-fluid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem;
    margin: 0 !important;
}

body.itemid-238.layout-listing .hikashop_products > .hk-row-fluid > .hikashop_product {
    width: auto !important;
    max-width: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    padding: 0 !important;
}

body.itemid-238.layout-listing .hikashop_container,
body.itemid-238.layout-listing .hikashop_subcontainer {
    height: 100% !important;
    min-height: 0 !important;
}

body.itemid-238.layout-listing .hikashop_subcontainer {
    background: transparent !important;
}

.cc-score-card {
    display: grid;
    min-height: 12.5rem;
    height: 100%;
    grid-template-columns: 8.7rem minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
    background: #fff;
    border: 1px solid #d3dcde;
    border-radius: 1rem;
    box-shadow: 0 0.55rem 1.5rem rgba(69, 69, 69, 0.055);
    transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

.cc-score-card:hover {
    border-color: #b5c5c8;
    box-shadow: 0 1rem 2.25rem rgba(69, 69, 69, 0.11);
    transform: translateY(-3px);
}

.cc-score-card__preview {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.55rem;
    overflow: hidden;
    background: #fff;
    border-right: 0;
    text-decoration: none;
}

.cc-score-card__image {
    display: block;
    box-sizing: border-box;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 210 / 297;
    max-height: none;
    object-fit: contain;
    background: #fff;
    border: 1px solid #d1edf2;
    border-radius: 7px;
    padding: 2px;
    box-shadow: 0 0 0 3px #fff,
        0 0 0 4px #e9eeef,
        0 6px 15px rgba(69, 69, 69, 0.075);
    transition: transform 220ms ease;
}

.cc-score-card:hover .cc-score-card__image {
    transform: scale(1.035);
}

.cc-score-card__preview > span {
    position: absolute;
    right: 0.45rem;
    bottom: 0.45rem;
    left: 0.45rem;
    padding: 0.38rem;
    color: #fff;
    background: rgba(69, 69, 69, 0.9);
    border-radius: 0.45rem;
    font-size: 0.58rem;
    font-weight: 850;
    text-align: center;
    opacity: 0;
    transform: translateY(0.35rem);
    transition: opacity 180ms ease, transform 180ms ease;
}

.cc-score-card__preview:hover > span,
.cc-score-card__preview:focus-visible > span {
    opacity: 1;
    transform: none;
}

.cc-score-card__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 0.9rem 0.95rem;
    text-align: left;
}

.cc-score-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0.65rem;
}

.cc-score-badge {
    display: inline-flex;
    min-height: 1.45rem;
    align-items: center;
    padding: 0.25rem 0.42rem;
    color: #777777;
    background: #f4f0f5;
    border-radius: 0.38rem;
    font-size: 0.56rem;
    font-weight: 800;
    line-height: 1;
}

.cc-score-badge--voice {
    color: #202020;
    background: #e8f6f3;
}

.cc-score-level {
    display: inline-flex;
    gap: 0.18rem;
    align-items: center;
    margin-left: auto;
    color: #878787;
    font-size: 0.52rem;
    font-weight: 800;
    text-transform: uppercase;
}

.cc-score-level i {
    display: block;
    width: 0.38rem;
    height: 0.38rem;
    background: #d7dfe1;
    border-radius: 50%;
}

.cc-score-level i.is-active {
    background: var(--cc-score-purple);
}

.cc-score-card h3 {
    margin: 0 0 0.65rem;
    color: var(--cc-score-purple-dark);
    font-size: 1.08rem;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.12;
    text-align: left;
}

.cc-score-card h3 a {
    color: inherit;
    text-decoration: none;
}

.cc-score-card h3 a:hover,
.cc-score-card h3 a:focus-visible {
    color: var(--cc-score-purple);
}

.cc-score-card__credits {
    display: grid;
    gap: 0.25rem;
    margin: 0;
}

.cc-score-card__credits > div {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 0.45rem;
    align-items: baseline;
}

.cc-score-card__credits dt {
    color: #999999;
    font-size: 0.56rem;
    font-weight: 800;
    text-transform: uppercase;
    text-align: left;
}

.cc-score-card__credits dd {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: #636363;
    font-size: 0.66rem;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.cc-score-card__footer {
    display: flex;
    grid-column: 1 / -1;
    gap: 0.65rem;
    align-items: center;
    justify-content: space-between;
    margin: 0 0.95rem 0.9rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--cc-score-line);
}

.cc-score-card__availability {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    color: #8d8d8d;
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
}

.cc-score-card__gauge-icon {
    position: relative;
    display: inline-block;
    flex: 0 0 1.125rem;
    width: 1.125rem;
    height: 0.65rem;
    box-sizing: border-box;
    border: 2px solid currentColor;
    border-bottom: 0;
    border-radius: 1rem 1rem 0 0;
    color: var(--cc-score-purple);
}

.cc-score-card__gauge-icon::before {
    position: absolute;
    bottom: -0.05rem;
    left: calc(50% - 1px);
    width: 2px;
    height: 0.45rem;
    border-radius: 2px;
    background: currentColor;
    content: "";
    transform: rotate(35deg);
    transform-origin: bottom center;
}

.cc-score-card__gauge-icon::after {
    position: absolute;
    bottom: -0.08rem;
    left: calc(50% - 1.5px);
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: currentColor;
    content: "";
}

.cc-score-card__availability i {
    display: inline-block;
    color: var(--cc-score-purple);
}

.cc-score-card__link {
    color: var(--cc-score-purple);
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
}

body.itemid-238.layout-listing .hikashop_products_pagination_bottom {
    margin-top: 0.85rem;
}

/* Score detail page */

body.itemid-238.layout-show .container-sidebar-left {
    display: none !important;
}

body.itemid-238.layout-show .container-component {
    grid-column: main-start / main-end;
    width: 100%;
    max-width: 81.5rem;
    justify-self: center;
}

.cc-score-back {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin: 0.4rem 0 1.5rem;
    color: var(--cc-score-purple);
    font-size: 0.78rem;
    font-weight: 850;
    text-decoration: none;
}

.cc-score-product-layout .hikashop_product_top_part h1 {
    position: relative;
    max-width: 20ch;
    margin: 0 0 clamp(2rem, 5vw, 3.4rem);
    padding-top: 1.45rem;
    color: var(--cc-score-purple-dark);
    font-size: clamp(2.55rem, 5.3vw, 5rem);
    font-weight: 900;
    letter-spacing: -0.065em;
    line-height: 0.94;
}

.cc-score-product-layout .hikashop_product_top_part h1::before {
    position: absolute;
    top: 0;
    left: 0;
    color: #999999;
    content: "Partition chorale";
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.15em;
    line-height: 1;
    text-transform: uppercase;
}

.cc-score-product-layout > .hk-row-fluid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.95fr) !important;
    gap: clamp(1.25rem, 4vw, 3rem);
    align-items: stretch;
    margin: 0 !important;
}

.cc-score-product-layout #hikashop_product_left_part,
.cc-score-product-layout #hikashop_product_right_part {
    width: auto !important;
    max-width: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
}

.cc-score-product-layout #hikashop_product_left_part {
    display: grid;
    min-height: 38rem;
    place-items: center;
    padding: clamp(1.2rem, 4vw, 3rem);
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 1.3rem;
}

.cc-score-product-layout #hikashop_product_image_main,
.cc-score-product-layout #hikashop_main_image_div,
.cc-score-product-layout .hikashop_product_main_image,
.cc-score-product-layout .hikashop_product_main_image_subdiv {
    width: 100%;
}

.cc-score-product-layout #hikashop_product_image_main {
    background: #fff;
    border: 1px solid #dfe5e6;
    border-radius: 14px;
    padding: 8px;
}

.cc-score-product-layout #hikashop_main_image {
    box-sizing: border-box;
    width: min(100%, 24.75rem) !important;
    height: auto !important;
    aspect-ratio: 210 / 297;
    max-height: none;
    margin: 0 !important;
    object-fit: contain;
    background: #fff;
    border: 1px solid #e9eeef;
    border-radius: 7px;
    padding: 3px;
    box-shadow: 0 4px 16px rgba(69, 69, 69, 0.045);
}

.cc-score-product-layout #hikashop_product_right_part {
    display: flex;
    min-height: 38rem;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 2.8rem);
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 1.3rem;
    box-shadow: 0 0.9rem 2.5rem rgba(69, 69, 69, 0.07);
}

.cc-score-product-layout #hikashop_product_price_main {
    display: none !important;
}

.cc-score-product-layout .hikashop_product_price_per_unit,
.cc-score-product-layout .hikashop_product_sale_start,
.cc-score-product-layout #hikashop_product_quantity_alt,
.cc-score-product-layout #hikashop_product_url_main {
    display: none !important;
}

.cc-score-product-layout #hikashop_product_quantity_main {
    min-height: 0;
}

.cc-score-product-layout .hikashop_product_custom_info_main h4 {
    margin: 0 0 0.8rem;
    color: var(--cc-score-purple-dark);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-score-product-layout .hikashop_product_custom_info_main_table {
    display: block;
    width: 100%;
    margin: 0;
}

.cc-score-product-layout .hikashop_product_custom_info_main_table tbody {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.cc-score-product-layout .hikashop_product_custom_info_main_table tr {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 0.65rem 0.7rem;
    background: var(--cc-score-paper);
    border: 1px solid #e6ebec;
    border-radius: 0.65rem;
}

.cc-score-product-layout .hikashop_product_custom_info_main_table td {
    display: block;
    padding: 0;
}

.cc-score-product-layout .hikashop_product_custom_name,
.cc-score-product-layout .hikashop_product_custom_name label {
    color: #999999;
    font-size: 0.55rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-score-product-layout .hikashop_product_custom_value {
    display: block;
    margin-top: 0.18rem;
    color: var(--cc-score-ink);
    font-size: 0.75rem;
    font-weight: 750;
    line-height: 1.3;
}

.cc-score-order {
    margin-top: 1rem;
    padding: 1rem;
    color: #fff;
    background: linear-gradient(135deg, var(--cc-score-purple-dark), #696969);
    border-radius: 0.9rem;
}

.cc-score-order__eyebrow {
    margin: 0 0 0.35rem !important;
    color: var(--cc-score-mint);
    font-size: 0.61rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-score-order p:not(.cc-score-order__eyebrow) {
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.7rem;
    line-height: 1.48;
}

.cc-score-order a {
    display: inline-flex;
    min-height: 2.75rem;
    gap: 0.55rem;
    align-items: center;
    justify-content: center;
    margin-top: 0.85rem;
    padding: 0.65rem 0.9rem;
    color: var(--cc-score-purple-dark);
    background: var(--cc-score-mint);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 900;
    text-decoration: none;
}

.cc-score-product-layout #hikashop_product_bottom_part {
    margin-top: clamp(1.4rem, 4vw, 2.7rem);
    padding: clamp(1.5rem, 4vw, 3.4rem);
    color: #5f5f5f;
    background: #fff;
    border: 1px solid var(--cc-score-line);
    border-radius: 1.3rem;
    box-shadow: 0 0.8rem 2.2rem rgba(69, 69, 69, 0.055);
    font-size: 0.94rem;
    line-height: 1.72;
}

.cc-score-product-layout #hikashop_product_description_main {
    display: block;
    width: 100%;
    max-width: 62rem;
    margin-inline: auto;
}

.cc-score-product-layout #hikashop_product_description_main h2 {
    margin: 0 0 0.75rem;
    color: var(--cc-score-purple-dark);
    font-size: clamp(1.35rem, 2.7vw, 2.1rem);
    font-weight: 900;
    letter-spacing: -0.04em;
}

.cc-score-product-layout #hikashop_product_description_main h2:nth-of-type(2) {
    margin-top: 2.4rem;
    padding-top: 2rem;
    border-top: 1px solid var(--cc-score-line);
}

.cc-score-product-layout #hikashop_product_description_main > p {
    margin-top: 0;
}

.cc-score-product-note {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    color: #626262;
    background: var(--cc-score-lilac);
    border-radius: 1rem;
}

.cc-score-product-note span {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    text-align: center;
}

.cc-score-product-note i {
    color: var(--cc-score-purple);
}

.cc-score-product-note strong {
    color: var(--cc-score-purple-dark);
    font-weight: 800;
}

@media (max-width: 1199.98px) {
    .cc-catalogue-hero {
        grid-template-columns: 1fr;
    }

    .cc-catalogue-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .cc-catalogue-stats > div {
        min-width: 0;
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    .cc-score-card {
        grid-template-columns: 7.6rem minmax(0, 1fr);
    }

    .cc-score-card__credits > div {
        grid-template-columns: 1fr;
        gap: 0.05rem;
    }
}

/* A wider, shallower introduction above the separate filters and results. */
@supports (display: grid) {
    @media (min-width: 992px) {
        body.itemid-238.layout-listing.wrapper-fluid .cc-catalogue-hero {
            box-sizing: border-box;
            width: var(--cc-catalogue-hero-width);
            margin-inline-start: calc((100vw - var(--cc-catalogue-hero-width)) / 2 - var(--cc-catalogue-main-start));
            grid-template-columns: minmax(0, 1fr) auto;
            align-items: center;
            gap: clamp(1.25rem, 2vw, 2rem);
            padding-block: clamp(1.75rem, 2.5vw, 2.5rem);
            padding-inline: clamp(2rem, 4vw, 4rem);
        }

        body.itemid-238.layout-listing.wrapper-fluid .cc-catalogue-hero h1 {
            max-width: none;
            font-size: clamp(2.6rem, 4vw, 4rem);
            line-height: 1;
        }

        body.itemid-238.layout-listing.wrapper-fluid .cc-catalogue-hero__copy > p:not(.cc-catalogue-eyebrow) {
            max-width: 48rem;
        }

        body.itemid-238.layout-listing.wrapper-fluid .cc-catalogue-stats {
            grid-template-columns: 1fr;
        }

        body.itemid-238.layout-listing.wrapper-fluid .cc-catalogue-stats > div {
            min-width: 9.5rem;
            grid-template-columns: auto 1fr;
            gap: 0.6rem;
        }
    }
}

@media (max-width: 991.98px) {
    .cc-catalogue-filter-panel {
        position: static;
        max-height: none;
        margin: 2rem 0 1rem;
    }

    .cc-catalogue-hero__search {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }

    body.itemid-238.layout-listing .hikashop_products > .hk-row-fluid {
        grid-template-columns: 1fr !important;
    }

    .cc-score-product-layout > .hk-row-fluid {
        grid-template-columns: 1fr !important;
    }

    .cc-score-product-layout #hikashop_product_left_part,
    .cc-score-product-layout #hikashop_product_right_part {
        min-height: 0;
    }
}

@media (max-width: 767.98px) {
    .cc-catalogue-hero {
        padding: 1.35rem;
        border-radius: 1.05rem;
    }

    .cc-catalogue-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.75rem);
    }

    .cc-catalogue-stats {
        grid-template-columns: 1fr;
    }

    .cc-catalogue-stats > div {
        grid-template-columns: auto 1fr;
    }

    .cc-catalogue-results-heading {
        align-items: start;
        flex-direction: column;
    }

    body.itemid-238.layout-listing .hikashop_products_pagination .list-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    body.itemid-238.layout-listing .hikashop_pagination {
        max-width: 100%;
        overflow-x: auto;
    }

    .cc-score-product-layout #hikashop_product_description_main {
        display: block;
    }

    .cc-score-product-layout #hikashop_product_description_main h2:nth-of-type(2) {
        margin-top: 2rem;
    }

    .cc-score-product-note {
        grid-template-columns: 1fr;
    }

    .cc-score-product-note span {
        justify-content: flex-start;
        text-align: left;
    }
}

@media (max-width: 575.98px) {
    .cc-score-card {
        min-height: 0;
        grid-template-columns: 6.5rem minmax(0, 1fr);
    }

    .cc-score-card__preview {
        padding: 0.4rem 0.55rem;
    }

    .cc-score-card__body {
        padding: 0.75rem;
    }

    .cc-score-card__badges {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-score-level {
        margin-left: 0;
    }

    .cc-score-card h3 {
        font-size: 0.96rem;
    }

    .cc-score-card__footer {
        margin: 0 0.75rem 0.75rem;
        flex-wrap: wrap;
    }

    .cc-score-product-layout .hikashop_product_top_part h1 {
        font-size: clamp(2.2rem, 12vw, 3.6rem);
    }

    .cc-score-product-layout #hikashop_product_left_part,
    .cc-score-product-layout #hikashop_product_right_part,
    .cc-score-product-layout #hikashop_product_bottom_part {
        padding: 1.1rem;
        border-radius: 1rem;
    }

    .cc-score-product-layout .hikashop_product_custom_info_main_table tbody {
        grid-template-columns: 1fr;
    }

}

/* These rules intentionally close the cascade: older shop and checkout
   declarations above must not restore HikaShop's vertical quantity widget. */
.cc-checkout-core .hikashop_checkout_terms {
    display: block;
}

.cc-shop-product-layout .hikashop_product_quantity_change_div_leftright,
.cc-checkout-core .hikashop_product_quantity_change_div_leftright {
    display: inline-flex !important;
    align-items: stretch;
    margin: 0 !important;
}

.cc-shop-product-layout .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field,
.cc-checkout-core .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field {
    width: 3.25rem !important;
    min-width: 3.25rem !important;
    height: 3rem !important;
    min-height: 3rem !important;
    padding: 0.35rem !important;
    background: #ffffff;
    border: 0 !important;
    border-right: 1px solid #e2d8e5 !important;
    border-left: 1px solid #e2d8e5 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: center;
}

.cc-shop-product-layout .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field_change,
.cc-checkout-core .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field_change {
    width: 2.65rem !important;
    height: 3rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* Replaced by the branded, accessible toast above. Other HikaShop notices
   (warnings and errors included) remain available. */
.hikashop-cartnotify-cart {
    display: none !important;
}

@media (max-width: 767.98px) {
    .cc-checkout-core .hikashop_checkout_cart table,
    .cc-checkout-core .hikashop_checkout_cart tbody,
    .cc-checkout-core .hikashop_checkout_cart tr {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .cc-checkout-core .hikashop_checkout_cart table {
        overflow: visible;
    }

    .cc-checkout-core .hikashop_checkout_cart tbody td {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .cc-checkout-core .hikashop_cart_product_name_value,
    .cc-checkout-core .hikashop_cart_product_name,
    .cc-checkout-core .hikashop_cart_product_name a {
        min-width: 0;
        overflow-wrap: anywhere;
        white-space: normal;
    }

    .cc-checkout-core .hikashop_cart_product_quantity_value {
        min-width: 0;
        white-space: normal;
    }
}

/* =========================================================
   Joomla system notifications
   Compact, theme-aligned treatment for success/info/warnings/errors.
   ========================================================= */

#system-message-container {
    --cc-alert-ink: #443849;
}

#system-message-container joomla-alert {
    --cc-alert-accent: #356f9e;
    --cc-alert-surface: #f3f7fb;
    --cc-alert-border: #cfdeea;
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
    min-width: 0;
    padding: 0.72rem 3rem 0.72rem 0.72rem;
    color: var(--cc-alert-ink);
    background: var(--cc-alert-surface);
    border: 1px solid var(--cc-alert-border);
    border-radius: 0.95rem;
    box-shadow: 0 0.65rem 1.6rem rgba(61, 38, 70, 0.08);
}

#system-message-container joomla-alert[type="success"],
#system-message-container joomla-alert[type="message"] {
    --cc-alert-accent: #3f8c72;
    --cc-alert-surface: #f3f9f7;
    --cc-alert-border: #cfe2db;
}

#system-message-container joomla-alert[type="info"],
#system-message-container joomla-alert[type="notice"] {
    --cc-alert-accent: #356f9e;
    --cc-alert-surface: #f3f7fb;
    --cc-alert-border: #cfdeea;
}

#system-message-container joomla-alert[type="warning"] {
    --cc-alert-accent: #a86c14;
    --cc-alert-surface: #fff9ef;
    --cc-alert-border: #ead9b9;
}

#system-message-container joomla-alert[type="danger"],
#system-message-container joomla-alert[type="error"] {
    --cc-alert-accent: #ad4858;
    --cc-alert-surface: #fff5f6;
    --cc-alert-border: #e8cdd2;
}

#system-message-container joomla-alert .alert-heading {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    padding: 0;
    color: #ffffff;
    background: var(--cc-alert-accent);
    border-radius: 0.72rem;
    place-items: center;
}

#system-message-container joomla-alert .alert-heading > span::before {
    width: 1rem;
    height: 1rem;
}

#system-message-container joomla-alert .alert-wrapper {
    min-width: 0;
    color: inherit;
}

#system-message-container joomla-alert .alert-message {
    margin: 0;
    padding: 0.12rem 0;
    color: inherit;
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

#system-message-container joomla-alert .alert-message:not(:first-of-type) {
    margin-top: 0.4rem;
    padding-top: 0.45rem;
    border-color: color-mix(in srgb, var(--cc-alert-accent) 22%, transparent);
}

#system-message-container joomla-alert a:not(.btn) {
    color: var(--cc-alert-accent);
    font-weight: 800;
    text-underline-offset: 0.18rem;
}

#system-message-container joomla-alert .joomla-alert--close,
#system-message-container joomla-alert .joomla-alert-button--close {
    display: grid;
    width: 1.85rem;
    height: 1.85rem;
    padding: 0;
    color: var(--cc-alert-accent);
    background: color-mix(in srgb, var(--cc-alert-accent) 9%, transparent);
    border-radius: 50%;
    font-size: 1.2rem;
    line-height: 1;
    opacity: 1;
    inset-block-start: 50%;
    inset-inline-end: 0.65rem;
    place-items: center;
    transform: translateY(-50%);
}

#system-message-container joomla-alert .joomla-alert--close:hover,
#system-message-container joomla-alert .joomla-alert--close:focus-visible,
#system-message-container joomla-alert .joomla-alert-button--close:hover,
#system-message-container joomla-alert .joomla-alert-button--close:focus-visible {
    color: #ffffff;
    background: var(--cc-alert-accent);
    opacity: 1;
}

/* Noscript fallback keeps the same visual language. */
#system-message-container noscript .alert {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    color: var(--cc-alert-ink);
    background: #f3f7fb;
    border: 1px solid #cfdeea;
    border-radius: 0.95rem;
    box-shadow: 0 0.65rem 1.6rem rgba(61, 38, 70, 0.08);
}

#system-message-container noscript .alert-success {
    color: #2d6655;
    background: #f3f9f7;
    border-color: #cfe2db;
}

#system-message-container noscript .alert-info {
    color: #285a82;
    background: #f3f7fb;
    border-color: #cfdeea;
}

#system-message-container noscript .alert-warning {
    color: #78500f;
    background: #fff9ef;
    border-color: #ead9b9;
}

#system-message-container noscript .alert-danger {
    color: #843844;
    background: #fff5f6;
    border-color: #e8cdd2;
}

@media (max-width: 575.98px) {
    #system-message-container joomla-alert {
        grid-template-columns: 2.35rem minmax(0, 1fr);
        gap: 0.65rem;
        padding: 0.65rem 2.75rem 0.65rem 0.65rem;
        border-radius: 0.85rem;
    }

    #system-message-container joomla-alert .alert-heading {
        width: 2.35rem;
        height: 2.35rem;
        border-radius: 0.65rem;
    }

    #system-message-container joomla-alert .alert-message {
        font-size: 0.82rem;
    }
}

/* ========================================================================
   Account registration — native Joomla CAPTCHA and explicit newsletter opt-in
   ======================================================================== */

.com-users-registration .acym__regacy,
.com-users-profile__edit .acym__regacy,
.hikashop_registration_fieldset .acym__regacy {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
    margin: 1.15rem 0;
    padding: 1rem 1.1rem;
    background: linear-gradient(135deg, #fbf8fc, #f5eef8);
    border: 1px solid #dfd1e5;
    border-radius: 0.95rem;
}

.com-users-registration .acym__regacy .acym__regacy__label,
.com-users-profile__edit .acym__regacy .acym__regacy__label,
.hikashop_registration_fieldset .acym__regacy .acym__regacy__label {
    width: auto;
    margin: 0;
    color: #54286d;
    font-size: 0.9rem;
    font-weight: 850;
}

.com-users-registration .acym__regacy__values,
.com-users-profile__edit .acym__regacy__values,
.hikashop_registration_fieldset .acym__regacy__values {
    width: 100%;
}

.com-users-registration .acym__regacy__values table,
.com-users-profile__edit .acym__regacy__values table,
.hikashop_registration_fieldset .acym__regacy__values table {
    width: 100%;
    margin: 0;
    background: transparent;
}

.com-users-registration .acym__regacy__values tr,
.com-users-profile__edit .acym__regacy__values tr,
.hikashop_registration_fieldset .acym__regacy__values tr {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
}

.com-users-registration .acym__regacy__values td,
.com-users-profile__edit .acym__regacy__values td,
.hikashop_registration_fieldset .acym__regacy__values td {
    padding: 0 !important;
}

.com-users-registration .acym__regacy__values td:last-child,
.com-users-profile__edit .acym__regacy__values td:last-child,
.hikashop_registration_fieldset .acym__regacy__values td:last-child {
    flex: 1;
}

.com-users-registration .acym_checkbox,
.com-users-profile__edit .acym_checkbox,
.hikashop_registration_fieldset .acym_checkbox {
    width: 1.15rem;
    height: 1.15rem;
    margin: 0.12rem 0 0;
    border-color: #bca9c5;
    accent-color: #65318a;
}

.com-users-registration .acym__regacy__lists__label,
.com-users-profile__edit .acym__regacy__lists__label,
.hikashop_registration_fieldset .acym__hikashop__lists__label {
    color: #4f4453;
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.5;
}

.com-users-registration .control-group:has(altcha-widget) {
    padding: 1rem 1.1rem;
    background: #faf8fb;
    border: 1px solid #e2d8e6;
    border-radius: 0.95rem;
}

.com-users-registration .control-group:has(altcha-widget) .control-label {
    margin-bottom: 0.6rem;
    color: #54286d;
    font-size: 0.9rem;
    font-weight: 850;
}

.com-users-registration altcha-widget {
    display: block;
    width: 100%;
    --altcha-color-base: #ffffff;
    --altcha-color-border: #d9cadd;
    --altcha-color-text: #443849;
    --altcha-color-active: #65318a;
    --altcha-border-radius: 0.75rem;
    --altcha-max-width: 100%;
}

/* ========================================================================
   AcyMailing — secure, tokenised newsletter preference page
   ======================================================================== */

#acym_wrapper .cc-acym-unsubscribe {
    --cc-unsub-purple: #65318a;
    --cc-unsub-purple-dark: #4c2268;
    --cc-unsub-ink: #3f3443;
    --cc-unsub-muted: #736779;
    --cc-unsub-line: #e4d8e8;
    width: 100%;
    min-height: min(48rem, 100vh);
    padding: clamp(1rem, 5vw, 4rem);
    color: var(--cc-unsub-ink);
    background:
        radial-gradient(circle at 12% 8%, rgba(156, 221, 212, 0.28), transparent 24rem),
        radial-gradient(circle at 92% 94%, rgba(101, 49, 138, 0.12), transparent 26rem),
        #faf8fb;
}

#acym_wrapper .cc-acym-unsubscribe__shell {
    width: min(100%, 52rem);
    margin-inline: auto;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--cc-unsub-line);
    border-radius: clamp(1rem, 3vw, 1.6rem);
    box-shadow: 0 1.5rem 4rem rgba(59, 34, 69, 0.12);
}

#acym_wrapper .cc-acym-unsubscribe__header {
    position: relative;
    padding: clamp(1.4rem, 5vw, 2.8rem);
    color: #ffffff;
    background: linear-gradient(135deg, #4b205f, #69338d 62%, #77429a);
    isolation: isolate;
}

#acym_wrapper .cc-acym-unsubscribe__header::after {
    position: absolute;
    right: -4rem;
    bottom: -7rem;
    z-index: -1;
    width: 15rem;
    height: 15rem;
    background: rgba(255, 255, 255, 0.07);
    border-radius: 50%;
    content: "";
}

#acym_wrapper .cc-acym-unsubscribe__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.25rem;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 0.9rem;
    place-items: center;
}

#acym_wrapper .cc-acym-unsubscribe__icon svg {
    width: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
}

#acym_wrapper .cc-acym-unsubscribe__eyebrow,
#acym_wrapper .cc-acym-unsubscribe__step {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

#acym_wrapper .cc-acym-unsubscribe__eyebrow {
    color: #d8c7e1;
}

#acym_wrapper .cc-acym-unsubscribe__header h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(1.7rem, 5vw, 2.65rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

#acym_wrapper .cc-acym-unsubscribe__header > p:last-child {
    max-width: 38rem;
    margin: 0.85rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.94rem;
    line-height: 1.6;
}

#acym_wrapper .cc-acym-unsubscribe__form,
#acym_wrapper .cc-acym-unsubscribe__form fieldset {
    margin: 0;
}

#acym_wrapper .cc-acym-unsubscribe__form fieldset {
    padding: clamp(1.4rem, 5vw, 2.8rem);
    border: 0;
}

#acym_wrapper .cc-acym-unsubscribe__language {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
    font-size: 0.78rem;
}

#acym_wrapper .cc-acym-unsubscribe__language label {
    color: var(--cc-unsub-muted);
}

#acym_wrapper .cc-acym-unsubscribe__language select {
    width: auto;
    min-width: 9rem;
    margin: 0;
    border-color: var(--cc-unsub-line);
    border-radius: 0.65rem;
}

#acym_wrapper .cc-acym-unsubscribe__section-heading {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 1rem;
}

#acym_wrapper .cc-acym-unsubscribe__step {
    color: var(--cc-unsub-purple);
}

#acym_wrapper .cc-acym-unsubscribe__section-heading h2 {
    margin: 0;
    color: var(--cc-unsub-ink);
    font-size: clamp(1.15rem, 3vw, 1.45rem);
    font-weight: 850;
}

#acym_wrapper .cc-acym-unsubscribe__section-heading > span {
    color: var(--cc-unsub-muted);
    font-size: 0.72rem;
}

#acym_wrapper .cc-acym-unsubscribe__lists {
    display: grid;
    gap: 0.7rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

#acym_wrapper .cc-acym-unsubscribe__list {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background: #fbf9fc;
    border: 1px solid var(--cc-unsub-line);
    border-radius: 0.9rem;
}

#acym_wrapper .cc-acym-unsubscribe__list-copy {
    min-width: 0;
}

#acym_wrapper .cc-acym-unsubscribe__list-copy p {
    margin: 0;
}

#acym_wrapper .cc-acym-unsubscribe__list-copy .acym__unsubscribe__list__display__name {
    color: var(--cc-unsub-ink);
    font-size: 0.92rem;
    font-weight: 800;
}

#acym_wrapper .cc-acym-unsubscribe__list-copy .acym__unsubscribe__list__description {
    margin-top: 0.25rem;
    color: var(--cc-unsub-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

#acym_wrapper .cc-acym-unsubscribe__switch {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
}

#acym_wrapper .cc-acym-unsubscribe__switch .switch {
    margin: 0;
}

#acym_wrapper .cc-acym-unsubscribe__reason {
    width: 100%;
    margin-top: 1.8rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--cc-unsub-line);
}

#acym_wrapper .cc-acym-unsubscribe__reason input,
#acym_wrapper .cc-acym-unsubscribe__reason select {
    width: 100%;
    min-height: 2.9rem;
    margin: 0;
    padding: 0.7rem 0.85rem;
    color: var(--cc-unsub-ink);
    background: #ffffff;
    border: 1px solid #d8cadd;
    border-radius: 0.7rem;
    box-shadow: none;
}

#acym_wrapper .cc-acym-unsubscribe__reason input:focus,
#acym_wrapper .cc-acym-unsubscribe__reason select:focus {
    border-color: var(--cc-unsub-purple);
    box-shadow: 0 0 0 0.2rem rgba(101, 49, 138, 0.12);
    outline: 0;
}

#acym_wrapper .cc-acym-unsubscribe__reason .acym__custom__reason__label {
    display: block;
    margin: 0.8rem 0 0.4rem;
    color: var(--cc-unsub-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

#acym_wrapper .cc-acym-unsubscribe__reason .is-hidden {
    display: none;
}

#acym_wrapper .cc-acym-unsubscribe__empty {
    padding: 1rem;
    color: var(--cc-unsub-muted);
    background: #fbf9fc;
    border: 1px solid var(--cc-unsub-line);
    border-radius: 0.9rem;
}

#acym_wrapper .cc-acym-unsubscribe__empty p {
    margin: 0.25rem 0 0;
}

#acym_wrapper .cc-acym-unsubscribe__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    justify-content: flex-end;
    width: 100%;
    margin-top: 1.6rem;
}

#acym_wrapper .cc-acym-unsubscribe__button {
    width: auto;
    min-height: 2.85rem;
    margin: 0;
    padding: 0.7rem 1.15rem;
    color: #ffffff !important;
    background: var(--cc-unsub-purple) !important;
    border: 1px solid var(--cc-unsub-purple) !important;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    box-shadow: none;
}

#acym_wrapper .cc-acym-unsubscribe__button:hover,
#acym_wrapper .cc-acym-unsubscribe__button:focus-visible {
    color: #ffffff !important;
    background: var(--cc-unsub-purple-dark) !important;
    border-color: var(--cc-unsub-purple-dark) !important;
}

#acym_wrapper .cc-acym-unsubscribe__button--secondary {
    color: var(--cc-unsub-purple) !important;
    background: #ffffff !important;
}

#acym_wrapper .cc-acym-unsubscribe__button--secondary:hover,
#acym_wrapper .cc-acym-unsubscribe__button--secondary:focus-visible {
    color: var(--cc-unsub-purple-dark) !important;
    background: #f5eff8 !important;
    border-color: var(--cc-unsub-purple-dark) !important;
}

#acym_wrapper .cc-acym-unsubscribe__privacy {
    margin: 1rem 0 0;
    color: var(--cc-unsub-muted);
    font-size: 0.72rem;
    line-height: 1.5;
    text-align: right;
}

@media (max-width: 575.98px) {
    #acym_wrapper .cc-acym-unsubscribe {
        padding: 0;
        background: #ffffff;
    }

    #acym_wrapper .cc-acym-unsubscribe__shell {
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    #acym_wrapper .cc-acym-unsubscribe__section-heading {
        display: block;
    }

    #acym_wrapper .cc-acym-unsubscribe__section-heading > span {
        display: block;
        margin-top: 0.35rem;
    }

    #acym_wrapper .cc-acym-unsubscribe__actions {
        flex-direction: column-reverse;
    }

    #acym_wrapper .cc-acym-unsubscribe__button {
        width: 100%;
    }

    #acym_wrapper .cc-acym-unsubscribe__privacy {
        text-align: left;
    }
}

/* =========================================================
   Accueil éditorial — articles Joomla mis en avant uniquement
   ========================================================= */
.cc-home-magazine .container-component > .mod-breadcrumbs__wrapper {
    display: none;
}

.cc-home-magazine:not(.has-sidebar-left):not(.has-sidebar-right) .site-grid > .container-component {
    grid-column: full-start / full-end;
    align-self: start;
    max-width: none;
    padding-top: 0;
}

.cc-home-magazine .container-component > main {
    width: 100%;
}

/* Keep the approved magazine header compact on ordinary desktop widths.
   The global site still switches to its burger layout below 992px. */
@media (min-width: 992px) and (max-width: 1366px) {
    body.cc-home-magazine header.header .grid-child.container-nav {
        min-height: 5.25rem;
        align-items: center;
        flex-direction: row;
        gap: clamp(0.8rem, 2vw, 2rem);
        padding-block: 0.45rem;
    }

    body.cc-home-magazine header.header .grid-child.container-nav #mod-custom674 {
        display: flex;
        width: auto;
        flex: 0 0 auto;
        justify-content: flex-start;
    }

    body.cc-home-magazine header.header .navbar-brand img {
        height: clamp(3.6rem, 5vw, 4.25rem);
    }

    body.cc-home-magazine header.header .grid-child.container-nav > nav.navbar,
    body.cc-home-magazine header.header .grid-child.container-nav > nav.navbar > .navbar-collapse {
        width: auto;
        min-width: 0;
        justify-content: flex-end;
    }

    body.cc-home-magazine header.header .grid-child.container-nav ul.mod-menu {
        flex-wrap: nowrap;
        gap: 0.12rem;
        margin-top: 0;
    }

    body.cc-home-magazine header.header .grid-child.container-nav ul.mod-menu > li > a {
        padding-inline: clamp(0.42rem, 0.8vw, 0.72rem);
        font-size: clamp(0.69rem, 0.8vw, 0.78rem);
    }
}

.cc-magazine-home {
    --cc-magazine-max: 96rem;
    --cc-magazine-purple: #5d2e82;
    --cc-magazine-purple-dark: #26112f;
    --cc-magazine-purple-soft: #4b2466;
    --cc-magazine-mint: #79c6b5;
    --cc-magazine-ink: #332a38;
    --cc-magazine-muted: #716677;
    --cc-magazine-line: #e5dce8;
    --cc-magazine-paper: #ffffff;
    --cc-magazine-page: #f8f5f9;
    min-width: 0;
    overflow: hidden;
    color: var(--cc-magazine-ink);
    background: var(--cc-magazine-page);
}

.cc-magazine-home a {
    text-decoration: none;
}

.cc-magazine-home__hero {
    position: relative;
    padding: clamp(2.5rem, 4vw, 4rem) max(clamp(1.5rem, 4vw, 4rem), calc((100% - var(--cc-magazine-max)) / 2)) clamp(2.75rem, 4vw, 4rem);
    overflow: hidden;
    color: #ffffff;
    background:
        radial-gradient(circle at 82% 26%, rgba(121, 198, 181, 0.28), transparent 22%),
        linear-gradient(125deg, var(--cc-magazine-purple-dark), var(--cc-magazine-purple-soft));
}

.cc-magazine-home__hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(20rem, 0.82fr) minmax(32rem, 1.18fr);
    gap: clamp(2rem, 4vw, 4.5rem);
    align-items: center;
    width: min(100%, var(--cc-magazine-max));
    margin: 0 auto;
}

.cc-magazine-home__hero::before {
    position: absolute;
    right: -5rem;
    bottom: -11rem;
    width: clamp(20rem, 38vw, 33rem);
    aspect-ratio: 1;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    box-shadow:
        0 0 0 clamp(3rem, 6vw, 5rem) rgba(255, 255, 255, 0.035),
        0 0 0 clamp(6rem, 12vw, 10rem) rgba(255, 255, 255, 0.025);
}

.cc-magazine-home__hero-copy {
    position: relative;
    z-index: 1;
    max-width: 36rem;
}

.cc-magazine-home__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--cc-magazine-mint);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-magazine-home__hero h1 {
    max-width: 36rem;
    margin: 0;
    color: #ffffff;
    font-size: clamp(3.25rem, 5vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.065em;
    line-height: 0.9;
    text-wrap: balance;
}

.cc-magazine-home__intro {
    max-width: 38rem;
    margin: clamp(1.35rem, 3vw, 2rem) 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.6;
}

.cc-magazine-home__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.7rem;
}

.cc-magazine-home__button {
    display: inline-flex;
    gap: 0.6rem;
    align-items: center;
    justify-content: center;
    min-height: 2.9rem;
    padding: 0.7rem 1.05rem;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1;
    transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.cc-magazine-home__button:hover,
.cc-magazine-home__button:focus-visible {
    transform: translateY(-2px);
}

.cc-magazine-home__button--primary {
    color: var(--cc-magazine-purple-dark);
    background: #ffffff;
    border: 1px solid #ffffff;
}

.cc-magazine-home__button--primary:hover,
.cc-magazine-home__button--primary:focus-visible {
    color: #ffffff;
    background: var(--cc-magazine-purple);
    border-color: var(--cc-magazine-purple);
}

.cc-magazine-home__button--quiet {
    color: #ffffff;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.38);
}

.cc-magazine-home__button--quiet:hover,
.cc-magazine-home__button--quiet:focus-visible {
    color: var(--cc-magazine-purple-dark);
    background: var(--cc-magazine-mint);
    border-color: var(--cc-magazine-mint);
}

.cc-magazine-home__signature {
    margin: 1.3rem 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.cc-magazine-home__signature span {
    color: var(--cc-magazine-mint);
    font-weight: 800;
}

.cc-magazine-home__lead {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(15rem, 18rem) auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    background: var(--cc-magazine-paper);
    border-radius: 1.15rem;
    box-shadow: 0 1.25rem 3.4rem rgba(24, 10, 31, 0.28);
}

.cc-magazine-home__lead-media {
    position: relative;
    display: block;
    min-height: 15rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 70% 36%, rgba(121, 198, 181, 0.72), transparent 22%),
        linear-gradient(145deg, var(--cc-magazine-purple-soft), var(--cc-magazine-purple-dark));
}

.cc-magazine-home__lead-media::after {
    position: absolute;
    inset: auto 0 0;
    height: 42%;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(24, 10, 31, 0.82));
}

.cc-magazine-home__lead-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 15rem;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.cc-magazine-home__lead:hover .cc-magazine-home__lead-media img,
.cc-magazine-home__lead:focus-within .cc-magazine-home__lead-media img {
    transform: scale(1.025);
}

.cc-magazine-home__lead-caption {
    position: absolute;
    z-index: 1;
    bottom: 1.15rem;
    left: 1.25rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-magazine-home__lead-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: flex-start;
    padding: clamp(1.25rem, 2vw, 1.75rem);
    background:
        radial-gradient(circle at 100% 0, rgba(121, 198, 181, 0.12), transparent 30%),
        var(--cc-magazine-paper);
    border-bottom: 0.35rem solid var(--cc-magazine-mint);
}

.cc-magazine-home__lead-heading {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.cc-magazine-home__lead-heading > span {
    color: #ded3e3;
    font-size: 1.05rem;
    font-weight: 800;
}

.cc-magazine-home__lead h2 {
    margin: 0 0 0.75rem;
    font-size: clamp(1.65rem, 2.5vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1.04;
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
}

.cc-magazine-home__lead h2 a {
    color: var(--cc-magazine-ink);
}

.cc-magazine-home__lead h2 a:hover,
.cc-magazine-home__lead h2 a:focus-visible {
    color: var(--cc-magazine-purple);
}

.cc-magazine-home__lead-copy > p:not(.cc-magazine-home__eyebrow) {
    display: -webkit-box;
    margin: 0;
    color: var(--cc-magazine-muted);
    overflow: hidden;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cc-magazine-home__lead-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.25rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.9rem;
    padding-top: 0.85rem;
    color: var(--cc-magazine-muted);
    border-top: 1px solid var(--cc-magazine-line);
    font-size: 0.76rem;
    line-height: 1.35;
}

.cc-magazine-home__lead-footer a {
    color: var(--cc-magazine-purple);
    font-weight: 800;
}

.cc-magazine-home__shortcuts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(calc(100% - clamp(2rem, 5vw, 5rem)), 94rem);
    margin: 0 auto;
    border-top: 1px solid var(--cc-magazine-line);
    border-bottom: 1px solid var(--cc-magazine-line);
}

.cc-magazine-home__shortcuts a {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    min-width: 0;
    padding: 1.25rem 1.1rem;
    color: var(--cc-magazine-ink);
    border-right: 1px solid var(--cc-magazine-line);
    transition: color 0.2s ease, background 0.2s ease;
}

.cc-magazine-home__shortcuts a:last-child {
    border-right: 0;
}

.cc-magazine-home__shortcuts a:hover,
.cc-magazine-home__shortcuts a:focus-visible {
    color: var(--cc-magazine-purple);
    background: #ffffff;
}

.cc-magazine-home__shortcuts a > span:first-child,
.cc-magazine-home__shortcuts a > span:last-child {
    color: var(--cc-magazine-purple);
    font-weight: 800;
}

.cc-magazine-home__shortcuts a > span:last-child {
    margin-left: auto;
}

.cc-magazine-home__shortcuts strong {
    min-width: 0;
    font-weight: 800;
}

.cc-magazine-home__journal {
    width: min(calc(100% - clamp(2rem, 5vw, 5rem)), 94rem);
    margin: 0 auto;
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.cc-magazine-home__journal-header {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.cc-magazine-home__journal-header h2 {
    margin: 0;
    color: var(--cc-magazine-ink);
    font-size: clamp(2.35rem, 5vw, 4rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 0.95;
}

.cc-magazine-home__journal-header > a {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    color: var(--cc-magazine-purple);
    font-size: 0.86rem;
    font-weight: 800;
}

.cc-magazine-home__tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 23rem));
    gap: 1rem;
    justify-content: start;
}

@media (min-width: 992px) {
    .cc-magazine-home__tiles {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        justify-content: stretch;
    }
}

.cc-magazine-home__tile {
    min-width: 0;
    overflow: hidden;
    background: var(--cc-magazine-paper);
    border: 1px solid var(--cc-magazine-line);
    border-radius: 0.85rem;
    box-shadow: 0 0.55rem 1.6rem rgba(54, 33, 65, 0.06);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cc-magazine-home__tile:hover,
.cc-magazine-home__tile:focus-within {
    border-color: #c5b3ce;
    box-shadow: 0 0.85rem 2rem rgba(54, 33, 65, 0.11);
    transform: translateY(-3px);
}

.cc-magazine-home__tile > a {
    display: flex;
    height: 100%;
    flex-direction: column;
    color: inherit;
}

.cc-magazine-home__tile-media {
    display: grid;
    width: 100%;
    height: 7.25rem;
    margin: 0;
    overflow: hidden;
    place-items: center;
    color: #ffffff;
    background:
        radial-gradient(circle at 72% 38%, rgba(121, 198, 181, 0.72), transparent 22%),
        linear-gradient(145deg, var(--cc-magazine-purple-soft), var(--cc-magazine-purple-dark));
}

.cc-magazine-home__tile-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.cc-magazine-home__tile:hover .cc-magazine-home__tile-media img,
.cc-magazine-home__tile:focus-within .cc-magazine-home__tile-media img {
    transform: scale(1.035);
}

.cc-magazine-home__tile-media > span {
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.cc-magazine-home__tile-copy {
    display: flex;
    min-height: 10rem;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1rem;
}

.cc-magazine-home__tile-copy > p {
    margin: 0 0 0.6rem;
    color: var(--cc-magazine-purple);
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.035em;
    line-height: 1.35;
}

.cc-magazine-home__tile-copy h3 {
    margin: 0 0 0.85rem;
    color: var(--cc-magazine-ink);
    font-size: clamp(1.08rem, 2vw, 1.3rem);
    font-weight: 850;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.cc-magazine-home__tile-copy > span {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    margin-top: auto;
    color: var(--cc-magazine-muted);
    font-size: 0.74rem;
    font-weight: 750;
}

@media (max-width: 991.98px) {
    .cc-magazine-home__hero-inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .cc-magazine-home__hero-copy {
        max-width: 48rem;
    }

    .cc-magazine-home__hero h1 {
        max-width: 48rem;
    }

    .cc-magazine-home__lead {
        grid-template-columns: minmax(0, 1.15fr) minmax(19rem, 0.85fr);
        grid-template-rows: none;
    }

    .cc-magazine-home__lead-copy {
        padding: clamp(1.65rem, 4vw, 2.5rem);
    }

}

@media (max-width: 767.98px) {
    .cc-magazine-home__hero {
        padding-bottom: 2rem;
    }

    .cc-magazine-home__lead {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(15rem, 18rem) auto;
        min-height: 0;
        margin-top: 0;
    }

    .cc-magazine-home__lead-media,
    .cc-magazine-home__lead-media img {
        min-height: clamp(17rem, 60vw, 24rem);
    }

    .cc-magazine-home__shortcuts {
        grid-template-columns: 1fr;
    }

    .cc-magazine-home__shortcuts a {
        border-right: 0;
        border-bottom: 1px solid var(--cc-magazine-line);
    }

    .cc-magazine-home__shortcuts a:last-child {
        border-bottom: 0;
    }

    .cc-magazine-home__tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
    }
}

@media (max-width: 575.98px) {
    .cc-magazine-home__hero h1 {
        font-size: clamp(3rem, 16vw, 4.4rem);
    }

    .cc-magazine-home__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-magazine-home__button {
        width: 100%;
    }

    .cc-magazine-home__lead,
    .cc-magazine-home__shortcuts,
    .cc-magazine-home__journal {
        width: min(calc(100% - 1.5rem), 94rem);
    }

    .cc-magazine-home__lead {
        width: 100%;
    }

    .cc-magazine-home__lead-media,
    .cc-magazine-home__lead-media img {
        min-height: 15rem;
    }

    .cc-magazine-home__lead-copy {
        padding: 1.5rem;
    }

    .cc-magazine-home__lead h2 {
        font-size: clamp(1.85rem, 9vw, 2.55rem);
    }

    .cc-magazine-home__lead-footer,
    .cc-magazine-home__journal-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-magazine-home__tiles {
        grid-template-columns: 1fr;
    }

    .cc-magazine-home__tile > a {
        display: grid;
        grid-template-columns: 6.25rem minmax(0, 1fr);
    }

    .cc-magazine-home__tile-media {
        width: auto;
        height: 100%;
        min-height: 9rem;
    }

    .cc-magazine-home__tile-copy {
        min-height: 9rem;
    }

    .cc-magazine-home__tile-copy > span {
        display: none;
    }
}

/* ========================================================================
   Accueil 2026 — vitrine des activités et journal récent
   ======================================================================== */
.cc-home-landing {
    --cc-home-purple: #202020;
    --cc-home-purple-dark: #202020;
    --cc-home-purple-soft: #606060;
    --cc-home-mint: #43bbcf;
    --cc-home-peach: #f2b293;
    --cc-home-blue: #43bbcf;
    --cc-home-yellow: #f9b900;
    --cc-home-red: #e30613;
    --cc-home-ink: #202020;
    --cc-home-muted: #606060;
    --cc-home-line: #d5e8ec;
    width: 100%;
    padding: clamp(1rem, 2.2vw, 2rem) 0 clamp(3.5rem, 7vw, 6rem);
    color: var(--cc-home-ink);
    background:
        radial-gradient(circle at 6% 24%, rgba(67, 187, 207, .045), transparent 18rem),
        radial-gradient(circle at 94% 72%, rgba(67, 187, 207, .04), transparent 20rem),
        #fff;
    overflow: hidden;
}

.cc-home-landing a {
    text-decoration: none;
}

.cc-home-landing__hero,
.cc-home-landing__activities,
.cc-home-landing__news,
.cc-home-landing__manifesto {
    width: min(calc(100% - clamp(2rem, 5vw, 5rem)), 94rem);
    margin-inline: auto;
}

.cc-home-landing__hero {
    position: relative;
    display: flex;
    min-height: clamp(28rem, 35vw, 32rem);
    align-items: center;
    overflow: hidden;
    color: #fff;
    background: var(--cc-home-purple-dark);
    border-radius: clamp(1.4rem, 2.5vw, 2.35rem);
    box-shadow: 0 1.8rem 4.8rem rgba(0, 0, 0, .16);
    isolation: isolate;
}

.cc-home-landing__hero-image,
.cc-home-landing__hero-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.cc-home-landing__hero-image {
    z-index: -2;
    object-fit: cover;
    object-position: 50% 48%;
}

.cc-home-landing__hero-shade {
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, .90) 0%, rgba(0, 0, 0, .77) 34%, rgba(0, 0, 0, .24) 68%, rgba(0, 0, 0, .12) 100%),
        linear-gradient(0deg, rgba(0, 0, 0, .38), transparent 48%);
}

.cc-home-landing__hero-copy {
    width: min(54%, 43rem);
    padding: clamp(2rem, 3.5vw, 3.5rem);
}

.cc-home-landing__eyebrow {
    margin: 0 0 .85rem;
    color: var(--cc-home-purple);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .16em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-home-landing__hero .cc-home-landing__eyebrow {
    color: var(--cc-home-mint);
}

.cc-home-landing__hero h1 {
    max-width: 10.8ch;
    margin: 0;
    color: #fff;
    font-size: clamp(3.35rem, 5vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -.067em;
    line-height: .9;
    text-wrap: balance;
}

.cc-home-landing__hero-copy > p:not(.cc-home-landing__eyebrow) {
    max-width: 34rem;
    margin: clamp(1.4rem, 3vw, 2rem) 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(1rem, 1.6vw, 1.2rem);
    line-height: 1.65;
}

.cc-home-landing__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.75rem;
}

.cc-home-landing__button {
    display: inline-flex;
    min-height: 3.15rem;
    gap: .75rem;
    align-items: center;
    justify-content: center;
    padding: .85rem 1.25rem;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 999px;
    font-size: .84rem;
    font-weight: 850;
    line-height: 1;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.cc-home-landing__button:hover,
.cc-home-landing__button:focus-visible {
    transform: translateY(-2px);
}

.cc-home-landing__button--primary {
    color: var(--cc-home-purple-dark);
    background: var(--cc-home-mint);
    border-color: var(--cc-home-mint);
}

.cc-home-landing__button--primary:hover,
.cc-home-landing__button--primary:focus-visible {
    color: var(--cc-home-ink);
    background: #65c8d9;
    border-color: #65c8d9;
}

.cc-home-landing__button--glass {
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(.55rem);
}

.cc-home-landing__button--glass:hover,
.cc-home-landing__button--glass:focus-visible {
    color: var(--cc-home-purple-dark);
    background: #fff;
    border-color: #fff;
}

.cc-home-landing__hero-note {
    position: absolute;
    right: clamp(1.5rem, 3.5vw, 3.5rem);
    bottom: clamp(1.5rem, 3.5vw, 3.5rem);
    display: flex;
    max-width: 16rem;
    flex-direction: column;
    margin: 0;
    padding: 1rem 1.2rem;
    color: rgba(255, 255, 255, .8);
    background: rgba(0, 0, 0, .52);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 1rem;
    backdrop-filter: blur(.65rem);
    font-size: .78rem;
    line-height: 1.45;
}

.cc-home-landing__hero-note strong {
    color: var(--cc-home-mint);
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.cc-home-landing__activities {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.cc-home-landing__activity {
    --cc-activity-accent: #202020;
    --cc-activity-tint: 67, 187, 207;
    position: relative;
    display: flex;
    min-height: 8.5rem;
    flex-direction: row;
    gap: .85rem;
    align-items: center;
    justify-content: flex-start;
    padding: 1rem 2.6rem 1rem 1rem;
    overflow: hidden;
    color: var(--cc-home-ink);
    background:
        radial-gradient(circle at 0 100%, rgba(var(--cc-activity-tint), .035), transparent 12rem),
        linear-gradient(115deg, #fff, #f5fbfc);
    border: 1px solid var(--cc-home-line);
    border-radius: 1.35rem;
    text-align: left;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.cc-home-landing__activity::before {
    position: absolute;
    top: -4rem;
    right: -3rem;
    width: 9rem;
    height: 9rem;
    content: "";
    background: rgba(255, 255, 255, .28);
    border-radius: 50%;
}

.cc-home-landing__activity--training { --cc-activity-tint: 227, 6, 19; }
.cc-home-landing__activity--scores { --cc-activity-tint: 67, 187, 207; }
.cc-home-landing__activity--events { --cc-activity-tint: 249, 185, 0; }

.cc-home-landing__activity:hover,
.cc-home-landing__activity:focus-visible {
    color: var(--cc-home-purple-dark);
    border-color: var(--cc-home-blue);
    box-shadow: 0 .5rem 1.4rem rgba(0, 0, 0, .065);
    transform: translateY(-2px);
}

.cc-home-landing__activity:focus-visible {
    outline: 2px solid var(--cc-home-ink);
    outline-offset: 3px;
}

.cc-home-landing__activity-icon,
.cc-home-landing__activity-arrow {
    display: grid;
    place-items: center;
    border-radius: 50%;
}

.cc-home-landing__activity-icon {
    position: relative;
    width: 2.9rem;
    height: 2.9rem;
    flex: 0 0 2.9rem;
    margin: 0;
    color: var(--cc-activity-accent);
    background: rgba(var(--cc-activity-tint), .09);
    box-shadow: none;
    font-size: 1.25rem;
}

.cc-home-landing__activity-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    align-items: flex-start;
}

.cc-home-landing__activity-copy strong {
    max-width: none;
    color: inherit;
    font-size: clamp(1.15rem, 1.8vw, 1.42rem);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.06;
    text-wrap: balance;
}

.cc-home-landing__activity-copy small {
    display: -webkit-box;
    max-width: 16rem;
    margin-top: .65rem;
    color: var(--cc-home-muted);
    font-size: .8rem;
    line-height: 1.45;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cc-home-landing__activity-arrow {
    position: absolute;
    right: .9rem;
    top: 50%;
    bottom: auto;
    width: 1.9rem;
    height: 1.9rem;
    margin: 0;
    color: var(--cc-home-purple);
    background: rgba(255, 255, 255, .72);
    font-weight: 900;
    transform: translateY(-50%);
}

.cc-home-landing__news {
    padding-top: clamp(2.5rem, 3.5vw, 3.25rem);
}

.cc-home-landing__section-heading {
    display: flex;
    gap: 1.5rem;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.cc-home-landing__section-heading h2 {
    max-width: 18ch;
    margin: 0;
    color: var(--cc-home-ink);
    font-size: clamp(2.25rem, 4vw, 3.8rem);
    font-weight: 900;
    letter-spacing: -.05em;
    line-height: .98;
    text-wrap: balance;
}

.cc-home-landing__section-heading > a {
    display: inline-flex;
    flex: 0 0 auto;
    gap: .55rem;
    align-items: center;
    padding-bottom: .25rem;
    color: var(--cc-home-purple);
    border-bottom: 2px solid var(--cc-home-blue);
    font-size: .82rem;
    font-weight: 850;
}

.cc-home-landing__news-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.14fr) minmax(24rem, .86fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: stretch;
}

.cc-home-landing__spotlight {
    position: relative;
    min-height: 34rem;
    overflow: hidden;
    color: #fff;
    background: var(--cc-home-purple-dark);
    border-radius: 1.65rem;
    box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, .14);
    isolation: isolate;
}

.cc-home-landing__spotlight-media {
    position: absolute;
    z-index: -2;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, var(--cc-home-purple), var(--cc-home-purple-dark));
}

.cc-home-landing__spotlight-media::after {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(0deg, rgba(0, 0, 0, .94) 0%, rgba(0, 0, 0, .72) 38%, rgba(0, 0, 0, .08) 78%),
        linear-gradient(90deg, rgba(0, 0, 0, .32), transparent 65%);
}

.cc-home-landing__spotlight-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.cc-home-landing__spotlight:hover .cc-home-landing__spotlight-media img,
.cc-home-landing__spotlight:focus-within .cc-home-landing__spotlight-media img {
    transform: scale(1.025);
}

.cc-home-landing__spotlight-copy {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(1.6rem, 4vw, 3rem);
}

.cc-home-landing__spotlight-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    align-items: center;
    margin: 0 0 .85rem;
    color: rgba(255, 255, 255, .74);
    font-size: .72rem;
    letter-spacing: .04em;
}

.cc-home-landing__spotlight-meta strong {
    padding: .38rem .65rem;
    color: var(--cc-home-purple-dark);
    background: var(--cc-home-mint);
    border-radius: 999px;
    font-size: .65rem;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.cc-home-landing__spotlight h3 {
    max-width: 17ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 3.8vw, 3.45rem);
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.cc-home-landing__spotlight h3 a {
    color: inherit;
}

.cc-home-landing__spotlight-copy > p:not(.cc-home-landing__spotlight-meta) {
    display: -webkit-box;
    max-width: 38rem;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .8);
    overflow: hidden;
    font-size: .88rem;
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cc-home-landing__readmore {
    display: inline-flex;
    min-height: 2.75rem;
    gap: .55rem;
    align-items: center;
    margin-top: 1.25rem;
    padding: .7rem 1rem;
    color: var(--cc-home-purple-dark);
    background: #fff;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 850;
}

.cc-home-landing__readmore:hover,
.cc-home-landing__readmore:focus-visible {
    color: var(--cc-home-ink);
    background: var(--cc-home-blue);
}

.cc-home-landing :is(.cc-home-landing__button, .cc-home-landing__readmore):focus-visible {
    outline: 2px solid var(--cc-home-blue);
    outline-offset: 3px;
}

.cc-home-landing :is(.cc-home-landing__section-heading > a, .cc-home-landing__latest-item > a):focus-visible {
    outline: 2px solid var(--cc-home-ink);
    outline-offset: 4px;
}

.cc-home-landing__latest {
    display: grid;
    min-width: 0;
    align-content: stretch;
    padding: .25rem 0;
}

.cc-home-landing__latest-item {
    min-width: 0;
    border-bottom: 1px solid var(--cc-home-line);
}

.cc-home-landing__latest-item:first-child {
    border-top: 1px solid var(--cc-home-line);
}

.cc-home-landing__latest-item > a {
    display: grid;
    min-height: 8rem;
    grid-template-columns: 8.25rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: .9rem 0;
    color: inherit;
}

.cc-home-landing__latest-media {
    display: grid;
    width: 100%;
    height: 6.4rem;
    margin: 0;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg, var(--cc-home-purple-soft), var(--cc-home-purple-dark));
    border-radius: .85rem;
}

.cc-home-landing__latest-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.cc-home-landing__latest-item:hover img,
.cc-home-landing__latest-item:focus-within img {
    transform: scale(1.045);
}

.cc-home-landing__latest-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
}

.cc-home-landing__latest-copy small {
    margin-bottom: .42rem;
    color: var(--cc-home-purple);
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .025em;
    line-height: 1.35;
}

.cc-home-landing__latest-copy strong {
    display: -webkit-box;
    color: var(--cc-home-ink);
    overflow: hidden;
    font-size: clamp(.96rem, 1.4vw, 1.12rem);
    font-weight: 850;
    letter-spacing: -.02em;
    line-height: 1.22;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cc-home-landing__latest-copy > span {
    margin-top: .48rem;
    color: var(--cc-home-muted);
    font-size: .69rem;
    font-weight: 750;
}

.cc-home-landing__latest-item:hover .cc-home-landing__latest-copy strong,
.cc-home-landing__latest-item:focus-within .cc-home-landing__latest-copy strong {
    color: var(--cc-home-purple);
}

.cc-home-landing__manifesto {
    display: grid;
    grid-template-columns: minmax(14rem, .75fr) minmax(0, 2.25fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: center;
    margin-top: clamp(4rem, 7vw, 6.5rem);
    padding: clamp(1.75rem, 4vw, 3rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 50%, rgba(67, 187, 207, .12), transparent 17rem),
        linear-gradient(115deg, #f1f9fa, #fff);
    border: 1px solid var(--cc-home-line);
    border-radius: 1.75rem;
}

.cc-home-landing__manifesto > p {
    display: flex;
    flex-direction: column;
    margin: 0;
    color: var(--cc-home-purple-dark);
    font-size: clamp(1.5rem, 2.8vw, 2.4rem);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1.02;
}

.cc-home-landing__manifesto > p strong {
    color: var(--cc-home-purple);
    font-weight: 900;
}

.cc-home-landing__manifesto ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.cc-home-landing__manifesto li {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    padding: .35rem 1.1rem;
    border-left: 1px solid var(--cc-home-line);
    text-align: center;
}

.cc-home-landing__manifesto li strong {
    color: var(--cc-home-purple);
    font-size: clamp(1rem, 1.6vw, 1.2rem);
    font-weight: 900;
    line-height: 1.2;
}

.cc-home-landing__manifesto li span {
    margin-top: .35rem;
    color: var(--cc-home-muted);
    font-size: .7rem;
    line-height: 1.4;
}

@media (max-width: 1050px) {
    .cc-home-landing__hero-copy {
        width: 64%;
    }

    .cc-home-landing__activities {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-home-landing__activity {
        min-height: 8.5rem;
    }

    .cc-home-landing__news-grid {
        grid-template-columns: 1fr;
    }

    .cc-home-landing__latest {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 1.5rem;
    }

    .cc-home-landing__manifesto {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .cc-home-landing {
        padding-top: .75rem;
    }

    .cc-home-landing__hero,
    .cc-home-landing__activities,
    .cc-home-landing__news,
    .cc-home-landing__manifesto {
        width: min(calc(100% - 1.25rem), 94rem);
    }

    .cc-home-landing__hero {
        min-height: 32rem;
        align-items: flex-end;
    }

    .cc-home-landing__hero-image {
        object-position: 60% 50%;
    }

    .cc-home-landing__hero-shade {
        background: linear-gradient(0deg, rgba(0, 0, 0, .97) 0%, rgba(0, 0, 0, .82) 48%, rgba(0, 0, 0, .2) 88%);
    }

    .cc-home-landing__hero-copy {
        width: 100%;
        padding: 1.6rem 1.5rem 5.2rem;
    }

    .cc-home-landing__hero h1 {
        font-size: clamp(2.85rem, 13vw, 4.5rem);
    }

    .cc-home-landing__hero-note {
        right: 1.5rem;
        bottom: 1.25rem;
        left: 1.5rem;
        max-width: none;
        padding: .7rem 0 0;
        background: transparent;
        border: 0;
        border-top: 1px solid rgba(255, 255, 255, .2);
        border-radius: 0;
        backdrop-filter: none;
    }

    .cc-home-landing__section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .cc-home-landing__latest {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .cc-home-landing__manifesto ul {
        grid-template-columns: 1fr;
    }

    .cc-home-landing__manifesto li {
        align-items: flex-start;
        padding: 1rem 0;
        border-top: 1px solid var(--cc-home-line);
        border-left: 0;
        text-align: left;
    }
}

@media (max-width: 575.98px) {
    .cc-home-landing__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-home-landing__button {
        width: 100%;
    }

    .cc-home-landing__activities {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .cc-home-landing__activity {
        min-height: 8.25rem;
        flex-direction: column;
        gap: .45rem;
        align-items: flex-start;
        justify-content: flex-start;
        padding: .85rem;
        text-align: left;
    }

    .cc-home-landing__activity-icon {
        width: 2.65rem;
        height: 2.65rem;
        flex: 0 0 2.65rem;
        margin: 0;
        font-size: 1rem;
    }

    .cc-home-landing__activity-copy {
        min-width: 0;
        align-items: flex-start;
    }

    .cc-home-landing__activity-copy strong,
    .cc-home-landing__activity-copy small {
        max-width: none;
    }

    .cc-home-landing__activity-copy strong {
        padding-right: 1.6rem;
        font-size: 1rem;
    }

    .cc-home-landing__activity-copy small {
        display: none;
    }

    .cc-home-landing__activity-arrow {
        position: absolute;
        right: .7rem;
        top: auto;
        bottom: .7rem;
        width: 1.75rem;
        height: 1.75rem;
        flex: 0 0 1.75rem;
        margin: 0;
        transform: none;
    }

    .cc-home-landing__spotlight {
        min-height: 32rem;
    }

    .cc-home-landing__spotlight h3 {
        font-size: clamp(1.8rem, 8vw, 2.65rem);
    }

    .cc-home-landing__latest-item > a {
        min-height: 7.2rem;
        grid-template-columns: 6.7rem minmax(0, 1fr);
        gap: .85rem;
    }

    .cc-home-landing__latest-media {
        height: 5.6rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-home-landing__activity,
    .cc-home-landing__button,
    .cc-home-landing__spotlight-media img,
    .cc-home-landing__latest-media img {
        transition: none;
    }
}

/* ========================================================================
   Error 404 — reassuring, useful and consistent with the CC identity
   ======================================================================== */

.cc-error-site .cc-error-grid {
    display: block;
}

.cc-error-container {
    width: min(calc(100% - 2rem), 78rem);
    max-width: none;
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 4.5rem) 0;
}

.cc-error-page {
    --cc-error-purple: #572a7c;
    --cc-error-purple-dark: #30163f;
    --cc-error-mint: #9cddd4;
    --cc-error-peach: #f1a27f;
    color: #382a40;
}

.cc-error-hero {
    position: relative;
    display: grid;
    min-height: 29rem;
    grid-template-columns: minmax(0, 1.04fr) minmax(21rem, 0.96fr);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(156, 221, 212, 0.2), transparent 26%),
        radial-gradient(circle at 5% 100%, rgba(241, 162, 127, 0.18), transparent 30%),
        linear-gradient(135deg, var(--cc-error-purple-dark), var(--cc-error-purple) 65%, #6c378b);
    border-radius: 1.75rem;
    box-shadow: 0 1.5rem 4rem rgba(54, 27, 68, 0.2);
}

.cc-error-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(2rem, 5vw, 4.75rem);
}

.cc-error-eyebrow {
    display: flex;
    gap: 0.7rem;
    align-items: center;
    margin: 0 0 1.1rem;
    color: #d7f3ee;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-error-eyebrow span {
    padding: 0.42rem 0.7rem;
    color: #351844;
    background: var(--cc-error-mint);
    border-radius: 999px;
    letter-spacing: 0.08em;
}

.cc-error-hero h1 {
    max-width: 12ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.7rem, 5.8vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.94;
}

.cc-error-lead {
    max-width: 36rem;
    margin: 1.5rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(1rem, 1.6vw, 1.16rem);
    line-height: 1.7;
}

.cc-error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}

.cc-error-button {
    display: inline-flex;
    min-height: 3.15rem;
    gap: 0.6rem;
    align-items: center;
    justify-content: center;
    padding: 0.78rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 900;
    text-decoration: none !important;
    transition: background-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}

.cc-error-button--primary {
    color: #351844 !important;
    background: var(--cc-error-mint);
    border-color: var(--cc-error-mint);
    box-shadow: 0 0.8rem 2rem rgba(9, 37, 33, 0.2);
}

.cc-error-button--ghost {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.08);
}

.cc-error-button:hover,
.cc-error-button:focus-visible {
    color: #2f173d !important;
    background: #fff;
    border-color: #fff;
    transform: translateY(-2px);
}

.cc-error-visual {
    position: relative;
    min-height: 100%;
    overflow: hidden;
}

.cc-error-number {
    position: absolute;
    top: 50%;
    right: -0.03em;
    color: rgba(255, 255, 255, 0.09);
    font-size: clamp(12rem, 25vw, 23rem);
    font-weight: 900;
    letter-spacing: -0.1em;
    line-height: 0.75;
    transform: translateY(-50%);
    white-space: nowrap;
}

.cc-error-visual svg {
    position: absolute;
    top: 50%;
    right: -1rem;
    width: min(42rem, 115%);
    overflow: visible;
    fill: var(--cc-error-peach);
    transform: translateY(-40%);
}

.cc-error-line {
    fill: none;
    stroke: rgba(255, 255, 255, 0.34);
    stroke-linecap: round;
    stroke-width: 2;
}

.cc-error-line--two {
    stroke: rgba(156, 221, 212, 0.55);
}

.cc-error-note {
    position: absolute;
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--cc-font-family, "Sora", sans-serif);
    font-size: clamp(2.5rem, 6vw, 5rem);
    transform: rotate(-8deg);
}

.cc-error-note--one {
    top: 18%;
    right: 18%;
}

.cc-error-note--two {
    right: 37%;
    bottom: 17%;
    color: rgba(156, 221, 212, 0.7);
    transform: rotate(10deg);
}

.cc-error-routes {
    display: grid;
    grid-template-columns: 0.7fr repeat(3, 1fr);
    margin: -1.25rem clamp(1rem, 4vw, 3.5rem) 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e8dfea;
    border-radius: 1rem;
    box-shadow: 0 1rem 2.5rem rgba(54, 27, 68, 0.1);
}

.cc-error-routes__label,
.cc-error-routes a {
    min-height: 6rem;
    margin: 0;
    padding: 1.15rem 1.3rem;
}

.cc-error-routes__label {
    display: flex;
    align-items: center;
    color: #7a6484;
    background: #faf7fb;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cc-error-routes a {
    display: grid;
    grid-template-columns: 1fr auto;
    align-content: center;
    color: var(--cc-error-purple) !important;
    border-left: 1px solid #eee6f0;
    font-size: 0.9rem;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none !important;
    transition: background-color 180ms ease, color 180ms ease;
}

.cc-error-routes a span {
    grid-column: 1 / -1;
    margin-bottom: 0.25rem;
    color: #9d899f;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-error-routes a b {
    grid-column: 2;
    grid-row: 2;
    font-size: 1.15rem;
    transition: transform 180ms ease;
}

.cc-error-routes a:hover,
.cc-error-routes a:focus-visible {
    color: #32183f !important;
    background: #f7f1f9;
}

.cc-error-routes a:hover b,
.cc-error-routes a:focus-visible b {
    transform: translateX(0.2rem);
}

.cc-error-help {
    margin: 2rem 0 0;
    color: #76667c;
    font-size: 0.88rem;
    text-align: center;
}

.cc-error-help a {
    color: var(--cc-error-purple);
    font-weight: 850;
}

@media (max-width: 991.98px) {
    .cc-error-hero {
        grid-template-columns: minmax(0, 1fr) 17rem;
    }

    .cc-error-routes {
        grid-template-columns: repeat(3, 1fr);
    }

    .cc-error-routes__label {
        grid-column: 1 / -1;
        min-height: auto;
        justify-content: center;
        padding-block: 0.8rem;
    }

    .cc-error-routes a:first-of-type {
        border-left: 0;
    }
}

@media (max-width: 767.98px) {
    .cc-error-container {
        width: min(calc(100% - 1.25rem), 78rem);
        padding-block: 1rem 2.5rem;
    }

    .cc-error-hero {
        min-height: auto;
        grid-template-columns: 1fr;
    }

    .cc-error-copy {
        padding: 2.25rem 1.5rem 2rem;
    }

    .cc-error-hero h1 {
        max-width: 10ch;
        font-size: clamp(2.65rem, 13vw, 4rem);
    }

    .cc-error-visual {
        min-height: 10.5rem;
    }

    .cc-error-number {
        top: 45%;
        right: 4%;
        font-size: 11.5rem;
    }

    .cc-error-visual svg {
        top: 48%;
        right: -2rem;
        width: 29rem;
    }

    .cc-error-routes {
        grid-template-columns: 1fr;
        margin: -0.6rem 0.75rem 0;
    }

    .cc-error-routes__label {
        justify-content: flex-start;
    }

    .cc-error-routes a {
        min-height: 4.75rem;
        border-top: 1px solid #eee6f0;
        border-left: 0;
    }

    .cc-error-actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .cc-error-button {
        width: 100%;
    }
}
/* Native Joomla article tags: compact, recognisable and aligned with the site theme. */
.com-content-article ul.tags.list-inline,
.com-content-category-blog ul.tags.list-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 1.15rem 0;
    padding: 0;
}

.com-content-article ul.tags.list-inline > li,
.com-content-category-blog ul.tags.list-inline > li {
    margin: 0;
    padding: 0;
}

.com-content-article ul.tags.list-inline a.btn,
.com-content-category-blog ul.tags.list-inline a.btn {
    display: inline-flex;
    min-height: 2rem;
    align-items: center;
    gap: 0.38rem;
    padding: 0.38rem 0.72rem;
    color: #5a2c83;
    background: #f5eff8;
    border: 1px solid #dfd0e8;
    border-radius: 999px;
    box-shadow: none;
    font-size: 0.72rem;
    font-weight: 760;
    line-height: 1.2;
    text-decoration: none;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.com-content-article ul.tags.list-inline a.btn::before,
.com-content-category-blog ul.tags.list-inline a.btn::before {
    color: #9b78ae;
    content: "#";
    font-size: 0.7rem;
    font-weight: 850;
    transition: color 160ms ease;
}

.com-content-article ul.tags.list-inline a.btn:hover,
.com-content-article ul.tags.list-inline a.btn:focus-visible,
.com-content-category-blog ul.tags.list-inline a.btn:hover,
.com-content-category-blog ul.tags.list-inline a.btn:focus-visible {
    color: #ffffff;
    background: #65407a;
    border-color: #65407a;
    box-shadow: 0 0.45rem 1rem rgba(65, 33, 81, 0.14);
    transform: translateY(-1px);
}

.com-content-article ul.tags.list-inline a.btn:hover::before,
.com-content-article ul.tags.list-inline a.btn:focus-visible::before,
.com-content-category-blog ul.tags.list-inline a.btn:hover::before,
.com-content-category-blog ul.tags.list-inline a.btn:focus-visible::before {
    color: #decce8;
}

.com-content-article ul.tags.list-inline a.btn:focus-visible,
.com-content-category-blog ul.tags.list-inline a.btn:focus-visible {
    outline: 3px solid rgba(101, 64, 122, 0.24);
    outline-offset: 2px;
}

/* =========================================================
   Personal space — one stable shell across all three tabs
   ========================================================= */
body.itemid-1600 .cc-space-page,
body.itemid-219 .cc-resource-row,
.cc-orders-page,
.cc-order-history-page,
.cc-order-detail-page {
    width: 100%;
    max-width: 74rem;
    margin-right: auto;
    margin-left: auto;
}

body.itemid-219 .cc-resource-row {
    margin-top: clamp(1rem, 3vw, 2.5rem);
}

.cc-space-navigation {
    margin: 0 0 0.8rem;
}

.cc-space-page > .cc-space-header {
    margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

.cc-space-header,
.cc-account-intro,
.cc-orders-hero,
.cc-order-history-hero {
    height: 12rem;
    min-height: 12rem;
    padding: clamp(1.6rem, 4vw, 2.8rem);
    border-radius: 1.25rem;
}

.cc-space-header h1,
.cc-account-intro h1,
.cc-account-intro h2,
.cc-orders-hero h1,
.cc-order-history-hero h1 {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1;
}

/* One family, three immediately identifiable sections. */
.cc-space-page {
    --cc-space-active: #65318a;
    --cc-space-active-ink: #ffffff;
    --cc-space-active-muted: rgba(255, 255, 255, 0.72);
    --cc-space-active-icon: #65318a;
}

.cc-resource-module[data-cc-resource-group="intro"] {
    --cc-space-active: #65318a;
    --cc-space-active-ink: #ffffff;
    --cc-space-active-muted: rgba(255, 255, 255, 0.72);
    --cc-space-active-icon: #65318a;
}

.cc-orders-page,
.cc-order-history-page,
.cc-order-detail-page {
    --cc-space-active: #65318a;
    --cc-space-active-ink: #ffffff;
    --cc-space-active-muted: rgba(255, 255, 255, 0.72);
    --cc-space-active-icon: #65318a;
}

.cc-space-page .cc-space-navigation__item.is-active,
.cc-resource-module[data-cc-resource-group="intro"] .cc-space-navigation__item.is-active,
.cc-orders-page .cc-space-navigation__item.is-active,
.cc-order-history-page .cc-space-navigation__item.is-active,
.cc-order-detail-page .cc-space-navigation__item.is-active {
    color: var(--cc-space-active-ink);
    background: var(--cc-space-active);
    border-color: var(--cc-space-active);
    box-shadow: 0 0.55rem 1.25rem color-mix(in srgb, var(--cc-space-active) 20%, transparent);
}

.cc-space-page .cc-space-navigation__item.is-active > span:first-child,
.cc-resource-module[data-cc-resource-group="intro"] .cc-space-navigation__item.is-active > span:first-child,
.cc-orders-page .cc-space-navigation__item.is-active > span:first-child,
.cc-order-history-page .cc-space-navigation__item.is-active > span:first-child,
.cc-order-detail-page .cc-space-navigation__item.is-active > span:first-child {
    color: var(--cc-space-active-icon);
    background: #ffffff;
}

.cc-space-page .cc-space-navigation__item.is-active small,
.cc-resource-module[data-cc-resource-group="intro"] .cc-space-navigation__item.is-active small,
.cc-orders-page .cc-space-navigation__item.is-active small,
.cc-order-history-page .cc-space-navigation__item.is-active small,
.cc-order-detail-page .cc-space-navigation__item.is-active small {
    color: var(--cc-space-active-muted);
}

.cc-space-header,
.cc-account-intro,
.cc-orders-hero {
    position: relative;
    overflow: hidden;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 1rem 2.8rem rgba(45, 24, 57, 0.16);
}

.cc-space-header {
    background:
        radial-gradient(circle at 90% 18%, rgba(255, 255, 255, 0.16), transparent 22%),
        linear-gradient(125deg, #382047 0%, #65318a 62%, #81509a 100%);
    border-top: 4px solid #b58bc9;
}

.cc-space-header::after {
    position: absolute;
    right: -4rem;
    bottom: -8rem;
    width: 17rem;
    height: 17rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    box-shadow: 0 0 0 2.8rem rgba(255, 255, 255, 0.035), 0 0 0 5rem rgba(255, 255, 255, 0.02);
}

.cc-space-header > * {
    position: relative;
    z-index: 1;
}

.cc-space-header h1,
.cc-space-header p {
    color: #ffffff;
}

.cc-space-header p {
    color: rgba(255, 255, 255, 0.78);
}

.cc-space-header .cc-space-kicker {
    color: #e0c6eb;
}

.cc-space-header .cc-user-actions .btn-primary {
    color: #4f2864;
    background: #ffffff;
    border-color: #ffffff;
}

.cc-space-header .cc-user-actions .btn-outline-secondary {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.42);
}

.cc-space-header .cc-user-actions .btn:hover,
.cc-space-header .cc-user-actions .btn:focus-visible {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.7);
}

.cc-account-intro {
    background:
        radial-gradient(circle at 89% 12%, rgba(255, 255, 255, 0.19), transparent 24%),
        linear-gradient(125deg, #173343 0%, #176f84 58%, #27b9d7 118%);
    border-top: 4px solid #27b9d7;
}

.cc-account-intro::before {
    position: absolute;
    z-index: 1;
    top: 1.35rem;
    left: clamp(1.6rem, 4vw, 2.8rem);
    color: #c8f3fa;
    content: "Espace personnel · Ressources";
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.cc-orders-hero {
    background:
        radial-gradient(circle at 90% 14%, rgba(249, 185, 0, 0.35), transparent 25%),
        linear-gradient(125deg, #35203e 0%, #62384f 58%, #8a6208 115%);
    border-top: 4px solid #f9b900;
}

.cc-orders-hero .cc-orders-kicker {
    color: #ffe18b;
}

@media (max-width: 575.98px) {
    .cc-space-header,
    .cc-account-intro,
    .cc-orders-hero,
    .cc-order-history-hero {
        height: auto;
        min-height: 10rem;
        padding: 1.5rem;
        border-radius: 1.1rem;
    }

    .cc-account-intro::before {
        top: 1.1rem;
        left: 1.5rem;
        font-size: 0.62rem;
    }
}

/* =========================================================
   Personal space — canonical header shared by the three tabs
   ========================================================= */
.cc-space-page {
    --cc-space-accent: #9b6ab3;
}

.cc-resource-module[data-cc-resource-group="intro"] {
    --cc-space-active: #65318a;
    --cc-space-active-icon: #65318a;
    --cc-space-accent: #9b6ab3;
}

.cc-orders-page,
.cc-order-history-page,
.cc-order-detail-page {
    --cc-space-active: #65318a;
    --cc-space-accent: #9b6ab3;
}

.cc-space-navigation {
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}

.cc-space-navigation__item {
    min-height: 4.35rem;
    padding: 0.72rem 0.82rem;
    border-radius: 0.85rem;
}

.cc-space-page .cc-space-navigation__item.is-active,
.cc-resource-module[data-cc-resource-group="intro"] .cc-space-navigation__item.is-active,
.cc-orders-page .cc-space-navigation__item.is-active,
.cc-order-history-page .cc-space-navigation__item.is-active,
.cc-order-detail-page .cc-space-navigation__item.is-active {
    box-shadow: 0 0.45rem 1rem color-mix(in srgb, var(--cc-space-active) 16%, transparent);
}

.cc-space-hero,
.cc-space-header,
.cc-account-intro,
.cc-orders-hero,
.cc-order-history-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    height: auto;
    min-height: 10.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: clamp(1.75rem, 5vw, 4rem);
    row-gap: 0;
    align-items: center;
    padding: clamp(1.75rem, 3.5vw, 2.35rem) clamp(1.8rem, 4vw, 2.65rem);
    overflow: hidden;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-left: 0.38rem solid var(--cc-space-accent, #9b6ab3);
    border-radius: 1.15rem;
    box-shadow: 0 0.85rem 2.2rem rgba(43, 28, 49, 0.13);
}

.cc-space-header {
    background:
        radial-gradient(circle at 92% 15%, rgba(255, 255, 255, 0.12), transparent 24%),
        linear-gradient(120deg, #30213a 0%, #4b3158 66%, #654077 100%);
}

.cc-account-intro {
    align-content: center;
    grid-template-rows: auto auto;
    background:
        radial-gradient(circle at 92% 15%, rgba(255, 255, 255, 0.12), transparent 24%),
        linear-gradient(120deg, #1d303a 0%, #245466 66%, #26798e 100%);
}

.cc-orders-hero,
.cc-order-history-hero {
    background:
        radial-gradient(circle at 92% 15%, rgba(249, 185, 0, 0.17), transparent 24%),
        linear-gradient(120deg, #302636 0%, #574331 66%, #76591b 100%);
}

.cc-space-header::after,
.cc-account-intro::after,
.cc-orders-hero::after,
.cc-order-history-hero::after {
    position: absolute;
    z-index: -1;
    right: -4rem;
    bottom: -7.5rem;
    width: 16rem;
    height: 16rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    box-shadow: 0 0 0 2.6rem rgba(255, 255, 255, 0.03), 0 0 0 4.8rem rgba(255, 255, 255, 0.018);
}

.cc-space-header > *,
.cc-account-intro > *,
.cc-orders-hero > *,
.cc-order-history-hero > * {
    position: relative;
    z-index: 1;
}

.cc-space-hero__copy {
    min-width: 0;
}

.cc-order-history-hero .cc-space-hero__copy > a {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    margin-bottom: 0.7rem;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.76rem;
    font-weight: 750;
    text-decoration: none;
}

.cc-order-history-hero .cc-space-hero__copy > a:hover,
.cc-order-history-hero .cc-space-hero__copy > a:focus-visible {
    color: #ffffff;
}

.cc-space-header h1,
.cc-account-intro h1,
.cc-account-intro h2,
.cc-orders-hero h1,
.cc-order-history-hero h1 {
    margin: 0 0 0.55rem;
    color: #ffffff;
    font-size: clamp(2.15rem, 3.7vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1;
}

.cc-space-header p,
.cc-account-intro p,
.cc-orders-hero p,
.cc-order-history-hero p {
    max-width: 42rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.92rem;
    line-height: 1.55;
}

.cc-space-kicker,
.cc-orders-kicker,
.cc-account-intro::before {
    display: inline-flex;
    gap: 0.42rem;
    align-items: center;
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.115em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-account-intro::before {
    position: absolute;
    top: clamp(1.75rem, 3.5vw, 2.35rem);
    left: clamp(1.8rem, 4vw, 2.65rem);
    color: rgba(255, 255, 255, 0.74);
    content: "Espace personnel · Ressources";
}

.cc-account-intro h1,
.cc-account-intro h2 {
    grid-column: 1;
    grid-row: 1;
    margin-top: 1.45rem;
}

.cc-account-intro p {
    grid-column: 1;
    grid-row: 2;
}

.cc-account-intro__summary {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    justify-content: flex-end;
    margin: 0;
}

.cc-account-intro__summary > span {
    min-width: 5rem;
    justify-content: center;
    padding: 0.55rem 0.75rem;
    background: rgba(255, 255, 255, 0.09);
}

.cc-space-header .cc-user-actions,
.cc-orders-history-link {
    flex: 0 0 auto;
}

.cc-space-header .cc-user-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin: 0;
}

.cc-space-header .cc-user-actions .btn,
.cc-orders-history-link {
    min-height: 2.7rem;
    padding: 0.68rem 0.95rem;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 0.72rem;
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1;
    backdrop-filter: blur(8px);
}

.cc-space-header .cc-user-actions .btn-primary {
    color: #4b295b;
    background: #ffffff;
    border-color: #ffffff;
}

.cc-space-header .cc-user-actions .btn-outline-secondary,
.cc-orders-history-link {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.09);
}

.cc-space-header .cc-user-actions .btn:hover,
.cc-space-header .cc-user-actions .btn:focus-visible,
.cc-orders-history-link:hover,
.cc-orders-history-link:focus-visible {
    color: #35223f;
    background: #ffffff;
    border-color: #ffffff;
    box-shadow: none;
}

@media (max-width: 799.98px) {
    .cc-space-hero,
    .cc-space-header,
    .cc-account-intro,
    .cc-orders-hero,
    .cc-order-history-hero {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 1.35rem;
    }

    .cc-account-intro__summary {
        grid-column: 1;
        grid-row: auto;
        justify-content: flex-start;
    }

    .cc-space-header .cc-user-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
    .cc-space-navigation {
        gap: 0.5rem;
    }

    .cc-space-header,
    .cc-account-intro,
    .cc-orders-hero,
    .cc-order-history-hero {
        padding: 1.45rem;
        border-left-width: 0.28rem;
        border-radius: 1rem;
    }

    .cc-account-intro::before {
        top: 1.45rem;
        left: 1.45rem;
    }

    .cc-space-header h1,
    .cc-account-intro h1,
    .cc-account-intro h2,
    .cc-orders-hero h1,
    .cc-order-history-hero h1 {
        font-size: 2.15rem;
    }

    .cc-space-header .cc-user-actions,
    .cc-space-header .cc-user-actions .btn,
    .cc-space-header .cc-user-actions form,
    .cc-orders-history-link {
        width: 100%;
    }

    .cc-space-header .cc-user-actions .btn,
    .cc-orders-history-link {
        justify-content: center;
    }
}

/* Private PhocaDownload resource hub: new activities only need a child
   category and an access level; the hub card is rendered automatically. */
.cc-resource-hub,
.cc-grand-resource-page {
    width: 100%;
    max-width: 74rem;
    margin: clamp(1rem, 3vw, 2rem) auto 4rem;
}

.cc-resource-hub__intro {
    min-height: 12rem;
    background: linear-gradient(120deg, #173c50, #1f7e95 72%, #2d91a7);
}

.cc-resource-hub__intro .cc-resource-hub__eyebrow {
    margin-bottom: 0.7rem;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cc-resource-hub__directory {
    margin-top: clamp(2rem, 5vw, 3rem);
}

.cc-resource-hub__heading,
.cc-grand-resource-page__intro {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 1.2rem;
}

.cc-resource-hub__heading p,
.cc-grand-resource-page__intro p {
    margin: 0 0 0.25rem;
    color: #765b85;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-resource-hub__heading h2,
.cc-grand-resource-page__intro h2 {
    margin: 0;
    color: #3e244d;
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    font-weight: 880;
    letter-spacing: -0.035em;
}

.cc-resource-hub__heading > span,
.cc-grand-resource-page__intro > span {
    color: #7a6c80;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.cc-resource-hub__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
    gap: 1rem;
}

.cc-resource-activity {
    position: relative;
    isolation: isolate;
    display: flex;
    min-height: 19rem;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(1.25rem, 2vw, 1.65rem);
    overflow: hidden;
    color: #442950;
    background: #fbf9fc;
    border: 1px solid #e5deea;
    border-radius: 1.25rem;
    box-shadow: 0 0.8rem 2rem rgba(51, 25, 64, 0.07);
}

.cc-resource-activity--grand-choral {
    color: #ffffff;
    background: radial-gradient(circle at 88% 11%, rgba(230, 168, 99, 0.25), transparent 27%),
        linear-gradient(145deg, #201b38, #3b255c 68%, #5d315f);
    border-color: #5d446e;
}

.cc-resource-activity--grand-choral::after {
    position: absolute;
    z-index: -1;
    right: -4rem;
    bottom: -7rem;
    width: 17rem;
    height: 17rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    box-shadow: 0 0 0 2.5rem rgba(255, 255, 255, 0.035), 0 0 0 5rem rgba(255, 255, 255, 0.025);
}

.cc-resource-activity__top,
.cc-resource-activity__link {
    display: flex;
    gap: 0.7rem;
    align-items: center;
    justify-content: space-between;
}

.cc-resource-activity__icon {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    color: #704889;
    background: #f0e9f5;
    border-radius: 0.8rem;
    place-items: center;
}

.cc-resource-activity--grand-choral .cc-resource-activity__icon {
    color: #f9cf9a;
    background: rgba(255, 255, 255, 0.11);
}

.cc-resource-activity__body > p:first-child {
    margin: 1.7rem 0 0.4rem;
    color: #806991;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-resource-activity--grand-choral .cc-resource-activity__body > p:first-child {
    color: #edc49c;
}

.cc-resource-activity__body h3 {
    margin: 0 0 0.45rem;
    color: inherit;
    font-size: clamp(1.45rem, 2vw, 1.8rem);
    font-weight: 870;
    letter-spacing: -0.04em;
}

.cc-resource-activity__body > p:last-child {
    max-width: 24rem;
    margin: 0;
    color: #776a7e;
    font-size: 0.82rem;
    line-height: 1.5;
}

.cc-resource-activity--grand-choral .cc-resource-activity__body > p:last-child {
    color: rgba(255, 255, 255, 0.78);
}

.cc-resource-activity__link {
    width: fit-content;
    min-height: 2.55rem;
    margin-top: 1.5rem;
    padding: 0.55rem 0.88rem;
    color: #5a2c83;
    background: #ffffff;
    border: 1px solid #e2d7e8;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-resource-activity--grand-choral .cc-resource-activity__link {
    color: #2a1d41;
    border-color: rgba(255, 255, 255, 0.8);
}

.cc-resource-activity__link:hover,
.cc-resource-activity__link:focus-visible {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-grand-resource-hero {
    position: relative;
    isolation: isolate;
    margin-bottom: clamp(2rem, 5vw, 3rem);
    padding: clamp(1.5rem, 4vw, 3rem);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 84% 18%, rgba(242, 171, 109, 0.22), transparent 29%),
        linear-gradient(125deg, #19192f, #382252 60%, #5b305a);
    border-radius: 1.4rem;
    box-shadow: 0 1.2rem 2.8rem rgba(36, 23, 53, 0.18);
}

.cc-grand-resource-hero::after {
    position: absolute;
    z-index: -1;
    right: -7rem;
    bottom: -12rem;
    width: 28rem;
    height: 28rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 50%;
    box-shadow: 0 0 0 4rem rgba(255, 255, 255, 0.025), 0 0 0 8rem rgba(255, 255, 255, 0.018);
}

.cc-grand-resource-hero__back {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    margin-bottom: 2.5rem;
    color: #e9d6ee;
    font-size: 0.75rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-grand-resource-hero__back:hover,
.cc-grand-resource-hero__back:focus-visible {
    color: #ffffff;
    text-decoration: underline;
}

.cc-grand-resource-hero__body {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
}

.cc-grand-resource-hero__body > div > p:first-child {
    margin: 0 0 0.75rem;
    color: #f1c49b;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cc-grand-resource-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.4rem, 5vw, 4.3rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 1.03;
}

.cc-grand-resource-hero__lead {
    max-width: 43rem;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.92rem;
    line-height: 1.6;
}

.cc-grand-resource-hero__symbol {
    margin-right: 3vw;
    color: rgba(255, 255, 255, 0.13);
    font-size: clamp(5rem, 15vw, 11rem);
}

.cc-grand-resource-hero__jump {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2.5rem;
}

.cc-grand-resource-hero__jump a {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    min-height: 2.35rem;
    padding: 0.48rem 0.75rem;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 760;
    text-decoration: none;
}

.cc-grand-resource-hero__jump a:hover,
.cc-grand-resource-hero__jump a:focus-visible {
    color: #281e39;
    background: #ffffff;
}

.cc-grand-resource-section {
    margin-bottom: 1rem;
    padding: clamp(1.1rem, 2.5vw, 1.7rem);
    background: #fbfafc;
    border: 1px solid #e8e2ed;
    border-radius: 1.2rem;
    scroll-margin-top: 6rem;
}

.cc-grand-resource-section__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.9rem;
    align-items: start;
}

.cc-grand-resource-section__icon {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    color: #5d3578;
    background: #efe8f4;
    border-radius: 0.85rem;
    place-items: center;
}

.cc-grand-resource-section__header > div > p:first-child {
    margin: 0 0 0.12rem;
    color: #92799b;
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-grand-resource-section__header h2 {
    margin: 0;
    color: #422753;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    font-weight: 860;
}

.cc-grand-resource-section__header > div > p:last-child {
    margin: 0.2rem 0 0;
    color: #786d7d;
    font-size: 0.79rem;
    line-height: 1.45;
}

.cc-grand-resource-section__count {
    display: grid;
    min-width: 1.8rem;
    height: 1.8rem;
    padding: 0 0.45rem;
    color: #6c4a80;
    background: #efe8f4;
    border-radius: 999px;
    font-size: 0.69rem;
    font-weight: 850;
    place-items: center;
}

.cc-grand-resource-section__empty {
    margin: 1.3rem 0 0;
    padding: 1rem 1.1rem;
    color: #85798a;
    background: #ffffff;
    border: 1px dashed #d9cfdf;
    border-radius: 0.8rem;
    font-size: 0.77rem;
}

.cc-grand-resource-section__files {
    display: grid;
    gap: 0.55rem;
    margin-top: 1.35rem;
}

.cc-grand-resource-file {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.8rem;
    align-items: center;
    min-width: 0;
    padding: 0.8rem;
    background: #ffffff;
    border: 1px solid #ebe5ee;
    border-radius: 0.85rem;
}

.cc-grand-resource-file__icon {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    color: #65417a;
    background: #f3eef6;
    border-radius: 0.65rem;
    place-items: center;
}

.cc-grand-resource-file__copy h3 {
    margin: 0;
    color: #422753;
    font-size: 0.86rem;
    font-weight: 800;
}

.cc-grand-resource-file__copy p {
    margin: 0.1rem 0 0;
    color: #756979;
    font-size: 0.72rem;
}

.cc-grand-resource-file__copy small {
    color: #988c9d;
    font-size: 0.64rem;
    font-weight: 750;
}

.cc-grand-resource-file__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.cc-grand-resource-file__actions a {
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    min-height: 2.2rem;
    padding: 0.4rem 0.7rem;
    color: #5e3678;
    background: #f4eef7;
    border-radius: 999px;
    font-size: 0.69rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-grand-resource-file__actions a:hover,
.cc-grand-resource-file__actions a:focus-visible {
    color: #ffffff;
    background: #65318a;
}

.cc-grand-resource-page__footnote {
    margin: 1.4rem 0 0;
    color: #837588;
    font-size: 0.76rem;
}

@media (max-width: 767.98px) {
    .cc-resource-hub__heading,
    .cc-grand-resource-page__intro,
    .cc-grand-resource-hero__body {
        align-items: start;
        flex-direction: column;
    }

    .cc-grand-resource-hero__symbol {
        display: none;
    }

    .cc-grand-resource-file {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .cc-grand-resource-file__actions {
        grid-column: 2;
    }
}

/* Adherent-only general meeting reports. */
.cc-resource-activity--ag {
    background: linear-gradient(150deg, #fcf7fb, #f7f3fa 64%, #f7e9ec);
    border-color: #e9dce8;
}

.cc-resource-activity--ag .cc-resource-activity__icon {
    color: #7c426e;
    background: #f1e4ed;
}

.cc-ag-resource-page {
    width: 100%;
    max-width: 74rem;
    margin: clamp(1rem, 3vw, 2rem) auto 4rem;
}

.cc-ag-resource-hero {
    position: relative;
    isolation: isolate;
    min-height: 17rem;
    margin-bottom: clamp(2rem, 5vw, 3rem);
    padding: clamp(1.55rem, 4vw, 3rem);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 83% 17%, rgba(249, 185, 0, 0.18), transparent 26%),
        linear-gradient(125deg, #302040, #613d70 68%, #905778);
    border-radius: 1.35rem;
    box-shadow: 0 1rem 2.5rem rgba(49, 30, 60, 0.15);
}

.cc-ag-resource-hero::after {
    position: absolute;
    z-index: -1;
    right: -6rem;
    bottom: -12rem;
    width: 27rem;
    height: 27rem;
    content: "";
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    box-shadow: 0 0 0 4rem rgba(255, 255, 255, 0.025), 0 0 0 8rem rgba(255, 255, 255, 0.02);
}

.cc-ag-resource-hero__back {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    margin-bottom: 2.25rem;
    color: #f4dbe8;
    font-size: 0.75rem;
    font-weight: 800;
    text-decoration: none;
}

.cc-ag-resource-hero__back:hover,
.cc-ag-resource-hero__back:focus-visible {
    color: #ffffff;
    text-decoration: underline;
}

.cc-ag-resource-hero__copy {
    position: relative;
    z-index: 1;
    max-width: 46rem;
}

.cc-ag-resource-hero__copy > p:first-child {
    margin: 0 0 0.8rem;
    color: #ffd9af;
    font-size: 0.71rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.cc-ag-resource-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.1rem, 4.8vw, 3.85rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1.04;
}

.cc-ag-resource-hero__copy > p:last-child {
    max-width: 39rem;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.92rem;
    line-height: 1.58;
}

.cc-ag-resource-hero__symbol {
    position: absolute;
    right: clamp(1rem, 6vw, 5rem);
    bottom: -1.25rem;
    color: rgba(255, 255, 255, 0.11);
    font-size: clamp(7rem, 15vw, 12rem);
}

.cc-ag-resource-archive__heading {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 1.2rem;
}

.cc-ag-resource-archive__heading p {
    margin: 0 0 0.25rem;
    color: #896684;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cc-ag-resource-archive__heading h2 {
    margin: 0;
    color: #3e244d;
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    font-weight: 880;
    letter-spacing: -0.035em;
}

.cc-ag-resource-archive__heading > span {
    color: #7a6c80;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.cc-ag-resource-list {
    display: grid;
    gap: 0.72rem;
}

.cc-ag-resource-file,
.cc-ag-resource-empty {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    min-width: 0;
    padding: clamp(1rem, 2.5vw, 1.35rem);
    background: #fcfafc;
    border: 1px solid #e8dfe9;
    border-radius: 1rem;
    box-shadow: 0 0.45rem 1.2rem rgba(56, 32, 64, 0.045);
}

.cc-ag-resource-file__icon,
.cc-ag-resource-empty > span {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    color: #754576;
    background: #f0e8f2;
    border-radius: 0.8rem;
    place-items: center;
}

.cc-ag-resource-file__copy h3,
.cc-ag-resource-empty h3 {
    margin: 0;
    color: #472a57;
    font-size: 0.97rem;
    font-weight: 830;
    line-height: 1.3;
}

.cc-ag-resource-file__copy p,
.cc-ag-resource-empty p {
    margin: 0.18rem 0 0;
    color: #756a7b;
    font-size: 0.75rem;
    line-height: 1.45;
}

.cc-ag-resource-file__copy small {
    display: block;
    margin-top: 0.28rem;
    color: #96899c;
    font-size: 0.66rem;
    font-weight: 760;
}

.cc-ag-resource-file__download {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
    min-height: 2.4rem;
    padding: 0.48rem 0.78rem;
    color: #603874;
    background: #f2eaf4;
    border: 1px solid #e9ddeb;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 820;
    text-decoration: none;
    white-space: nowrap;
}

.cc-ag-resource-file__download:hover,
.cc-ag-resource-file__download:focus-visible {
    color: #ffffff;
    background: #65318a;
    border-color: #65318a;
}

.cc-ag-resource-empty {
    grid-template-columns: auto minmax(0, 1fr);
}

@media (max-width: 767.98px) {
    .cc-ag-resource-hero__symbol {
        display: none;
    }

    .cc-ag-resource-archive__heading {
        align-items: start;
        flex-direction: column;
    }

    .cc-ag-resource-file {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .cc-ag-resource-file__download {
        grid-column: 2;
        width: fit-content;
    }
}

/* News article metadata: one responsive row using Joomla's native information and tags. */
.cc-news-article > .cc-news-information {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    order: 2;
    width: min(100%, 58rem);
    min-width: 0;
    margin: 0 auto 1.6rem;
    padding: 0.2rem 0 1rem;
    border-bottom: 1px solid #ebe3ee;
    color: #796d81;
    font-size: 0.8rem;
    line-height: 1.45;
}

.cc-news-article > .cc-news-information--below {
    order: 3;
    margin-top: 1.5rem;
}

.cc-news-information > .article-info {
    display: contents;
    color: inherit !important;
    font-size: inherit;
}

.cc-news-information .article-info-term {
    display: none;
}

.cc-news-information .article-info dd {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    order: 2;
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.cc-news-information .article-info .category-name,
.cc-news-information .article-info .parent-category-name {
    order: 0;
    gap: 0.25rem;
    padding: 0.38rem 0.7rem;
    color: #506d62;
    background: #edf5f1;
    border-radius: 999px;
    font-size: 0.75rem;
}

.cc-news-information .article-info a {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
}

.cc-news-information .article-info a:hover {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.cc-news-information .article-info .published {
    margin-inline-start: auto;
}

.cc-news-information .article-info .icon-fw {
    color: #9a88a5;
    font-size: 0.85rem;
}

.cc-news-information .article-info .category-name .icon-fw,
.cc-news-information .article-info .parent-category-name .icon-fw {
    color: #709386;
}

.cc-news-article .cc-news-information > ul.tags.list-inline {
    order: 1;
    gap: 0.4rem;
    max-width: 100%;
    margin: 0;
}

.cc-news-article .cc-news-information ul.tags.list-inline a.btn {
    min-height: 0;
    padding: 0.38rem 0.7rem;
    background: #f5eff8;
    border-color: transparent;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
}

.cc-news-article .cc-news-information ul.tags.list-inline a.btn:hover,
.cc-news-article .cc-news-information ul.tags.list-inline a.btn:focus-visible {
    color: #5a2c83;
    background: #eae0f0;
    border-color: #d8c6e3;
    box-shadow: none;
    transform: none;
}

.cc-news-article .cc-news-information ul.tags.list-inline a.btn:hover::before,
.cc-news-article .cc-news-information ul.tags.list-inline a.btn:focus-visible::before {
    color: #8c6c9e;
}

@media (max-width: 575.98px) {
    .cc-news-article > .cc-news-information {
        gap: 0.55rem 0.7rem;
        margin-bottom: 1.25rem;
    }

    .cc-news-information .article-info .published {
        flex-basis: 100%;
        margin-inline-start: 0;
    }
}

/* The donation article keeps readable text on its dark purple panels. */
.cc-news-body.cc-donation-article .cc-donation-article-hero__content :is(h2, strong),
.cc-news-body.cc-donation-article .cc-donation-tax > div:first-child :is(h2, strong),
.cc-news-body.cc-donation-article .cc-donation-final strong {
    color: #ffffff;
}

.cc-news-body.cc-donation-article :is(.cc-donation-article-hero__content, .cc-donation-tax > div:first-child, .cc-donation-final) a:not(.cc-donation-primary) {
    color: #b2e7df;
    text-decoration-color: currentColor;
}

.cc-news-body.cc-donation-article :is(.cc-donation-article-hero__content, .cc-donation-tax > div:first-child, .cc-donation-final) a:not(.cc-donation-primary):is(:hover, :focus-visible) {
    color: #ffffff;
}
