.logo img + img {
    display: none !important;
}

.chaniartoon-flipboxes .flipbox-highlight{
    color:#b273e0;
    font-weight:800;
}

/* ==================================================
   CHANIARTOON – ΤΕΤΡΑΓΩΝΑ FLIPBOXES
   ================================================== */

/* Το εξωτερικό στοιχείο του flipbox */
.chaniartoon-flipboxes .sppb-addon-flibox,
.chaniartoon-flipboxes .sppb-addon-flipbox {
    width: 100%;
}

/* Το flipbox διατηρεί αναλογία 1:1 */
.chaniartoon-flipboxes .sppb-flipbox-panel {
    position: relative;
    width: 100% !important;
    aspect-ratio: 1 / 1;
    height: auto !important;
    min-height: 0 !important;
}

/* Μπροστινή και πίσω όψη */
.chaniartoon-flipboxes .sppb-flipbox-front,
.chaniartoon-flipboxes .sppb-flipbox-back {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    box-sizing: border-box;
    background-size: cover !important;
    background-position: center center !important;
}

/* Το εσωτερικό περιεχόμενο */
.chaniartoon-flipboxes .sppb-flipbox-front-inner,
.chaniartoon-flipboxes .sppb-flipbox-back-inner {
    width: 100%;
    box-sizing: border-box;
}

/* Κενό ανάμεσα στα flipboxes */
.chaniartoon-flipboxes .sppb-row {
    row-gap: 24px;
}

/* Ρυθμίσεις κινητού */
@media (max-width: 767px) {

    .chaniartoon-flipboxes .sppb-row {
        row-gap: 18px;
    }

    /* Αποφυγή πρόσθετων περιθωρίων του template */
    .chaniartoon-flipboxes [class*="sppb-col-"] {
        margin-bottom: 0 !important;
    }
}

.chaniartoon-flipboxes .sppb-flipbox-panel{
    transition:transform .25s ease, box-shadow .25s ease;
}

.chaniartoon-flipboxes .sppb-flipbox-panel:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 40px rgba(0,0,0,.35);
}

.chaniartoon-flipboxes i{
    transition:all .25s ease;
}

.chaniartoon-flipboxes .sppb-flipbox-panel {
    cursor: pointer;
}

/* =========================================
   CHANIARTOON - FLIPBOX BACK
   ========================================= */

.chaniartoon-flipboxes .flipbox-back-content{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;

    width:100%;
    height:100%;
    box-sizing:border-box;

    padding:30px;
    text-align:left;
}

/* Τίτλος */

.chaniartoon-flipboxes .flipbox-back-content h3{

    margin:0 0 14px;

    font-family:'Manrope',sans-serif;
    font-size:24px;
    font-weight:800;
    line-height:1.2;

    color:#ffffff;
}

/* Κείμενο */

.chaniartoon-flipboxes .flipbox-back-content p{

    margin:0;

    font-family:'Manrope',sans-serif;
    font-size:18px;
    font-weight:500;
    line-height:1.55;

    color:rgba(255,255,255,.96);
}

/* Link */

.chaniartoon-flipboxes .flipbox-more{

    display:inline-flex;
    align-items:center;
    gap:10px;

    margin-top:auto;
    padding-bottom:5px;

    font-family:'Manrope',sans-serif;
    font-size:16px;
    font-weight:800;

    color:#ffbf82 !important;

    text-decoration:none !important;

    border-bottom:2px solid #ffbf82;

    transition:
        gap .20s ease,
        opacity .20s ease,
        border-color .20s ease;
}

/* Βελάκι */

.chaniartoon-flipboxes .flipbox-more i{

    font-size:15px;
    color:#ffbf82;

    transition:transform .20s ease;
}

/* Hover */

.chaniartoon-flipboxes .flipbox-more:hover{

    gap:15px;
    opacity:.9;
}

.chaniartoon-flipboxes .flipbox-more:hover i{

    transform:translateX(5px);
}


/* =========================================
   MOBILE
   ========================================= */

@media (max-width:767px){

    .chaniartoon-flipboxes .flipbox-back-content{

        padding:24px;
    }

    .chaniartoon-flipboxes .flipbox-back-content h3{

        font-size:24px;
        margin-bottom:14px;
    }

    .chaniartoon-flipboxes .flipbox-back-content p{

        font-size:18px;
        line-height:1.55;
    }

    .chaniartoon-flipboxes .flipbox-more{

        font-size:17px;
    }

}
/* ==================================================
   FLIPBOX BORDER RADIUS ΧΩΡΙΣ ΜΑΣΚΑ ΣΤΟ FLIP
   ================================================== */

/* Τα εξωτερικά στοιχεία δεν κόβουν την περιστροφή */
.chaniartoon-flipboxes .sppb-flipbox-panel,
.chaniartoon-flipboxes .sppb-flipbox-flipper {
    overflow: visible !important;
    border-radius: 0 !important;
}

/* Βελτιώνει την τρισδιάστατη περιστροφή */
.chaniartoon-flipboxes .sppb-flipbox-panel {
    perspective: 1000px;
}

.chaniartoon-flipboxes .sppb-flipbox-flipper {
    width: 100% !important;
    height: 100% !important;

    transform-style: preserve-3d !important;
    -webkit-transform-style: preserve-3d !important;

    will-change: transform;
}

/* Οι ίδιες οι δύο πλευρές έχουν τις στρογγυλεμένες γωνίες */
.chaniartoon-flipboxes .sppb-flipbox-front,
.chaniartoon-flipboxes .sppb-flipbox-back {
    border-radius: 14px !important;
    overflow: hidden !important;

    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;

    transform-style: preserve-3d !important;
    -webkit-transform-style: preserve-3d !important;

    background-clip: padding-box !important;
}

/* Αποτρέπει μικρές γραμμές/τρεμόπαιγμα στις άκρες */
.chaniartoon-flipboxes .sppb-flipbox-front {
    transform: translateZ(0.1px);
}

/* Χρησιμοποίησέ το μόνο αν το υπάρχον flip είναι οριζόντιο */
.chaniartoon-flipboxes .sppb-flipbox-back {
    transform: rotateY(180deg) translateZ(0.1px);
}

/* ==========================================================
   CHANIARTOON — FESTIVAL JOURNEY
   Timeline 5 σταδίων
   ========================================================== */


/* ==========================================================
   1. SECTION
   ========================================================== */

.chaniartoon-journey-section {
    position: relative;
    overflow: hidden;

    padding-top: 110px !important;
    padding-bottom: 120px !important;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(178, 115, 224, 0.12) 0,
            rgba(178, 115, 224, 0) 32%
        ),
        radial-gradient(
            circle at 5% 90%,
            rgba(255, 191, 130, 0.12) 0,
            rgba(255, 191, 130, 0) 30%
        ),
        linear-gradient(
            180deg,
            #f8f5fb 0%,
            #ffffff 48%,
            #faf8fc 100%
        );
}


/* Διακριτικό background pattern */

.chaniartoon-journey-section::before {
    content: "";

    position: absolute;
    top: -140px;
    right: -140px;

    width: 420px;
    height: 420px;

    border: 1px solid rgba(178, 115, 224, 0.13);
    border-radius: 50%;

    pointer-events: none;
}

.chaniartoon-journey-section::after {
    content: "";

    position: absolute;
    bottom: -180px;
    left: -180px;

    width: 440px;
    height: 440px;

    border: 1px solid rgba(255, 191, 130, 0.18);
    border-radius: 50%;

    pointer-events: none;
}


/* ==========================================================
   2. MAIN CONTAINER
   ========================================================== */

.festival-journey {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1380px;

    margin-right: auto;
    margin-left: auto;

    padding-right: 24px;
    padding-left: 24px;

    font-family: "Manrope", sans-serif;
}


/* ==========================================================
   3. SECTION HEADING
   ========================================================== */

.festival-journey-heading {
    max-width: 820px;
    margin-bottom: 76px;
}

.festival-journey-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 20px;

    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.18em;
    text-transform: uppercase;

    color: #a45ed5;
}

.festival-journey-kicker::before {
    content: "";

    display: inline-block;

    width: 42px;
    height: 2px;

    background: #b273e0;
}

.festival-journey-heading h2 {
    max-width: 780px;

    margin: 0 0 24px;

    font-family: "Manrope", sans-serif;
    font-size: clamp(44px, 5.5vw, 78px);
    font-weight: 800;
    line-height: 0.98;

    letter-spacing: -0.055em;

    color: #28222e;
}

.festival-journey-heading p {
    max-width: 720px;

    margin: 0;

    font-size: 19px;
    font-weight: 500;
    line-height: 1.7;

    color: #6d6573;
}


/* ==========================================================
   4. TIMELINE GRID
   ========================================================== */

.festival-journey-track {
    position: relative;

    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));

    gap: 24px;
}


/* Οριζόντια γραμμή */

.festival-journey-track::before {
    content: "";

    position: absolute;
    z-index: 0;

    top: 17px;
    right: 0;
    left: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            rgba(178, 115, 224, 0.18) 0%,
            rgba(178, 115, 224, 0.75) 22%,
            rgba(178, 115, 224, 0.95) 50%,
            rgba(178, 115, 224, 0.75) 78%,
            rgba(178, 115, 224, 0.18) 100%
        );
}


/* ==========================================================
   5. TIMELINE ITEM
   ========================================================== */

.festival-journey-item {
    position: relative;
    z-index: 1;

    display: flex;
    flex-direction: column;

    min-width: 0;
}


/* ==========================================================
   6. MARKER
   ========================================================== */

.festival-journey-marker {
    position: relative;
    z-index: 3;

    display: flex;
    align-items: center;

    height: 36px;
    margin-bottom: 28px;
}

.festival-journey-marker span {
    position: relative;

    display: block;

    width: 18px;
    height: 18px;

    border: 4px solid #ffffff;
    border-radius: 50%;

    background: #b273e0;

    box-shadow:
        0 0 0 2px #b273e0,
        0 7px 20px rgba(178, 115, 224, 0.28);

    transition:
        transform 0.28s ease,
        box-shadow 0.28s ease,
        background-color 0.28s ease;
}

.festival-journey-marker span::after {
    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 34px;
    height: 34px;

    border: 1px solid rgba(178, 115, 224, 0.23);
    border-radius: 50%;

    transform: translate(-50%, -50%);

    transition:
        width 0.28s ease,
        height 0.28s ease,
        opacity 0.28s ease;
}


/* ==========================================================
   7. DATE
   ========================================================== */

.festival-journey-date {
    display: flex;
    align-items: flex-end;

    gap: 10px;

    min-height: 62px;
    margin-bottom: 24px;
}

.festival-journey-date strong {
    display: block;

    font-size: clamp(46px, 4.1vw, 62px);
    font-weight: 800;
    line-height: 0.82;

    letter-spacing: -0.065em;

    color: #28222e;
}

.festival-journey-date span {
    display: block;

    padding-bottom: 3px;

    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;

    letter-spacing: 0.13em;
    text-transform: uppercase;

    color: #a45ed5;
}


/* Εύρος ημερομηνιών */

.festival-journey-date-range strong {
    font-size: clamp(39px, 3.5vw, 52px);
}


/* ==========================================================
   8. CARD
   ========================================================== */

.festival-journey-content {
    position: relative;

    display: flex;
    flex: 1;
    flex-direction: column;

    min-height: 370px;

    padding: 30px 26px 27px;

    overflow: hidden;

    border: 1px solid rgba(40, 34, 46, 0.09);
    border-radius: 20px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.96),
            rgba(255, 255, 255, 0.80)
        );

    box-shadow:
        0 14px 40px rgba(40, 34, 46, 0.07),
        0 3px 9px rgba(40, 34, 46, 0.03);

    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);

    transition:
        transform 0.32s ease,
        border-color 0.32s ease,
        box-shadow 0.32s ease;
}


/* Λεπτή πάνω γραμμή */

.festival-journey-content::before {
    content: "";

    position: absolute;

    top: 0;
    right: 26px;
    left: 26px;

    height: 3px;

    border-radius: 0 0 4px 4px;

    background:
        linear-gradient(
            90deg,
            #b273e0,
            rgba(178, 115, 224, 0.24)
        );

    transform: scaleX(0.42);
    transform-origin: left center;

    transition: transform 0.32s ease;
}


/* Διακοσμητικός αριθμός κάρτας */

.festival-journey-item:nth-child(1) .festival-journey-content::after {
    content: "01";
}

.festival-journey-item:nth-child(2) .festival-journey-content::after {
    content: "02";
}

.festival-journey-item:nth-child(3) .festival-journey-content::after {
    content: "03";
}

.festival-journey-item:nth-child(4) .festival-journey-content::after {
    content: "04";
}

.festival-journey-item:nth-child(5) .festival-journey-content::after {
    content: "05";
}

.festival-journey-content::after {
    position: absolute;

    top: 18px;
    right: 20px;

    font-size: 46px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: -0.06em;

    color: rgba(178, 115, 224, 0.075);

    pointer-events: none;
}


/* ==========================================================
   9. PHASE
   ========================================================== */

.festival-journey-phase {
    position: relative;
    z-index: 2;

    display: block;

    max-width: calc(100% - 45px);
    margin-bottom: 15px;

    font-size: 10px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.16em;
    text-transform: uppercase;

    color: #a45ed5;
}


/* ==========================================================
   10. CARD TITLE
   ========================================================== */

.festival-journey-content h3 {
    position: relative;
    z-index: 2;

    margin: 0 0 16px;

    font-family: "Manrope", sans-serif;
    font-size: 23px;
    font-weight: 800;
    line-height: 1.18;

    letter-spacing: -0.03em;

    color: #28222e;
}


/* ==========================================================
   11. CARD TEXT
   ========================================================== */

.festival-journey-content p {
    position: relative;
    z-index: 2;

    flex-grow: 1;

    margin: 0 0 28px;

    font-size: 15px;
    font-weight: 500;
    line-height: 1.65;

    color: #706875;
}


/* ==========================================================
   12. CARD LINK
   ========================================================== */

.festival-journey-link {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;
    align-self: flex-start;

    gap: 9px;

    padding-bottom: 4px;

    border-bottom: 1px solid rgba(178, 115, 224, 0.28);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;

    color: #a45ed5 !important;

    text-decoration: none !important;

    transition:
        gap 0.22s ease,
        color 0.22s ease,
        border-color 0.22s ease;
}

.festival-journey-link i {
    font-size: 12px;

    transition: transform 0.22s ease;
}

.festival-journey-link:hover,
.festival-journey-link:focus {
    gap: 13px;

    border-color: #a45ed5;

    color: #8e45c2 !important;
}

.festival-journey-link:hover i,
.festival-journey-link:focus i {
    transform: translateX(4px);
}


/* ==========================================================
   13. FEATURED — 25–27 ΣΕΠΤΕΜΒΡΙΟΥ
   ========================================================== */

.festival-journey-item-featured {
    z-index: 2;
}

.festival-journey-item-featured .festival-journey-marker span {
    width: 24px;
    height: 24px;

    background: #ffbf82;

    box-shadow:
        0 0 0 2px #ffbf82,
        0 9px 25px rgba(255, 191, 130, 0.40);
}

.festival-journey-item-featured .festival-journey-marker span::after {
    width: 43px;
    height: 43px;

    border-color: rgba(255, 191, 130, 0.40);
}

.festival-journey-item-featured .festival-journey-date strong {
    color: #8e45c2;
}

.festival-journey-item-featured .festival-journey-content {
    border-color: rgba(178, 115, 224, 0.30);

    background:
        radial-gradient(
            circle at 100% 0,
            rgba(255, 191, 130, 0.18),
            rgba(255, 191, 130, 0) 36%
        ),
        linear-gradient(
            145deg,
            rgba(178, 115, 224, 0.11),
            rgba(255, 255, 255, 0.98) 55%
        );

    box-shadow:
        0 24px 58px rgba(93, 57, 118, 0.15),
        0 5px 16px rgba(93, 57, 118, 0.06);
}

.festival-journey-item-featured .festival-journey-content::before {
    background:
        linear-gradient(
            90deg,
            #b273e0,
            #ffbf82
        );

    transform: scaleX(1);
}

.festival-journey-item-featured .festival-journey-phase {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;

    max-width: none;

    padding: 6px 10px;

    border-radius: 100px;

    background: rgba(178, 115, 224, 0.12);

    color: #934bc7;
}

.festival-journey-item-featured .festival-journey-content::after {
    color: rgba(178, 115, 224, 0.12);
}


/* ==========================================================
   14. DESKTOP HOVER
   ========================================================== */

@media (hover: hover) {

    .festival-journey-item:hover .festival-journey-marker span {
        transform: scale(1.15);

        box-shadow:
            0 0 0 2px #b273e0,
            0 11px 28px rgba(178, 115, 224, 0.36);
    }

    .festival-journey-item:hover .festival-journey-marker span::after {
        width: 42px;
        height: 42px;

        opacity: 0.75;
    }

    .festival-journey-item:hover .festival-journey-content {
        transform: translateY(-9px);

        border-color: rgba(178, 115, 224, 0.27);

        box-shadow:
            0 25px 64px rgba(40, 34, 46, 0.13),
            0 6px 18px rgba(40, 34, 46, 0.05);
    }

    .festival-journey-item:hover .festival-journey-content::before {
        transform: scaleX(1);
    }

    .festival-journey-item-featured:hover .festival-journey-marker span {
        box-shadow:
            0 0 0 2px #ffbf82,
            0 12px 30px rgba(255, 191, 130, 0.50);
    }

    .festival-journey-item-featured:hover .festival-journey-content {
        border-color: rgba(178, 115, 224, 0.44);

        box-shadow:
            0 31px 74px rgba(93, 57, 118, 0.20),
            0 8px 21px rgba(93, 57, 118, 0.08);
    }
}


/* ==========================================================
   15. LARGE TABLETS / SMALL LAPTOPS
   ========================================================== */

@media (max-width: 1199px) {

    .festival-journey {
        max-width: 980px;
    }

    .festival-journey-track {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 50px 28px;
    }

    .festival-journey-track::before {
        display: none;
    }

    .festival-journey-marker {
        height: 25px;
        margin-bottom: 20px;
    }

    .festival-journey-content {
        min-height: 330px;
    }

    .festival-journey-item:last-child {
        grid-column: 1 / -1;

        width: calc(50% - 14px);
        margin-right: auto;
        margin-left: auto;
    }
}


/* ==========================================================
   16. TABLET
   ========================================================== */

@media (max-width: 991px) {

    .chaniartoon-journey-section {
        padding-top: 90px !important;
        padding-bottom: 95px !important;
    }

    .festival-journey-heading {
        margin-bottom: 58px;
    }

    .festival-journey-heading h2 {
        font-size: clamp(44px, 8vw, 68px);
    }

    .festival-journey-heading p {
        font-size: 18px;
    }

    .festival-journey-date strong {
        font-size: 56px;
    }

    .festival-journey-date-range strong {
        font-size: 47px;
    }
}


/* ==========================================================
   17. MOBILE
   ========================================================== */

@media (max-width: 767px) {

    .chaniartoon-journey-section {
        padding-top: 72px !important;
        padding-bottom: 78px !important;
    }

    .festival-journey {
        padding-right: 18px;
        padding-left: 18px;
    }

    .festival-journey-heading {
        margin-bottom: 52px;
    }

    .festival-journey-kicker {
        gap: 9px;

        margin-bottom: 15px;

        font-size: 10px;
        letter-spacing: 0.13em;
    }

    .festival-journey-kicker::before {
        width: 27px;
    }

    .festival-journey-heading h2 {
        margin-bottom: 19px;

        font-size: clamp(39px, 12vw, 53px);
        line-height: 1;

        letter-spacing: -0.045em;
    }

    .festival-journey-heading p {
        font-size: 16px;
        line-height: 1.65;
    }


    /* Κάθετο timeline */

    .festival-journey-track {
        display: block;

        padding-left: 34px;
    }

    .festival-journey-track::before {
        display: block;

        top: 8px;
        bottom: 8px;
        left: 8px;

        width: 2px;
        height: auto;

        background:
            linear-gradient(
                180deg,
                rgba(178, 115, 224, 0.18),
                rgba(178, 115, 224, 0.95) 20%,
                rgba(178, 115, 224, 0.95) 80%,
                rgba(178, 115, 224, 0.18)
            );
    }

    .festival-journey-item {
        display: block;

        width: 100%;
        margin: 0 0 48px;
    }

    .festival-journey-item:last-child {
        width: 100%;
        margin: 0;
    }


    /* Marker αριστερά */

    .festival-journey-marker {
        position: absolute;

        top: 0;
        left: -34px;

        height: 24px;
        margin: 0;
    }

    .festival-journey-marker span {
        width: 16px;
        height: 16px;

        border-width: 3px;
    }

    .festival-journey-marker span::after {
        width: 28px;
        height: 28px;
    }

    .festival-journey-item-featured .festival-journey-marker span {
        width: 20px;
        height: 20px;
    }

    .festival-journey-item-featured .festival-journey-marker span::after {
        width: 34px;
        height: 34px;
    }


    /* Date */

    .festival-journey-date {
        min-height: 0;
        margin-bottom: 18px;
    }

    .festival-journey-date strong {
        font-size: 48px;
    }

    .festival-journey-date-range strong {
        font-size: 39px;
    }

    .festival-journey-date span {
        font-size: 11px;
    }


    /* Card */

    .festival-journey-content {
        min-height: 0;

        padding: 27px 23px 24px;

        border-radius: 17px;
    }

    .festival-journey-content::before {
        right: 23px;
        left: 23px;
    }

    .festival-journey-content::after {
        top: 16px;
        right: 17px;

        font-size: 41px;
    }

    .festival-journey-phase {
        margin-bottom: 13px;

        font-size: 9px;
    }

    .festival-journey-content h3 {
        margin-bottom: 14px;

        font-size: 22px;
    }

    .festival-journey-content p {
        margin-bottom: 24px;

        font-size: 15px;
        line-height: 1.62;
    }

    .festival-journey-link {
        font-size: 12px;
    }
}


/* ==========================================================
   18. VERY SMALL MOBILE
   ========================================================== */

@media (max-width: 430px) {

    .festival-journey {
        padding-right: 14px;
        padding-left: 14px;
    }

    .festival-journey-track {
        padding-left: 30px;
    }

    .festival-journey-marker {
        left: -30px;
    }

    .festival-journey-heading h2 {
        font-size: 39px;
    }

    .festival-journey-date strong {
        font-size: 44px;
    }

    .festival-journey-date-range strong {
        font-size: 36px;
    }

    .festival-journey-content {
        padding: 25px 20px 22px;
    }

    .festival-journey-content h3 {
        max-width: calc(100% - 30px);

        font-size: 21px;
    }
}


/* ==========================================================
   19. ACCESSIBILITY — REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .festival-journey-marker span,
    .festival-journey-marker span::after,
    .festival-journey-content,
    .festival-journey-content::before,
    .festival-journey-link,
    .festival-journey-link i {
        transition: none !important;
    }

    .festival-journey-item:hover .festival-journey-content {
        transform: none;
    }
}
/* ==========================================================
   CHANIARTOON — CUSTOM FEATURED EXHIBITIONS
   ========================================================== */

.featured-exhibitions-custom {
    width: 100%;
    font-family: "Manrope", sans-serif;
}


/* ==========================================================
   GRID
   ========================================================== */

.exhibitions-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr);
    gap: 28px;

    width: 100%;
}

.exhibitions-grid-side {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 28px;

    min-width: 0;
}


/* ==========================================================
   CARD
   ========================================================== */

.exhibition-custom-card {
    position: relative;

    display: block;

    overflow: hidden;

    min-width: 0;

    border-radius: 24px;

    background: #28222e;

    box-shadow:
        0 18px 48px rgba(40, 34, 46, 0.14);

    color: #ffffff !important;
    text-decoration: none !important;

    isolation: isolate;

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.exhibition-custom-card-large {
    min-height: 660px;
}

.exhibition-custom-card-small {
    min-height: 316px;
}


/* ==========================================================
   IMAGE
   ========================================================== */

.exhibition-custom-card img {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    transition:
        transform 0.6s ease,
        filter 0.6s ease;
}


/* ==========================================================
   SOFT GRADIENT
   ========================================================== */

.exhibition-custom-shade {
    position: absolute;
    z-index: 1;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(24, 18, 32, 0) 0%,
            rgba(24, 18, 32, 0) 48%,
            rgba(24, 18, 32, 0.08) 66%,
            rgba(24, 18, 32, 0.32) 82%,
            rgba(24, 18, 32, 0.72) 100%
        );

    pointer-events: none;
}


/* ==========================================================
   CONTENT
   ========================================================== */

.exhibition-custom-content {
    position: absolute;
    z-index: 2;

    right: 0;
    bottom: 0;
    left: 0;

    padding: 34px;
}

.exhibition-custom-card-small .exhibition-custom-content {
    padding: 26px;
}


/* ==========================================================
   LABEL
   ========================================================== */

.exhibition-custom-label {
    display: inline-flex;

    margin-bottom: 13px;
    padding: 6px 10px;

    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 100px;

    background: rgba(29, 22, 39, 0.34);

    font-size: 10px;
    font-weight: 800;
    line-height: 1.3;

    letter-spacing: 0.14em;
    text-transform: uppercase;

    color: #ffffff;

    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}


/* ==========================================================
   TITLE
   ========================================================== */

.exhibition-custom-content h3 {
    max-width: 90%;

    margin: 0 0 10px;

    font-family: "Manrope", sans-serif;
    font-size: 42px;
    font-weight: 800;
    line-height: 1.05;

    letter-spacing: -0.04em;

    color: #ffffff;

    text-shadow:
        0 2px 8px rgba(0, 0, 0, 0.35);
}

.exhibition-custom-card-small .exhibition-custom-content h3 {
    font-size: 28px;
}


/* ==========================================================
   DESCRIPTION
   ========================================================== */

.exhibition-custom-content p {
    max-width: 580px;

    margin: 0 0 18px;

    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;

    color: rgba(255, 255, 255, 0.92);

    text-shadow:
        0 2px 7px rgba(0, 0, 0, 0.35);
}

.exhibition-custom-card-small .exhibition-custom-content p {
    max-width: 420px;

    font-size: 14px;
}


/* ==========================================================
   LINK
   ========================================================== */

.exhibition-custom-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    padding-bottom: 4px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.4);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;

    color: #ffffff;

    transition:
        gap 0.22s ease,
        border-color 0.22s ease;
}


/* ==========================================================
   INNER BORDER
   ========================================================== */

.exhibition-custom-card::after {
    content: "";

    position: absolute;
    z-index: 3;

    inset: 0;

    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: inherit;

    pointer-events: none;
}


/* ==========================================================
   HOVER
   ========================================================== */

@media (hover: hover) {

    .exhibition-custom-card:hover {
        transform: translateY(-7px);

        box-shadow:
            0 29px 68px rgba(40, 34, 46, 0.20);
    }

    .exhibition-custom-card:hover img {
        transform: scale(1.055);
        filter: saturate(1.06);
    }

    .exhibition-custom-card:hover .exhibition-custom-link {
        gap: 14px;
        border-color: #ffffff;
    }
}


/* ==========================================================
   VIEW ALL
   ========================================================== */

.exhibitions-view-all {
    margin-top: 42px;
    text-align: center;
}

.exhibitions-view-all a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 52px;
    padding: 0 25px;

    border: 1px solid rgba(178, 115, 224, 0.48);
    border-radius: 100px;

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 800;

    color: #934bc7 !important;
    text-decoration: none !important;

    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        color 0.25s ease,
        box-shadow 0.25s ease;
}

.exhibitions-view-all a:hover {
    transform: translateY(-3px);

    background: #b273e0;

    color: #ffffff !important;

    box-shadow:
        0 12px 28px rgba(178, 115, 224, 0.26);
}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 991px) {

    .exhibitions-grid {
        grid-template-columns: minmax(0, 1.2fr) minmax(280px, 1fr);
        gap: 24px;
    }

    .exhibitions-grid-side {
        gap: 24px;
    }

    .exhibition-custom-card-large {
        min-height: 560px;
    }

    .exhibition-custom-card-small {
        min-height: 268px;
    }

    .exhibition-custom-content h3 {
        font-size: 36px;
    }

    .exhibition-custom-card-small .exhibition-custom-content h3 {
        font-size: 25px;
    }
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 767px) {

    .exhibitions-grid {
        display: block;
    }

    .exhibitions-grid-side {
        display: grid;

        margin-top: 24px;

        gap: 24px;
    }

    .exhibition-custom-card-large,
    .exhibition-custom-card-small {
        min-height: 430px;
    }

    .exhibition-custom-card {
        border-radius: 20px;
    }

    .exhibition-custom-content,
    .exhibition-custom-card-small .exhibition-custom-content {
        padding: 24px;
    }

    .exhibition-custom-content h3,
    .exhibition-custom-card-small .exhibition-custom-content h3 {
        font-size: 29px;
    }

    .exhibition-custom-content p,
    .exhibition-custom-card-small .exhibition-custom-content p {
        font-size: 14px;
    }

    .exhibitions-view-all {
        margin-top: 34px;
    }
}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 430px) {

    .exhibition-custom-card-large,
    .exhibition-custom-card-small {
        min-height: 380px;
    }

    .exhibition-custom-content,
    .exhibition-custom-card-small .exhibition-custom-content {
        padding: 21px;
    }

    .exhibition-custom-content h3,
    .exhibition-custom-card-small .exhibition-custom-content h3 {
        font-size: 26px;
    }
}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .exhibition-custom-card,
    .exhibition-custom-card img,
    .exhibition-custom-link,
    .exhibitions-view-all a {
        transition: none !important;
    }

    .exhibition-custom-card:hover,
    .exhibition-custom-card:hover img,
    .exhibitions-view-all a:hover {
        transform: none;
    }
}
/* ==========================================================
   FEATURED EXHIBITIONS — HEADING
   ========================================================== */

.exhibitions-heading {
    width: 100%;
    max-width: 860px;

    margin: 0;

    font-family: "Manrope", sans-serif;
}

.exhibitions-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin: 0 0 18px;

    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.17em;
    text-transform: uppercase;

    color: #a45ed5;
}

.exhibitions-kicker::before {
    content: "";

    display: inline-block;

    width: 42px;
    height: 2px;

    background: #b273e0;
}

.exhibitions-title {
    max-width: 800px;

    margin: 0 0 20px !important;

    font-family: "Manrope", sans-serif !important;
    font-size: clamp(42px, 5vw, 72px) !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    letter-spacing: -0.05em !important;

    color: #28222e !important;
}

.exhibitions-intro {
    max-width: 760px;

    margin: 0 !important;

    font-family: "Manrope", sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.7;

    color: #6d6573;
}

@media (max-width: 767px) {

    .exhibitions-kicker {
        gap: 9px;
        font-size: 10px;
    }

    .exhibitions-kicker::before {
        width: 28px;
    }

    .exhibitions-title {
        font-size: clamp(38px, 11vw, 51px) !important;
    }

    .exhibitions-intro {
        font-size: 16px;
    }
}

/* ==========================================================
   CHANIARTOON — FEATURED GUESTS
   FINAL VERSION
   ========================================================== */


/* ==========================================================
   1. SECTION WRAPPER
   ========================================================== */

.chaniartoon-guests-section {
    position: relative;
    overflow: hidden;

    background:
        radial-gradient(
            circle at 91% 10%,
            rgba(178, 115, 224, 0.11) 0,
            rgba(178, 115, 224, 0) 31%
        ),
        linear-gradient(
            180deg,
            #f9f6fc 0%,
            #ffffff 100%
        );
}

.chaniartoon-guests-custom {
    width: 100%;
}

.festival-guests,
.festival-guests *,
.festival-guests *::before,
.festival-guests *::after {
    box-sizing: border-box;
}

.festival-guests {
    position: relative;

    width: 100%;
    max-width: 1380px;

    margin: 0 auto;

    font-family: "Manrope", sans-serif;
}


/* ==========================================================
   2. HEADING
   ========================================================== */

.festival-guests-heading {
    width: 100%;
    max-width: 880px;

    margin: 0 0 76px;
}

.festival-guests-kicker {
    display: inline-flex;
    align-items: center;

    gap: 12px;

    margin: 0 0 18px;

    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.17em;
    text-transform: uppercase;

    color: #a45ed5;
}

.festival-guests-kicker::before {
    content: "";

    flex: 0 0 auto;

    width: 42px;
    height: 2px;

    background: #b273e0;
}

.festival-guests-heading h2 {
    max-width: 860px;

    margin: 0 0 24px;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(46px, 5.4vw, 76px);
    font-weight: 800;
    line-height: 0.98;

    letter-spacing: -0.052em;

    color: #28222e;
}

.festival-guests-heading p {
    max-width: 770px;

    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.72;

    color: #6d6573;
}


/* ==========================================================
   3. MAIN LAYOUT
   ========================================================== */

.festival-guests-stage {
    display: grid;
    grid-template-columns:
        minmax(360px, 0.92fr)
        minmax(0, 1.55fr);

    gap: clamp(52px, 6vw, 94px);

    align-items: center;
}


/* ==========================================================
   4. GUEST NAVIGATION
   ========================================================== */

.festival-guests-nav {
    display: flex;
    flex-direction: column;

    width: 100%;
    min-width: 0;

    border-top: 1px solid rgba(40, 34, 46, 0.13);
}

.festival-guest-selector {
    position: relative;

    display: grid;
    grid-template-columns:
        38px
        minmax(0, 1fr)
        28px;

    column-gap: 18px;
    align-items: center;

    width: 100%;
    min-width: 0;
    min-height: 112px;

    margin: 0;
    padding: 25px 14px 25px 16px;

    appearance: none;
    -webkit-appearance: none;

    border: 0;
    border-bottom: 1px solid rgba(40, 34, 46, 0.13);
    border-radius: 0;

    background: transparent;

    font-family: "Manrope", sans-serif;
    line-height: normal;
    text-align: left;

    color: #726a77;

    cursor: pointer;

    overflow: hidden;

    transition:
        background-color 0.28s ease,
        color 0.28s ease,
        padding-left 0.28s ease;
}

.festival-guest-selector::before {
    content: "";

    position: absolute;

    top: 15px;
    bottom: 15px;
    left: 0;

    width: 4px;

    border-radius: 0 4px 4px 0;

    background: #b273e0;

    transform: scaleY(0);
    transform-origin: center;

    transition: transform 0.28s ease;
}

.festival-guest-selector-number {
    align-self: center;

    display: block;

    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.13em;

    color: #b273e0;
}

.festival-guest-selector-text {
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-width: 0;

    gap: 10px;
}

.festival-guest-selector-text strong {
    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(21px, 1.85vw, 28px);
    font-weight: 800;
    line-height: 1.12;

    letter-spacing: -0.035em;

    color: inherit;

    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
}

.festival-guest-selector-text small {
    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.55;

    letter-spacing: 0.085em;
    text-transform: uppercase;

    color: #9a929e;

    white-space: normal;
}

.festival-guest-selector-arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    align-self: center;

    width: 28px;
    height: 28px;

    margin: 0;
    padding: 0;

    font-size: 21px;
    line-height: 1;

    color: #b273e0;

    opacity: 0;
    transform: translateX(-8px);

    transition:
        opacity 0.28s ease,
        transform 0.28s ease;
}


/* ==========================================================
   5. ACTIVE GUEST
   ========================================================== */

.festival-guest-selector.is-active {
    padding-left: 24px;

    background:
        linear-gradient(
            90deg,
            rgba(178, 115, 224, 0.12) 0%,
            rgba(178, 115, 224, 0.045) 60%,
            rgba(178, 115, 224, 0) 100%
        );

    color: #28222e;
}

.festival-guest-selector.is-active::before {
    transform: scaleY(1);
}

.festival-guest-selector.is-active
.festival-guest-selector-arrow {
    opacity: 1;
    transform: translateX(0);
}


/* Keyboard focus */

.festival-guest-selector:focus-visible {
    outline: 2px solid #b273e0;
    outline-offset: -2px;
}


/* ==========================================================
   6. ACTIVE GUEST DISPLAY
   ========================================================== */

.festival-guest-display {
    position: relative;

    display: grid;
    grid-template-columns:
        minmax(300px, 0.96fr)
        minmax(275px, 0.78fr);

    gap: clamp(34px, 4vw, 58px);

    align-items: end;

    min-width: 0;

    opacity: 1;
    transform: translateY(0);

    transition:
        opacity 0.24s ease,
        transform 0.24s ease;
}

.festival-guest-display.is-changing {
    opacity: 0.18;
    transform: translateY(8px);
}


/* ==========================================================
   7. LARGE NUMBER
   ========================================================== */

.festival-guest-display-number {
    position: absolute;
    z-index: 0;

    top: -70px;
    right: -12px;

    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(135px, 17vw, 245px);
    font-weight: 800;
    line-height: 0.8;

    letter-spacing: -0.085em;

    color: rgba(178, 115, 224, 0.075);

    pointer-events: none;
    user-select: none;
}


/* ==========================================================
   8. IMAGE
   ========================================================== */

.festival-guest-visual {
    position: relative;
    z-index: 1;

    width: 100%;
    min-width: 0;
    min-height: 610px;

    overflow: hidden;

    border-radius: 220px 220px 26px 26px;

    background:
        linear-gradient(
            180deg,
            #e7e2eb 0%,
            #d2ccd7 100%
        );

    box-shadow:
        0 25px 66px rgba(40, 34, 46, 0.17);

    isolation: isolate;
}

.festival-guest-image {
    position: absolute;

    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    margin: 0;
    padding: 0;

    object-fit: cover;
    object-position: center top;

    opacity: 1;

    transition:
        transform 0.65s ease,
        filter 0.65s ease,
        opacity 0.24s ease;
}

.festival-guest-display.is-changing
.festival-guest-image {
    opacity: 0.4;
}

.festival-guest-image-shade {
    position: absolute;
    z-index: 1;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(24, 18, 32, 0) 45%,
            rgba(24, 18, 32, 0.32) 100%
        );

    pointer-events: none;
}

.festival-guest-image-label {
    position: absolute;
    z-index: 2;

    top: 54px;
    left: 50%;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 29px;

    padding: 7px 13px;

    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 100px;

    background: rgba(36, 28, 46, 0.34);

    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.13em;
    text-transform: uppercase;

    color: #ffffff;

    white-space: nowrap;

    transform: translateX(-50%);

    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}


/* ==========================================================
   9. INFORMATION
   ========================================================== */

.festival-guest-information {
    position: relative;
    z-index: 2;

    min-width: 0;

    margin: 0;
    padding: 0 0 22px;
}

.festival-guest-meta {
    display: block;

    margin: 0 0 18px;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;

    letter-spacing: 0.14em;
    text-transform: uppercase;

    color: #a45ed5;
}

.festival-guest-information h3 {
    margin: 0 0 22px;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(40px, 4.3vw, 64px);
    font-weight: 800;
    line-height: 0.98;

    letter-spacing: -0.052em;

    color: #28222e;

    overflow-wrap: normal;
    word-break: normal;
}

.festival-guest-information p {
    margin: 0 0 31px;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.75;

    color: #6d6573;
}


/* ==========================================================
   10. ACTIONS
   ========================================================== */

.festival-guest-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 16px 22px;
}

.festival-guest-primary-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 11px;

    min-height: 50px;

    padding: 0 22px;

    border-radius: 100px;

    background: #b273e0;

    font-family: "Manrope", sans-serif;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;

    color: #ffffff !important;
    text-decoration: none !important;

    box-shadow:
        0 11px 27px rgba(178, 115, 224, 0.26);

    transition:
        transform 0.24s ease,
        background-color 0.24s ease,
        box-shadow 0.24s ease;
}

.festival-guest-secondary-link {
    display: inline-flex;

    margin: 0;
    padding: 0 0 4px;

    border-bottom: 1px solid rgba(178, 115, 224, 0.45);

    font-family: "Manrope", sans-serif;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;

    color: #934bc7 !important;
    text-decoration: none !important;

    transition:
        color 0.22s ease,
        border-color 0.22s ease;
}


/* ==========================================================
   11. HOVER
   ========================================================== */

@media (hover: hover) {

    .festival-guest-selector:not(.is-active):hover {
        padding-left: 21px;

        color: #28222e;

        background:
            linear-gradient(
                90deg,
                rgba(178, 115, 224, 0.045),
                rgba(178, 115, 224, 0)
            );
    }

    .festival-guest-selector:not(.is-active):hover
    .festival-guest-selector-arrow {
        opacity: 0.55;
        transform: translateX(0);
    }

    .festival-guest-visual:hover
    .festival-guest-image {
        transform: scale(1.035);
        filter: saturate(1.04);
    }

    .festival-guest-primary-link:hover {
        transform: translateY(-3px);

        background: #a45ed5;

        box-shadow:
            0 16px 35px rgba(178, 115, 224, 0.35);
    }

    .festival-guest-secondary-link:hover {
        color: #7f35b4 !important;
        border-color: #7f35b4;
    }
}


/* ==========================================================
   12. SMALL LAPTOP
   ========================================================== */

@media (max-width: 1199px) {

    .festival-guests-stage {
        grid-template-columns:
            minmax(330px, 0.88fr)
            minmax(0, 1.45fr);

        gap: 46px;
    }

    .festival-guest-selector {
        grid-template-columns:
            34px
            minmax(0, 1fr)
            24px;

        column-gap: 14px;

        min-height: 108px;

        padding-right: 8px;
        padding-left: 12px;
    }

    .festival-guest-selector.is-active {
        padding-left: 20px;
    }

    .festival-guest-selector-text strong {
        font-size: 22px;
    }

    .festival-guest-display {
        grid-template-columns:
            minmax(260px, 1fr)
            minmax(235px, 0.82fr);

        gap: 34px;
    }

    .festival-guest-visual {
        min-height: 550px;
    }
}


/* ==========================================================
   13. TABLET
   ========================================================== */

@media (max-width: 991px) {

    .festival-guests-heading {
        margin-bottom: 55px;
    }

    .festival-guests-stage {
        display: block;
    }

    .festival-guests-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 14px;

        margin-bottom: 54px;

        border-top: 0;
    }

    .festival-guest-selector {
        grid-template-columns:
            32px
            minmax(0, 1fr)
            22px;

        min-height: 124px;

        padding: 22px 18px;

        border: 1px solid rgba(40, 34, 46, 0.11);
        border-radius: 17px;

        background: rgba(255, 255, 255, 0.72);
    }

    .festival-guest-selector::before {
        top: 14px;
        bottom: 14px;

        border-radius: 0 4px 4px 0;
    }

    .festival-guest-selector.is-active {
        padding-left: 25px;

        border-color: rgba(178, 115, 224, 0.34);

        background:
            linear-gradient(
                110deg,
                rgba(178, 115, 224, 0.13),
                rgba(255, 255, 255, 0.78)
            );
    }

    .festival-guest-selector-text {
        gap: 8px;
    }

    .festival-guest-selector-text strong {
        font-size: 21px;
    }

    .festival-guest-display {
        grid-template-columns:
            minmax(280px, 0.92fr)
            minmax(270px, 0.82fr);

        gap: 40px;
    }

    .festival-guest-visual {
        min-height: 530px;
    }

    .festival-guest-image-label {
        top: 50px;
    }
}


/* ==========================================================
   14. MOBILE
   ========================================================== */

@media (max-width: 767px) {

    .chaniartoon-guests-section {
        padding-top: 80px !important;
        padding-bottom: 86px !important;
    }

    .festival-guests-heading {
        margin-bottom: 44px;
    }

    .festival-guests-kicker {
        gap: 9px;

        font-size: 10px;
    }

    .festival-guests-kicker::before {
        width: 29px;
    }

    .festival-guests-heading h2 {
        font-size: clamp(38px, 11vw, 52px);
        line-height: 1;
    }

    .festival-guests-heading p {
        font-size: 16px;
        line-height: 1.7;
    }

    .festival-guests-nav {
        display: flex;
        flex-direction: column;

        gap: 10px;

        margin-bottom: 40px;
    }

    .festival-guest-selector {
        grid-template-columns:
            31px
            minmax(0, 1fr)
            22px;

        min-height: 105px;

        padding: 19px 16px;
    }

    .festival-guest-selector.is-active {
        padding-left: 23px;
    }

    .festival-guest-selector-text {
        gap: 7px;
    }

    .festival-guest-selector-text strong {
        font-size: 21px;
        line-height: 1.15;
    }

    .festival-guest-selector-text small {
        font-size: 9px;
        line-height: 1.5;
    }

    .festival-guest-display {
        display: block;
    }

    .festival-guest-display-number {
        top: -38px;
        right: -3px;

        font-size: 138px;
    }

    .festival-guest-visual {
        min-height: 500px;

        margin-bottom: 36px;

        border-radius: 180px 180px 23px 23px;
    }

    .festival-guest-image-label {
        top: 47px;
    }

    .festival-guest-information {
        padding-bottom: 0;
    }

    .festival-guest-information h3 {
        font-size: 43px;
    }

    .festival-guest-information p {
        font-size: 15px;
    }
}


/* ==========================================================
   15. SMALL MOBILE
   ========================================================== */

@media (max-width: 430px) {

    .festival-guests-heading h2 br {
        display: none;
    }

    .festival-guest-selector {
        min-height: 102px;
    }

    .festival-guest-selector-text strong {
        font-size: 20px;
    }

    .festival-guest-visual {
        min-height: 425px;

        border-radius: 150px 150px 20px 20px;
    }

    .festival-guest-image-label {
        top: 42px;
    }

    .festival-guest-actions {
        display: block;
    }

    .festival-guest-primary-link {
        width: 100%;

        margin-bottom: 20px;
    }
}


/* ==========================================================
   16. REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .festival-guest-selector,
    .festival-guest-selector::before,
    .festival-guest-selector-arrow,
    .festival-guest-display,
    .festival-guest-image,
    .festival-guest-primary-link,
    .festival-guest-secondary-link {
        transition: none !important;
    }

    .festival-guest-visual:hover
    .festival-guest-image,
    .festival-guest-primary-link:hover {
        transform: none;
    }
}

/* ==========================================================
   CHANIARTOON — SCIENTIFIC SYMPOSIUM
   ========================================================== */


/* ==========================================================
   1. SECTION
   ========================================================== */

.chaniartoon-symposium-section {
    position: relative;
    overflow: hidden;

    background:
        radial-gradient(
            circle at 87% 18%,
            rgba(178, 115, 224, 0.18) 0,
            rgba(178, 115, 224, 0) 31%
        ),
        radial-gradient(
            circle at 8% 94%,
            rgba(178, 115, 224, 0.10) 0,
            rgba(178, 115, 224, 0) 29%
        ),
        #211b31;
}

.chaniartoon-symposium-custom {
    width: 100%;
}

.festival-symposium,
.festival-symposium *,
.festival-symposium *::before,
.festival-symposium *::after {
    box-sizing: border-box;
}

.festival-symposium {
    position: relative;
    z-index: 1;

    width: 100%;
    max-width: 1380px;

    margin: 0 auto;

    font-family: "Manrope", sans-serif;

    color: #ffffff;
}


/* ==========================================================
   2. DECORATIVE COMIC GRID
   ========================================================== */

.festival-symposium-decoration {
    position: absolute;
    z-index: -1;

    inset: -60px -130px;

    pointer-events: none;

    opacity: 0.06;
}

.symposium-frame {
    position: absolute;

    display: block;

    border: 1px solid #ffffff;
}

.symposium-frame-one {
    top: 2%;
    right: 4%;

    width: 29%;
    height: 32%;
}

.symposium-frame-two {
    top: 36%;
    right: 4%;

    width: 17%;
    height: 34%;
}

.symposium-frame-three {
    top: 36%;
    right: 22.5%;

    width: 10%;
    height: 16%;
}

.symposium-frame-four {
    bottom: 4%;
    right: 22.5%;

    width: 10%;
    height: 31%;
}


/* ==========================================================
   3. HEADING
   ========================================================== */

.festival-symposium-heading {
    position: relative;

    max-width: 1040px;

    margin: 0 0 76px;
}

.festival-symposium-kicker {
    display: inline-flex;
    align-items: center;

    gap: 12px;

    margin: 0 0 19px;

    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.18em;
    text-transform: uppercase;

    color: #c98cf0;
}

.festival-symposium-kicker::before {
    content: "";

    flex: 0 0 auto;

    width: 42px;
    height: 2px;

    background: #b273e0;
}

.festival-symposium-heading h2 {
    max-width: 1000px;

    margin: 0 0 27px;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(48px, 6vw, 84px);
    font-weight: 800;
    line-height: 0.97;

    letter-spacing: -0.055em;

    color: #ffffff;
}

.festival-symposium-heading h2 span {
    display: block;

    color: #c88aec;
}

.festival-symposium-heading p {
    max-width: 830px;

    margin: 0;
    padding: 0;

    font-size: 18px;
    font-weight: 500;
    line-height: 1.75;

    color: rgba(255, 255, 255, 0.69);
}


/* ==========================================================
   4. MAIN LAYOUT
   ========================================================== */

.festival-symposium-main {
    display: grid;
    grid-template-columns:
        minmax(330px, 0.82fr)
        minmax(0, 1.18fr);

    gap: clamp(70px, 8vw, 126px);

    align-items: start;
}


/* ==========================================================
   5. LEFT COLUMN
   ========================================================== */

.festival-symposium-content {
    position: relative;

    min-width: 0;
}


/* ==========================================================
   6. DATE
   ========================================================== */

.festival-symposium-date {
    position: relative;

    margin: 0 0 36px;
    padding: 0 0 36px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.festival-symposium-day {
    display: block;

    margin: 0 0 12px;

    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.16em;
    text-transform: uppercase;

    color: #c98cf0;
}

.festival-symposium-date-row {
    display: flex;
    align-items: flex-end;

    gap: 19px;

    margin: 0 0 13px;
}

.festival-symposium-date-row strong {
    display: block;

    margin: 0;
    padding: 0;

    font-size: clamp(86px, 9vw, 126px);
    font-weight: 800;
    line-height: 0.75;

    letter-spacing: -0.075em;

    color: #ffffff;
}

.festival-symposium-date-row span {
    display: block;

    padding-bottom: 4px;

    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;

    letter-spacing: 0.04em;
    text-transform: uppercase;

    color: rgba(255, 255, 255, 0.78);
}

.festival-symposium-time {
    display: block;

    font-size: 24px;
    font-weight: 750;
    line-height: 1.3;

    letter-spacing: -0.025em;

    color: #ffffff;
}


/* ==========================================================
   7. BADGES
   ========================================================== */

.festival-symposium-badges {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin: 0 0 38px;
}

.festival-symposium-badge {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    min-height: 36px;

    padding: 7px 13px;

    border: 1px solid rgba(201, 140, 240, 0.28);
    border-radius: 100px;

    background: rgba(178, 115, 224, 0.10);

    font-size: 11px;
    font-weight: 800;
    line-height: 1.35;

    letter-spacing: 0.045em;
    text-transform: uppercase;

    color: #e4c5f7;
}

.festival-symposium-badge span {
    font-size: 13px;

    color: #c98cf0;
}


/* ==========================================================
   8. PARTICIPANTS
   ========================================================== */

.festival-symposium-participants {
    max-width: 480px;

    margin: 0 0 36px;
}

.festival-symposium-small-title {
    display: block;

    margin: 0 0 11px;

    font-size: 11px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.14em;
    text-transform: uppercase;

    color: #c98cf0;
}

.festival-symposium-participants p {
    margin: 0;
    padding: 0;

    font-size: 15px;
    font-weight: 500;
    line-height: 1.72;

    color: rgba(255, 255, 255, 0.68);
}


/* ==========================================================
   9. ACTIONS
   ========================================================== */

.festival-symposium-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 17px 25px;

    margin: 0 0 17px;
}

.festival-symposium-primary-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 11px;

    min-height: 53px;

    padding: 0 24px;

    border-radius: 100px;

    background: #b273e0;

    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;

    color: #ffffff !important;
    text-decoration: none !important;

    box-shadow:
        0 15px 36px rgba(178, 115, 224, 0.24);

    transition:
        transform 0.24s ease,
        background-color 0.24s ease,
        box-shadow 0.24s ease;
}

.festival-symposium-secondary-link {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    padding: 0 0 5px;

    border-bottom: 1px solid rgba(201, 140, 240, 0.48);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;

    color: #d9a9f5 !important;
    text-decoration: none !important;

    transition:
        color 0.22s ease,
        border-color 0.22s ease;
}

.festival-symposium-registration-note {
    max-width: 390px;

    margin: 0;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.6;

    color: rgba(255, 255, 255, 0.45);
}


/* ==========================================================
   10. RIGHT PROGRAM COLUMN
   ========================================================== */

.festival-symposium-program {
    position: relative;

    min-width: 0;

    padding: 63px 55px 50px;

    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 30px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.075),
            rgba(255, 255, 255, 0.025)
        );

    overflow: hidden;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}


/* ==========================================================
   11. BACKGROUND NUMBER
   ========================================================== */

.festival-symposium-background-number {
    position: absolute;
    z-index: 0;

    top: -28px;
    right: -2px;

    font-size: clamp(170px, 19vw, 270px);
    font-weight: 800;
    line-height: 0.8;

    letter-spacing: -0.09em;

    color: rgba(178, 115, 224, 0.12);

    pointer-events: none;
    user-select: none;
}


/* ==========================================================
   12. PROGRAM HEADING
   ========================================================== */

.festival-symposium-program-heading {
    position: relative;
    z-index: 1;

    max-width: 470px;

    margin: 0 0 47px;
}

.festival-symposium-program-heading span {
    display: block;

    margin: 0 0 12px;

    font-size: 11px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.15em;
    text-transform: uppercase;

    color: #c98cf0;
}

.festival-symposium-program-heading h3 {
    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(34px, 3.7vw, 53px);
    font-weight: 800;
    line-height: 1.02;

    letter-spacing: -0.045em;

    color: #ffffff;
}


/* ==========================================================
   13. TOPICS
   ========================================================== */

.festival-symposium-topics {
    position: relative;
    z-index: 1;

    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.festival-symposium-topic {
    display: grid;
    grid-template-columns: 45px minmax(0, 1fr);

    gap: 22px;

    margin: 0;
    padding: 29px 0;

    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
}

.festival-symposium-topic-number {
    display: block;

    padding-top: 5px;

    font-size: 11px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.14em;

    color: #c98cf0;
}

.festival-symposium-topic h4 {
    margin: 0 0 9px;
    padding: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(21px, 2vw, 28px);
    font-weight: 800;
    line-height: 1.17;

    letter-spacing: -0.03em;

    color: #ffffff;
}

.festival-symposium-topic p {
    max-width: 510px;

    margin: 0;
    padding: 0;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.67;

    color: rgba(255, 255, 255, 0.57);
}


/* ==========================================================
   14. SCHOOL NOTE
   ========================================================== */

.festival-symposium-school-note {
    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns: 66px minmax(0, 1fr);

    gap: 20px;
    align-items: center;

    margin: 36px 0 0;
    padding: 23px;

    border-radius: 18px;

    background: rgba(178, 115, 224, 0.12);
}

.festival-symposium-school-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 66px;
    height: 66px;

    border: 1px solid rgba(201, 140, 240, 0.35);
    border-radius: 50%;

    font-size: 11px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.04em;

    color: #e3c2f6;
}

.festival-symposium-school-note strong {
    display: block;

    margin: 0 0 6px;

    font-size: 14px;
    font-weight: 800;
    line-height: 1.4;

    color: #ffffff;
}

.festival-symposium-school-note p {
    margin: 0;
    padding: 0;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.62;

    color: rgba(255, 255, 255, 0.60);
}


/* ==========================================================
   15. ORGANISERS
   ========================================================== */

.festival-symposium-organisers {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);

    gap: 25px;

    max-width: 930px;

    margin: 72px 0 0;
    padding: 27px 0 0;

    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.festival-symposium-organisers > span {
    display: block;

    font-size: 10px;
    font-weight: 800;
    line-height: 1.5;

    letter-spacing: 0.15em;
    text-transform: uppercase;

    color: #c98cf0;
}

.festival-symposium-organisers p {
    margin: 0;
    padding: 0;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.7;

    color: rgba(255, 255, 255, 0.50);
}


/* ==========================================================
   16. HOVER
   ========================================================== */

@media (hover: hover) {

    .festival-symposium-primary-link:hover {
        transform: translateY(-3px);

        background: #c181e8;

        box-shadow:
            0 19px 42px rgba(178, 115, 224, 0.34);
    }

    .festival-symposium-secondary-link:hover {
        color: #ffffff !important;
        border-color: #ffffff;
    }
}


/* ==========================================================
   17. SMALL LAPTOP
   ========================================================== */

@media (max-width: 1199px) {

    .festival-symposium-main {
        grid-template-columns:
            minmax(300px, 0.75fr)
            minmax(0, 1.2fr);

        gap: 58px;
    }

    .festival-symposium-program {
        padding:
            58px
            42px
            43px;
    }
}


/* ==========================================================
   18. TABLET
   ========================================================== */

@media (max-width: 991px) {

    .festival-symposium-heading {
        margin-bottom: 60px;
    }

    .festival-symposium-main {
        display: block;
    }

    .festival-symposium-content {
        display: grid;
        grid-template-columns:
            minmax(250px, 0.75fr)
            minmax(0, 1fr);

        gap: 42px 55px;

        margin-bottom: 65px;
    }

    .festival-symposium-date {
        grid-row: span 2;

        margin: 0;
        padding: 0 38px 0 0;

        border-right: 1px solid rgba(255, 255, 255, 0.15);
        border-bottom: 0;
    }

    .festival-symposium-badges {
        align-self: end;

        margin-bottom: 0;
    }

    .festival-symposium-participants {
        margin-bottom: 0;
    }

    .festival-symposium-actions {
        grid-column: 1 / -1;

        margin-bottom: 0;
    }

    .festival-symposium-registration-note {
        grid-column: 1 / -1;
    }

    .festival-symposium-program {
        padding: 58px 48px 45px;
    }
}


/* ==========================================================
   19. MOBILE
   ========================================================== */

@media (max-width: 767px) {

    .chaniartoon-symposium-section {
        padding-top: 82px !important;
        padding-bottom: 88px !important;
    }

    .festival-symposium-heading {
        margin-bottom: 49px;
    }

    .festival-symposium-kicker {
        gap: 9px;

        font-size: 10px;
    }

    .festival-symposium-kicker::before {
        width: 28px;
    }

    .festival-symposium-heading h2 {
        font-size: clamp(40px, 11vw, 57px);
        line-height: 1;
    }

    .festival-symposium-heading p {
        font-size: 16px;
        line-height: 1.7;
    }

    .festival-symposium-content {
        display: block;

        margin-bottom: 52px;
    }

    .festival-symposium-date {
        margin: 0 0 30px;
        padding: 0 0 30px;

        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    }

    .festival-symposium-badges,
    .festival-symposium-participants {
        margin-bottom: 31px;
    }

    .festival-symposium-actions {
        margin-bottom: 16px;
    }

    .festival-symposium-program {
        padding: 48px 25px 29px;

        border-radius: 22px;
    }

    .festival-symposium-background-number {
        top: -16px;

        font-size: 180px;
    }

    .festival-symposium-program-heading {
        margin-bottom: 38px;
    }

    .festival-symposium-topic {
        grid-template-columns: 35px minmax(0, 1fr);

        gap: 14px;

        padding: 24px 0;
    }

    .festival-symposium-school-note {
        grid-template-columns: 54px minmax(0, 1fr);

        gap: 15px;

        padding: 19px;
    }

    .festival-symposium-school-icon {
        width: 54px;
        height: 54px;

        font-size: 9px;
    }

    .festival-symposium-organisers {
        display: block;

        margin-top: 52px;
    }

    .festival-symposium-organisers > span {
        margin-bottom: 10px;
    }
}


/* ==========================================================
   20. SMALL MOBILE
   ========================================================== */

@media (max-width: 430px) {

    .festival-symposium-heading h2 span {
        display: inline;
    }

    .festival-symposium-date-row strong {
        font-size: 92px;
    }

    .festival-symposium-date-row span {
        font-size: 14px;
    }

    .festival-symposium-actions {
        display: block;
    }

    .festival-symposium-primary-link {
        width: 100%;

        margin-bottom: 22px;
    }

    .festival-symposium-program {
        padding-right: 20px;
        padding-left: 20px;
    }

    .festival-symposium-school-note {
        display: block;
    }

    .festival-symposium-school-icon {
        margin-bottom: 14px;
    }
}


/* ==========================================================
   21. REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .festival-symposium-primary-link,
    .festival-symposium-secondary-link {
        transition: none !important;
    }

    .festival-symposium-primary-link:hover {
        transform: none;
    }
}

@media (max-width: 767px) {
    .festival-symposium-heading p br {
        display: none;
    }
}
/* =========================================================
   CHANIARTOON — FESTIVAL IN NUMBERS
   ========================================================= */

.chaniartoon-numbers-section {
    position: relative;
    overflow: hidden;
    background: #ffffff;
}

.chaniartoon-numbers-custom {
    width: 100%;
}

.festival-numbers {
    position: relative;
    z-index: 1;

    max-width: 1380px;
    margin: 0 auto;
    padding: 130px 70px 140px;

    overflow: hidden;

    font-family: "Manrope", sans-serif;
    color: #17151d;

    isolation: isolate;
}


/* =========================================================
   BACKGROUND WATERMARK
   ========================================================= */

.festival-numbers-watermark {
    position: absolute;
    top: -90px;
    right: -15px;
    z-index: -1;

    font-size: clamp(260px, 34vw, 560px);
    line-height: 0.8;
    font-weight: 800;
    letter-spacing: -0.09em;

    color: transparent;

    -webkit-text-stroke:
        2px rgba(178, 115, 224, 0.06);

    user-select: none;
    pointer-events: none;
}


/* =========================================================
   HEADING
   ========================================================= */

.festival-numbers-heading {
    position: relative;
    max-width: 850px;
    margin-bottom: 90px;
}

.festival-numbers-kicker {
    display: inline-flex;
    align-items: center;
    gap: 16px;

    margin-bottom: 28px;

    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;

    color: #b273e0;
}

.festival-numbers-kicker::before {
    content: "";

    display: block;

    width: 52px;
    height: 2px;

    background: #b273e0;
}

.festival-numbers-heading h2 {
    max-width: 780px;
    margin: 0;

    font-size: clamp(52px, 6.2vw, 94px);
    line-height: 0.95;
    font-weight: 800;
    letter-spacing: -0.055em;

    color: #17151d;
}

.festival-numbers-heading h2 span {
    display: block;
    color: #b273e0;
}

.festival-numbers-heading p {
    max-width: 740px;
    margin: 34px 0 0;

    font-size: 18px;
    line-height: 1.85;
    font-weight: 400;

    color: #625e69;
}


/* =========================================================
   HERO NUMBER AREA
   ========================================================= */

.festival-number-decade {
    position: relative;

    display: flex;
    justify-content: center;

    padding: 35px 0 75px;
}

.festival-number-big {
    position: relative;

    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 44px;
}


/* =========================================================
   SVG LIQUID NUMBER
   ========================================================= */

.festival-liquid-number {
    position: relative;
    flex: 0 0 auto;

    width: clamp(310px, 34vw, 520px);

    line-height: 0;
}

.festival-liquid-svg {
    display: block;

    width: 100%;
    height: auto;

    overflow: visible;
}


/* Same typography for clipping and outline */

.festival-svg-number-text,
.festival-svg-number-outline {
    font-family: "Manrope", sans-serif;
    font-size: 292px;
    font-weight: 800;
    letter-spacing: -25px;
}


/* Number outline */

.festival-svg-number-outline {
    fill: transparent;

    stroke: #b273e0;
    stroke-width: 3px;
    stroke-linejoin: round;
    stroke-linecap: round;

    paint-order: stroke fill;
}


/* =========================================================
   LIQUID / INK ANIMATION
   ========================================================= */

/*
   Αρχικά το υγρό βρίσκεται κάτω από τον αριθμό.
   Η κλάση .is-visible προστίθεται από το JavaScript.
*/

.festival-ink-level {
    transform: translateY(230px);

    will-change: transform;
}


/* Rise only when visible */

.festival-liquid-number.is-visible .festival-ink-level {
    animation:
        festival-ink-rise
        3.4s
        cubic-bezier(0.18, 0.82, 0.28, 1)
        forwards;
}


/* Main ink body */

.festival-ink-body {
    opacity: 1;

    transform-box: fill-box;
    transform-origin: center;

    will-change: transform;

    animation:
        festival-ink-body-wave
        8s
        ease-in-out
        infinite alternate;
}


/* Soft surface reflection */

.festival-ink-highlight {
    opacity: 0.42;

    transform-box: fill-box;
    transform-origin: center;

    will-change: transform;

    animation:
        festival-ink-highlight-wave
        5.5s
        ease-in-out
        infinite alternate;
}


/* Rising movement */

@keyframes festival-ink-rise {

    0% {
        transform: translateY(230px);
    }

    55% {
        transform: translateY(30px);
    }

    72% {
        transform: translateY(-8px);
    }

    82% {
        transform: translateY(7px);
    }

    91% {
        transform: translateY(-3px);
    }

    100% {
        transform: translateY(0);
    }

}


/* Very slow main surface motion */

@keyframes festival-ink-body-wave {

    0% {
        transform:
            translateX(-38px)
            translateY(1px)
            scaleY(0.98);
    }

    35% {
        transform:
            translateX(-8px)
            translateY(-3px)
            scaleY(1.025);
    }

    70% {
        transform:
            translateX(24px)
            translateY(2px)
            scaleY(0.985);
    }

    100% {
        transform:
            translateX(48px)
            translateY(-2px)
            scaleY(1.015);
    }

}


/* Slightly faster soft highlight */

@keyframes festival-ink-highlight-wave {

    0% {
        transform:
            translateX(-74px)
            translateY(2px)
            scaleY(0.9);
    }

    45% {
        transform:
            translateX(-10px)
            translateY(-4px)
            scaleY(1.08);
    }

    100% {
        transform:
            translateX(70px)
            translateY(1px)
            scaleY(0.94);
    }

}


/* =========================================================
   NUMBER CAPTION
   ========================================================= */

.festival-number-caption {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    padding-bottom: 20px;
}

.festival-number-caption strong {
    max-width: 220px;

    font-size: clamp(25px, 2.2vw, 36px);
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -0.035em;

    color: #17151d;
}

.festival-number-caption span {
    position: relative;

    margin-top: 22px;
    padding-top: 20px;

    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.2em;

    color: #77717e;
}

.festival-number-caption span::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 66px;
    height: 2px;

    background: #b273e0;
}


/* =========================================================
   COMIC DIVIDER
   ========================================================= */

.festival-number-divider {
    position: relative;

    width: 100%;
    height: 32px;

    margin: 12px 0 48px;
}

.festival-number-divider::before,
.festival-number-divider::after {
    content: "";

    position: absolute;
    top: 15px;

    width: calc(50% - 28px);
    height: 1px;

    background: #dad6dd;
}

.festival-number-divider::before {
    left: 0;
}

.festival-number-divider::after {
    right: 0;
}

.festival-number-divider span {
    position: absolute;
    top: 6px;
    left: 50%;

    width: 20px;
    height: 20px;

    border: 2px solid #b273e0;
    background: #ffffff;

    transform:
        translateX(-50%)
        rotate(45deg);
}


/* =========================================================
   STATISTICS GRID
   ========================================================= */

.festival-numbers-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    border-top: 1px solid #dedbe1;
    border-left: 1px solid #dedbe1;
}

.festival-stat {
    position: relative;

    min-height: 325px;
    padding: 50px 50px 46px;

    border-right: 1px solid #dedbe1;
    border-bottom: 1px solid #dedbe1;

    background:
        rgba(255, 255, 255, 0.76);

    transition:
        transform 0.3s ease,
        background-color 0.3s ease;
}

.festival-stat::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 0;
    height: 4px;

    background: #b273e0;

    transition: width 0.35s ease;
}

.festival-stat:hover {
    z-index: 2;

    background: #fcf9ff;

    transform: translateY(-4px);
}

.festival-stat:hover::before {
    width: 100%;
}

.festival-stat-number {
    display: block;

    font-size: clamp(76px, 8vw, 126px);
    line-height: 0.82;
    font-weight: 700;
    letter-spacing: -0.07em;

    color: #b273e0;
}

.festival-stat h3 {
    margin: 34px 0 0;

    font-size: clamp(24px, 2vw, 32px);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.035em;

    color: #17151d;
}

.festival-stat p {
    max-width: 330px;
    margin: 15px 0 0;

    font-size: 15px;
    line-height: 1.7;
    font-weight: 450;

    color: #706a76;
}


/* =========================================================
   FREE ENTRY
   ========================================================= */

.festival-free {
    display: grid;
    grid-template-columns:
        255px minmax(0, 1fr);
    align-items: center;
    gap: 70px;

    max-width: 900px;
    margin: 80px auto 0;
}

.festival-free-circle {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 230px;
    aspect-ratio: 1;

    border: 2px solid #b273e0;
    border-radius: 50%;

    background: #ffffff;
}

.festival-free-circle::before,
.festival-free-circle::after {
    content: "";

    position: absolute;

    border-radius: 50%;
}

.festival-free-circle::before {
    inset: 12px;

    border:
        1px solid rgba(178, 115, 224, 0.25);
}

.festival-free-circle::after {
    inset: -12px;

    border:
        1px dashed rgba(178, 115, 224, 0.35);
}

.festival-free-circle span {
    position: relative;
    z-index: 1;

    font-size: 62px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.06em;

    color: #b273e0;
}

.festival-free-content strong {
    display: block;

    font-size: clamp(34px, 3.4vw, 52px);
    line-height: 1.02;
    font-weight: 800;
    letter-spacing: -0.05em;

    color: #17151d;
}

.festival-free-content p {
    max-width: 560px;
    margin: 23px 0 0;

    font-size: 17px;
    line-height: 1.8;

    color: #68626e;
}


/* =========================================================
   RESPONSIVE — LAPTOP
   ========================================================= */

@media (max-width: 1199px) {

    .festival-numbers {
        padding: 110px 50px 120px;
    }

    .festival-number-big {
        gap: 32px;
    }

    .festival-stat {

        padding: 44px 40px;
    }

    .festival-free {
        gap: 50px;
    }

}


/* =========================================================
   RESPONSIVE — TABLET
   ========================================================= */

@media (max-width: 991px) {

    .festival-numbers {
        padding: 95px 35px 105px;
    }

    .festival-numbers-heading {
        margin-bottom: 65px;
    }

    .festival-number-decade {
        padding: 25px 0 60px;
    }

    .festival-number-big {
        align-items: center;
        gap: 26px;
    }

    .festival-liquid-number {
        width: clamp(270px, 42vw, 410px);
    }

    .festival-number-caption {
        padding-bottom: 0;
    }

    .festival-stat {
        min-height: 270px;
        padding: 38px 32px;
    }

    .festival-free {
        grid-template-columns:
            205px minmax(0, 1fr);

        gap: 38px;
    }

    .festival-free-circle {
        width: 190px;
    }

    .festival-free-circle span {
        font-size: 52px;
    }

}


/* =========================================================
   RESPONSIVE — MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .festival-numbers {
        padding: 78px 22px 85px;
    }

    .festival-numbers-watermark {
        top: 30px;
        right: -20px;

        font-size: 250px;

        -webkit-text-stroke-width: 1px;
    }

    .festival-numbers-heading {
        margin-bottom: 48px;
    }

    .festival-numbers-kicker {
        gap: 12px;

        margin-bottom: 22px;

        font-size: 10px;
        letter-spacing: 0.18em;
    }

    .festival-numbers-kicker::before {
        width: 34px;
    }

    .festival-numbers-heading h2 {
        font-size: clamp(45px, 13vw, 66px);
        line-height: 0.98;
    }

    .festival-numbers-heading p {
        margin-top: 26px;

        font-size: 16px;
        line-height: 1.75;
    }

    .festival-number-decade {
        justify-content: flex-start;

        padding: 10px 0 50px;
    }

    .festival-number-big {
        width: 100%;

        flex-direction: column;
        align-items: flex-start;
        gap: 26px;
    }

    .festival-liquid-number {
        width: min(100%, 390px);
    }

    .festival-svg-number-outline {
        stroke-width: 2.5px;
    }

    .festival-number-caption {
        padding-left: 5px;
    }

    .festival-number-caption strong {
        max-width: none;

        font-size: 28px;
    }

    .festival-number-divider {
        margin-bottom: 36px;
    }

    .festival-numbers-grid {
        grid-template-columns: 1fr;
    }

    .festival-stat {
        min-height: auto;

        padding: 38px 28px 42px;
    }

    .festival-stat:hover {
        transform: none;
    }

    .festival-stat-number {
        font-size: 88px;
    }

    .festival-stat h3 {
        margin-top: 26px;

        font-size: 27px;
    }

    .festival-free {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 42px;

        margin-top: 65px;

        text-align: center;
    }

    .festival-free-circle {
        width: 190px;
    }

    .festival-free-content p {
        font-size: 16px;
    }

}


/* =========================================================
   RESPONSIVE — SMALL MOBILE
   ========================================================= */

@media (max-width: 479px) {

    .festival-numbers {
        padding-right: 18px;
        padding-left: 18px;
    }

    .festival-numbers-heading h2 {
        font-size: 44px;
    }

    .festival-liquid-number {
        width: min(100%, 320px);
    }

    .festival-number-caption strong {
        font-size: 25px;
    }

    .festival-stat {
        padding-right: 23px;
        padding-left: 23px;
    }

    .festival-stat-number {
        font-size: 78px;
    }

    .festival-free-circle {
        width: 170px;
    }

    .festival-free-circle span {
        font-size: 46px;
    }

    .festival-free-content strong {
        font-size: 36px;
    }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .festival-ink-level {
        transform: translateY(0);
    }

    .festival-liquid-number.is-visible .festival-ink-level,
    .festival-ink-body,
    .festival-ink-highlight {
        animation: none;
    }

    .festival-stat,
    .festival-stat::before {
        transition: none;
    }

}

/* =========================================================
   EXPERIENCE THE FESTIVAL
   ========================================================= */

.chaniartoon-experience-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 15% 10%,
            rgba(178, 115, 224, 0.13),
            transparent 32%
        ),
        radial-gradient(
            circle at 90% 45%,
            rgba(255, 255, 255, 0.04),
            transparent 25%
        ),
        #111014;
    color: #ffffff;
}

.chaniartoon-experience-section .sppb-row-container {
    max-width: 1440px;
}

.festival-experience {
    --festival-purple: #b273e0;
    --festival-yellow: #f0c93d;
    --festival-green: #69bd6a;
    --festival-red: #e56464;
    --festival-white: #ffffff;
    --festival-muted: rgba(255, 255, 255, 0.64);
    --festival-line: rgba(255, 255, 255, 0.13);

    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 130px 40px 120px;
    font-family: "Manrope", sans-serif;
}


/* =========================================================
   BACKGROUND WATERMARK
   ========================================================= */

.festival-experience-watermark {
    position: absolute;
    top: -65px;
    right: -15px;
    z-index: -1;

    font-size: clamp(240px, 28vw, 520px);
    font-weight: 800;
    line-height: 0.8;
    letter-spacing: -0.09em;

    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.045);
    text-stroke: 1px rgba(255, 255, 255, 0.045);

    pointer-events: none;
    user-select: none;
}


/* =========================================================
   INTRO
   ========================================================= */

.festival-experience-heading {
    position: relative;
    max-width: 900px;
    margin-bottom: 100px;
}

.festival-experience-kicker {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    margin-bottom: 22px;

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--festival-purple);
}

.festival-experience-kicker::before {
    content: "";
    width: 42px;
    height: 2px;
    background: var(--festival-purple);
}

.festival-experience-heading h2 {
    margin: 0;

    font-size: clamp(52px, 6.4vw, 100px);
    font-weight: 750;
    line-height: 0.93;
    letter-spacing: -0.065em;
    color: #ffffff;
}

.festival-experience-heading h2 span {
    display: block;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--festival-purple);
    text-stroke: 1.5px var(--festival-purple);
}

.festival-experience-heading p {
    max-width: 680px;
    margin: 32px 0 0;

    font-size: clamp(18px, 1.7vw, 23px);
    line-height: 1.55;
    color: var(--festival-muted);
}


/* =========================================================
   GENERIC SECTION LABEL
   ========================================================= */

.festival-experience-section-label {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;

    margin-bottom: 32px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--festival-line);
}

.festival-experience-section-label > span {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--festival-purple);
}

.festival-experience-section-label p {
    max-width: 540px;
    margin: 0;

    font-size: 15px;
    line-height: 1.5;
    text-align: right;
    color: var(--festival-muted);
}


/* =========================================================
   ALWAYS ON
   ========================================================= */

.festival-always-on {
    margin-bottom: 125px;
}

.festival-always-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.festival-always-card {
    position: relative;
    min-width: 0;
    overflow: hidden;

    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.12);

    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.35s ease,
        background-color 0.35s ease;
}

.festival-always-card:hover {
    transform: translateY(-8px);
    border-color: rgba(178, 115, 224, 0.65);
    background: rgba(255, 255, 255, 0.055);
}

.festival-always-media {
    position: relative;
    height: 390px;
    overflow: hidden;
}

.festival-always-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;

    filter: saturate(0.82) contrast(1.05);
    transition:
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.5s ease;
}

.festival-always-card:hover .festival-always-media img {
    transform: scale(1.045);
    filter: saturate(1) contrast(1.05);
}

.festival-always-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to top,
            rgba(17, 16, 20, 0.92) 0%,
            rgba(17, 16, 20, 0.26) 50%,
            rgba(17, 16, 20, 0.03) 100%
        );
}

.festival-always-index {
    position: absolute;
    top: 22px;
    right: 24px;

    font-size: 64px;
    font-weight: 750;
    line-height: 1;
    letter-spacing: -0.08em;

    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.65);
    text-stroke: 1px rgba(255, 255, 255, 0.65);
}

.festival-always-content {
    position: relative;
    padding: 34px 34px 38px;
}

.festival-always-topline {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 34px;
}

.festival-always-status {
    display: inline-flex;
    align-items: center;

    padding: 7px 11px;

    border: 1px solid rgba(255, 255, 255, 0.16);

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
}

.festival-always-number {
    display: block;
    margin-bottom: 4px;

    font-size: clamp(72px, 8vw, 112px);
    font-weight: 800;
    line-height: 0.8;
    letter-spacing: -0.085em;
    color: var(--festival-purple);
}

.festival-always-card h3 {
    margin: 18px 0 20px;

    font-size: clamp(32px, 3.2vw, 48px);
    font-weight: 750;
    line-height: 1;
    letter-spacing: -0.045em;
    color: #ffffff;
}

.festival-always-card p {
    max-width: 590px;
    margin: 0;

    font-size: 16px;
    line-height: 1.72;
    color: var(--festival-muted);
}

.festival-always-features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;

    margin: 28px 0 34px;
    padding: 0;
    list-style: none;
}

.festival-always-features li {
    padding: 8px 12px;

    background: rgba(178, 115, 224, 0.1);
    border: 1px solid rgba(178, 115, 224, 0.26);

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.84);
}

.festival-always-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    padding-bottom: 7px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.32);

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #ffffff;
    text-decoration: none;

    transition:
        color 0.25s ease,
        border-color 0.25s ease;
}

.festival-always-link span {
    font-size: 20px;
    line-height: 1;
    transition: transform 0.25s ease;
}

.festival-always-link:hover {
    color: var(--festival-purple);
    border-color: var(--festival-purple);
}

.festival-always-link:hover span {
    transform: translateX(5px);
}


/* =========================================================
   DAILY HIGHLIGHTS
   ========================================================= */

.festival-daily-highlights {
    position: relative;
}

.festival-program-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 34px;
}

.festival-legend-item {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 8px 11px;

    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.11);

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.66);
}

.festival-legend-item::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.festival-category-presentation::before {
    background: var(--festival-purple);
}

.festival-category-workshop::before {
    background: var(--festival-red);
}

.festival-category-parallel::before {
    background: var(--festival-yellow);
}

.festival-category-concert::before {
    background: var(--festival-green);
}


/* =========================================================
   DAYS GRID
   ========================================================= */

.festival-days-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;

    border-top: 1px solid var(--festival-line);
    border-bottom: 1px solid var(--festival-line);
}

.festival-day {
    position: relative;
    min-width: 0;
    overflow: hidden;

    padding: 40px 28px 32px;
    border-right: 1px solid var(--festival-line);

    transition:
        background-color 0.35s ease,
        flex 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.festival-day:last-child {
    border-right: 0;
}

.festival-day:hover {
    background: rgba(255, 255, 255, 0.035);
}

.festival-day-saturday {
    background:
        linear-gradient(
            180deg,
            rgba(178, 115, 224, 0.085),
            rgba(178, 115, 224, 0.015) 70%
        );
}

.festival-day-saturday::before {
    content: "";
    position: absolute;
    top: 0;
    right: 22px;
    left: 22px;
    height: 3px;
    background: var(--festival-purple);
}

.festival-day-background-number {
    position: absolute;
    right: -10px;
    bottom: -48px;

    font-size: 220px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.1em;

    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.035);
    text-stroke: 1px rgba(255, 255, 255, 0.035);

    pointer-events: none;
    transition:
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
        -webkit-text-stroke-color 0.35s ease;
}

.festival-day:hover .festival-day-background-number {
    transform: scale(1.035) translateX(-4px);
    -webkit-text-stroke-color: rgba(178, 115, 224, 0.11);
}


/* =========================================================
   DAY HEADER
   ========================================================= */

.festival-day-heading {
    position: relative;
    z-index: 1;

    display: flex;
    align-items: flex-end;
    gap: 18px;

    min-height: 98px;
    margin-bottom: 32px;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--festival-line);
}

.festival-day-date {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.festival-day-number {
    font-size: 72px;
    font-weight: 800;
    line-height: 0.78;
    letter-spacing: -0.09em;
    color: #ffffff;

    transition:
        transform 0.35s ease,
        color 0.35s ease;
}

.festival-day:hover .festival-day-number {
    transform: translateY(-4px);
    color: var(--festival-purple);
}

.festival-day-month {
    margin-bottom: 2px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--festival-muted);
}

.festival-day-name {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 1px;
}

.festival-day-name > span {
    font-size: 17px;
    font-weight: 700;
    color: #ffffff;
}

.festival-day-name strong {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--festival-muted);
}


/* =========================================================
   EVENTS
   ========================================================= */

.festival-day-events {
    position: relative;
    z-index: 1;
}

.festival-event {
    position: relative;

    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 15px;

    min-height: 95px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.085);

    transition:
        padding-left 0.3s ease,
        background-color 0.3s ease;
}

.festival-event:last-child {
    border-bottom: 0;
}

.festival-event::before {
    content: "";
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: -28px;
    width: 3px;

    opacity: 0;
    transition:
        left 0.3s ease,
        opacity 0.3s ease;
}

.festival-event:hover {
    padding-left: 10px;
}

.festival-event:hover::before {
    left: 0;
    opacity: 1;
}

.festival-event time {
    padding-top: 2px;

    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.62);
}

.festival-event-content {
    min-width: 0;
}

.festival-event-category {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    margin-bottom: 8px;

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.11em;
    line-height: 1;
    text-transform: uppercase;
}

.festival-event-category::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.festival-event h4 {
    margin: 0;

    font-size: 16px;
    font-weight: 650;
    line-height: 1.28;
    letter-spacing: -0.018em;
    color: rgba(255, 255, 255, 0.95);

    transition: color 0.25s ease;
}

.festival-event:hover h4 {
    color: #ffffff;
}


/* Presentation */

.festival-event-presentation::before {
    background: var(--festival-purple);
}

.festival-event-presentation .festival-event-category {
    color: var(--festival-purple);
}

.festival-event-presentation .festival-event-category::before {
    background: var(--festival-purple);
}


/* Workshop */

.festival-event-workshop::before {
    background: var(--festival-red);
}

.festival-event-workshop .festival-event-category {
    color: var(--festival-red);
}

.festival-event-workshop .festival-event-category::before {
    background: var(--festival-red);
}


/* Parallel action */

.festival-event-parallel::before {
    background: var(--festival-yellow);
}

.festival-event-parallel .festival-event-category {
    color: var(--festival-yellow);
}

.festival-event-parallel .festival-event-category::before {
    background: var(--festival-yellow);
}


/* Concert */

.festival-event-concert::before {
    background: var(--festival-green);
}

.festival-event-concert .festival-event-category {
    color: var(--festival-green);
}

.festival-event-concert .festival-event-category::before {
    background: var(--festival-green);
}

.festival-event-concert h4 {
    font-size: 18px;
    font-weight: 750;
}


/* =========================================================
   DAY MORE LINK
   ========================================================= */

.festival-day-more {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;

    margin-top: 20px;
    padding: 14px 0 3px;

    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.03em;
    color: rgba(255, 255, 255, 0.67);
    text-decoration: none;

    transition: color 0.25s ease;
}

.festival-day-more span {
    display: grid;
    place-items: center;

    min-width: 36px;
    height: 36px;
    padding: 0 7px;

    border: 1px solid rgba(178, 115, 224, 0.4);
    color: var(--festival-purple);

    transition:
        background-color 0.25s ease,
        color 0.25s ease;
}

.festival-day-more:hover {
    color: #ffffff;
}

.festival-day-more:hover span {
    background: var(--festival-purple);
    color: #111014;
}


/* =========================================================
   MAIN CTA
   ========================================================= */

.festival-experience-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;

    margin-top: 60px;
    padding: 34px 0 0;
    border-top: 1px solid var(--festival-line);
}

.festival-experience-cta-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.festival-experience-cta-text span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--festival-purple);
}

.festival-experience-cta-text strong {
    font-size: clamp(22px, 2.5vw, 34px);
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -0.035em;
    color: #ffffff;
}

.festival-experience-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;

    min-width: 300px;
    padding: 18px 21px 18px 24px;

    background: var(--festival-purple);
    border: 1px solid var(--festival-purple);

    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.045em;
    color: #111014;
    text-decoration: none;

    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.festival-experience-button-arrow {
    font-size: 23px;
    line-height: 1;
    transition: transform 0.3s ease;
}

.festival-experience-button:hover {
    background: transparent;
    color: #ffffff;
    transform: translateY(-3px);
}

.festival-experience-button:hover .festival-experience-button-arrow {
    transform: translateX(5px);
}


/* =========================================================
   RESPONSIVE — TABLET
   ========================================================= */

@media (max-width: 1100px) {

    .festival-experience {
        padding: 110px 30px 100px;
    }

    .festival-always-media {
        height: 310px;
    }

    .festival-always-content {
        padding: 30px 26px 34px;
    }

    .festival-days-grid {
        grid-template-columns: 1fr;
        border-bottom: 0;
    }

    .festival-day {
        border-right: 0;
        border-bottom: 1px solid var(--festival-line);
        padding: 36px 32px;
    }

    .festival-day-saturday::before {
        right: 32px;
        left: 32px;
    }

    .festival-day-background-number {
        right: 20px;
        bottom: -62px;
    }

    .festival-day-heading {
        max-width: 560px;
    }

    .festival-day-events {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 32px;
    }

    .festival-event:nth-last-child(2) {
        border-bottom: 0;
    }

    .festival-event::before {
        left: -32px;
    }
}


/* =========================================================
   RESPONSIVE — MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .festival-experience {
        padding: 85px 18px 80px;
    }

    .festival-experience-watermark {
        top: -5px;
        right: -20px;
        font-size: 190px;
    }

    .festival-experience-heading {
        margin-bottom: 72px;
    }

    .festival-experience-heading h2 {
        font-size: clamp(50px, 15vw, 74px);
    }

    .festival-experience-heading h2 span {
        -webkit-text-stroke-width: 1px;
    }

    .festival-experience-heading p {
        margin-top: 25px;
        font-size: 17px;
    }

    .festival-experience-section-label {
        display: block;
        margin-bottom: 24px;
    }

    .festival-experience-section-label p {
        margin-top: 10px;
        text-align: left;
    }

    .festival-always-on {
        margin-bottom: 90px;
    }

    .festival-always-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .festival-always-media {
        height: 265px;
    }

    .festival-always-index {
        top: 18px;
        right: 18px;
        font-size: 50px;
    }

    .festival-always-content {
        padding: 26px 20px 30px;
    }

    .festival-always-topline {
        margin-bottom: 28px;
    }

    .festival-always-number {
        font-size: 78px;
    }

    .festival-always-card h3 {
        font-size: 34px;
    }

    .festival-program-legend {
        margin-bottom: 24px;
    }

    .festival-day {
        padding: 30px 20px 27px;
    }

    .festival-day-saturday::before {
        right: 20px;
        left: 20px;
    }

    .festival-day-heading {
        min-height: auto;
        margin-bottom: 20px;
        padding-bottom: 22px;
    }

    .festival-day-number {
        font-size: 64px;
    }

    .festival-day-events {
        display: block;
    }

    .festival-event {
        grid-template-columns: 54px minmax(0, 1fr);
        min-height: 88px;
    }

    .festival-event:nth-last-child(2) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.085);
    }

    .festival-event::before {
        left: -20px;
    }

    .festival-event:hover::before {
        left: 0;
    }

    .festival-day-background-number {
        right: -12px;
        bottom: -35px;
        font-size: 170px;
    }

    .festival-experience-cta {
        display: block;
        margin-top: 46px;
    }

    .festival-experience-button {
        width: 100%;
        min-width: 0;
        margin-top: 27px;
    }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .festival-experience-heading h2 {
        font-size: 48px;
    }

    .festival-always-media {
        height: 230px;
    }

    .festival-always-status {
        font-size: 9px;
    }

    .festival-always-features {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .festival-always-features li {
        text-align: center;
    }

    .festival-day-heading {
        gap: 13px;
    }

    .festival-day-number {
        font-size: 57px;
    }

    .festival-day-name > span {
        font-size: 15px;
    }

    .festival-event h4 {
        font-size: 15px;
    }

    .festival-event-concert h4 {
        font-size: 17px;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .festival-always-card,
    .festival-always-media img,
    .festival-always-link span,
    .festival-day,
    .festival-day-number,
    .festival-day-background-number,
    .festival-event,
    .festival-event::before,
    .festival-experience-button,
    .festival-experience-button-arrow {
        transition: none !important;
    }

    .festival-always-card:hover,
    .festival-experience-button:hover {
        transform: none;
    }
}
/* =========================================================
   CHANIARTOON — FROM FESTIVAL TO PAPER
   ========================================================= */

.press-library-source {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  clip-path: inset(50%) !important;
}

.festival-to-paper {
  --press-accent: #b273e0;
  --press-accent-dark: #75419d;
  --press-ink: #17131b;
  --press-muted: rgba(23, 19, 27, 0.66);
  --press-line: rgba(23, 19, 27, 0.12);
  --press-bg: #f7f1fa;
  --press-bg-light: #fcf9fd;

  position: relative;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;

  overflow: hidden;
  isolation: isolate;

  padding: clamp(90px, 10vw, 170px) 0
           clamp(90px, 11vw, 180px);

  background:
    linear-gradient(
      135deg,
      var(--press-bg-light) 0%,
      var(--press-bg) 48%,
      #f3eaf8 100%
    );

  color: var(--press-ink);
  font-family: "Manrope", sans-serif;
}


/* ---------------------------------------------------------
   AMBIENT BACKGROUND
   --------------------------------------------------------- */

.festival-to-paper__ambient {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
}

.festival-to-paper__ambient::before {
  content: "";
  position: absolute;
  inset: 0;

  opacity: 0.28;

  background-image:
    linear-gradient(
      rgba(117, 65, 157, 0.045) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(117, 65, 157, 0.045) 1px,
      transparent 1px
    );

  background-size: 90px 90px;

  mask-image:
    linear-gradient(
      to bottom,
      transparent,
      black 20%,
      black 75%,
      transparent
    );
}

.festival-to-paper__glow {
  position: absolute;
  display: block;
  border-radius: 50%;
  filter: blur(16px);
  opacity: 0.8;
}

.festival-to-paper__glow--one {
  width: min(62vw, 980px);
  aspect-ratio: 1;
  left: -20vw;
  top: -18%;

  background:
    radial-gradient(
      circle,
      rgba(178, 115, 224, 0.24) 0%,
      rgba(178, 115, 224, 0.08) 40%,
      transparent 72%
    );
}

.festival-to-paper__glow--two {
  width: min(55vw, 850px);
  aspect-ratio: 1;
  right: -18vw;
  top: 20%;

  background:
    radial-gradient(
      circle,
      rgba(210, 166, 239, 0.28) 0%,
      rgba(178, 115, 224, 0.08) 44%,
      transparent 73%
    );
}

.festival-to-paper__glow--three {
  width: min(42vw, 650px);
  aspect-ratio: 1;
  left: 34%;
  bottom: -30%;

  background:
    radial-gradient(
      circle,
      rgba(255, 255, 255, 0.92) 0%,
      rgba(255, 255, 255, 0.35) 42%,
      transparent 70%
    );
}

.festival-to-paper__wordmark {
  position: absolute;
  left: 50%;
  top: 49%;

  transform: translate(-50%, -50%);

  font-size: clamp(110px, 18vw, 310px);
  font-weight: 800;
  line-height: 0.8;
  letter-spacing: -0.075em;
  white-space: nowrap;

  color: rgba(117, 65, 157, 0.033);

  user-select: none;
}


/* ---------------------------------------------------------
   MAIN CONTAINER
   --------------------------------------------------------- */

.festival-to-paper__inner {
  position: relative;
  z-index: 1;

  width: min(1440px, calc(100% - 80px));
  margin-inline: auto;
}


/* ---------------------------------------------------------
   HEADER
   --------------------------------------------------------- */

.festival-to-paper__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(50px, 8vw, 150px);
  align-items: end;

  margin-bottom: clamp(75px, 10vw, 150px);
}

.festival-to-paper__intro {
  max-width: 890px;
}

.festival-to-paper__eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;

  margin-bottom: 26px;

  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1.2;
  text-transform: uppercase;

  color: var(--press-accent-dark);
}

.festival-to-paper__eyebrow-line {
  width: 48px;
  height: 2px;

  background: var(--press-accent);
}

.festival-to-paper__title {
  max-width: 940px;
  margin: 0;

  font-size: clamp(55px, 7.4vw, 118px);
  font-weight: 650;
  line-height: 0.91;
  letter-spacing: -0.07em;

  text-wrap: balance;
}

.festival-to-paper__title span {
  display: block;
  color: var(--press-accent-dark);
}

.festival-to-paper__description {
  max-width: 700px;

  margin: clamp(30px, 4vw, 55px) 0 0;

  font-size: clamp(17px, 1.35vw, 21px);
  font-weight: 450;
  line-height: 1.75;
  letter-spacing: -0.015em;

  color: var(--press-muted);
}

.festival-to-paper__statement {
  display: flex;
  align-items: flex-end;
  gap: 18px;

  padding-bottom: 12px;
}

.festival-to-paper__count {
  font-size: clamp(62px, 7vw, 105px);
  font-weight: 300;
  line-height: 0.76;
  letter-spacing: -0.08em;

  color: var(--press-accent);
}

.festival-to-paper__statement-text {
  display: block;

  font-size: 10px;
  font-weight: 800;
  line-height: 1.55;
  letter-spacing: 0.18em;

  color: rgba(23, 19, 27, 0.58);
}


/* ---------------------------------------------------------
   EXHIBITION STAGE
   --------------------------------------------------------- */

.festival-to-paper__stage {
  position: relative;

  min-height: 1120px;

  padding: 50px 0 100px;
}

.festival-to-paper__stage::before {
  content: "";

  position: absolute;
  left: 50%;
  top: 49%;

  width: min(1160px, 86vw);
  height: min(680px, 54vw);

  transform: translate(-50%, -50%);

  border-radius: 50%;

  background:
    radial-gradient(
      ellipse,
      rgba(255, 255, 255, 0.88) 0%,
      rgba(255, 255, 255, 0.4) 42%,
      transparent 72%
    );

  filter: blur(8px);

  pointer-events: none;
}

.festival-to-paper__orbit {
  position: absolute;
  left: 50%;
  top: 50%;

  width: min(1180px, 90vw);
  height: min(630px, 48vw);

  transform: translate(-50%, -50%) rotate(-5deg);

  border: 1px solid rgba(117, 65, 157, 0.13);
  border-radius: 50%;

  pointer-events: none;
}

.festival-to-paper__orbit::before,
.festival-to-paper__orbit::after {
  content: "";

  position: absolute;
  top: 50%;

  width: 6px;
  height: 6px;

  transform: translateY(-50%);

  border-radius: 50%;

  background: var(--press-accent);
  box-shadow:
    0 0 0 7px rgba(178, 115, 224, 0.1);
}

.festival-to-paper__orbit::before {
  left: -3px;
}

.festival-to-paper__orbit::after {
  right: -3px;
}


/* ---------------------------------------------------------
   BOOK LAYOUT
   --------------------------------------------------------- */

.festival-to-paper__books {
  position: relative;
  z-index: 2;

  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(2, auto);

  gap: 105px 20px;

  width: 100%;
}

.press-book {
  position: relative;

  min-width: 0;

  opacity: 0;
  transform: translateY(45px);

  transition:
    opacity 0.8s ease,
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.press-book.press-book--visible {
  opacity: 1;
  transform: translateY(0);
}


/* Individual editorial placement */

.press-book:nth-child(1) {
  grid-column: 1 / span 4;
  grid-row: 1;
  margin-top: 90px;
}

.press-book:nth-child(2) {
  grid-column: 5 / span 4;
  grid-row: 1;
  margin-top: 0;
}

.press-book:nth-child(3) {
  grid-column: 9 / span 4;
  grid-row: 1;
  margin-top: 125px;
}

.press-book:nth-child(4) {
  grid-column: 1 / span 4;
  grid-row: 2;
  margin-top: 10px;
}

.press-book:nth-child(5) {
  grid-column: 5 / span 4;
  grid-row: 2;
  margin-top: 110px;
}

.press-book:nth-child(6) {
  grid-column: 9 / span 4;
  grid-row: 2;
  margin-top: 20px;
}


/* ---------------------------------------------------------
   BOOK NUMBER
   --------------------------------------------------------- */

.press-book__number {
  display: flex;
  align-items: center;
  gap: 12px;

  margin-bottom: 18px;

  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.18em;

  color: var(--press-accent-dark);
}

.press-book__number::after {
  content: "";

  width: 38px;
  height: 1px;

  background: rgba(117, 65, 157, 0.35);
}


/* ---------------------------------------------------------
   BOOK LINK / OBJECT
   --------------------------------------------------------- */

.press-book__link {
  display: block;
  position: relative;

  color: inherit;
  text-decoration: none;
}

.press-book__visual {
  position: relative;

  display: flex;
  align-items: flex-end;
  justify-content: center;

  min-height: 445px;

  perspective: 1300px;
}

.press-book__spotlight {
  position: absolute;
  left: 50%;
  bottom: 4%;

  width: 86%;
  aspect-ratio: 1;

  transform: translateX(-50%);

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(178, 115, 224, 0.2) 0%,
      rgba(178, 115, 224, 0.07) 46%,
      transparent 73%
    );

  filter: blur(16px);

  opacity: 0.55;

  transition:
    transform 0.65s ease,
    opacity 0.65s ease;
}

.press-book__cover-wrap {
  position: relative;

  display: flex;
  align-items: flex-end;
  justify-content: center;

  width: 100%;

  transform-style: preserve-3d;

  transition:
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.press-book:nth-child(odd) .press-book__cover-wrap {
  transform: rotateY(3deg) rotateZ(-0.7deg);
}

.press-book:nth-child(even) .press-book__cover-wrap {
  transform: rotateY(-3deg) rotateZ(0.7deg);
}

.press-book__cover {
  display: block;

  width: auto;
  max-width: 86%;
  height: 405px;

  object-fit: contain;

  filter:
    drop-shadow(0 28px 25px rgba(38, 20, 48, 0.17))
    drop-shadow(0 8px 8px rgba(38, 20, 48, 0.08));

  transform: translateZ(0);

  transition:
    filter 0.7s ease,
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.press-book__ground-shadow {
  position: absolute;
  left: 50%;
  bottom: -18px;

  width: 58%;
  height: 27px;

  transform: translateX(-50%);

  border-radius: 50%;

  background: rgba(39, 18, 50, 0.18);
  filter: blur(16px);

  opacity: 0.55;

  transition:
    width 0.65s ease,
    opacity 0.65s ease,
    filter 0.65s ease;
}


/* ---------------------------------------------------------
   BOOK INFORMATION
   --------------------------------------------------------- */

.press-book__content {
  position: relative;

  max-width: 340px;
  margin: 34px auto 0;
  padding-right: 30px;
}

.press-book__title {
  margin: 0;

  font-size: clamp(20px, 1.65vw, 27px);
  font-weight: 690;
  line-height: 1.12;
  letter-spacing: -0.04em;

  transition: color 0.35s ease;
}

.press-book__creators {
  margin: 11px 0 0;

  font-size: 12px;
  font-weight: 650;
  line-height: 1.55;
  letter-spacing: 0.1em;
  text-transform: uppercase;

  color: rgba(23, 19, 27, 0.5);
}

.press-book__indicator {
  position: absolute;
  right: 0;
  top: 4px;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 26px;
  height: 26px;

  border: 1px solid rgba(117, 65, 157, 0.25);
  border-radius: 50%;

  color: var(--press-accent-dark);

  opacity: 0;
  transform: translate(-7px, 7px);

  transition:
    opacity 0.35s ease,
    transform 0.35s ease,
    background-color 0.35s ease,
    color 0.35s ease;
}

.press-book__indicator svg {
  width: 13px;
  height: 13px;

  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}


/* ---------------------------------------------------------
   HOVER
   --------------------------------------------------------- */

@media (hover: hover) {

  .press-book__link:hover .press-book__cover-wrap {
    transform: translateY(-15px) rotateY(0deg) rotateZ(0deg);
  }

  .press-book__link:hover .press-book__cover {
    transform: scale(1.025);

    filter:
      drop-shadow(0 42px 35px rgba(38, 20, 48, 0.24))
      drop-shadow(0 12px 10px rgba(38, 20, 48, 0.09));
  }

  .press-book__link:hover .press-book__spotlight {
    opacity: 0.96;
    transform: translateX(-50%) scale(1.14);
  }

  .press-book__link:hover .press-book__ground-shadow {
    width: 68%;
    opacity: 0.42;
    filter: blur(20px);
  }

  .press-book__link:hover .press-book__title {
    color: var(--press-accent-dark);
  }

  .press-book__link:hover .press-book__indicator {
    opacity: 1;
    transform: translate(0, 0);

    background: var(--press-accent-dark);
    color: #fff;
  }

}


/* ---------------------------------------------------------
   FOOTER / CTA
   --------------------------------------------------------- */

.festival-to-paper__footer {
  display: grid;
  grid-template-columns: minmax(0, 460px) auto;
  justify-content: space-between;
  align-items: center;
  gap: 50px;

  margin-top: clamp(45px, 7vw, 100px);
  padding-top: 35px;

  border-top: 1px solid var(--press-line);
}

.festival-to-paper__footer-copy {
  margin: 0;

  font-size: 14px;
  font-weight: 500;
  line-height: 1.75;

  color: var(--press-muted);
}

.festival-to-paper__cta {
  display: inline-flex;
  align-items: center;
  gap: 26px;

  padding: 13px 13px 13px 0;

  color: var(--press-ink);
  text-decoration: none;

  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.festival-to-paper__cta-arrow {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 54px;
  height: 54px;

  border-radius: 50%;

  background: var(--press-ink);
  color: #fff;

  transition:
    transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
    background-color 0.35s ease;
}

.festival-to-paper__cta-arrow svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.festival-to-paper__cta:hover .festival-to-paper__cta-arrow {
  transform: translateX(7px);
  background: var(--press-accent-dark);
}


/* ---------------------------------------------------------
   LOADING / EMPTY STATE
   --------------------------------------------------------- */

.press-books-message {
  grid-column: 1 / -1;

  padding: 100px 30px;

  text-align: center;

  font-size: 15px;
  line-height: 1.7;

  color: var(--press-muted);
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

  .festival-to-paper__inner {
    width: min(100% - 54px, 960px);
  }

  .festival-to-paper__header {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .festival-to-paper__statement {
    justify-content: flex-start;
  }

  .festival-to-paper__stage {
    min-height: auto;
  }

  .festival-to-paper__books {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto;

    gap: 100px 46px;
  }

  .press-book:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
  }

  .press-book:nth-child(1),
  .press-book:nth-child(4) {
    margin-top: 65px;
  }

  .press-book:nth-child(2),
  .press-book:nth-child(3),
  .press-book:nth-child(5),
  .press-book:nth-child(6) {
    margin-top: 0;
  }

  .press-book__visual {
    min-height: 410px;
  }

  .press-book__cover {
    height: 370px;
  }

  .festival-to-paper__orbit {
    width: 1100px;
    height: 630px;
    opacity: 0.6;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

  .festival-to-paper {
    padding: 78px 0 90px;
  }

  .festival-to-paper__inner {
    width: calc(100% - 34px);
  }

  .festival-to-paper__header {
    margin-bottom: 60px;
  }

  .festival-to-paper__title {
    font-size: clamp(48px, 14.5vw, 72px);
    line-height: 0.94;
  }

  .festival-to-paper__description {
    font-size: 16px;
    line-height: 1.7;
  }

  .festival-to-paper__statement {
    gap: 15px;
  }

  .festival-to-paper__count {
    font-size: 68px;
  }

  .festival-to-paper__stage {
    padding: 20px 0 45px;
  }

.festival-to-paper__stage {
    position: relative;
    overflow: hidden;
  }



  .festival-to-paper__stage {
    position: relative;
    overflow: hidden;
  }
///
  .festival-to-paper__stage::before {
    position: absolute;
    left: 50%;
    top: 48%;

    width: 115vw;
    height: 115vw;

    transform: translate(-50%, -50%);

    opacity: 0.75;
    pointer-events: none;
  }

///
  .festival-to-paper__orbit {
    display: none;
  }

  .festival-to-paper__books {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 65px 16px;
  }

  .press-book:nth-child(n) {
    margin-top: 0;
  }

  .press-book:nth-child(even) {
    margin-top: 48px;
  }

  .press-book__number {
    margin-bottom: 12px;
    font-size: 9px;
  }

  .press-book__number::after {
    width: 24px;
  }

  .press-book__visual {
    min-height: 260px;
  }

  .press-book__cover {
    max-width: 96%;
    height: 245px;
  }

  .press-book__ground-shadow {
    bottom: -11px;
    height: 18px;
  }

  .press-book__content {
    margin-top: 23px;
    padding-right: 0;
  }

  .press-book__title {
    font-size: 17px;
    line-height: 1.17;
  }

  .press-book__creators {
    margin-top: 8px;

    font-size: 9px;
    line-height: 1.55;
    letter-spacing: 0.07em;
  }

  .press-book__indicator {
    display: none;
  }

  .festival-to-paper__footer {
    grid-template-columns: 1fr;
    gap: 26px;

    margin-top: 55px;
  }

  .festival-to-paper__cta {
    justify-content: space-between;
    gap: 14px;

    font-size: 11px;
    line-height: 1.45;
  }

  .festival-to-paper__cta-arrow {
    flex: 0 0 auto;

    width: 48px;
    height: 48px;
  }

  .festival-to-paper__wordmark {
    top: 56%;
    font-size: 36vw;
    writing-mode: vertical-rl;
  }

}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 440px) {

  .festival-to-paper__books {
    gap: 55px 12px;
  }

  .press-book:nth-child(even) {
    margin-top: 38px;
  }

  .press-book__visual {
    min-height: 220px;
  }

  .press-book__cover {
    height: 205px;
  }

  .press-book__title {
    font-size: 15px;
  }

  .press-book__creators {
    font-size: 8px;
  }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .press-book,
  .press-book__cover,
  .press-book__cover-wrap,
  .press-book__spotlight,
  .press-book__ground-shadow,
  .press-book__indicator,
  .festival-to-paper__cta-arrow {
    transition: none !important;
  }

  .press-book {
    opacity: 1;
    transform: none;
  }

}

.press-book.press-book--visible {
  opacity: 1;
  transform: translateY(0);
}


.press-library-source {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
}

#press-books-grid .press-book {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
/* =========================================================
   ΛΕΠΤΟ ΠΑΧΟΣ ΣΕΛΙΔΩΝ
   Το wrapper ακολουθεί ακριβώς το μέγεθος του εξωφύλλου
   ========================================================= */

.press-book__cover-wrap {
  position: relative;

  display: flex;
  align-items: flex-end;
  justify-content: center;

  width: fit-content;
  max-width: 100%;
  margin-inline: auto;

  overflow: visible !important;
  transform-style: preserve-3d;
}


/* Το εξώφυλλο κρατά το αρχικό του ύψος */

.press-book__cover {
  position: relative;
  z-index: 3;

  display: block;

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

  object-fit: contain;

  border-radius: 2px 4px 4px 2px;
}


/* Σελίδες στη δεξιά πλευρά */

.press-book__cover-wrap::before {
  content: "";

  position: absolute;
  z-index: 1;

  top: 7px;
  right: -9px;

  /*
   * Σταματά λίγο πριν από το κάτω μέρος,
   * ώστε να μην επικαλύπτεται με τις κάτω σελίδες.
   */
  bottom: 3px;

  width: 10px;

  border-radius: 0 3px 2px 0;

  /*
   * to right = κάθετες γραμμές.
   */
  background:
    repeating-linear-gradient(
      to right,
      #f8f4eb 0,
      #f8f4eb 2px,
      #d7d0c4 3px,
      #eee9df 4px
    );

  box-shadow:
    4px 3px 8px rgba(38, 20, 48, 0.16),
    inset 1px 0 0 rgba(255, 255, 255, 0.78),
    inset -1px 0 0 rgba(112, 97, 82, 0.12);

  pointer-events: none;
}


/* Κάτω πλευρά σελίδων:
   οριζόντιες γραμμές και καθαρή δεξιά γωνία */

/* Σελίδες στην κάτω πλευρά */

.press-book__cover-wrap::after {
  content: "";

  position: absolute;
  z-index: 2;

  left: 5px;

  /*
   * Δεν περνά κάτω από όλο το δεξί πάχος.
   * Έτσι καθαρίζει η κάτω δεξιά γωνία.
   */
  right: -3px;

  bottom: -8px;
  height: 9px;

  border-radius: 0 0 3px 2px;

  /*
   * to bottom = οριζόντιες γραμμές.
   */
  background:
    repeating-linear-gradient(
      to bottom,
      #f8f4eb 0,
      #f8f4eb 2px,
      #d7d0c4 3px,
      #eee9df 4px
    );

  /*
   * Πολύ μικρή προοπτική, χωρίς την έντονη μύτη
   * που δημιουργούσε το προηγούμενο skew.
   */
  transform:
    translateX(1px)
    skewX(-5deg);

  transform-origin: left top;

  box-shadow:
    1px 4px 7px rgba(38, 20, 48, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.75);

  pointer-events: none;
}


/* Η κανονική σκιά παραμένει πίσω από το βιβλίο */

.press-book__ground-shadow {
  z-index: -1;
}


/* Hover */

@media (hover: hover) {

  .press-book__link:hover .press-book__cover-wrap::before {
    right: -10px;
    width: 11px;
  }

  .press-book__link:hover .press-book__cover-wrap::after {
    right: -7px;
  }

}


/* Tablet */

@media (max-width: 1100px) {

  .press-book__cover {
    height: 370px;
  }

  .press-book__cover-wrap::before {
    right: -7px;
    width: 8px;
  }

  .press-book__cover-wrap::after {
    bottom: -5px;
    height: 6px;
  }

}


/* Mobile */

@media (max-width: 700px) {

  .press-book__cover {
    width: auto;
    max-width: 100%;
    height: 245px;
  }

  .press-book__cover-wrap::before {
    top: 4px;
    right: -5px;
    bottom: 4px;
    width: 6px;
  }

  .press-book__cover-wrap::after {
    left: 3px;
    right: -3px;
    bottom: -4px;
    height: 5px;

    transform: skewX(-10deg);
  }

}
/* Κρατά το εξώφυλλο καθαρά πάνω από την ένωση των σελίδων */

.press-book__cover {
  position: relative;
  z-index: 4;
}


/* Πιο καθαρή κάτω δεξιά γωνία */

.press-book__cover {
  border-radius: 2px 4px 3px 2px;
}

/* Πολύ μικρά κινητά */

@media (max-width: 440px) {

  .press-book__cover {
    height: 205px;
  }

}

@media (max-width: 1100px) {

  .press-book__cover-wrap::before {
    right: -8px;
    width: 9px;
  }

  .press-book__cover-wrap::after {
    bottom: -7px;
    height: 8px;
  }

}


@media (max-width: 700px) {

  .press-book__cover-wrap::before {
    top: 4px;
    right: -5px;
    bottom: 2px;
    width: 6px;
  }

  .press-book__cover-wrap::after {
    left: 3px;
    right: -2px;
    bottom: -5px;
    height: 6px;

    transform:
      translateX(1px)
      skewX(-4deg);
  }

}
/* ==========================================================
   FESTIVAL WORKSHOPS — EDITORIAL VERSION
   ========================================================== */

.festival-workshops {
    --workshops-bg: #1b181f;
    --workshops-surface: #211e26;
    --workshops-surface-hover: #28232d;
    --workshops-text: #faf6ed;
    --workshops-muted: rgba(250, 246, 237, 0.61);
    --workshops-line: rgba(255, 255, 255, 0.115);
    --workshops-accent: #ffbf82;
    --workshops-purple: #b273e0;

    position: relative;
    isolation: isolate;
    overflow: hidden;

    padding:
        clamp(90px, 10vw, 155px)
        clamp(20px, 4vw, 54px);

    background: var(--workshops-bg);
    color: var(--workshops-text);
}


/* ==========================================================
   BACKGROUND ELEMENTS
   ========================================================== */

.festival-workshops::before {
    content: "";
    position: absolute;
    z-index: -1;

    top: -245px;
    right: -185px;

    width: 610px;
    height: 610px;

    border: 1px solid rgba(178, 115, 224, 0.16);
    border-radius: 50%;

    pointer-events: none;
}

.festival-workshops::after {
    content: "";
    position: absolute;
    z-index: -1;

    bottom: -315px;
    left: -215px;

    width: 660px;
    height: 660px;

    border: 1px solid rgba(255, 191, 130, 0.13);
    border-radius: 50%;

    pointer-events: none;
}

.festival-workshops__background-word {
    position: absolute;
    z-index: -1;

    left: 50%;
    top: 51%;

    color: transparent;

    font-size: clamp(145px, 22vw, 390px);
    font-weight: 900;
    line-height: 0.75;
    letter-spacing: -0.085em;

    -webkit-text-stroke:
        1px rgba(255, 255, 255, 0.035);

    transform:
        translate(-50%, -50%)
        rotate(-5deg);

    user-select: none;
    pointer-events: none;
}

.festival-workshops__inner {
    position: relative;
    z-index: 1;

    width: min(1440px, 100%);
    margin-inline: auto;
}


/* ==========================================================
   HEADING
   ========================================================== */

.festival-workshops__heading {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(310px, 0.65fr);

    align-items: end;
    gap: clamp(40px, 7vw, 105px);

    margin-bottom: clamp(52px, 7vw, 92px);
}

.festival-workshops__heading-main {
    min-width: 0;
}

.festival-workshops__kicker {
    display: block;

    margin-bottom: clamp(20px, 2.4vw, 34px);

    color: var(--workshops-accent);

    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.28em;
}

.festival-workshops__heading h2 {
    position: relative;
    z-index: 1;

    max-width: 930px;
    margin: 0;

    font-size: clamp(68px, 10.2vw, 148px);
    font-weight: 800;
    line-height: 0.82;
    letter-spacing: -0.072em;
}

.festival-workshops__intro {
    position: relative;
    z-index: 2;

    padding-bottom: 4px;
}

.festival-workshops__intro p {
    max-width: 445px;
    margin: 0 0 35px;

    color: var(--workshops-muted);

    font-size: clamp(15px, 1.25vw, 19px);
    line-height: 1.72;
}


/* Statistics */

.festival-workshops__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    border-top: 1px solid var(--workshops-line);
    border-bottom: 1px solid var(--workshops-line);
}

.festival-workshops__stat {
    min-width: 0;
    padding: 17px 14px 16px 0;
}

.festival-workshops__stat + .festival-workshops__stat {
    padding-left: 17px;
    border-left: 1px solid var(--workshops-line);
}

.festival-workshops__stat strong {
    display: block;

    margin-bottom: 5px;

    color: var(--workshops-text);

    font-size: clamp(23px, 2vw, 31px);
    font-weight: 650;
    line-height: 1;
    letter-spacing: -0.045em;
}

.festival-workshops__stat span {
    display: block;

    color: var(--workshops-muted);

    font-size: 9px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.105em;
    text-transform: uppercase;
}


/* ==========================================================
   FILTERS
   ========================================================== */

.festival-workshops__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;

    padding-bottom: 29px;
    margin-bottom: 39px;

    border-bottom: 1px solid var(--workshops-line);
}

.festival-workshops__filter {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    min-height: 46px;
    padding: 10px 17px;

    border: 1px solid var(--workshops-line);
    border-radius: 999px;

    background: transparent;
    color: var(--workshops-muted);

    font: inherit;
    font-size: 13px;
    font-weight: 650;

    cursor: pointer;

    transition:
        color 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}

.festival-workshops__filter span {
    display: grid;
    place-items: center;

    min-width: 24px;
    height: 24px;
    padding-inline: 6px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.075);

    font-size: 10px;
}

.festival-workshops__filter:hover {
    border-color: rgba(255, 191, 130, 0.5);
    color: var(--workshops-text);
    transform: translateY(-2px);
}

.festival-workshops__filter.is-active {
    border-color: var(--workshops-accent);
    background: var(--workshops-accent);
    color: #251b29;
}

.festival-workshops__filter.is-active span {
    background: rgba(37, 27, 41, 0.13);
}


/* ==========================================================
   SCHEDULE
   ========================================================== */

.festival-workshops__schedule {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(13px, 1.6vw, 22px);

    align-items: start;
}

.festival-workshops__day {
    min-width: 0;
    overflow: hidden;

    border: 1px solid var(--workshops-line);
    border-radius: 7px;

    background:
        linear-gradient(
            155deg,
            rgba(255, 255, 255, 0.035),
            rgba(255, 255, 255, 0.012)
        );

    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        border-color 0.3s ease;
}

.festival-workshops__day:hover {
    border-color: rgba(255, 255, 255, 0.19);
}

.festival-workshops__day.is-hidden {
    display: none;
}


/* ==========================================================
   DAY HEADING
   ========================================================== */

.festival-workshops__day-heading {
    position: relative;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    min-height: 182px;
    padding: 27px;

    overflow: hidden;

    border-bottom: 1px solid var(--workshops-line);

    background:
        linear-gradient(
            145deg,
            rgba(178, 115, 224, 0.15),
            rgba(178, 115, 224, 0.015) 67%
        );
}

.festival-workshops__day-heading::after {
    content: "DAY";

    position: absolute;
    right: 17px;
    top: 13px;

    color: rgba(255, 255, 255, 0.042);

    font-size: 57px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.08em;

    pointer-events: none;
}

.festival-workshops__day--special
.festival-workshops__day-heading {
    background:
        linear-gradient(
            145deg,
            rgba(255, 191, 130, 0.18),
            rgba(255, 191, 130, 0.015) 67%
        );
}

.festival-workshops__day-name {
    display: block;

    margin-bottom: 14px;

    color: var(--workshops-muted);

    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.festival-workshops__day-heading strong {
    display: block;

    font-size: clamp(74px, 7vw, 108px);
    font-weight: 750;
    line-height: 0.7;
    letter-spacing: -0.08em;
}

.festival-workshops__month {
    max-width: 92px;

    color: var(--workshops-muted);

    font-size: 9px;
    font-weight: 700;
    line-height: 1.4;
    text-align: right;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}


/* ==========================================================
   WORKSHOP LINKS
   ========================================================== */

.festival-workshops__list {
    padding: 8px 18px;
}

.festival-workshop {
    position: relative;

    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) 27px;
    align-items: start;
    gap: 14px;

    padding: 24px 7px;

    border-bottom: 1px solid var(--workshops-line);

    color: inherit;
    text-decoration: none;

    outline: none;
}

.festival-workshop:last-child {
    border-bottom: 0;
}

.festival-workshop::before {
    content: "";

    position: absolute;
    inset: 7px -9px;
    z-index: -1;

    border: 1px solid transparent;
    border-radius: 5px;

    background:
        linear-gradient(
            100deg,
            rgba(178, 115, 224, 0.12),
            rgba(255, 191, 130, 0.055)
        );

    opacity: 0;
    transform: translateX(-7px);

    transition:
        opacity 0.25s ease,
        transform 0.3s ease,
        border-color 0.25s ease;
}

.festival-workshop:hover::before,
.festival-workshop:focus-visible::before {
    opacity: 1;
    transform: translateX(0);
    border-color: rgba(255, 191, 130, 0.25);
}

.festival-workshop__time {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: fit-content;
    min-width: 48px;
    min-height: 28px;
    padding: 5px 7px;

    border: 1px solid rgba(255, 191, 130, 0.24);
    border-radius: 999px;

    background: rgba(255, 191, 130, 0.07);
    color: var(--workshops-accent);

    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.festival-workshop__content {
    min-width: 0;
}

.festival-workshop h3 {
    margin: 0 0 8px;

    color: var(--workshops-text);

    font-size: clamp(18px, 1.45vw, 23px);
    font-weight: 520;
    line-height: 1.15;
    letter-spacing: -0.025em;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.festival-workshop__type {
    display: block;

    color: var(--workshops-purple);

    font-size: 9px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.festival-workshop p {
    max-height: 0;
    margin: 0;

    overflow: hidden;

    color: var(--workshops-muted);

    font-size: 12px;
    line-height: 1.55;

    opacity: 0;
    transform: translateY(5px);

    transition:
        max-height 0.3s ease,
        margin-top 0.3s ease,
        opacity 0.25s ease,
        transform 0.25s ease;
}

.festival-workshop__arrow {
    display: grid;
    place-items: center;

    width: 27px;
    height: 27px;

    border: 1px solid var(--workshops-line);
    border-radius: 50%;

    color: var(--workshops-muted);

    font-size: 12px;
    line-height: 1;

    transition:
        color 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}

.festival-workshop:hover h3,
.festival-workshop:focus-visible h3 {
    color: var(--workshops-accent);
    transform: translateX(3px);
}

.festival-workshop:hover p,
.festival-workshop:focus-visible p {
    max-height: 70px;
    margin-top: 10px;

    opacity: 1;
    transform: translateY(0);
}

.festival-workshop:hover .festival-workshop__arrow,
.festival-workshop:focus-visible .festival-workshop__arrow {
    border-color: var(--workshops-accent);
    background: var(--workshops-accent);
    color: #251b29;

    transform:
        translate(3px, -3px)
        rotate(5deg);
}


/* ==========================================================
   FOOTER
   ========================================================== */

.festival-workshops__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;

    margin-top: 52px;
    padding-top: 27px;

    border-top: 1px solid var(--workshops-line);
}

.festival-workshops__footer p {
    margin: 0;

    color: var(--workshops-muted);

    font-size: 12px;
    letter-spacing: 0.025em;
}

.festival-workshops__footer a {
    display: inline-flex;
    align-items: center;
    gap: 24px;

    color: var(--workshops-text);

    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.festival-workshops__footer a span:last-child {
    display: grid;
    place-items: center;

    width: 46px;
    height: 46px;

    border-radius: 50%;

    background: var(--workshops-accent);
    color: #251b29;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.festival-workshops__footer a:hover span:last-child {
    transform: translateX(5px);
    box-shadow: 0 8px 25px rgba(255, 191, 130, 0.2);
}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1050px) {

    .festival-workshops__heading {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .festival-workshops__intro {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 35px;
        align-items: end;
    }

    .festival-workshops__intro p {
        margin-bottom: 0;
    }

    .festival-workshops__schedule {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .festival-workshops__day:first-child {
        grid-column: 1 / -1;
    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 700px) {

    .festival-workshops {
        padding:
            clamp(76px, 20vw, 105px)
            16px;
    }

    .festival-workshops::before,
    .festival-workshops::after {
        display: none;
    }

    .festival-workshops__background-word {
        display: none;
    }

    .festival-workshops__heading {
        display: block;
        margin-bottom: 44px;
    }

    .festival-workshops__kicker {
        margin-bottom: 22px;
        font-size: 9px;
    }

    .festival-workshops__heading h2 {
        max-width: 100%;
        font-size: clamp(54px, 17vw, 78px);
        line-height: 0.88;
    }

    .festival-workshops__intro {
        display: block;
        margin-top: 30px;
    }

    .festival-workshops__intro p {
        margin-bottom: 28px;
        font-size: 15px;
    }

    .festival-workshops__stats {
        grid-template-columns: repeat(3, 1fr);
    }

    .festival-workshops__stat {
        padding-block: 14px;
    }

    .festival-workshops__stat strong {
        font-size: 22px;
    }

    .festival-workshops__stat span {
        font-size: 8px;
    }

    .festival-workshops__filters {
        flex-wrap: nowrap;

        margin-right: -16px;
        padding-right: 16px;

        overflow-x: auto;
        scrollbar-width: none;
    }

    .festival-workshops__filters::-webkit-scrollbar {
        display: none;
    }

    .festival-workshops__filter {
        flex: 0 0 auto;
    }

    .festival-workshops__schedule {
        grid-template-columns: 1fr;
    }

    .festival-workshops__day:first-child {
        grid-column: auto;
    }

    .festival-workshops__day-heading {
        min-height: 145px;
        padding: 22px;
    }

    .festival-workshops__day-heading strong {
        font-size: 76px;
    }

    .festival-workshops__list {
        padding-inline: 14px;
    }

    .festival-workshop {
        grid-template-columns: 58px minmax(0, 1fr) 27px;
        gap: 10px;
        padding-block: 21px;
    }

    .festival-workshop h3 {
        font-size: 20px;
    }

    .festival-workshop p {
        max-height: none;
        margin-top: 8px;

        opacity: 1;
        transform: none;
    }

    .festival-workshops__footer {
        align-items: flex-start;
        flex-direction: column;
    }

}

/* ==========================================================
   GALLERY STATEMENT
   ========================================================== */

.festival-gallery__statement {
    display: grid;
    gap: 0;

    border-top: 1px solid var(--gallery-line);
    border-bottom: 1px solid var(--gallery-line);
}

.festival-gallery__statement-item {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 24px;

    padding: 18px 0;
}

.festival-gallery__statement-item + .festival-gallery__statement-item {
    border-top: 1px solid var(--gallery-line);
}

.festival-gallery__statement-item::after {
    content: "—";

    color: rgba(33, 27, 38, 0.28);

    font-size: 15px;
    font-weight: 400;
}

.festival-gallery__statement-item strong {
    color: var(--gallery-text);

    font-size: clamp(20px, 1.9vw, 31px);
    font-weight: 720;
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.festival-gallery__statement-item span {
    grid-column: 1;

    margin-top: -13px;

    color: var(--gallery-muted);

    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

@media (max-width: 700px) {

    .festival-gallery__statement-item {
        grid-template-columns: 1fr;
        gap: 7px;

        padding: 16px 0;
    }

    .festival-gallery__statement-item::after {
        display: none;
    }

    .festival-gallery__statement-item strong {
        font-size: 22px;
    }

    .festival-gallery__statement-item span {
        margin-top: 0;
    }

}/* ==========================================================
   CHANIARTOON — LATEST NEWS
   EDITORIAL THREE-COLUMN LAYOUT

   CSS Class:
   chaniartoon-latest-news
   ========================================================== */

.chaniartoon-latest-news {
    --news-text: #211b26;
    --news-muted: rgba(33, 27, 38, 0.58);
    --news-soft: rgba(33, 27, 38, 0.08);
    --news-line: rgba(33, 27, 38, 0.16);
    --news-purple: #7339a3;
    --news-orange: #ffbf82;

    position: relative;

    width: 100vw !important;
    max-width: none !important;

    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;

    padding:
        clamp(80px, 8vw, 135px)
        clamp(24px, 5vw, 100px)
        clamp(95px, 9vw, 155px);

    box-sizing: border-box;

    background: #fff;
}


/* ==========================================================
   COLLECTION — THREE COLUMNS
   Λειτουργεί είτε η class βρίσκεται στο wrapper
   είτε στο ίδιο το collection.
   ========================================================== */

:is(
    .sppb-dynamic-content-collection.chaniartoon-latest-news,
    .chaniartoon-latest-news .sppb-dynamic-content-collection
) {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1.22fr)
        minmax(0, 0.94fr)
        minmax(0, 0.94fr);

    align-items: start;

    column-gap: 0;
    row-gap: 0;

    width: min(1720px, 100%) !important;
    max-width: none !important;

    margin: 0 auto !important;
}


/* ==========================================================
   ARTICLE COLUMNS
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item {
    position: relative;

    display: block;
    min-width: 0;

    margin: 0;
    padding: 0 clamp(30px, 3.2vw, 62px);

    color: var(--news-text);
    background: transparent;

    cursor: pointer;
}


/* Πρώτη στήλη */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(1) {
    grid-column: 1;
    grid-row: 1;

    padding-left: 0;
}


/* Δεύτερη στήλη */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(2) {
    grid-column: 2;
    grid-row: 1;

    margin-top: clamp(90px, 8vw, 145px);

    border-left: 1px solid var(--news-line);
}


/* Τρίτη στήλη */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(3) {
    grid-column: 3;
    grid-row: 1;

    margin-top: clamp(30px, 3vw, 60px);

    padding-right: 0;

    border-left: 1px solid var(--news-line);
}


/* Keyboard focus */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:focus-visible {
    outline: 3px solid var(--news-purple);
    outline-offset: 8px;
}


/* ==========================================================
   LARGE EDITORIAL NUMBERS
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item::before {
    display: block;

    margin-bottom: clamp(24px, 2.5vw, 38px);

    color: transparent;

    font-size: clamp(76px, 7vw, 125px);
    font-weight: 850;
    line-height: 0.72;
    letter-spacing: -0.08em;

    -webkit-text-stroke:
        1px rgba(33, 27, 38, 0.22);

    pointer-events: none;
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(1)::before {
    content: "01";
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(2)::before {
    content: "02";
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(3)::before {
    content: "03";
}


/* ==========================================================
   IMAGE
   ========================================================== */

.chaniartoon-latest-news
.addon-root-dynamic-content-image {
    position: relative;

    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            rgba(33, 27, 38, 0.025),
            rgba(33, 27, 38, 0.095)
        );
}


.chaniartoon-latest-news
.sppb-dynamic-content-image-wrapper {
    width: 100%;
    height: 100%;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden;
}


.chaniartoon-latest-news
.sppb-dynamic-content-image {
    display: block;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;

    object-fit: cover !important;
    object-position: center;

    transform: scale(1.008);

    transition:
        transform 0.85s cubic-bezier(.2, .7, .2, 1),
        filter 0.45s ease;
}


/* Διαφορετικές αναλογίες ανά στήλη */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(1)
.addon-root-dynamic-content-image {
    height: clamp(470px, 39vw, 680px);
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(2)
.addon-root-dynamic-content-image {
    height: clamp(300px, 25vw, 430px);
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(3)
.addon-root-dynamic-content-image {
    height: clamp(380px, 31vw, 535px);
}


/* Διακριτικό gradient */

.chaniartoon-latest-news
.addon-root-dynamic-content-image::after {
    content: "";

    position: absolute;
    inset: 0;
    z-index: 1;

    background:
        linear-gradient(
            to top,
            rgba(20, 14, 23, 0.29),
            transparent 52%
        );

    opacity: 0.45;

    pointer-events: none;

    transition: opacity 0.4s ease;
}


/* NEWS label επάνω στην εικόνα */

.chaniartoon-latest-news
.addon-root-dynamic-content-image::before {
    content: "LATEST STORY";

    position: absolute;
    z-index: 3;

    top: 18px;
    left: 18px;

    display: inline-flex;
    align-items: center;

    min-height: 29px;
    padding: 0 13px;

    border-radius: 999px;

    background: var(--news-orange);
    color: var(--news-text);

    font-size: 8px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.17em;

    pointer-events: none;
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(n+2)
.addon-root-dynamic-content-image::before {
    content: "NEWS";
}


/* Hover */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:hover
.sppb-dynamic-content-image {
    transform: scale(1.055);
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:hover
.addon-root-dynamic-content-image::after {
    opacity: 0.82;
}


/* ==========================================================
   TEXT RESET
   ========================================================== */

.chaniartoon-latest-news
.addon-root-dynamic-content-text {
    margin: 0 !important;
    padding: 0 !important;
}


.chaniartoon-latest-news
.sppb-dynamic-content-text {
    margin: 0 !important;
    padding: 0 !important;

    color: inherit;

    font-family: inherit;
}


/* ==========================================================
   TITLE
   1ο addon = image
   2ο addon = title
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(2) {
    margin-top: clamp(28px, 2.6vw, 43px) !important;
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(2)
.sppb-dynamic-content-text {
    position: relative;

    max-width: 100%;

    color: var(--news-text);

    font-weight: 760;
    line-height: 1.02;
    letter-spacing: -0.05em;
}


/* Κύριο άρθρο */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(1)
> .addon-root-dynamic-content-text:nth-of-type(2)
.sppb-dynamic-content-text {
    font-size: clamp(44px, 4vw, 69px);
    line-height: 0.96;
    letter-spacing: -0.065em;
}


/* Δεύτερο άρθρο */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(2)
> .addon-root-dynamic-content-text:nth-of-type(2)
.sppb-dynamic-content-text {
    font-size: clamp(29px, 2.45vw, 43px);
}


/* Τρίτο άρθρο */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(3)
> .addon-root-dynamic-content-text:nth-of-type(2)
.sppb-dynamic-content-text {
    font-size: clamp(32px, 2.7vw, 47px);
}


/* Μικρή γραμμή κάτω από τον τίτλο */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(2)
.sppb-dynamic-content-text::after {
    content: "";

    display: block;

    width: 42px;
    height: 2px;

    margin-top: clamp(20px, 2vw, 29px);

    background: var(--news-orange);
}


/* ==========================================================
   AUTHOR — HIDDEN
   3ο addon
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(3) {
    display: none !important;
}


/* ==========================================================
   DATE
   4ο addon
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(4) {
    margin-top: clamp(17px, 1.5vw, 23px) !important;
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(4)
.sppb-dynamic-content-text {
    color: var(--news-purple);

    font-size: 9px;
    font-weight: 850;
    line-height: 1.4;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}


/* ==========================================================
   INTRO
   5ο addon
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(5) {
    margin-top: clamp(18px, 1.8vw, 27px) !important;
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(5)
.sppb-dynamic-content-text {
    display: -webkit-box;
    overflow: hidden;

    color: var(--news-muted);

    font-size: clamp(14px, 1vw, 17px);
    font-weight: 400;
    line-height: 1.72;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}


/* Πρώτο άρθρο — πιο στενό κείμενο */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(1)
> .addon-root-dynamic-content-text:nth-of-type(5)
.sppb-dynamic-content-text {
    max-width: 600px;
}


/* Δευτερεύοντα άρθρα */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:nth-child(n+2)
> .addon-root-dynamic-content-text:nth-of-type(5)
.sppb-dynamic-content-text {
    font-size: 14px;
    line-height: 1.65;

    -webkit-line-clamp: 3;
}


/* ==========================================================
   READ ARTICLE LINK INDICATOR
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(5)::after {
    content: "ΔΙΑΒΑΣΤΕ ΤΟ ΑΡΘΡΟ  ↗";

    display: block;

    margin-top: clamp(24px, 2.2vw, 35px);

    color: var(--news-text);

    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.16em;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}


.chaniartoon-latest-news
.sppb-dynamic-content-collection__item:hover
> .addon-root-dynamic-content-text:nth-of-type(5)::after {
    color: var(--news-purple);
    transform: translateX(5px);
}


/* ==========================================================
   URL — HIDDEN
   6ο addon
   ========================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item
> .addon-root-dynamic-content-text:nth-of-type(6) {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    margin: -1px !important;
    padding: 0 !important;

    overflow: hidden !important;

    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;

    white-space: nowrap !important;
}


/* ==========================================================
   SMALL DESKTOP / TABLET
   ========================================================== */

@media (max-width: 1150px) {

    :is(
        .sppb-dynamic-content-collection.chaniartoon-latest-news,
        .chaniartoon-latest-news .sppb-dynamic-content-collection
    ) {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        column-gap: 0;
        row-gap: 70px;
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item {
        padding-inline: 35px;
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(1) {
        grid-column: 1 / -1;

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


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(2) {
        grid-column: 1;

        margin-top: 0;
        padding-left: 0;

        border-left: 0;
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(3) {
        grid-column: 2;

        margin-top: 0;
        padding-right: 0;
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(1)
    .addon-root-dynamic-content-image {
        height: clamp(480px, 62vw, 650px);
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(n+2)
    .addon-root-dynamic-content-image {
        height: 330px;
    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 700px) {

    .chaniartoon-latest-news {
        padding:
            75px
            17px
            90px;
    }


    :is(
        .sppb-dynamic-content-collection.chaniartoon-latest-news,
        .chaniartoon-latest-news .sppb-dynamic-content-collection
    ) {
        display: block !important;
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item,

    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(1),

    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(2),

    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(3) {
        display: block;

        margin: 0 0 55px;
        padding: 0 0 52px;

        border-left: 0;
        border-bottom: 1px solid var(--news-line);
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item::before {
        margin-bottom: 22px;

        font-size: 78px;
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item
    .addon-root-dynamic-content-image {
        height: clamp(250px, 74vw, 345px);
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(1)
    > .addon-root-dynamic-content-text:nth-of-type(2)
    .sppb-dynamic-content-text {
        font-size: clamp(38px, 11vw, 53px);
    }


    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item:nth-child(n+2)
    > .addon-root-dynamic-content-text:nth-of-type(2)
    .sppb-dynamic-content-text {
        font-size: clamp(30px, 8.5vw, 39px);
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .chaniartoon-latest-news
    .sppb-dynamic-content-image,

    .chaniartoon-latest-news
    .addon-root-dynamic-content-image::after,

    .chaniartoon-latest-news
    .sppb-dynamic-content-collection__item
    > .addon-root-dynamic-content-text:nth-of-type(5)::after {
        transition: none;
    }

}

/* ==========================================================
   CHANIARTOON — NEWSLETTER
   ========================================================== */

.festival-newsletter {
    --newsletter-bg: #211b26;
    --newsletter-text: #f7f1e8;
    --newsletter-orange: #ffbf82;
    --newsletter-purple: #b273e0;
    --newsletter-error: #ff9e9e;

    --newsletter-muted: rgba(247, 241, 232, 0.62);
    --newsletter-soft: rgba(247, 241, 232, 0.44);
    --newsletter-line: rgba(247, 241, 232, 0.18);

    position: relative;
    isolation: isolate;
    overflow: hidden;

    width: 100vw;
    max-width: none;

    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);

    padding:
        clamp(100px, 10vw, 170px)
        clamp(24px, 5vw, 100px);

    box-sizing: border-box;

    background: var(--newsletter-bg);
    color: var(--newsletter-text);
}


/* ==========================================================
   BACKGROUND WORD — CONNECT
   ========================================================== */

.festival-newsletter__background-word {
    position: absolute;
    z-index: -1;

    top: 50%;
    left: 50%;

    color: transparent;

    font-size: clamp(160px, 25vw, 450px);
    font-weight: 900;
    line-height: 0.7;
    letter-spacing: -0.095em;

    -webkit-text-stroke:
        1px rgba(247, 241, 232, 0.055);

    transform:
        translate(-50%, -50%)
        rotate(-4deg);

    white-space: nowrap;
    pointer-events: none;
    user-select: none;

    transition:
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        -webkit-text-stroke-color 0.5s ease;
}

.festival-newsletter.has-form-focus
.festival-newsletter__background-word {
    -webkit-text-stroke-color:
        rgba(255, 191, 130, 0.085);

    transform:
        translate(calc(-50% - 4px), -50%)
        rotate(-4deg);
}


/* ==========================================================
   MAIN LAYOUT
   ========================================================== */

.festival-newsletter__inner {
    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(430px, 0.92fr);

    align-items: end;

    gap: clamp(70px, 9vw, 165px);

    width: min(1680px, 100%);
    margin-inline: auto;
}


/* ==========================================================
   LEFT SIDE
   ========================================================== */

.festival-newsletter__kicker {
    display: block;

    margin-bottom: clamp(22px, 2vw, 31px);

    color: var(--newsletter-orange);

    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.27em;
    text-transform: uppercase;
}

.festival-newsletter__intro h2 {
    max-width: 980px;
    margin: 0;

    color: var(--newsletter-text);

    font-size: clamp(65px, 8vw, 136px);
    font-weight: 800;
    line-height: 0.84;
    letter-spacing: -0.075em;
}


/* ==========================================================
   RIGHT SIDE
   ========================================================== */

.festival-newsletter__content {
    width: 100%;
    max-width: 660px;

    justify-self: end;
}

.festival-newsletter__description {
    max-width: 570px;

    margin:
        0
        0
        clamp(34px, 4vw, 55px);

    color: var(--newsletter-muted);

    font-size: clamp(16px, 1.2vw, 20px);
    line-height: 1.72;
}


/* ==========================================================
   FORM CONTAINER
   ========================================================== */

.festival-newsletter__form-shell {
    position: relative;

    padding:
        clamp(38px, 3vw, 52px)
        clamp(4px, 1vw, 12px)
        clamp(32px, 2.5vw, 42px);

    border-top: 1px solid var(--newsletter-line);
    border-bottom: 1px solid var(--newsletter-line);

    background: transparent;

    transition:
        border-color 0.35s ease;
}

.festival-newsletter__form-shell::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 0;

    width: 58px;
    height: 2px;

    background: var(--newsletter-orange);

    transform-origin: left center;

    transition:
        width 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.35s ease;
}

.festival-newsletter.has-form-focus
.festival-newsletter__form-shell::before {
    width: 145px;

    box-shadow:
        0 0 20px
        rgba(255, 191, 130, 0.28);
}

.festival-newsletter__form-content {
    position: relative;
    width: 100%;
}


/* ==========================================================
   LARGE NUMBER — 10
   ========================================================== */

.festival-newsletter__form-number {
    position: absolute;
    z-index: 0;

    top: 17px;
    right: 18px;

    color: transparent;

    font-size: clamp(45px, 4vw, 70px);
    font-weight: 850;
    line-height: 1;
    letter-spacing: -0.08em;

    -webkit-text-stroke:
        1px rgba(247, 241, 232, 0.17);

    pointer-events: none;

    transition:
        transform 0.45s ease,
        filter 0.45s ease,
        -webkit-text-stroke-color 0.45s ease;
}

.festival-newsletter.has-form-focus
.festival-newsletter__form-number {
    -webkit-text-stroke-color:
        rgba(255, 191, 130, 0.48);

    filter:
        drop-shadow(
            0 0 11px
            rgba(255, 191, 130, 0.14)
        );

    transform: translateY(-3px);
}


/* ==========================================================
   FORM
   ========================================================== */

.chaniartoon-newsletter-form {
    position: relative;
    z-index: 1;

    display: block;

    width: 100%;
    padding-top: 34px;
}

.festival-newsletter.is-success
.chaniartoon-newsletter-form {
    display: none;
}


/* ==========================================================
   EMAIL FIELD
   ========================================================== */

.chaniartoon-newsletter-form__field {
    position: relative;
    margin-bottom: 32px;
}

.chaniartoon-newsletter-form__field label {
    display: block;

    margin-bottom: 13px;

    color: rgba(247, 241, 232, 0.7);

    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.chaniartoon-newsletter-form__input-wrap {
    position: relative;
}

.chaniartoon-newsletter-form__field input {
    display: block;

    width: 100%;
    height: 58px;

    padding: 0 3px;

    border: 0;
    border-bottom:
        1px solid rgba(247, 241, 232, 0.28);

    border-radius: 0;

    box-sizing: border-box;
    outline: none;

    background: transparent;
    color: var(--newsletter-text);

    font-family: inherit;
    font-size: 17px;
    font-weight: 400;
    line-height: 1;

    box-shadow: none;

    transition:
        padding-left 0.3s ease,
        border-color 0.3s ease;
}

.chaniartoon-newsletter-form__field
input::placeholder {
    color: rgba(247, 241, 232, 0.27);
    opacity: 1;
}

.chaniartoon-newsletter-form__field
input:focus {
    padding-left: 10px;

    border-bottom-color:
        rgba(255, 191, 130, 0.35);
}


/* Animated underline */

.chaniartoon-newsletter-form__input-line {
    position: absolute;

    bottom: 0;
    left: 0;

    width: 100%;
    height: 2px;

    background: var(--newsletter-orange);

    transform: scaleX(0);
    transform-origin: left center;

    transition:
        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.3s ease;
}

.chaniartoon-newsletter-form__field
input:focus
+
.chaniartoon-newsletter-form__input-line {
    transform: scaleX(1);
}

.chaniartoon-newsletter-form__field
input.is-valid
+
.chaniartoon-newsletter-form__input-line {
    background: var(--newsletter-orange);
    transform: scaleX(1);
}

.chaniartoon-newsletter-form__field
input.is-invalid:not(:focus)
+
.chaniartoon-newsletter-form__input-line {
    background: var(--newsletter-error);
    transform: scaleX(1);
}


/* Browser autofill */

.chaniartoon-newsletter-form__field
input:-webkit-autofill,

.chaniartoon-newsletter-form__field
input:-webkit-autofill:hover,

.chaniartoon-newsletter-form__field
input:-webkit-autofill:focus {
    -webkit-text-fill-color:
        var(--newsletter-text);

    -webkit-box-shadow:
        0 0 0 1000px
        var(--newsletter-bg)
        inset;

    transition:
        background-color
        9999s
        ease-in-out
        0s;
}


/* ==========================================================
   SUBMIT BUTTON
   ========================================================== */

.chaniartoon-newsletter-form__submit {
    position: relative;

    display: block;

    width: 100%;
    min-height: 62px;

    padding: 0;

    border: 0;
    border-top:
        1px solid rgba(247, 241, 232, 0.25);

    border-bottom:
        1px solid rgba(247, 241, 232, 0.25);

    border-radius: 0;

    background: transparent;
    color: var(--newsletter-text);

    font-family: inherit;

    cursor: pointer;
    overflow: hidden;

    transition:
        color 0.3s ease,
        border-color 0.3s ease;
}

.chaniartoon-newsletter-form__submit::before {
    content: "";

    position: absolute;
    inset: 0;

    background: var(--newsletter-orange);

    transform: scaleX(0);
    transform-origin: left center;

    transition:
        transform 0.4s
        cubic-bezier(0.22, 1, 0.36, 1);
}

.chaniartoon-newsletter-form__button-default {
    position: relative;
    z-index: 1;

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

    width: 100%;
    min-height: 62px;

    padding: 0 4px;

    box-sizing: border-box;

    transition:
        padding 0.3s ease,
        opacity 0.25s ease,
        transform 0.25s ease;
}

.chaniartoon-newsletter-form__button-text {
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.chaniartoon-newsletter-form__arrow {
    font-size: 21px;
    font-weight: 400;
    line-height: 1;

    transition:
        transform 0.3s ease;
}

.chaniartoon-newsletter-form__submit:hover {
    color: var(--newsletter-bg);

    border-color:
        var(--newsletter-orange);
}

.chaniartoon-newsletter-form__submit:hover::before {
    transform: scaleX(1);
}

.chaniartoon-newsletter-form__submit:hover
.chaniartoon-newsletter-form__button-default {
    padding-inline: 18px;
}

.chaniartoon-newsletter-form__submit:hover
.chaniartoon-newsletter-form__arrow {
    transform: translateX(5px);
}

.chaniartoon-newsletter-form__submit:focus-visible {
    outline:
        2px solid
        var(--newsletter-orange);

    outline-offset: 5px;
}

.chaniartoon-newsletter-form__submit:disabled {
    cursor: wait;
}


/* ==========================================================
   LOADING DOTS
   ========================================================== */

.chaniartoon-newsletter-form__loading {
    position: absolute;
    z-index: 2;

    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    opacity: 0;
    visibility: hidden;

    transition:
        opacity 0.2s ease,
        visibility 0s linear 0.2s;
}

.chaniartoon-newsletter-form__loading span {
    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--newsletter-orange);

    animation:
        chaniartoon-newsletter-loading
        0.9s
        ease-in-out
        infinite;
}

.chaniartoon-newsletter-form__loading
span:nth-child(2) {
    animation-delay: 0.14s;
}

.chaniartoon-newsletter-form__loading
span:nth-child(3) {
    animation-delay: 0.28s;
}

.chaniartoon-newsletter-form__submit.is-loading
.chaniartoon-newsletter-form__button-default {
    opacity: 0;
    transform: translateY(5px);
}

.chaniartoon-newsletter-form__submit.is-loading
.chaniartoon-newsletter-form__loading {
    opacity: 1;
    visibility: visible;

    transition-delay: 0s;
}

.chaniartoon-newsletter-form__submit.is-loading::before {
    transform: scaleX(0);
}

@keyframes chaniartoon-newsletter-loading {
    0%,
    100% {
        opacity: 0.28;
        transform: translateY(0);
    }

    50% {
        opacity: 1;
        transform: translateY(-5px);
    }
}


/* ==========================================================
   PRIVACY TEXT
   ========================================================== */

.chaniartoon-newsletter-form__privacy {
    max-width: 520px;

    margin: 18px 0 0;

    color: rgba(247, 241, 232, 0.36);

    font-size: 9px;
    line-height: 1.65;
}

.chaniartoon-newsletter-form__privacy a {
    color: rgba(255, 191, 130, 0.78);

    text-decoration: none;

    border-bottom:
        1px solid rgba(255, 191, 130, 0.28);

    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}

.chaniartoon-newsletter-form__privacy a:hover {
    color: var(--newsletter-orange);

    border-bottom-color:
        var(--newsletter-orange);
}


/* ==========================================================
   ERROR MESSAGE
   ========================================================== */

.chaniartoon-newsletter-form__message {
    min-height: 18px;

    margin: 14px 0 0;

    color: rgba(247, 241, 232, 0.58);

    font-size: 10px;
    line-height: 1.5;
}

.chaniartoon-newsletter-form__message:empty {
    min-height: 0;
    margin-top: 0;
}

.chaniartoon-newsletter-form__message.is-error {
    color: var(--newsletter-error);
}


/* ==========================================================
   SUCCESS PANEL
   ========================================================== */

.chaniartoon-newsletter-success {
    position: relative;
    z-index: 2;

    display: none;

    width: 100%;
    padding-top: 34px;

    outline: none;
}

.festival-newsletter.is-success
.chaniartoon-newsletter-success {
    display: block;

    animation:
        chaniartoon-newsletter-success
        0.55s
        cubic-bezier(0.22, 1, 0.36, 1)
        both;
}

@keyframes chaniartoon-newsletter-success {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.chaniartoon-newsletter-success__symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    margin-bottom: 25px;

    border:
        1px solid rgba(255, 191, 130, 0.55);

    border-radius: 50%;

    color: var(--newsletter-orange);

    font-size: 17px;
    line-height: 1;
}

.chaniartoon-newsletter-success__eyebrow {
    display: block;

    margin-bottom: 13px;

    color: var(--newsletter-orange);

    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.chaniartoon-newsletter-success h3 {
    max-width: 560px;

    margin: 0 0 22px;

    color: var(--newsletter-text);

    font-size: clamp(37px, 4vw, 57px);
    font-weight: 780;
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.chaniartoon-newsletter-success p {
    max-width: 530px;

    margin: 0 0 31px;

    color: var(--newsletter-muted);

    font-size: 14px;
    line-height: 1.68;
}

.chaniartoon-newsletter-success__continue {
    display: inline-flex;
    align-items: center;
    gap: 16px;

    color: var(--newsletter-orange);

    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.16em;
    text-decoration: none;
    text-transform: uppercase;
}

.chaniartoon-newsletter-success__continue
span:last-child {
    font-size: 18px;

    transition:
        transform 0.3s ease;
}

.chaniartoon-newsletter-success__continue:hover
span:last-child {
    transform: translate(4px, 4px);
}


/* ==========================================================
   HONEYPOT
   ========================================================== */

.chaniartoon-newsletter-form__honeypot {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    padding: 0 !important;
    margin: -1px !important;

    overflow: hidden !important;

    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;

    border: 0 !important;

    white-space: nowrap !important;
}


/* ==========================================================
   BOTTOM NOTE
   ========================================================== */

.festival-newsletter__note {
    display: flex;
    align-items: flex-start;
    gap: 13px;

    margin-top: 24px;
}

.festival-newsletter__note > span {
    flex: 0 0 auto;

    color: var(--newsletter-purple);

    font-size: 13px;
    line-height: 1.5;
}

.festival-newsletter__note p {
    max-width: 510px;

    margin: 0;

    color: rgba(247, 241, 232, 0.45);

    font-size: 11px;
    line-height: 1.65;
}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1050px) {

    .festival-newsletter__inner {
        grid-template-columns: 1fr;
        align-items: start;

        gap: 60px;
    }

    .festival-newsletter__content {
        display: grid;
        grid-template-columns:
            minmax(0, 0.65fr)
            minmax(400px, 1fr);

        align-items: start;

        gap: 50px;

        max-width: none;
        justify-self: stretch;
    }

    .festival-newsletter__description {
        margin: 0;
    }

    .festival-newsletter__form-shell {
        grid-column: 2;
    }

    .festival-newsletter__note {
        grid-column: 2;
    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 700px) {

    .festival-newsletter {
        padding:
            80px
            17px
            90px;
    }

    .festival-newsletter__background-word {
        display: none;
    }

    .festival-newsletter__inner {
        display: block;
    }

    .festival-newsletter__intro h2 {
        font-size: clamp(54px, 16vw, 78px);
        line-height: 0.88;
    }

    .festival-newsletter__content {
        display: block;
        margin-top: 45px;
    }

    .festival-newsletter__description {
        margin-bottom: 32px;
        font-size: 15px;
    }

    .festival-newsletter__form-shell {
        padding:
            34px
            0
            30px;
    }

    .festival-newsletter__form-number {
        top: 14px;
        right: 2px;

        font-size: 45px;
    }

    .chaniartoon-newsletter-form,
    .chaniartoon-newsletter-success {
        padding-top: 35px;
    }

    .chaniartoon-newsletter-form__field {
        margin-bottom: 28px;
    }

    .chaniartoon-newsletter-form__field input {
        height: 55px;
        font-size: 16px;
    }

    .chaniartoon-newsletter-form__submit,
    .chaniartoon-newsletter-form__button-default {
        min-height: 58px;
    }

    .chaniartoon-newsletter-form__button-text {
        font-size: 9px;
    }

    .chaniartoon-newsletter-form__privacy {
        padding-right: 15px;
        font-size: 9px;
    }

    .chaniartoon-newsletter-success h3 {
        font-size: clamp(37px, 11vw, 49px);
    }

    .chaniartoon-newsletter-success p {
        font-size: 13px;
    }

    .festival-newsletter__note {
        margin-top: 20px;
    }

}


/* ==========================================================
   VERY SMALL MOBILE
   ========================================================== */

@media (max-width: 420px) {

    .festival-newsletter {
        padding-inline: 15px;
    }

    .festival-newsletter__intro h2 {
        font-size: clamp(49px, 15.5vw, 65px);
    }

    .festival-newsletter__form-number {
        font-size: 40px;
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .festival-newsletter *,
    .festival-newsletter *::before,
    .festival-newsletter *::after {
        scroll-behavior: auto !important;

        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;
    }
}



@charset "UTF-8";
/* CHANIARTOON HEADER */
:root{--ct-header-height:122px;--ct-header-height-scrolled:70px;--ct-dark:#111014;--ct-orange:#ffbf82;--ct-purple:#b273e0;--ct-red:#ed6c72;--ct-yellow:#f5ce64;--ct-green:#68c59a;--ct-blue:#6fb7dc;--ct-gold:#e8d5a0}
body{padding-top:0}body.ct-menu-open{overflow:hidden}.ct-header,.ct-header *,.ct-header *:before,.ct-header *:after{box-sizing:border-box}
.ct-header{position:fixed;z-index:9999;top:0;left:0;width:100%;height:var(--ct-header-height);color:#fff;transition:.38s cubic-bezier(.22,1,.36,1)}
.ct-header:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:rgba(255,255,255,.13)}
.ct-header.is-scrolled{height:var(--ct-header-height-scrolled);background:rgba(18,16,25,.72);box-shadow:0 10px 35px rgba(0,0,0,.2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ct-header.is-scrolled:after{height:2px;background:var(--ct-orange)}
.ct-header-inner{position:relative;z-index:20;display:flex;align-items:center;width:min(1820px,calc(100% - 60px));height:100%;margin:auto}
.ct-header-logo{position:absolute;z-index:5;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:172px;transform:translate(-50%,-50%);transition:.38s cubic-bezier(.22,1,.36,1)}
.ct-header-logo img{display:block;width:100%;max-height:86px;object-fit:contain}
.ct-header.is-scrolled .ct-header-logo{left:12px;width:78px;height:54px;transform:translate(0,-50%)}
.ct-header.is-scrolled .ct-header-logo img{height:100%;max-height:54px}
.ct-desktop-nav{display:grid;grid-template-columns:1fr 1fr;width:100%;padding:0 225px}
.ct-nav-group{display:flex;align-items:center;gap:clamp(24px,2.1vw,48px)}.ct-nav-group-left{justify-content:flex-start}.ct-nav-group-right{justify-content:flex-end}
.ct-header.is-scrolled .ct-desktop-nav{display:flex;align-items:center;justify-content:center;padding:0 95px 0 115px}
.ct-header.is-scrolled .ct-nav-group{justify-content:center;gap:clamp(17px,1.25vw,27px)}.ct-header.is-scrolled .ct-nav-group-right{margin-left:36px}
.ct-nav-item{position:relative}.ct-nav-link{position:relative;display:inline-flex;align-items:center;height:44px;padding:0;border:0;color:#fff;background:transparent;font:inherit;font-size:13px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.ct-nav-link:after{content:"";position:absolute;right:50%;bottom:4px;left:50%;height:2px;background:var(--ct-menu-accent,var(--ct-orange));transition:.28s}
.ct-nav-item:hover .ct-nav-link:after,.ct-nav-item.is-active .ct-nav-link:after{right:0;left:0}.ct-header.is-scrolled .ct-nav-link{font-size:12px;letter-spacing:.85px}
.ct-nav-item[data-menu=festival],.ct-nav-item[data-menu=exhibitions]{--ct-menu-accent:var(--ct-purple)}.ct-nav-item[data-menu=program]{--ct-menu-accent:var(--ct-orange)}.ct-nav-item[data-menu=guests]{--ct-menu-accent:var(--ct-gold)}.ct-nav-item[data-menu=workshops]{--ct-menu-accent:var(--ct-red)}.ct-nav-item[data-menu=events]{--ct-menu-accent:var(--ct-yellow)}.ct-nav-item[data-menu=artist-alley]{--ct-menu-accent:var(--ct-green)}.ct-nav-item[data-menu=visit]{--ct-menu-accent:var(--ct-blue)}
.ct-header-actions{position:absolute;right:0;display:flex;align-items:center;gap:18px}.ct-search-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;color:#fff;background:transparent;cursor:pointer}.ct-search-toggle:hover{color:var(--ct-orange);background:rgba(255,255,255,.08)}
.ct-search-toggle svg,.ct-mobile-search svg,.ct-search-form svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.ct-language-switcher{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:1.4px}.ct-language-switcher a{color:rgba(255,255,255,.55);text-decoration:none}.ct-language-switcher a:hover,.ct-language-switcher a.is-active{color:#fff}.ct-language-switcher span{width:1px;height:13px;background:rgba(255,255,255,.25)}
.ct-mega-wrapper{position:absolute;z-index:10;top:100%;left:0;width:100%;pointer-events:none}.ct-mega-menu{--ct-accent:var(--ct-orange);position:absolute;top:15px;left:50%;width:min(1720px,calc(100% - 70px));min-height:475px;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:26px;background:linear-gradient(135deg,rgba(32,29,38,.985),rgba(15,14,18,.99));box-shadow:0 30px 70px rgba(0,0,0,.35);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-20px);transition:.35s}
.ct-mega-menu.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}.ct-accent-orange{--ct-accent:var(--ct-orange)}.ct-accent-purple{--ct-accent:var(--ct-purple)}.ct-accent-red{--ct-accent:var(--ct-red)}.ct-accent-yellow{--ct-accent:var(--ct-yellow)}.ct-accent-green{--ct-accent:var(--ct-green)}.ct-accent-blue{--ct-accent:var(--ct-blue)}.ct-accent-gold{--ct-accent:var(--ct-gold)}
.ct-mega-background-word{position:absolute;right:-20px;bottom:-64px;color:transparent;font-size:clamp(100px,11vw,215px);font-weight:900;line-height:.8;letter-spacing:-8px;text-transform:uppercase;white-space:nowrap;opacity:.055;-webkit-text-stroke:1px var(--ct-accent)}
.ct-mega-content{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.68fr) minmax(330px,.82fr);gap:clamp(40px,4vw,76px);min-height:475px;padding:46px}.ct-mega-menu[data-mega=program] .ct-mega-content,.ct-mega-menu[data-mega=workshops] .ct-mega-content,.ct-mega-menu[data-mega=artist-alley] .ct-mega-content{grid-template-columns:minmax(0,1.85fr) minmax(320px,.75fr)}.ct-mega-menu[data-mega=exhibitions] .ct-mega-content{grid-template-columns:minmax(0,2.05fr) minmax(300px,.65fr);gap:38px}
.ct-mega-main{display:flex;flex-direction:column;min-width:0}.ct-mega-heading{max-width:720px;margin-bottom:28px}.ct-mega-eyebrow,.ct-column-title{display:block;color:var(--ct-accent);font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase}.ct-mega-heading h2{margin:8px 0 10px;font-size:clamp(34px,3vw,55px);line-height:1}.ct-mega-heading p{max-width:650px;margin:0;color:rgba(255,255,255,.58);font-size:15px;line-height:1.65}
.ct-mega-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,2.5vw,46px);width:100%}.ct-mega-columns-single{grid-template-columns:minmax(420px,760px);max-width:780px}.ct-guests-columns,.ct-events-columns,.ct-visit-columns{grid-template-columns:repeat(2,minmax(220px,1fr));max-width:760px}.ct-festival-columns,.ct-exhibitions-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.ct-exhibitions-columns{gap:24px}
.ct-mega-column{display:flex;flex-direction:column;min-width:0}.ct-column-title{margin-bottom:9px;padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.1)}
.ct-mega-column a{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;column-gap:14px;min-height:46px;padding:8px 30px 8px 0;color:#fff;font-size:16px;font-weight:600;line-height:1.3;text-decoration:none}.ct-mega-column a strong{display:block;min-width:0;color:inherit;font:inherit;font-weight:600;word-break:normal;overflow-wrap:normal;hyphens:none}.ct-mega-column a>span{color:rgba(255,255,255,.34);font-size:10px;letter-spacing:1px}.ct-mega-column a:after{content:"→";position:absolute;top:50%;right:2px;color:var(--ct-accent);opacity:0;transform:translate(-7px,-50%);transition:.25s}.ct-mega-column a:hover{color:var(--ct-accent);transform:translateX(4px)}.ct-mega-column a:hover:after{opacity:1;transform:translate(0,-50%)}
.ct-mega-columns-single .ct-mega-column a{grid-template-columns:42px minmax(0,1fr);column-gap:18px;min-height:56px;font-size:19px}.ct-exhibitions-columns .ct-mega-column a{grid-template-columns:27px minmax(0,1fr);column-gap:9px;min-height:40px;padding:6px 20px 6px 0;font-size:14px}
.ct-mega-cta{display:flex;align-items:center;justify-content:space-between;max-width:720px;margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.11);color:#fff;font-size:13px;font-weight:700;letter-spacing:1px;text-decoration:none;text-transform:uppercase}.ct-mega-cta span{color:var(--ct-accent);font-size:25px}
.ct-mega-visual{position:relative;display:block;min-height:380px;overflow:hidden;border-radius:24px;background:#28242e}.ct-mega-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.8s}.ct-mega-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.82) 100%)}.ct-mega-visual:hover img{transform:scale(1.045)}.ct-mega-visual-overlay{position:absolute;z-index:2;right:28px;bottom:27px;left:28px;display:flex;flex-direction:column}.ct-mega-visual-overlay span{margin-bottom:7px;color:var(--ct-accent);font-size:10px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase}.ct-mega-visual-overlay strong{font-size:clamp(20px,2vw,29px);line-height:1.15}
.ct-mega-status{display:flex;align-items:center;gap:10px;max-width:720px;margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.55);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.ct-mega-status span{width:7px;height:7px;border-radius:50%;background:var(--ct-accent);box-shadow:0 0 12px var(--ct-accent)}
.ct-search-overlay{position:fixed;z-index:10020;inset:0;display:flex;align-items:center;justify-content:center;padding:40px;background:radial-gradient(circle at 80% 20%,rgba(178,115,224,.2),transparent 35%),rgba(13,12,17,.96);backdrop-filter:blur(22px);opacity:0;visibility:hidden;pointer-events:none;transition:.3s}.ct-search-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}.ct-search-close{position:absolute;top:30px;right:34px;width:48px;height:48px;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:rgba(255,255,255,.04);cursor:pointer}.ct-search-close span{position:absolute;top:50%;left:50%;width:20px;height:2px;background:#fff}.ct-search-close span:first-child{transform:translate(-50%,-50%) rotate(45deg)}.ct-search-close span:last-child{transform:translate(-50%,-50%) rotate(-45deg)}
.ct-search-overlay-inner{width:min(920px,100%)}.ct-search-eyebrow{display:block;margin-bottom:24px;color:var(--ct-orange);font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase}.ct-search-input-row{display:grid;grid-template-columns:minmax(0,1fr) 70px;border-bottom:2px solid rgba(255,255,255,.28)}.ct-search-input-row:focus-within{border-color:var(--ct-orange)}.ct-search-input-row input{width:100%;padding:10px 0 22px;border:0;outline:0;color:#fff;background:transparent;font:inherit;font-size:clamp(42px,6vw,80px);font-weight:600;letter-spacing:-3px}.ct-search-input-row input::placeholder{color:rgba(255,255,255,.27)}.ct-search-input-row button{border:0;color:var(--ct-orange);background:transparent;cursor:pointer}.ct-search-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px}.ct-search-suggestions>span{color:rgba(255,255,255,.42);font-size:12px;text-transform:uppercase}.ct-search-suggestions button{padding:8px 14px;border:1px solid rgba(255,255,255,.13);border-radius:30px;color:rgba(255,255,255,.68);background:transparent;cursor:pointer}
.ct-mobile-toggle{position:absolute;right:0;display:none;width:42px;height:42px;border:0;background:transparent;cursor:pointer}.ct-mobile-toggle span{position:absolute;left:8px;width:26px;height:2px;background:#fff;transition:.3s}.ct-mobile-toggle span:first-child{top:15px}.ct-mobile-toggle span:last-child{top:25px}.ct-header.mobile-open .ct-mobile-toggle span:first-child{top:20px;transform:rotate(45deg)}.ct-header.mobile-open .ct-mobile-toggle span:last-child{top:20px;transform:rotate(-45deg)}.ct-mobile-menu{display:none}
@media(max-width:1100px){
:root{--ct-header-height:76px;--ct-header-height-scrolled:66px}.ct-header,.ct-header.is-scrolled{height:var(--ct-header-height);background:rgba(18,16,25,.78);backdrop-filter:blur(16px)}.ct-header.is-scrolled{height:var(--ct-header-height-scrolled)}.ct-header-inner{width:calc(100% - 30px)}.ct-desktop-nav,.ct-mega-wrapper,.ct-language-switcher{display:none!important}.ct-header-logo,.ct-header.is-scrolled .ct-header-logo{top:50%;left:0;width:68px;height:53px;transform:translate(0,-50%)}.ct-header-logo img,.ct-header.is-scrolled .ct-header-logo img{height:100%;max-height:53px}.ct-header-actions{right:49px;gap:0}.ct-search-toggle{width:42px;height:42px}.ct-mobile-toggle{display:block}
.ct-mobile-menu{position:fixed;z-index:10000;inset:0;display:block;height:100dvh;padding:var(--ct-header-height) 0 0;overflow:hidden;background:radial-gradient(circle at 90% 12%,rgba(178,115,224,.18),transparent 35%),#111014;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);transition:.35s}.ct-header.mobile-open .ct-mobile-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none}.ct-mobile-menu-inner{height:calc(100dvh - var(--ct-header-height));padding:26px 20px 42px;overflow-y:auto}.ct-mobile-intro{display:flex;flex-direction:column;gap:4px;margin-bottom:27px}.ct-mobile-intro span{color:var(--ct-orange);font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.ct-mobile-intro strong{color:rgba(255,255,255,.48);font-size:12px}
.ct-mobile-search{margin-bottom:31px}.ct-mobile-search>label{display:block;margin-bottom:9px;color:rgba(255,255,255,.4);font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.ct-mobile-search-box{display:grid;grid-template-columns:minmax(0,1fr) 48px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.045)}.ct-mobile-search-box input{width:100%;padding:15px 16px;border:0;outline:0;color:#fff;background:transparent;font-size:15px}.ct-mobile-search-box button{border:0;color:var(--ct-orange);background:transparent}
.ct-mobile-item{border-top:1px solid rgba(255,255,255,.11)}.ct-mobile-item:last-child{border-bottom:1px solid rgba(255,255,255,.11)}.ct-mobile-accordion-toggle{display:grid;grid-template-columns:34px minmax(0,1fr) 30px;align-items:center;width:100%;min-height:69px;padding:0;border:0;color:#fff;background:transparent;text-align:left}.ct-mobile-number{color:rgba(255,255,255,.3);font-size:9px}.ct-mobile-title{font-size:clamp(22px,6vw,31px);font-weight:600;line-height:1.05}.ct-mobile-plus{position:relative;width:22px;height:22px}.ct-mobile-plus:before,.ct-mobile-plus:after{content:"";position:absolute;top:50%;left:50%;width:17px;height:1.5px;background:var(--ct-orange);transition:.3s}.ct-mobile-plus:before{transform:translate(-50%,-50%)}.ct-mobile-plus:after{transform:translate(-50%,-50%) rotate(90deg)}.ct-mobile-item.is-open .ct-mobile-plus:after{transform:translate(-50%,-50%)}
.ct-mobile-submenu{display:grid;max-height:0;padding-left:34px;overflow:hidden;opacity:0;transition:.45s}.ct-mobile-item.is-open .ct-mobile-submenu{max-height:1500px;padding-bottom:22px;opacity:1}.ct-mobile-submenu a{position:relative;padding:10px 27px 10px 0;color:rgba(255,255,255,.66);font-size:16px;line-height:1.35;text-decoration:none}.ct-mobile-submenu a:after{content:"→";position:absolute;right:2px;color:var(--ct-orange);opacity:.6}.ct-mobile-featured-link{margin-bottom:8px;padding-bottom:15px!important;border-bottom:1px solid rgba(255,255,255,.1);color:var(--ct-orange)!important;font-weight:700}.ct-mobile-status{margin-top:12px;padding:12px 14px;border-radius:10px;color:var(--ct-green);background:rgba(104,197,154,.08);font-size:10px;font-weight:800;text-transform:uppercase}.ct-mobile-footer{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1)}.ct-mobile-languages,.ct-mobile-socials{display:flex;gap:12px}.ct-mobile-languages a,.ct-mobile-socials a{color:rgba(255,255,255,.53);font-size:10px;text-decoration:none}.ct-mobile-languages a.is-active{color:var(--ct-orange)}.ct-search-overlay{padding:25px 20px}.ct-search-input-row{grid-template-columns:minmax(0,1fr) 48px}.ct-search-input-row input{font-size:clamp(34px,12vw,52px);letter-spacing:-1.5px}
}
#sp-header #sp-logo,#sp-header .sp-megamenu-wrapper,#sp-header .sp-megamenu-parent,#sp-header #offcanvas-toggler{display:none!important}#sp-header #sp-menu{width:100%!important;max-width:100%!important;flex:0 0 100%!important}


/* PREMIUM TYPOGRAPHY + CSS ICONS */
.ct-header{font-family:Inter,"Helvetica Neue",Arial,sans-serif}
.ct-mega-heading h2{font-size:clamp(40px,3.15vw,59px);font-weight:900;letter-spacing:-.045em;line-height:.94}
.ct-mega-heading p{font-size:15.5px;line-height:1.68;color:rgba(255,255,255,.64)}
.ct-mega-column a strong{font-weight:700}
.ct-mega-menu[data-mega=events] .ct-mega-column a,.ct-mega-menu[data-mega=artist-alley] .ct-mega-column a,.ct-mega-menu[data-mega=workshops] .ct-mega-column a{grid-template-columns:42px minmax(0,1fr);column-gap:17px;min-height:56px;font-size:18px;font-weight:700}
.ct-icon-search{position:relative;display:block;width:17px;height:17px;border:2px solid currentColor;border-radius:50%}
.ct-icon-search:after{content:"";position:absolute;right:-6px;bottom:-3px;width:8px;height:2px;border-radius:999px;background:currentColor;transform:rotate(45deg);transform-origin:left center}
.ct-icon-search-large{width:21px;height:21px}.ct-icon-search-large:after{right:-7px;bottom:-4px;width:10px}
@media(max-width:1100px){.ct-header{overflow:visible!important}.ct-header-inner{z-index:10003}.ct-mobile-menu{position:fixed!important;z-index:10001;display:block!important;inset:0;width:100vw;height:100dvh;padding:var(--ct-header-height) 0 0}.ct-header.mobile-open .ct-mobile-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none}.ct-mobile-toggle,.ct-header-actions,.ct-header-logo{z-index:10004}.ct-mobile-menu-inner{height:calc(100dvh - var(--ct-header-height));overflow-y:auto;-webkit-overflow-scrolling:touch}.ct-mobile-submenu{display:grid!important;max-height:0;opacity:0;overflow:hidden}.ct-mobile-item.is-open .ct-mobile-submenu{max-height:1800px;opacity:1;padding-bottom:23px}.ct-mobile-title{font-weight:900;letter-spacing:-.035em}}


/* =========================================================
   FINAL FUNCTIONAL FIXES
========================================================= */

/* Greek-safe typography: prevents missing Greek glyphs such as ω. */
.ct-header,
.ct-header button,
.ct-header input,
.ct-header textarea,
.ct-mega-heading h2,
.ct-mega-visual-overlay strong,
.ct-mobile-title {
  font-family:
    "Noto Sans",
    "DejaVu Sans",
    Arial,
    "Helvetica Neue",
    sans-serif !important;
  font-variant-ligatures: normal;
  text-rendering: optimizeLegibility;
}

/* Overlays are moved under <body> by JavaScript, so they must not rely on
   being descendants of .ct-header. */
.ct-search-overlay,
.ct-mobile-menu {
  isolation: isolate;
}

/* Search visibility and stacking above Helix/Joomla containers. */
.ct-search-overlay {
  z-index: 2147483000 !important;
}

.ct-search-overlay.is-open {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Mobile menu visibility after being moved to body. */
@media (max-width: 1100px) {
  .ct-mobile-menu {
    z-index: 2147482000 !important;
  }

  .ct-mobile-menu.is-open,
  body.ct-mobile-open .ct-mobile-menu {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) !important;
  }

  body.ct-mobile-open .ct-header {
    background: rgba(17, 16, 20, .98) !important;
  }

  body.ct-mobile-open .ct-mobile-toggle span:first-child {
    top: 20px;
    transform: rotate(45deg);
  }

  body.ct-mobile-open .ct-mobile-toggle span:last-child {
    top: 20px;
    transform: rotate(-45deg);
  }
}

/* Animated visual replacement on submenu hover. */
.ct-mega-visual img {
  opacity: 1;
  transform: scale(1);
  transition:
    opacity 180ms ease,
    transform 700ms cubic-bezier(.22, 1, .36, 1);
}

.ct-mega-visual.is-changing img {
  opacity: .18;
  transform: scale(1.035);
}

.ct-mega-visual-overlay {
  transition:
    opacity 180ms ease,
    transform 280ms cubic-bezier(.22, 1, .36, 1);
}

.ct-mega-visual.is-changing .ct-mega-visual-overlay {
  opacity: .2;
  transform: translateY(7px);
}

/* Keep interactive overlays clickable even when a Joomla parent uses
   pointer-events or overflow rules. */
body > .ct-search-overlay,
body > .ct-mobile-menu {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
}


/* =========================================================
   V3 FINAL: INDEPENDENT SEARCH + MOBILE COMPONENTS
========================================================= */
html.ct-overlay-open,
body.ct-overlay-open { overflow: hidden !important; }

.ct-search-label {
  margin-left: 12px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.25px;
  text-transform: uppercase;
}
.ct-search-toggle { width: auto; padding: 0 10px; border-radius: 999px; }

/* These components are siblings of the header, never children of Helix. */
#ctSearchOverlay.ct-search-overlay {
  position: fixed !important;
  z-index: 2147483646 !important;
  inset: 0 !important;
  display: flex !important;
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  margin: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
#ctSearchOverlay.ct-search-overlay.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: scale(1) !important;
}

#ctMobileMenu.ct-mobile-menu { display: none !important; }
@media (max-width: 1100px) {
  .ct-search-label { display: none; }
  .ct-search-toggle { width: 42px; padding: 0; }

  #ctMobileMenu.ct-mobile-menu {
    position: fixed !important;
    z-index: 2147483645 !important;
    inset: 0 !important;
    display: block !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    margin: 0 !important;
    padding-top: var(--ct-header-height) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0,-20px,0) !important;
  }
  #ctMobileMenu.ct-mobile-menu.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0,0,0) !important;
  }
  body.ct-mobile-open .ct-header { z-index: 2147483647 !important; }
  body.ct-mobile-open .ct-mobile-toggle span:first-child { top: 20px; transform: rotate(45deg); }
  body.ct-mobile-open .ct-mobile-toggle span:last-child { top: 20px; transform: rotate(-45deg); }
}

/* Greek glyph safety, including lowercase omega. */
.ct-header, .ct-mobile-menu, .ct-search-overlay,
.ct-header button, .ct-mobile-menu button, .ct-search-overlay button,
.ct-header input, .ct-mobile-menu input, .ct-search-overlay input {
  font-family: Inter, "Noto Sans", "DejaVu Sans", Arial, sans-serif !important;
}

/* =========================================================
   V4 — FINAL RELIABILITY FIXES
========================================================= */

/* Use a Greek-complete system font. Arial is deliberately first so a
   Latin-only custom Inter webfont cannot replace lowercase Greek ω. */
.ct-header,
.ct-mobile-menu,
.ct-search-overlay,
.ct-header button,
.ct-mobile-menu button,
.ct-search-overlay button,
.ct-header input,
.ct-mobile-menu input,
.ct-search-overlay input,
.ct-mega-heading h2,
.ct-mega-visual-overlay strong,
.ct-mobile-title {
  font-family: Arial, "DejaVu Sans", "Noto Sans", sans-serif !important;
}

/* Search is icon-only. */
.ct-search-label { display: none !important; }
.ct-search-toggle {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
}
.ct-search-toggle .ct-icon-search { display: block !important; }

/* Fullscreen layers are moved to body by JS. */
body > #ctSearchOverlay.ct-search-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483646 !important;
  width: 100vw !important;
  height: 100dvh !important;
  margin: 0 !important;
}
body > #ctSearchOverlay.ct-search-overlay.is-open {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (max-width: 1100px) {
  body > #ctMobileMenu.ct-mobile-menu {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483645 !important;
    display: block !important;
    width: 100vw !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding-top: var(--ct-header-height) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0, -16px, 0) !important;
  }

  body > #ctMobileMenu.ct-mobile-menu.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) !important;
  }

  .ct-mobile-toggle {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}


/* =========================================================
   SEARCH ICON — HELIX/JOOMLA SAFE
========================================================= */
.ct-header .ct-search-toggle,
.ct-mobile-menu .ct-mobile-search-box button,
.ct-search-overlay .ct-search-input-row button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  font-size: 0 !important;
  line-height: 1 !important;
}

.ct-header .ct-search-toggle {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
}

.ct-icon-search {
  position: relative !important;
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex: 0 0 auto !important;
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  box-sizing: border-box !important;
  border: 2px solid currentColor !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: inherit !important;
  transform: none !important;
}

.ct-icon-search::before {
  content: none !important;
  display: none !important;
}

.ct-icon-search::after {
  content: "" !important;
  position: absolute !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  right: -7px !important;
  bottom: -4px !important;
  width: 9px !important;
  height: 2px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: currentColor !important;
  transform: rotate(45deg) !important;
  transform-origin: left center !important;
}

.ct-icon-search-large {
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
}

.ct-icon-search-large::after {
  right: -8px !important;
  bottom: -5px !important;
  width: 11px !important;
  height: 2px !important;
}

.ct-mobile-menu .ct-mobile-search-box button {
  width: 48px !important;
  min-width: 48px !important;
  height: 100% !important;
  padding: 0 !important;
  color: var(--ct-orange, #ff7a1a) !important;
}

.ct-search-overlay .ct-search-input-row button {
  min-width: 54px !important;
  padding: 0 !important;
  color: var(--ct-orange, #ff7a1a) !important;
}

/* Disable icon-font/pseudo-icon injections from Joomla template styles. */
.ct-header .ct-search-toggle > i,
.ct-mobile-menu .ct-mobile-search-box button > i,
.ct-search-overlay .ct-search-input-row button > i {
  display: none !important;
}


/* =========================================================
   FONT AWESOME ICONS — FINAL
========================================================= */
.ct-header .ct-search-toggle > i,
.ct-mobile-toggle > i,
.ct-mobile-menu .ct-mobile-search-box button > i,
.ct-search-overlay .ct-search-input-row button > i {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  font-family: FontAwesome !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-size: 20px !important;
  line-height: 1 !important;
  text-rendering: auto !important;
  -webkit-font-smoothing: antialiased !important;
}

.ct-fa-search {
  color: currentColor !important;
}

.ct-fa-search-large {
  font-size: 26px !important;
}

.ct-mobile-toggle {
  display: none;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  color: #fff !important;
  overflow: visible !important;
}

.ct-mobile-toggle .ct-fa-menu {
  color: #fff !important;
  font-size: 25px !important;
  transform: none !important;
}

/* Show the hamburger reliably at the mobile breakpoint. */
@media (max-width: 1100px) {
  .ct-mobile-toggle {
    display: inline-flex !important;
  }

  .ct-mobile-toggle .ct-fa-menu {
    display: inline-block !important;
  }

  body.ct-mobile-open .ct-mobile-toggle .ct-fa-menu::before,
  .ct-header.mobile-open .ct-mobile-toggle .ct-fa-menu::before {
    content: "\f00d" !important; /* Font Awesome close icon */
  }
}

/* Remove the old CSS-drawn search geometry. */
.ct-icon-search,
.ct-icon-search::before,
.ct-icon-search::after {
  display: none !important;
  content: none !important;
}

/* =========================================================
   SEARCH TYPOGRAPHY
========================================================= */
.ct-search-overlay-inner {
  overflow: visible !important;
}

.ct-search-input-row {
  overflow: visible !important;
  align-items: center;
}

.ct-search-input-row input {
  min-width: 0;
  padding-top: 16px !important;
  padding-bottom: 24px !important;
  font-size: clamp(38px, 5.3vw, 72px) !important;
  font-weight: 600 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.035em !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.ct-search-input-row input::placeholder {
  line-height: 1.18 !important;
  opacity: 1;
}

@media (max-width: 600px) {
  .ct-search-input-row input {
    padding-top: 13px !important;
    padding-bottom: 19px !important;
    font-size: clamp(30px, 10.5vw, 46px) !important;
    line-height: 1.22 !important;
    letter-spacing: -0.025em !important;
  }

  .ct-search-eyebrow {
    margin-bottom: 18px !important;
  }
}


/* =========================================================
   v7 — INLINE SVG ICONS, NAV DOT AND SEARCH TYPOGRAPHY
========================================================= */

/* Inline SVG icons are independent of Font Awesome and Joomla icon fonts. */
.ct-svg-icon {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex: 0 0 auto !important;
  overflow: visible !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  pointer-events: none !important;
}

.ct-svg-search {
  width: 21px !important;
  height: 21px !important;
}

.ct-search-input-row .ct-svg-search {
  width: 28px !important;
  height: 28px !important;
}

.ct-svg-menu {
  width: 27px !important;
  height: 27px !important;
}

.ct-svg-menu .ct-menu-line {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .28s ease;
}

body.ct-mobile-open .ct-svg-menu .ct-menu-line-top,
.ct-header.mobile-open .ct-svg-menu .ct-menu-line-top {
  transform: translateY(5px) rotate(45deg);
}

body.ct-mobile-open .ct-svg-menu .ct-menu-line-bottom,
.ct-header.mobile-open .ct-svg-menu .ct-menu-line-bottom {
  transform: translateY(-5px) rotate(-45deg);
}

.ct-header .ct-search-toggle,
.ct-mobile-toggle,
.ct-mobile-search-box button,
.ct-search-input-row button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}

/* Remove old icon-font styling and injected glyphs. */
.ct-fa-search,
.ct-fa-menu,
.fa-search,
.fa-bars {
  display: none !important;
}

/* The inactive underline previously collapsed into a visible 2px dot. */
.ct-nav-link::after,
.ct-nav-link:after {
  opacity: 0 !important;
  transform: scaleX(0) !important;
  transform-origin: center !important;
}

.ct-nav-item:hover .ct-nav-link::after,
.ct-nav-item:hover .ct-nav-link:after,
.ct-nav-item.is-active .ct-nav-link::after,
.ct-nav-item.is-active .ct-nav-link:after {
  right: 0 !important;
  left: 0 !important;
  opacity: 1 !important;
  transform: scaleX(1) !important;
}

/* Give the placeholder enough vertical room for Greek descenders and accents. */
.ct-search-overlay-inner {
  width: min(1000px, calc(100vw - 84px)) !important;
  overflow: visible !important;
}

.ct-search-form,
.ct-search-input-row {
  overflow: visible !important;
}

.ct-search-input-row {
  grid-template-columns: minmax(0, 1fr) 72px !important;
  align-items: center !important;
  min-height: 104px !important;
}

.ct-search-input-row input {
  display: block !important;
  height: auto !important;
  min-height: 96px !important;
  padding: 17px 0 23px !important;
  box-sizing: border-box !important;
  font-size: clamp(48px, 5.5vw, 76px) !important;
  font-weight: 600 !important;
  line-height: 1.22 !important;
  letter-spacing: -0.035em !important;
  overflow: visible !important;
}

.ct-search-input-row input::placeholder {
  line-height: 1.22 !important;
}

/* Centre suggestion labels and text vertically. */
.ct-search-suggestions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px !important;
}

.ct-search-suggestions > span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 46px !important;
  line-height: 1 !important;
  padding: 0 !important;
}

.ct-search-suggestions button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 0 16px !important;
  line-height: 1.15 !important;
}

@media (max-width: 600px) {
  .ct-search-overlay-inner {
    width: calc(100vw - 36px) !important;
  }

  .ct-search-input-row {
    grid-template-columns: minmax(0, 1fr) 52px !important;
    min-height: 80px !important;
  }

  .ct-search-input-row input {
    min-height: 76px !important;
    padding: 14px 0 18px !important;
    font-size: clamp(33px, 10vw, 48px) !important;
    line-height: 1.24 !important;
    letter-spacing: -0.025em !important;
  }

  .ct-search-input-row .ct-svg-search {
    width: 23px !important;
    height: 23px !important;
  }

  .ct-search-suggestions > span {
    flex-basis: 100%;
    min-height: auto !important;
    margin-bottom: 2px;
  }
}


/* =========================================================
   v8 — ICONS AS CSS BACKGROUND IMAGES
   This survives Joomla editor filtering, missing icon fonts and SVG stripping.
========================================================= */

/* Hide all previous icon children only inside the affected buttons. */
.ct-header .ct-search-toggle > svg,
.ct-header .ct-search-toggle > i,
.ct-header .ct-search-toggle > span,
.ct-mobile-toggle > svg,
.ct-mobile-toggle > i,
.ct-mobile-toggle > span,
.ct-mobile-search-box button > svg,
.ct-mobile-search-box button > i,
.ct-mobile-search-box button > span,
.ct-search-input-row button > svg,
.ct-search-input-row button > i,
.ct-search-input-row button > span {
  display: none !important;
}

/* Desktop search icon */
.ct-header .ct-search-toggle {
  display: inline-flex !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  font-size: 0 !important;
  color: transparent !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M15.4 15.4L21 21' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 21px 21px !important;
  overflow: visible !important;
}

/* Mobile hamburger */
.ct-mobile-toggle {
  display: none;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  font-size: 0 !important;
  color: transparent !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7H21M3 17H21' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 27px 27px !important;
  overflow: visible !important;
}

@media (max-width: 1100px) {
  .ct-mobile-toggle {
    display: inline-flex !important;
  }

  body.ct-mobile-open .ct-mobile-toggle,
  .ct-header.mobile-open .ct-mobile-toggle {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5L19 19M19 5L5 19' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }
}

/* Mobile search submit icon */
.ct-mobile-search-box button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 48px !important;
  width: 48px !important;
  padding: 0 !important;
  font-size: 0 !important;
  color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='%23f29a4a' stroke-width='2'/%3E%3Cpath d='M15.4 15.4L21 21' fill='none' stroke='%23f29a4a' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 22px 22px !important;
}

/* Search overlay submit icon */
.ct-search-input-row button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 64px !important;
  padding: 0 !important;
  font-size: 0 !important;
  color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='%23f29a4a' stroke-width='2'/%3E%3Cpath d='M15.4 15.4L21 21' fill='none' stroke='%23f29a4a' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 29px 29px !important;
}

/* Ensure template button styles cannot remove the image. */
.ct-header .ct-search-toggle::before,
.ct-header .ct-search-toggle::after,
.ct-mobile-toggle::before,
.ct-mobile-toggle::after,
.ct-mobile-search-box button::before,
.ct-mobile-search-box button::after,
.ct-search-input-row button::before,
.ct-search-input-row button::after {
  content: none !important;
  display: none !important;
}


/* ===== v8.1 mobile/desktop icon fixes ===== */

/* Never show the hamburger on desktop */
@media (min-width:1101px){
  .ct-mobile-toggle{
    display:none !important;
    visibility:hidden !important;
  }
}

/* Always keep the mobile toggle visible while menu is open */
@media (max-width:1100px){
  .ct-mobile-toggle{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;
    z-index:2147483647 !important;
    position:relative !important;
  }

  body.ct-mobile-open .ct-mobile-toggle,
  .ct-header.mobile-open .ct-mobile-toggle{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;
    color:transparent !important;
  }

  /* Make sure nothing hides the close icon */
  body.ct-mobile-open .ct-mobile-toggle::before,
  body.ct-mobile-open .ct-mobile-toggle::after{
    display:none !important;
  }
}


/* =========================================================
   v8.2 — CORRECT ICON VISIBILITY
========================================================= */

/* Desktop: show search icon, hide only hamburger */
@media (min-width: 1101px) {
  .ct-header .ct-search-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .ct-header .ct-mobile-toggle {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }
}

/* Mobile: show both search and hamburger/close controls */
@media (max-width: 1100px) {
  .ct-header .ct-search-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .ct-header .ct-mobile-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 2147483647 !important;
  }

  body.ct-mobile-open .ct-header .ct-mobile-toggle,
  .ct-header.mobile-open .ct-mobile-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5L19 19M19 5L5 19' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 27px 27px !important;
  }
}


/* =========================================================
   v8.3 — MOBILE MENU BUTTON POSITION FIX
========================================================= */

@media (max-width: 1100px) {
  .ct-header .ct-mobile-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;

    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    left: auto !important;
    transform: translateY(-50%) !important;

    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    background-color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7H21M3 17H21' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 27px 27px !important;

    z-index: 2147483647 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }

  body.ct-mobile-open .ct-header .ct-mobile-toggle,
  .ct-header.mobile-open .ct-mobile-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;

    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    transform: translateY(-50%) !important;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5L19 19M19 5L5 19' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 27px 27px !important;

    z-index: 2147483647 !important;
  }

  /* Reserve enough space so the search and menu buttons do not overlap. */
  .ct-header .ct-header-actions {
    right: 48px !important;
  }
}

@media (min-width: 1101px) {
  .ct-header .ct-mobile-toggle {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }
}


/* =========================================================
   v8.4 — KEEP THE CLOSE BUTTON ABOVE THE MOBILE MENU
========================================================= */

@media (max-width:1100px){

  /* Mobile menu stays below the close button */
  .ct-mobile-menu{
    z-index:2147483600 !important;
  }

  /* Close button always stays above the overlay */
  body.ct-mobile-open .ct-header .ct-mobile-toggle,
  body.ct-mobile-open .ct-mobile-toggle,
  .ct-header.mobile-open .ct-mobile-toggle{

    position:fixed !important;
    top:22px !important;
    right:20px !important;
    left:auto !important;

    transform:none !important;

    z-index:2147483647 !important;

    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;

    pointer-events:auto !important;
  }
}


/* =========================================================
   v8.5 — CLOSE BUTTON OUTSIDE HEADER STACKING CONTEXT
========================================================= */

@media (min-width:1101px){
  body > .ct-mobile-toggle{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
  }
}

@media (max-width:1100px){
  body > .ct-mobile-toggle{
    position:fixed !important;
    top:17px !important;
    right:15px !important;
    left:auto !important;

    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;

    width:42px !important;
    min-width:42px !important;
    height:42px !important;
    margin:0 !important;
    padding:0 !important;

    transform:none !important;
    z-index:2147483647 !important;
    pointer-events:auto !important;
    cursor:pointer !important;

    border:0 !important;
    background-color:transparent !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7H21M3 17H21' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-size:27px 27px !important;
  }

  body.ct-mobile-open > .ct-mobile-toggle{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5L19 19M19 5L5 19' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  }

  body > #ctMobileMenu.ct-mobile-menu{
    z-index:2147483645 !important;
  }
}


/* =========================================================
   CHANIARTOON PREMIUM FOOTER v1
========================================================= */

.ct-footer,
.ct-footer * {
  box-sizing: border-box;
}

.ct-footer {
  --ct-bg: #090909;
  --ct-bg-soft: #111111;
  --ct-line: rgba(255,255,255,.14);
  --ct-text: #f5f3ef;
  --ct-muted: rgba(245,243,239,.62);
  --ct-accent: #f29a4a;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 10%, rgba(242,154,74,.12), transparent 30%),
    linear-gradient(180deg, #111 0%, var(--ct-bg) 44%);
  color: var(--ct-text);
  isolation: isolate;
}

.ct-footer a {
  color: inherit;
  text-decoration: none;
}

.ct-footer-watermark {
  position: absolute;
  right: -3vw;
  bottom: -21vw;
  z-index: -1;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(420px, 52vw, 880px);
  line-height: .72;
  color: rgba(255,255,255,.028);
  user-select: none;
  pointer-events: none;
}

.ct-footer-inner {
  width: min(1640px, calc(100% - 96px));
  margin: 0 auto;
  padding: clamp(88px, 9vw, 148px) 0 32px;
}

.ct-footer-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(520px, .95fr);
  gap: clamp(72px, 8vw, 160px);
  align-items: end;
  padding-bottom: clamp(70px, 8vw, 120px);
  border-bottom: 1px solid var(--ct-line);
}

.ct-footer-brand {
  max-width: 850px;
}

.ct-footer-kicker {
  margin: 0 0 20px;
  color: var(--ct-accent);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.ct-footer h2 {
  margin: 0;
  font-size: clamp(56px, 8.5vw, 146px);
  font-weight: 800;
  line-height: .82;
  letter-spacing: -.065em;
}

.ct-footer-intro {
  max-width: 720px;
  margin: 38px 0 0;
  color: var(--ct-muted);
  font-size: clamp(17px, 1.25vw, 22px);
  line-height: 1.65;
}

.ct-footer-social {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--ct-line);
  border-left: 1px solid var(--ct-line);
}

.ct-social-link {
  position: relative;
  min-height: 170px;
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: 1fr auto;
  gap: 22px;
  border-right: 1px solid var(--ct-line);
  border-bottom: 1px solid var(--ct-line);
  transition: background-color .35s ease, transform .35s ease, color .35s ease;
}

.ct-social-link::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--ct-accent);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .38s cubic-bezier(.2,.8,.2,1);
  z-index: -1;
}

.ct-social-link:hover,
.ct-social-link:focus-visible {
  color: #101010;
  transform: translateY(-4px);
}

.ct-social-link:hover::before,
.ct-social-link:focus-visible::before {
  transform: scaleY(1);
}

.ct-social-icon {
  width: 62px;
  height: 62px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ct-social-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ct-social-link:first-child .ct-social-icon svg path {
  fill: currentColor;
  stroke: none;
}

.ct-social-name {
  align-self: end;
  font-size: 16px;
  font-weight: 650;
  letter-spacing: .02em;
}

.ct-social-arrow {
  align-self: end;
  font-size: 22px;
  line-height: 1;
  transition: transform .3s ease;
}

.ct-social-link:hover .ct-social-arrow,
.ct-social-link:focus-visible .ct-social-arrow {
  transform: translate(4px, -4px);
}

.ct-footer-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(34px, 5vw, 92px);
  padding: clamp(58px, 7vw, 96px) 0;
  border-bottom: 1px solid var(--ct-line);
}

.ct-footer-column-title {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ct-text);
  text-align: left;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: default;
}

.ct-footer-plus {
  display: none;
}

.ct-footer-column-body {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.ct-footer-column-body a {
  width: fit-content;
  color: var(--ct-muted);
  font-size: 17px;
  line-height: 1.4;
  transition: color .25s ease, transform .25s ease;
}

.ct-footer-column-body a:hover,
.ct-footer-column-body a:focus-visible {
  color: var(--ct-accent);
  transform: translateX(5px);
}

.ct-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding-top: 30px;
  color: rgba(245,243,239,.5);
  font-size: 13px;
  line-height: 1.5;
}

.ct-footer-bottom p {
  margin: 0;
}

.ct-footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px 26px;
}

.ct-footer-legal a {
  transition: color .25s ease;
}

.ct-footer-legal a:hover,
.ct-footer-legal a:focus-visible {
  color: var(--ct-text);
}

@media (max-width: 1200px) {
  .ct-footer-inner {
    width: min(100% - 56px, 1400px);
  }

  .ct-footer-hero {
    grid-template-columns: 1fr;
  }

  .ct-footer-social {
    max-width: 900px;
  }
}

@media (max-width: 760px) {
  .ct-footer-inner {
    width: calc(100% - 32px);
    padding-top: 76px;
  }

  .ct-footer-watermark {
    right: -20vw;
    bottom: 5vw;
    font-size: 125vw;
  }

  .ct-footer-hero {
    gap: 56px;
    padding-bottom: 64px;
  }

  .ct-footer h2 {
    font-size: clamp(52px, 18vw, 88px);
  }

  .ct-footer-intro {
    margin-top: 28px;
    font-size: 17px;
  }

  .ct-footer-social {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ct-social-link {
    min-height: 142px;
    padding: 22px;
  }

  .ct-social-icon {
    width: 46px;
    height: 46px;
  }

  .ct-social-name {
    font-size: 14px;
  }

  .ct-footer-links {
    display: block;
    padding: 0;
  }

  .ct-footer-column {
    border-bottom: 1px solid var(--ct-line);
  }

  .ct-footer-column:last-child {
    border-bottom: 0;
  }

  .ct-footer-column-title {
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
  }

  .ct-footer-plus {
    position: relative;
    width: 18px;
    height: 18px;
    display: block;
  }

  .ct-footer-plus::before,
  .ct-footer-plus::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 15px;
    height: 1px;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: transform .3s ease;
  }

  .ct-footer-plus::after {
    transform: translate(-50%, -50%) rotate(90deg);
  }

  .ct-footer-column.is-open .ct-footer-plus::after {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  .ct-footer-column-body {
    display: grid;
    grid-template-rows: 0fr;
    gap: 0;
    margin: 0;
    overflow: hidden;
    transition: grid-template-rows .35s ease, padding-bottom .35s ease;
  }

  .ct-footer-column-body > a {
    overflow: hidden;
  }

  .ct-footer-column.is-open .ct-footer-column-body {
    grid-template-rows: repeat(4, minmax(0, auto));
    gap: 13px;
    padding-bottom: 26px;
  }

  .ct-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    padding: 26px 0 6px;
  }

  .ct-footer-legal {
    justify-content: flex-start;
  }
}

@media (max-width: 430px) {
  .ct-footer-social {
    grid-template-columns: 1fr 1fr;
  }

  .ct-social-link {
    min-height: 128px;
    padding: 18px;
  }

  .ct-social-icon {
    width: 40px;
    height: 40px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ct-footer *,
  .ct-footer *::before,
  .ct-footer *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* =========================================================
   CHANIARTOON PREMIUM FOOTER v2
   Comic-panel background + simplified bottom line
========================================================= */

.ct-footer-watermark {
  display: none !important;
}

.ct-footer-panels {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.ct-panel {
  position: absolute;
  display: block;
  border: 1px solid rgba(255,255,255,.055);
  background:
    linear-gradient(135deg, rgba(255,255,255,.018), rgba(255,255,255,0));
  box-shadow:
    inset 0 0 0 1px rgba(242,154,74,.018),
    0 0 80px rgba(0,0,0,.24);
}

.ct-panel::after {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(255,255,255,.025);
}

.ct-panel-a {
  width: 46vw;
  height: 34vw;
  min-width: 520px;
  min-height: 390px;
  left: -15vw;
  bottom: -16vw;
  transform: rotate(-8deg) skewX(-4deg);
}

.ct-panel-b {
  width: 31vw;
  height: 24vw;
  min-width: 380px;
  min-height: 290px;
  left: 29vw;
  bottom: -16vw;
  transform: rotate(5deg) skewX(3deg);
}

.ct-panel-c {
  width: 36vw;
  height: 30vw;
  min-width: 440px;
  min-height: 340px;
  right: -20vw;
  bottom: -18vw;
  transform: rotate(-5deg) skewX(-2deg);
}

.ct-footer-hero,
.ct-footer-links,
.ct-footer-bottom {
  position: relative;
  z-index: 1;
}

.ct-footer-bottom {
  justify-content: flex-start !important;
}

.ct-footer-legal {
  display: none !important;
}

@media (max-width: 760px) {
  .ct-panel-a {
    width: 105vw;
    height: 76vw;
    left: -58vw;
    bottom: 8vw;
  }

  .ct-panel-b {
    width: 90vw;
    height: 66vw;
    left: 34vw;
    bottom: -18vw;
  }

  .ct-panel-c {
    display: none;
  }
}


/* =========================================================
   CHANIARTOON PREMIUM FOOTER v3
   Large background wordmark + corrected hero grid
========================================================= */

/* Disable the comic-panel experiment */
.ct-footer-panels,
.ct-panel {
  display: none !important;
}

/* Large, subtle CHANIARTOON background */
.ct-footer-wordmark {
  position: absolute;
  left: 50%;
  top: 54%;
  z-index: 0;
  width: max-content;
  transform: translate(-50%, -50%);
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,.055);
  font-size: clamp(180px, 21vw, 420px);
  font-weight: 800;
  line-height: .76;
  letter-spacing: -.07em;
  white-space: nowrap;
  opacity: .8;
  pointer-events: none;
  user-select: none;
}

/* Keep all real content above the wordmark */
.ct-footer-inner {
  position: relative;
  z-index: 1;
}

/* Correct the hero layout so the title can never enter the social cards */
.ct-footer-hero {
  grid-template-columns: minmax(0, 1fr) minmax(460px, 490px) !important;
  gap: clamp(56px, 6vw, 110px) !important;
  align-items: start !important;
}

.ct-footer-brand {
  min-width: 0 !important;
  max-width: none !important;
  padding-right: 0 !important;
}

.ct-footer h2 {
  max-width: 100% !important;
  font-size: clamp(54px, 7.1vw, 118px) !important;
  line-height: .84 !important;
  letter-spacing: -.065em !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.ct-footer-social {
  width: 100% !important;
  min-width: 0 !important;
  align-self: start !important;
}

/* Slightly reduce the social block height for better balance */
.ct-social-link {
  min-height: 150px !important;
}

/* Tablet */
@media (max-width: 1280px) {
  .ct-footer-hero {
    grid-template-columns: minmax(0, 1fr) 430px !important;
    gap: 48px !important;
  }

  .ct-footer h2 {
    font-size: clamp(52px, 6.7vw, 92px) !important;
  }
}

/* Stack before the title gets close to the social area */
@media (max-width: 1050px) {
  .ct-footer-hero {
    grid-template-columns: 1fr !important;
    gap: 58px !important;
  }

  .ct-footer h2 {
    white-space: normal !important;
    overflow: visible !important;
    font-size: clamp(58px, 12vw, 112px) !important;
  }

  .ct-footer-social {
    max-width: none !important;
  }

  .ct-footer-wordmark {
    top: 60%;
    font-size: clamp(150px, 27vw, 320px);
  }
}

@media (max-width: 760px) {
  .ct-footer-wordmark {
    top: 66%;
    font-size: 44vw;
    -webkit-text-stroke: 1px rgba(255,255,255,.04);
  }

  .ct-footer h2 {
    font-size: clamp(50px, 17vw, 86px) !important;
    overflow-wrap: anywhere;
  }
}

/* =========================================================
   CHANIARTOON — FESTIVAL INNER PAGES
========================================================= */

:root {
    --ct-black: #111014;
    --ct-black-soft: #18171c;
    --ct-white: #fffdf8;
    --ct-paper: #f3f0e9;
    --ct-sand: #e7dfd1;
    --ct-purple: #403b6e;
    --ct-purple-light: #b273e0;
    --ct-orange: #ffbf82;
    --ct-border-dark: rgba(255, 255, 255, 0.17);
    --ct-border-light: rgba(17, 16, 20, 0.18);
    --ct-max-width: 1440px;
    --ct-side-space: clamp(24px, 5vw, 84px);
}

.ct-festival-page,
.ct-festival-page *,
.ct-festival-page *::before,
.ct-festival-page *::after {
    box-sizing: border-box;
}

.ct-festival-page {
    width: 100%;
    overflow: hidden;
    background: var(--ct-paper);
    color: var(--ct-black);
}

.ct-festival-page img {
    display: block;
    width: 100%;
    height: auto;
}

.ct-festival-page a {
    color: inherit;
    text-decoration: none;
}

.ct-page-container {
    width: min(100%, var(--ct-max-width));
    margin-inline: auto;
    padding-inline: var(--ct-side-space);
}

.ct-section {
    position: relative;
    padding-block: clamp(90px, 11vw, 180px);
}

.ct-section--light {
    background: var(--ct-paper);
    color: var(--ct-black);
}

.ct-section--dark {
    background: var(--ct-black);
    color: var(--ct-white);
}

.ct-section--sand {
    background: var(--ct-sand);
    color: var(--ct-black);
}

.ct-section--purple {
    background: var(--ct-purple);
    color: var(--ct-white);
}

.ct-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-kicker::before {
    width: 28px;
    height: 2px;
    background: var(--ct-orange);
    content: "";
}

.ct-section h2,
.ct-editorial-intro h2,
.ct-name-copy h2,
.ct-next-pages h2 {
    margin: 0;
    font-size: clamp(42px, 5.4vw, 82px);
    line-height: 0.98;
    font-weight: 700;
    letter-spacing: -0.055em;
}

.ct-section h2 em,
.ct-editorial-intro h2 em,
.ct-name-copy h2 em {
    color: var(--ct-purple);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.ct-section--dark h2 em,
.ct-section--purple h2 em {
    color: var(--ct-orange);
}

.ct-festival-page p {
    margin-top: 0;
    line-height: 1.72;
}

.ct-section-header {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.65fr);
    gap: clamp(50px, 9vw, 160px);
    align-items: end;
    margin-bottom: clamp(60px, 8vw, 110px);
}

.ct-section-header > p {
    max-width: 520px;
    margin: 0 0 7px;
    font-size: clamp(16px, 1.4vw, 20px);
    opacity: 0.74;
}

.ct-section-header--light {
    color: var(--ct-white);
}


/* =========================================================
   HERO
========================================================= */

.ct-inner-hero {
    position: relative;
    min-height: min(930px, 100svh);
    display: flex;
    align-items: center;
    background: var(--ct-black);
    color: var(--ct-white);
    isolation: isolate;
}

.ct-inner-hero__background {
    position: absolute;
    inset: auto 0 -0.12em;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}

.ct-inner-hero__background span {
    display: block;
    color: transparent;
    font-size: clamp(150px, 25vw, 390px);
    line-height: 0.75;
    font-weight: 800;
    letter-spacing: -0.08em;
    text-align: center;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.075);
    white-space: nowrap;
}

.ct-inner-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.7fr);
    gap: clamp(50px, 8vw, 130px);
    align-items: center;
    padding-block: clamp(150px, 17vh, 230px) 130px;
}

.ct-eyebrow {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 38px;
    color: rgba(255, 255, 255, 0.66);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.ct-eyebrow__separator {
    width: 36px;
    height: 1px;
    background: var(--ct-orange);
}

.ct-inner-hero__title {
    max-width: 890px;
    margin: 0;
    font-size: clamp(53px, 6.4vw, 104px);
    line-height: 0.91;
    font-weight: 700;
    letter-spacing: -0.065em;
}

.ct-inner-hero__title em {
    display: inline-block;
    color: var(--ct-orange);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.ct-inner-hero__intro {
    max-width: 650px;
    margin: 46px 0 0;
    padding-left: 28px;
    border-left: 1px solid var(--ct-orange);
    color: rgba(255, 255, 255, 0.72);
    font-size: clamp(17px, 1.5vw, 22px);
}

.ct-inner-hero__visual {
    position: relative;
    padding: 28px 28px 0 0;
}

.ct-inner-hero__visual::before {
    position: absolute;
    top: 0;
    right: 0;
    width: 54%;
    height: 58%;
    border-top: 1px solid var(--ct-orange);
    border-right: 1px solid var(--ct-orange);
    content: "";
}

.ct-framed-image {
    position: relative;
    margin: 0;
    overflow: hidden;
    background: #222;
}

.ct-framed-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ct-framed-image--hero {
    aspect-ratio: 0.79;
}

.ct-framed-image figcaption {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 18px;
    background: rgba(17, 16, 20, 0.83);
    color: white;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}

.ct-image-index {
    position: absolute;
    right: -18px;
    bottom: -40px;
    color: var(--ct-orange);
    font-family: Georgia, serif;
    font-size: 80px;
    font-style: italic;
    line-height: 1;
}

.ct-scroll-marker {
    position: absolute;
    right: clamp(18px, 2.5vw, 45px);
    bottom: 44px;
    display: flex;
    align-items: center;
    gap: 15px;
    color: rgba(255, 255, 255, 0.45);
    font-size: 9px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    transform: rotate(90deg);
    transform-origin: right bottom;
}

.ct-scroll-marker i {
    display: block;
    width: 55px;
    height: 1px;
    background: rgba(255, 255, 255, 0.35);
}


/* =========================================================
   INTRO
========================================================= */

.ct-editorial-intro {
    display: grid;
    grid-template-columns: 90px minmax(0, 1.05fr) minmax(310px, 0.65fr);
    gap: clamp(35px, 6vw, 100px);
    align-items: start;
}

.ct-section-number {
    color: var(--ct-purple);
    font-family: Georgia, serif;
    font-size: 70px;
    font-style: italic;
    line-height: 0.9;
}

.ct-editorial-intro__text {
    padding-top: 51px;
    font-size: clamp(16px, 1.35vw, 20px);
}

.ct-editorial-intro__text p {
    margin-bottom: 28px;
}

.ct-editorial-intro__text strong {
    font-weight: 700;
}

.ct-statement {
    position: relative;
    max-width: 1120px;
    margin: clamp(90px, 12vw, 170px) auto 0;
    padding: clamp(55px, 7vw, 100px);
    border-top: 1px solid var(--ct-border-light);
    border-bottom: 1px solid var(--ct-border-light);
    text-align: center;
}

.ct-statement__mark {
    position: absolute;
    top: -41px;
    left: 50%;
    padding-inline: 25px;
    background: var(--ct-paper);
    color: var(--ct-orange);
    font-family: Georgia, serif;
    font-size: 90px;
    line-height: 1;
    transform: translateX(-50%);
}

.ct-statement p {
    margin: 0;
    font-size: clamp(30px, 4vw, 62px);
    line-height: 1.12;
    font-weight: 600;
    letter-spacing: -0.04em;
}

.ct-statement em {
    color: var(--ct-purple);
    font-family: Georgia, serif;
    font-weight: 400;
}


/* =========================================================
   PILLARS
========================================================= */

.ct-pillars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--ct-border-dark);
    border-left: 1px solid var(--ct-border-dark);
}

.ct-pillar-card {
    position: relative;
    min-height: 510px;
    padding: clamp(35px, 4vw, 62px);
    border-right: 1px solid var(--ct-border-dark);
    border-bottom: 1px solid var(--ct-border-dark);
    transition:
        background-color 280ms ease,
        color 280ms ease,
        transform 280ms ease;
}

.ct-pillar-card:hover {
    z-index: 2;
    background: var(--ct-orange);
    color: var(--ct-black);
    transform: translateY(-8px);
}

.ct-pillar-card__number {
    margin-bottom: 80px;
    color: rgba(255, 255, 255, 0.38);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

.ct-pillar-card:hover .ct-pillar-card__number {
    color: rgba(17, 16, 20, 0.5);
}

.ct-pillar-card__icon {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    width: 74px;
    height: 62px;
    margin-bottom: 44px;
}

.ct-pillar-card__icon span {
    display: block;
    width: 19px;
    border: 1px solid currentColor;
}

.ct-pillar-card__icon span:nth-child(1) {
    height: 60%;
}

.ct-pillar-card__icon span:nth-child(2) {
    height: 100%;
}

.ct-pillar-card__icon span:nth-child(3) {
    height: 78%;
}

.ct-pillar-card__icon--motion span {
    width: 18px;
    height: 18px !important;
    border-radius: 50%;
}

.ct-pillar-card__icon--motion span:nth-child(2) {
    transform: translateY(-16px);
}

.ct-pillar-card__icon--education {
    align-items: center;
}

.ct-pillar-card__icon--education span {
    width: 24px;
    height: 24px !important;
    transform: rotate(45deg);
}

.ct-pillar-card h3 {
    margin: 0 0 24px;
    font-size: clamp(36px, 3vw, 50px);
    line-height: 1;
    letter-spacing: -0.045em;
}

.ct-pillar-card p {
    max-width: 370px;
    margin-bottom: 55px;
    color: rgba(255, 255, 255, 0.65);
    font-size: 16px;
}

.ct-pillar-card:hover p {
    color: rgba(17, 16, 20, 0.75);
}

.ct-pillar-card__label {
    position: absolute;
    right: 45px;
    bottom: 38px;
    left: 45px;
    padding-top: 18px;
    border-top: 1px solid currentColor;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.5;
}


/* =========================================================
   LOCATION
========================================================= */

.ct-location-grid {
    display: grid;
    grid-template-columns: minmax(350px, 0.85fr) minmax(0, 1fr);
    gap: clamp(60px, 10vw, 170px);
    align-items: center;
}

.ct-location-visual {
    position: relative;
    padding: 0 0 50px 38px;
}

.ct-location-visual::before {
    position: absolute;
    inset: 45px auto 0 0;
    width: 62%;
    border-left: 1px solid var(--ct-black);
    border-bottom: 1px solid var(--ct-black);
    content: "";
}

.ct-location-visual .ct-framed-image {
    aspect-ratio: 0.82;
}

.ct-location-coordinates {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    gap: 22px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ct-location-content .ct-large-copy {
    margin-top: 45px;
    font-size: clamp(21px, 2vw, 29px);
    line-height: 1.43;
    font-weight: 600;
    letter-spacing: -0.025em;
}

.ct-location-content > p:not(.ct-large-copy) {
    max-width: 650px;
    margin-bottom: 25px;
    font-size: 17px;
}


/* =========================================================
   PROGRAMME LIST
========================================================= */

.ct-programme-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--ct-border-light);
}

.ct-programme-list a {
    display: grid;
    grid-template-columns: 55px 1fr 40px;
    gap: 20px;
    align-items: center;
    min-height: 108px;
    padding: 20px 26px;
    border-right: 1px solid var(--ct-border-light);
    border-bottom: 1px solid var(--ct-border-light);
    transition:
        background-color 220ms ease,
        padding 220ms ease;
}

.ct-programme-list a:nth-child(even) {
    border-right: 0;
}

.ct-programme-list a:hover {
    padding-left: 38px;
    background: var(--ct-orange);
}

.ct-programme-list__number {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    opacity: 0.47;
}

.ct-programme-list__title {
    font-size: clamp(19px, 1.7vw, 26px);
    font-weight: 650;
    letter-spacing: -0.025em;
}

.ct-programme-list__arrow {
    font-size: 24px;
    text-align: right;
    transition: transform 220ms ease;
}

.ct-programme-list a:hover .ct-programme-list__arrow {
    transform: translate(5px, -5px);
}


/* =========================================================
   VALUES
========================================================= */

.ct-values-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--ct-border-dark);
    border-left: 1px solid var(--ct-border-dark);
}

.ct-value {
    min-height: 330px;
    padding: clamp(28px, 3.5vw, 50px);
    border-right: 1px solid var(--ct-border-dark);
    border-bottom: 1px solid var(--ct-border-dark);
}

.ct-value > span {
    display: block;
    margin-bottom: 80px;
    color: var(--ct-orange);
    font-size: 11px;
    letter-spacing: 0.14em;
}

.ct-value h3 {
    margin: 0 0 20px;
    font-size: clamp(25px, 2.2vw, 35px);
    letter-spacing: -0.035em;
}

.ct-value p {
    margin: 0;
    color: rgba(255, 255, 255, 0.67);
    font-size: 15px;
}


/* =========================================================
   NAME
========================================================= */

.ct-name-grid {
    display: grid;
    grid-template-columns: minmax(420px, 1.05fr) minmax(310px, 0.65fr);
    gap: clamp(60px, 11vw, 180px);
    align-items: center;
}

.ct-name-equation {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.ct-name-equation__word,
.ct-name-equation__result {
    font-size: clamp(60px, 8vw, 126px);
    line-height: 0.83;
    font-weight: 800;
    letter-spacing: -0.075em;
}

.ct-name-equation__word:nth-of-type(3) {
    color: transparent;
    -webkit-text-stroke: 1px var(--ct-black);
}

.ct-name-equation__symbol {
    align-self: flex-end;
    margin-block: -6px;
    color: var(--ct-orange);
    font-family: Georgia, serif;
    font-size: clamp(55px, 6vw, 90px);
    font-style: italic;
    line-height: 1;
}

.ct-name-equation__result {
    color: var(--ct-purple);
    font-size: clamp(53px, 7vw, 110px);
}

.ct-name-copy p {
    margin-bottom: 25px;
    font-size: 17px;
}


/* =========================================================
   NEXT PAGES
========================================================= */

.ct-next-pages {
    padding-block: clamp(90px, 10vw, 150px);
    background: var(--ct-black);
    color: var(--ct-white);
}

.ct-next-pages__intro {
    max-width: 900px;
    margin-bottom: clamp(55px, 8vw, 100px);
}

.ct-next-pages__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--ct-border-dark);
    border-left: 1px solid var(--ct-border-dark);
}

.ct-next-page-link {
    display: grid;
    grid-template-columns: 55px 1fr auto;
    gap: 30px;
    align-items: center;
    min-height: 210px;
    padding: clamp(28px, 4vw, 55px);
    border-right: 1px solid var(--ct-border-dark);
    border-bottom: 1px solid var(--ct-border-dark);
    transition:
        background-color 250ms ease,
        color 250ms ease;
}

.ct-next-page-link:hover {
    background: var(--ct-orange);
    color: var(--ct-black);
}

.ct-next-page-link__number {
    align-self: start;
    padding-top: 5px;
    color: var(--ct-orange);
    font-size: 11px;
    letter-spacing: 0.14em;
}

.ct-next-page-link:hover .ct-next-page-link__number {
    color: var(--ct-black);
}

.ct-next-page-link__content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ct-next-page-link__content small {
    font-size: 9px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.5;
}

.ct-next-page-link__content strong {
    font-size: clamp(34px, 4vw, 58px);
    line-height: 1;
    letter-spacing: -0.045em;
}

.ct-next-page-link__arrow {
    font-size: 30px;
    transition: transform 220ms ease;
}

.ct-next-page-link:hover .ct-next-page-link__arrow {
    transform: translate(7px, -7px);
}


/* =========================================================
   JOOMLA ARTICLE RESET
========================================================= */

.ct-about-page .page-header,
.ct-about-page + .article-info,
.item-page:has(.ct-about-page) > .page-header,
.item-page:has(.ct-about-page) > .article-info {
    display: none !important;
}

.item-page:has(.ct-about-page),
.item-page:has(.ct-about-page) .article-body,
.item-page:has(.ct-about-page) .com-content-article__body {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

#sp-main-body:has(.ct-about-page) {
    padding: 0 !important;
}

#sp-main-body:has(.ct-about-page) > .container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

#sp-main-body:has(.ct-about-page) .row {
    margin: 0 !important;
}

#sp-main-body:has(.ct-about-page) [class*="col-"] {
    padding: 0 !important;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .ct-inner-hero {
        min-height: auto;
    }

    .ct-inner-hero__grid {
        grid-template-columns: 1fr;
        padding-top: 170px;
    }

    .ct-inner-hero__content {
        position: relative;
        z-index: 2;
    }

    .ct-inner-hero__visual {
        width: min(680px, 86%);
        margin-left: auto;
    }

    .ct-editorial-intro {
        grid-template-columns: 70px 1fr;
    }

    .ct-editorial-intro__text {
        grid-column: 2;
        padding-top: 0;
    }

    .ct-pillars {
        grid-template-columns: 1fr;
    }

    .ct-pillar-card {
        min-height: 400px;
    }

    .ct-values-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-name-grid {
        grid-template-columns: 1fr;
    }

    .ct-name-equation {
        max-width: 780px;
    }
}


@media (max-width: 820px) {

    .ct-section-header {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .ct-inner-hero__grid {
        gap: 70px;
        padding-bottom: 110px;
    }

    .ct-inner-hero__visual {
        width: 92%;
    }

    .ct-location-grid {
        grid-template-columns: 1fr;
    }

    .ct-location-visual {
        width: min(620px, 90%);
    }

    .ct-programme-list {
        grid-template-columns: 1fr;
    }

    .ct-programme-list a,
    .ct-programme-list a:nth-child(even) {
        border-right: 0;
    }

    .ct-next-pages__links {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 600px) {

    :root {
        --ct-side-space: 20px;
    }

    .ct-section {
        padding-block: 82px;
    }

    .ct-inner-hero__grid {
        padding-top: 135px;
        padding-bottom: 90px;
    }

    .ct-inner-hero__title {
        font-size: clamp(48px, 15vw, 70px);
    }

    .ct-inner-hero__intro {
        margin-top: 32px;
        padding-left: 18px;
        font-size: 16px;
    }

    .ct-inner-hero__visual {
        width: 100%;
        padding: 16px 16px 0 0;
    }

    .ct-image-index {
        right: 0;
        bottom: -30px;
        font-size: 58px;
    }

    .ct-scroll-marker {
        display: none;
    }

    .ct-editorial-intro {
        grid-template-columns: 1fr;
    }

    .ct-section-number {
        font-size: 52px;
    }

    .ct-editorial-intro__text {
        grid-column: auto;
        font-size: 16px;
    }

    .ct-statement {
        padding-inline: 5px;
    }

    .ct-statement p {
        font-size: 31px;
    }

    .ct-pillar-card {
        min-height: 430px;
        padding: 35px 28px;
    }

    .ct-pillar-card__number {
        margin-bottom: 55px;
    }

    .ct-pillar-card__label {
        right: 28px;
        left: 28px;
    }

    .ct-location-visual {
        width: 100%;
        padding-left: 20px;
    }

    .ct-programme-list a {
        grid-template-columns: 36px 1fr 25px;
        gap: 10px;
        min-height: 88px;
        padding-inline: 12px;
    }

    .ct-programme-list a:hover {
        padding-left: 18px;
    }

    .ct-values-grid {
        grid-template-columns: 1fr;
    }

    .ct-value {
        min-height: 260px;
    }

    .ct-value > span {
        margin-bottom: 48px;
    }

    .ct-name-equation__word,
    .ct-name-equation__result {
        font-size: clamp(45px, 15.5vw, 78px);
    }

    .ct-name-equation__result {
        font-size: clamp(38px, 13vw, 66px);
    }

    .ct-next-page-link {
        grid-template-columns: 35px 1fr auto;
        gap: 15px;
        min-height: 155px;
        padding: 26px 20px;
    }
}


/* Reduced motion */
@media (prefers-reduced-motion: reduce) {

    .ct-festival-page *,
    .ct-festival-page *::before,
    .ct-festival-page *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}



#ctHeader,
#ctHeader::before,
#ctHeader::after,
.ct-header,
.ct-header::before,
.ct-header::after {
    border-bottom: 0 !important;
    box-shadow: none !important;
}

.ct-mega-menu{
    margin-top:0 !important;
}


/* =========================================================
   CHANIARTOON HISTORY PAGE
   Hero + Origin
========================================================= */
/* CHANIARTOON HISTORY — COMPLETE CSS */

/* BASE */
.ct-history-page{
  --ct-dark:#111117;
  --ct-dark-2:#17161d;
  --ct-paper:#f2eee7;
  --ct-beige:#e8e0d5;
  --ct-ink:#1a181e;
  --ct-orange:#ffbf82;
  --ct-purple:#b273e0;
  --ct-container:1840px;
  --ct-side:clamp(24px,4.2vw,80px);

  position:relative;
  left:50%;
  width:100vw;
  max-width:none;
  margin-left:-50vw;
  overflow:hidden;
  background:var(--ct-dark);
  color:#fff;
  font-family:"Manrope",Arial,sans-serif;
}

.ct-history-page *,
.ct-history-page *::before,
.ct-history-page *::after{box-sizing:border-box}

.ct-history-page img{max-width:100%}

.ct-history-container{
  width:calc(100% - (var(--ct-side) * 2));
  max-width:var(--ct-container);
  margin-inline:auto;
}

.ct-history-label,
.ct-history-chapter,
.ct-history-edition,
.ct-history-interlude-index{
  display:block;
  color:var(--ct-orange);
  font-size:11px;
  font-weight:800;
  line-height:1.3;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.ct-history-lead{
  font-size:clamp(23px,2vw,34px);
  line-height:1.5;
  letter-spacing:-.025em;
}

/* HERO */
.ct-history-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:clamp(145px,14vw,235px) 0 clamp(105px,10vw,175px);
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 22%,rgba(178,115,224,.18),transparent 31%),
    linear-gradient(135deg,#111117 0%,#17141c 100%);
}

.ct-history-hero-watermark{
  position:absolute;
  left:-.03em;
  bottom:-.15em;
  color:rgba(255,255,255,.035);
  font-size:clamp(130px,23vw,430px);
  font-weight:900;
  line-height:.78;
  letter-spacing:-.1em;
  white-space:nowrap;
}

.ct-history-hero-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.58fr);
  gap:clamp(70px,10vw,180px);
  align-items:center;
}

.ct-history-hero-copy{max-width:1000px}

.ct-history-hero h1{
  margin:28px 0 38px;
  font-size:clamp(70px,10.8vw,190px);
  font-weight:850;
  line-height:.82;
  letter-spacing:-.075em;
}

.ct-history-hero-copy p{
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:clamp(18px,1.35vw,24px);
  line-height:1.7;
}

.ct-history-hero-poster{
  margin:0;
  transform:rotate(2deg);
}

.ct-history-hero-poster img{
  display:block;
  width:100%;
  max-height:680px;
  object-fit:contain;
  box-shadow:0 55px 120px rgba(0,0,0,.5);
}

.ct-history-hero-poster figcaption{
  margin-top:20px;
  color:rgba(255,255,255,.42);
  font-size:10px;
  font-weight:800;
  letter-spacing:.2em;
  text-align:center;
  text-transform:uppercase;
}

/* ORIGIN */
.ct-history-origin{
  padding:clamp(110px,10vw,190px) 0;
  color:var(--ct-ink);
  background:var(--ct-paper);
}

.ct-history-origin-grid{
  display:grid;
  grid-template-columns:minmax(270px,.48fr) minmax(0,1.52fr);
  gap:clamp(70px,10vw,190px);
  align-items:start;
}

.ct-history-origin-year strong{
  display:block;
  margin-top:20px;
  color:transparent;
  font-size:clamp(110px,15vw,270px);
  font-weight:900;
  line-height:.8;
  letter-spacing:-.09em;
  -webkit-text-stroke:2px rgba(25,23,29,.75);
}

.ct-history-origin-copy{max-width:980px}

.ct-history-origin-copy h2{
  max-width:900px;
  margin:24px 0 45px;
  font-size:clamp(55px,7vw,120px);
  font-weight:850;
  line-height:.9;
  letter-spacing:-.065em;
}

.ct-history-origin-copy p{
  max-width:760px;
  color:rgba(25,23,29,.68);
  font-size:17px;
  line-height:1.8;
}

/* COMMON PANELS */
.ct-history-panel{
  position:relative;
  padding:clamp(110px,10vw,180px) 0;
  overflow:hidden;
}

.ct-history-panel-light{
  color:var(--ct-ink);
  background:var(--ct-paper);
}

.ct-history-panel-beige{
  color:var(--ct-ink);
  background:var(--ct-beige);
}

.ct-history-panel-dark{
  color:#fff;
  background:
    radial-gradient(circle at 80% 20%,rgba(178,115,224,.14),transparent 34%),
    #151319;
}

.ct-history-panel-watermark{
  position:absolute;
  right:-.04em;
  bottom:-.2em;
  color:rgba(25,23,29,.035);
  font-size:clamp(170px,25vw,470px);
  font-weight:900;
  line-height:.75;
  letter-spacing:-.1em;
  pointer-events:none;
}

.ct-history-panel-dark .ct-history-panel-watermark{
  color:rgba(255,255,255,.025);
}

.ct-history-year-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  position:relative;
  z-index:2;
}

.ct-history-year-meta strong{
  display:block;
  margin:18px 0;
  color:inherit;
  font-size:clamp(80px,8vw,145px);
  font-weight:900;
  line-height:.82;
  letter-spacing:-.08em;
}

.ct-history-edition{
  color:inherit;
  opacity:.48;
}

.ct-history-standard-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(170px,.3fr) minmax(330px,.65fr) minmax(430px,1fr);
  gap:clamp(50px,7vw,125px);
  align-items:center;
}

.ct-history-poster{
  position:relative;
  margin:0;
}

.ct-history-poster::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:5% -7% -5% 7%;
  border:1px solid rgba(25,23,29,.2);
  transform:rotate(4deg);
}

.ct-history-poster img{
  display:block;
  width:100%;
  max-height:700px;
  object-fit:contain;
  background:#ddd5c9;
  box-shadow:0 45px 100px rgba(0,0,0,.28);
  transition:transform .65s cubic-bezier(.22,1,.36,1),box-shadow .65s;
}

.ct-history-poster figcaption,
.ct-history-double-gallery figcaption,
.ct-history-triple-gallery figcaption{
  margin-top:20px;
  color:rgba(25,23,29,.5);
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.ct-history-copy{max-width:700px}

.ct-history-copy h3{
  margin:24px 0 36px;
  color:inherit;
  font-size:clamp(52px,6vw,105px);
  font-weight:850;
  line-height:.9;
  letter-spacing:-.065em;
}

.ct-history-copy p{
  margin:0;
  color:rgba(25,23,29,.7);
  font-size:17px;
  line-height:1.8;
}

.ct-history-secondary{margin-top:24px!important}

.ct-history-highlights{
  display:grid;
  margin:40px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid currentColor;
}

.ct-history-highlights li{
  position:relative;
  padding:15px 0 15px 26px;
  border-bottom:1px solid currentColor;
  color:currentColor;
  opacity:.72;
  font-size:12px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.ct-history-highlights li::before{
  content:"";
  position:absolute;
  left:2px;
  top:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ct-orange);
  transform:translateY(-50%);
}

/* TYPE B */
.ct-history-type-b .ct-history-standard-grid{
  grid-template-columns:minmax(430px,1fr) minmax(330px,.72fr) minmax(175px,.32fr);
}

.ct-history-type-b .ct-history-copy{grid-column:1}
.ct-history-type-b .ct-history-poster{
  grid-column:2;
  transform:rotate(1.6deg);
}

.ct-history-type-b .ct-history-year-meta{
  grid-column:3;
  align-items:flex-end;
  text-align:right;
}

/* TYPE C */
.ct-history-hero-panel-header{
  display:grid;
  grid-template-columns:minmax(190px,.35fr) minmax(0,1.65fr);
  gap:clamp(60px,9vw,170px);
  align-items:end;
  margin-bottom:clamp(70px,8vw,125px);
  position:relative;
  z-index:2;
}

.ct-history-hero-panel-header h3{
  margin:20px 0 0;
  font-size:clamp(65px,9vw,145px);
  font-weight:850;
  line-height:.86;
  letter-spacing:-.07em;
}

.ct-history-hero-panel-grid{
  display:grid;
  grid-template-columns:minmax(480px,1.3fr) minmax(310px,.7fr);
  gap:clamp(60px,8vw,135px);
  align-items:end;
  position:relative;
  z-index:2;
}

.ct-history-large-poster{
  position:relative;
  margin:0;
}

.ct-history-large-poster::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:5% -3% -5% 5%;
  border:1px solid rgba(178,115,224,.28);
  transform:rotate(1.8deg);
}

.ct-history-large-poster img{
  display:block;
  width:100%;
  max-height:900px;
  object-fit:contain;
  background:#232029;
  box-shadow:0 55px 110px rgba(0,0,0,.5);
  transform:rotate(-.7deg);
  transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s;
}

.ct-history-large-poster figcaption{
  margin-top:26px;
  color:rgba(255,255,255,.48);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.ct-history-story{
  max-width:560px;
  padding-bottom:45px;
}

.ct-history-story p{
  margin:0;
  color:rgba(255,255,255,.62);
  font-size:16px;
  line-height:1.8;
}

.ct-history-story p+p{margin-top:26px}

.ct-history-story .ct-history-lead{
  padding-bottom:35px;
  border-bottom:1px solid rgba(255,255,255,.13);
  color:#fff;
  font-size:clamp(23px,2.2vw,34px);
  font-weight:600;
  line-height:1.4;
}

/* INTERLUDES */
.ct-history-interlude{
  position:relative;
  padding:clamp(130px,12vw,220px) 0;
  overflow:hidden;
  color:#fff;
  background:#0f1015;
  border-block:1px solid rgba(255,255,255,.05);
}

.ct-history-interlude h2{
  margin:30px 0 0;
  color:rgba(255,255,255,.055);
  font-size:clamp(90px,15vw,250px);
  font-weight:900;
  line-height:.8;
  letter-spacing:-.08em;
  text-transform:uppercase;
}

.ct-history-interlude p{
  max-width:760px;
  margin:55px 0 0;
  color:rgba(255,255,255,.78);
  font-size:clamp(22px,2vw,31px);
  line-height:1.6;
}

.ct-history-interlude-light{
  color:var(--ct-ink);
  background:var(--ct-beige);
}

.ct-history-interlude-light h2{color:rgba(25,23,29,.05)}
.ct-history-interlude-light p{color:rgba(25,23,29,.74)}

/* TYPE D */
.ct-history-wide-header{
  display:grid;
  grid-template-columns:minmax(180px,.35fr) minmax(0,1.65fr);
  gap:clamp(60px,9vw,170px);
  align-items:end;
  margin-bottom:clamp(70px,8vw,120px);
}

.ct-history-wide-header h3{
  margin:20px 0 0;
  font-size:clamp(60px,8vw,135px);
  font-weight:850;
  line-height:.88;
  letter-spacing:-.07em;
}

.ct-history-double-gallery{
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:clamp(25px,3vw,55px);
}

.ct-history-double-gallery figure,
.ct-history-triple-gallery figure{margin:0}

.ct-history-double-gallery img{
  display:block;
  width:100%;
  height:clamp(440px,48vw,800px);
  object-fit:contain;
  background:#d9d0c3;
  box-shadow:0 45px 100px rgba(0,0,0,.28);
}

.ct-history-double-gallery .ct-history-photo-card img{object-fit:cover}

.ct-history-wide-footer{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:clamp(60px,8vw,130px);
  margin-top:clamp(70px,7vw,115px);
  align-items:start;
}

.ct-history-wide-footer p{
  margin:0;
  color:rgba(25,23,29,.75);
}

.ct-history-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}

.ct-history-tags li{
  padding:12px 16px;
  border:1px solid rgba(25,23,29,.22);
  border-radius:999px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.ct-history-triple-gallery{
  display:grid;
  grid-template-columns:1.05fr 1fr 1fr;
  gap:clamp(20px,2vw,38px);
}

.ct-history-triple-gallery figure:nth-child(2){margin-top:10vw}
.ct-history-triple-gallery figure:nth-child(3){margin-top:4vw}

.ct-history-triple-gallery img{
  display:block;
  width:100%;
  height:clamp(390px,38vw,680px);
  object-fit:cover;
  box-shadow:0 45px 100px rgba(0,0,0,.24);
}

.ct-history-triple-gallery figure:first-child img{
  object-fit:contain;
  background:#d9d0c3;
}

/* PHOTO PANEL */
.ct-history-photo-panel{
  position:relative;
  min-height:900px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}

.ct-history-photo-panel-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.ct-history-photo-panel-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(12,12,16,.9) 0%,rgba(12,12,16,.45) 48%,rgba(12,12,16,.2) 100%),
    linear-gradient(0deg,rgba(12,12,16,.88) 0%,transparent 55%);
}

.ct-history-photo-panel-content{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);
  gap:clamp(60px,9vw,170px);
  align-items:end;
  padding-block:clamp(120px,12vw,210px);
}

.ct-history-photo-panel-copy{max-width:950px}

.ct-history-photo-panel-copy h3{
  margin:22px 0 38px;
  font-size:clamp(65px,9vw,150px);
  font-weight:850;
  line-height:.86;
  letter-spacing:-.07em;
}

.ct-history-photo-panel-copy p{
  max-width:680px;
  margin:0;
  color:rgba(255,255,255,.74);
  font-size:18px;
  line-height:1.8;
}

/* CLOSING */
.ct-history-closing{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:clamp(110px,10vw,180px) 0;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 20% 20%,rgba(255,191,130,.12),transparent 28%),
    #101016;
}

.ct-history-closing-watermark{
  position:absolute;
  right:-.04em;
  bottom:-.16em;
  color:rgba(255,255,255,.035);
  font-size:clamp(180px,29vw,520px);
  font-weight:900;
  line-height:.75;
  letter-spacing:-.1em;
}

.ct-history-closing-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.55fr);
  gap:clamp(70px,10vw,180px);
  align-items:center;
}

.ct-history-closing-copy h3{
  margin:24px 0 38px;
  font-size:clamp(75px,10vw,175px);
  font-weight:850;
  line-height:.82;
  letter-spacing:-.075em;
}

.ct-history-closing-copy p{
  max-width:650px;
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:18px;
  line-height:1.8;
}

.ct-history-closing-poster{margin:0}

.ct-history-closing-poster img{
  display:block;
  width:100%;
  max-height:720px;
  object-fit:contain;
  box-shadow:0 55px 120px rgba(0,0,0,.48);
  transform:rotate(1.5deg);
}

/* CTA */
.ct-history-cta{
  padding:clamp(130px,13vw,240px) 0;
  color:var(--ct-ink);
  background:var(--ct-orange);
}

.ct-history-cta .ct-history-label{color:var(--ct-ink)}

.ct-history-cta h2{
  margin:35px 0 clamp(70px,8vw,130px);
  font-size:clamp(75px,12vw,220px);
  font-weight:900;
  line-height:.76;
  letter-spacing:-.085em;
}

.ct-history-cta-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:50px;
  align-items:end;
  padding-top:35px;
  border-top:1px solid rgba(25,23,29,.3);
}

.ct-history-cta-bottom p{
  max-width:650px;
  margin:0;
  font-size:18px;
  line-height:1.7;
}

.ct-history-button{
  display:inline-flex;
  align-items:center;
  gap:35px;
  padding:18px 22px;
  border:1px solid currentColor;
  color:var(--ct-ink);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-decoration:none;
  text-transform:uppercase;
  transition:background .3s,color .3s,transform .3s;
}

.ct-history-button:hover{
  color:var(--ct-orange);
  background:var(--ct-ink);
  transform:translateY(-3px);
}

/* HOVERS */
@media (hover:hover){
  .ct-history-poster:hover img{
    transform:translateY(-8px) rotate(-.6deg) scale(1.008);
    box-shadow:0 58px 115px rgba(0,0,0,.35);
  }

  .ct-history-large-poster:hover img{
    transform:rotate(0) translateY(-8px) scale(1.008);
    box-shadow:0 65px 125px rgba(0,0,0,.56);
  }
}

/* RESPONSIVE */
@media (max-width:1200px){
  .ct-history-standard-grid{
    grid-template-columns:minmax(135px,.26fr) minmax(280px,.62fr) minmax(350px,1fr);
    gap:45px;
  }

  .ct-history-type-b .ct-history-standard-grid{
    grid-template-columns:minmax(350px,1fr) minmax(280px,.7fr) minmax(130px,.28fr);
  }
}

@media (max-width:900px){
  .ct-history-hero-grid,
  .ct-history-origin-grid,
  .ct-history-standard-grid,
  .ct-history-type-b .ct-history-standard-grid,
  .ct-history-hero-panel-header,
  .ct-history-hero-panel-grid,
  .ct-history-wide-header,
  .ct-history-wide-footer,
  .ct-history-photo-panel-content,
  .ct-history-closing-grid{
    grid-template-columns:1fr;
  }

  .ct-history-hero{min-height:auto}
  .ct-history-hero-poster{width:min(72%,520px);margin-inline:auto}
  .ct-history-origin-grid{gap:65px}

  .ct-history-type-b .ct-history-copy{grid-column:auto;order:2}
  .ct-history-type-b .ct-history-poster{
    grid-column:auto;
    order:3;
    width:min(78%,600px);
    margin-inline:auto;
  }

  .ct-history-type-b .ct-history-year-meta{
    grid-column:auto;
    order:1;
    align-items:flex-start;
    text-align:left;
  }

  .ct-history-poster{width:min(78%,600px);margin-inline:auto}
  .ct-history-hero-panel-grid{gap:65px}
  .ct-history-large-poster{width:min(88%,700px);margin-inline:auto}
  .ct-history-story{max-width:none;padding-bottom:0}

  .ct-history-double-gallery{grid-template-columns:1fr 1fr}
  .ct-history-triple-gallery{grid-template-columns:1fr 1fr}
  .ct-history-triple-gallery figure:nth-child(n){margin-top:0}

  .ct-history-triple-gallery figure:first-child{
    grid-column:1/-1;
    width:min(70%,620px);
    margin-inline:auto;
  }

  .ct-history-photo-panel{min-height:760px}
  .ct-history-photo-panel-content{gap:70px}
  .ct-history-closing-poster{width:min(70%,560px);margin-inline:auto}
  .ct-history-cta-bottom{grid-template-columns:1fr}
}

@media (max-width:620px){
  .ct-history-page{--ct-side:22px}

  .ct-history-hero{padding-top:125px}
  .ct-history-hero h1{font-size:clamp(58px,17vw,92px)}
  .ct-history-hero-poster{width:88%}

  .ct-history-origin-year strong{
    -webkit-text-stroke:1.5px rgba(25,23,29,.75);
  }

  .ct-history-year-meta strong{font-size:82px}

  .ct-history-copy h3,
  .ct-history-wide-header h3,
  .ct-history-photo-panel-copy h3{
    font-size:clamp(50px,15vw,78px);
  }

  .ct-history-hero-panel-header h3{
    font-size:clamp(52px,15vw,80px);
  }

  .ct-history-poster,
  .ct-history-type-b .ct-history-poster,
  .ct-history-large-poster{width:94%}

  .ct-history-double-gallery,
  .ct-history-triple-gallery{grid-template-columns:1fr}

  .ct-history-triple-gallery figure:first-child{
    grid-column:auto;
    width:100%;
  }

  .ct-history-double-gallery img,
  .ct-history-triple-gallery img{
    height:auto;
    max-height:650px;
  }

  .ct-history-double-gallery .ct-history-photo-card img{
    aspect-ratio:4/5;
    object-fit:cover;
  }

  .ct-history-interlude h2{
    font-size:clamp(68px,23vw,120px);
  }

  .ct-history-photo-panel{min-height:680px}

  .ct-history-closing-copy h3{
    font-size:clamp(62px,18vw,95px);
  }

  .ct-history-closing-poster{width:88%}

  .ct-history-cta h2{
    font-size:clamp(62px,20vw,105px);
  }
}

/* Καθαρό custom header χωρίς λευκή λωρίδα */
#sp-header {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

#sp-header > .container,
#sp-header > .container > .row,
#sp-header #sp-menu,
#sp-header #sp-menu > .sp-column,
#sp-header .jmoddiv,
#sp-header .mod-custom {
    margin: 0 !important;
    padding-top: 0 !important;
    border: 0 !important;
}

/* Εσωτερικές σελίδες: σκούρο φόντο ώστε να φαίνονται τα λευκά γράμματα */
body:not(.view-featured) #ctHeader {
    background: #403b6e !important;
}

/* Αρχική σελίδα: παραμένει διάφανο πάνω από το hero */
body.view-featured #ctHeader {
    background: transparent !important;
}

/* Αποφυγή ψευδοστοιχείων που δημιουργούν γραμμή */
#sp-header::before,
#sp-header::after,
#ctHeader::before,
#ctHeader::after {
    content: none !important;
    display: none !important;
}

.ct-history-page ~ .page-header,
.item-page:has(.ct-history-page) > .page-header,
.item-page:has(.ct-history-page) > .article-info {
    display: none !important;
}

.item-page:has(.ct-history-page),
.item-page:has(.ct-history-page) .article-body,
.item-page:has(.ct-history-page) .com-content-article__body {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

#sp-main-body:has(.ct-history-page) {
    padding: 0 !important;
}

#sp-main-body:has(.ct-history-page) > .container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

#sp-main-body:has(.ct-history-page) .row {
    margin: 0 !important;
}

#sp-main-body:has(.ct-history-page) [class*="col-"] {
    padding: 0 !important;
}

/* =========================================================
   CHANIARTOON – ORGANIZATION PAGE
   ========================================================= */

.ct-organization-page {
    --ct-org-purple: #5f2d91;
    --ct-org-purple-dark: #2d1747;
    --ct-org-purple-light: #eee6f7;
    --ct-org-pink: #e44d91;
    --ct-org-yellow: #f4c542;
    --ct-org-black: #18151d;
    --ct-org-grey: #6c6871;
    --ct-org-light: #f7f5f9;
    --ct-org-white: #ffffff;

    width: 100%;
    overflow: hidden;
    background: var(--ct-org-white);
    color: var(--ct-org-black);
}

.ct-organization-page *,
.ct-organization-page *::before,
.ct-organization-page *::after {
    box-sizing: border-box;
}

.ct-org-container {
    width: min(100% - 48px, 1240px);
    margin-inline: auto;
}

.ct-org-section {
    padding: 110px 0;
}

.ct-org-section-number,
.ct-org-eyebrow {
    display: inline-block;
    margin-bottom: 18px;
    font-size: 13px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ct-org-purple);
}

.ct-org-heading {
    max-width: 760px;
    margin-bottom: 60px;
}

.ct-org-heading h2,
.ct-org-text h2,
.ct-org-cta h2 {
    margin: 0 0 24px;
    font-size: clamp(38px, 5vw, 68px);
    line-height: 0.98;
    font-weight: 900;
    letter-spacing: -0.045em;
}

.ct-org-heading p,
.ct-org-text p,
.ct-org-cta p {
    font-size: 18px;
    line-height: 1.75;
}


/* HERO */

.ct-org-hero {
    position: relative;
    min-height: 680px;
    display: flex;
    align-items: flex-end;
    isolation: isolate;
    background: var(--ct-org-purple-dark);
}

.ct-org-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -3;
    background-image: url("/images/organization/organization-hero.jpg");
    background-position: center;
    background-size: cover;
    transform: scale(1.01);
}

.ct-org-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(
            90deg,
            rgba(30, 13, 47, 0.92) 0%,
            rgba(45, 23, 71, 0.76) 45%,
            rgba(45, 23, 71, 0.20) 100%
        ),
        linear-gradient(
            0deg,
            rgba(20, 10, 30, 0.75) 0%,
            transparent 60%
        );
}

.ct-org-hero-content {
    padding-top: 210px;
    padding-bottom: 90px;
    color: var(--ct-org-white);
}

.ct-org-hero .ct-org-eyebrow {
    color: var(--ct-org-yellow);
}

.ct-org-hero h1 {
    max-width: 900px;
    margin: 0 0 28px;
    font-size: clamp(62px, 10vw, 142px);
    line-height: 0.82;
    font-weight: 950;
    letter-spacing: -0.075em;
    color: var(--ct-org-white);
}

.ct-org-hero p {
    max-width: 710px;
    margin: 0;
    font-size: clamp(19px, 2vw, 25px);
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.88);
}


/* INTRODUCTION */

.ct-org-intro {
    background: var(--ct-org-white);
}

.ct-org-two-columns {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 90px;
    align-items: center;
}

.ct-org-text h2 {
    color: var(--ct-org-black);
}

.ct-org-text p {
    margin: 0 0 22px;
    color: var(--ct-org-grey);
}

.ct-org-text .ct-org-lead {
    font-size: clamp(22px, 2.5vw, 31px);
    line-height: 1.45;
    font-weight: 700;
    color: var(--ct-org-black);
}

.ct-org-image-block {
    position: relative;
}

.ct-org-image-block::before {
    content: "";
    position: absolute;
    top: -24px;
    right: -24px;
    width: 42%;
    height: 38%;
    z-index: 0;
    background: var(--ct-org-yellow);
}

.ct-org-image-block img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    min-height: 560px;
    object-fit: cover;
}

.ct-org-image-caption {
    position: absolute;
    right: -1px;
    bottom: -1px;
    z-index: 2;
    max-width: 330px;
    padding: 22px 28px;
    background: var(--ct-org-purple);
    color: var(--ct-org-white);
    font-size: 15px;
    line-height: 1.5;
    font-weight: 700;
}


/* VALUES */

.ct-org-values {
    background: var(--ct-org-light);
}

.ct-org-values-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid rgba(24, 21, 29, 0.16);
    border-left: 1px solid rgba(24, 21, 29, 0.16);
}

.ct-org-value-card {
    position: relative;
    min-height: 330px;
    padding: 38px 32px;
    background: var(--ct-org-white);
    border-right: 1px solid rgba(24, 21, 29, 0.16);
    border-bottom: 1px solid rgba(24, 21, 29, 0.16);
    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        color 0.25s ease;
}

.ct-org-value-card:hover {
    z-index: 2;
    transform: translateY(-8px);
    background: var(--ct-org-purple);
    color: var(--ct-org-white);
}

.ct-org-value-index {
    display: block;
    margin-bottom: 72px;
    font-size: 13px;
    font-weight: 900;
    color: var(--ct-org-pink);
}

.ct-org-value-card h3 {
    margin: 0 0 18px;
    font-size: 25px;
    font-weight: 850;
}

.ct-org-value-card p {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: var(--ct-org-grey);
}

.ct-org-value-card:hover p,
.ct-org-value-card:hover .ct-org-value-index {
    color: rgba(255, 255, 255, 0.82);
}


/* PROCESS */

.ct-org-process {
    position: relative;
    background: var(--ct-org-purple-dark);
    color: var(--ct-org-white);
}

.ct-org-heading-light .ct-org-section-number {
    color: var(--ct-org-yellow);
}

.ct-org-heading-light p {
    color: rgba(255, 255, 255, 0.72);
}

.ct-org-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: rgba(255, 255, 255, 0.16);
}

.ct-org-process-step {
    min-height: 360px;
    padding: 38px 30px;
    background: var(--ct-org-purple-dark);
}

.ct-org-process-step > span {
    display: block;
    margin-bottom: 100px;
    font-size: 15px;
    font-weight: 900;
    color: var(--ct-org-yellow);
}

.ct-org-process-step h3 {
    margin: 0 0 18px;
    font-size: 27px;
    color: var(--ct-org-white);
}

.ct-org-process-step p {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.66);
}


/* ACTIVITIES */

.ct-org-activities {
    background: var(--ct-org-white);
}

.ct-org-activities-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.ct-org-activity-card {
    position: relative;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px;
    background: var(--ct-org-light);
    overflow: hidden;
    transition:
        transform 0.25s ease,
        background-color 0.25s ease;
}

.ct-org-activity-card::after {
    content: "";
    position: absolute;
    right: -55px;
    bottom: -55px;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: var(--ct-org-purple-light);
    transition: transform 0.35s ease;
}

.ct-org-activity-card:hover {
    transform: translateY(-6px);
    background: var(--ct-org-purple-light);
}

.ct-org-activity-card:hover::after {
    transform: scale(1.45);
}

.ct-org-activity-card span,
.ct-org-activity-card h3 {
    position: relative;
    z-index: 1;
}

.ct-org-activity-card span {
    font-size: 13px;
    font-weight: 900;
    color: var(--ct-org-purple);
}

.ct-org-activity-card h3 {
    max-width: 210px;
    margin: 70px 0 0;
    font-size: 23px;
    line-height: 1.15;
    font-weight: 850;
}


/* TEAM */

.ct-org-team {
    background: var(--ct-org-light);
}

.ct-org-team-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.ct-org-team-card {
    background: var(--ct-org-white);
}

.ct-org-team-photo {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #ded9e3;
}

.ct-org-team-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ct-org-team-card:hover .ct-org-team-photo img {
    transform: scale(1.045);
}

.ct-org-team-info {
    padding: 25px 24px 28px;
}

.ct-org-team-info h3 {
    margin: 0 0 7px;
    font-size: 22px;
    font-weight: 850;
}

.ct-org-team-info p {
    margin: 0;
    color: var(--ct-org-purple);
    font-size: 14px;
    line-height: 1.5;
    font-weight: 750;
}


/* CTA */

.ct-org-cta {
    padding: 120px 0;
    text-align: center;
    background: var(--ct-org-yellow);
    color: var(--ct-org-black);
}

.ct-org-cta .ct-org-container {
    max-width: 960px;
}

.ct-org-cta .ct-org-eyebrow {
    color: var(--ct-org-purple);
}

.ct-org-cta h2 {
    font-size: clamp(44px, 7vw, 86px);
}

.ct-org-cta p {
    max-width: 720px;
    margin: 0 auto 38px;
    color: rgba(24, 21, 29, 0.78);
}

.ct-org-cta-buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 13px;
}

.ct-org-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 15px 25px;
    border: 2px solid var(--ct-org-black);
    text-decoration: none !important;
    font-size: 14px;
    font-weight: 850;
    letter-spacing: 0.02em;
    transition:
        transform 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease;
}

.ct-org-button:hover {
    transform: translateY(-3px);
}

.ct-org-button-primary {
    background: var(--ct-org-black);
    color: var(--ct-org-white) !important;
}

.ct-org-button-primary:hover {
    background: var(--ct-org-purple);
    border-color: var(--ct-org-purple);
}

.ct-org-button-outline {
    background: transparent;
    color: var(--ct-org-black) !important;
}

.ct-org-button-outline:hover {
    background: var(--ct-org-white);
}


/* REMOVE JOOMLA ARTICLE SPACING */

.ct-organization-page .page-header,
.ct-organization-page + .article-info,
.item-page:has(.ct-organization-page) > .page-header,
.item-page:has(.ct-organization-page) > .article-info {
    display: none !important;
}

.item-page:has(.ct-organization-page),
.item-page:has(.ct-organization-page) .article-body,
.item-page:has(.ct-organization-page) .com-content-article__body {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

#sp-main-body:has(.ct-organization-page) {
    padding: 0 !important;
}

#sp-main-body:has(.ct-organization-page) > .container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

#sp-main-body:has(.ct-organization-page) .row {
    margin: 0 !important;
}

#sp-main-body:has(.ct-organization-page) [class*="col-"] {
    padding: 0 !important;
}


/* TABLET */

@media (max-width: 1100px) {

    .ct-org-values-grid,
    .ct-org-process-grid,
    .ct-org-activities-grid,
    .ct-org-team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-org-two-columns {
        gap: 55px;
    }
}


/* MOBILE */

@media (max-width: 767px) {

    .ct-org-container {
        width: min(100% - 32px, 1240px);
    }

    .ct-org-section {
        padding: 76px 0;
    }

    .ct-org-hero {
        min-height: 610px;
    }

    .ct-org-hero-overlay {
        background:
            linear-gradient(
                0deg,
                rgba(29, 14, 44, 0.96) 0%,
                rgba(45, 23, 71, 0.64) 70%,
                rgba(45, 23, 71, 0.28) 100%
            );
    }

    .ct-org-hero-content {
        padding-top: 170px;
        padding-bottom: 60px;
    }

    .ct-org-hero h1 {
        font-size: clamp(55px, 18vw, 88px);
        line-height: 0.88;
    }

    .ct-org-hero p {
        font-size: 18px;
    }

    .ct-org-two-columns {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .ct-org-image-block::before {
        top: -14px;
        right: -14px;
    }

    .ct-org-image-block img {
        min-height: 420px;
    }

    .ct-org-values-grid,
    .ct-org-process-grid,
    .ct-org-activities-grid,
    .ct-org-team-grid {
        grid-template-columns: 1fr;
    }

    .ct-org-heading {
        margin-bottom: 42px;
    }

    .ct-org-value-card {
        min-height: auto;
    }

    .ct-org-value-index,
    .ct-org-process-step > span {
        margin-bottom: 46px;
    }

    .ct-org-process-step {
        min-height: 280px;
    }

    .ct-org-activity-card {
        min-height: 190px;
    }

    .ct-org-cta {
        padding: 85px 0;
    }

    .ct-org-cta-buttons {
        flex-direction: column;
    }

    .ct-org-button {
        width: 100%;
    }
}
/* =========================================================
   CHANIARTOON PRESS PAGE
========================================================= */

.ct-press-page {
    --ct-press-purple: #403b6e;
    --ct-press-purple-dark: #292541;
    --ct-press-lilac: #b273e0;
    --ct-press-peach: #ffbf82;
    --ct-press-bg: #f7f4ef;
    --ct-press-white: #ffffff;
    --ct-press-text: #24212f;
    --ct-press-muted: #6c6878;
    --ct-press-border: rgba(64, 59, 110, 0.16);

    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    color: var(--ct-press-text);
    background: var(--ct-press-white);
}

.ct-press-page *,
.ct-press-page *::before,
.ct-press-page *::after {
    box-sizing: border-box;
}

.ct-press-container {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.ct-press-page img {
    display: block;
    width: 100%;
    height: auto;
}


/* =========================================================
   COMMON TYPOGRAPHY
========================================================= */

.ct-press-eyebrow {
    display: inline-block;
    margin-bottom: 16px;
    color: var(--ct-press-lilac);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-press-section-number {
    display: block;
    margin-bottom: 8px;
    color: var(--ct-press-peach);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.ct-press-heading {
    max-width: 760px;
    margin-bottom: 54px;
}

.ct-press-heading--center {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.ct-press-heading h2 {
    margin: 0 0 20px;
    color: var(--ct-press-purple);
    font-size: clamp(34px, 4.5vw, 64px);
    font-weight: 800;
    line-height: 1.03;
    letter-spacing: -0.045em;
}

.ct-press-heading p {
    max-width: 680px;
    margin: 0;
    color: var(--ct-press-muted);
    font-size: 18px;
    line-height: 1.75;
}

.ct-press-heading--light h2,
.ct-press-heading--light p {
    color: var(--ct-press-white);
}


/* =========================================================
   HERO
========================================================= */

.ct-press-hero {
    position: relative;
    min-height: 720px;
    display: flex;
    align-items: flex-end;
    background:
        url("/images/chaniartoon-press/chaniartoon-press-hero.jpg")
        center center / cover no-repeat;
}

.ct-press-hero__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(28, 24, 49, 0.94) 0%,
            rgba(41, 37, 65, 0.76) 48%,
            rgba(41, 37, 65, 0.2) 100%
        );
}

.ct-press-hero__content {
    position: relative;
    z-index: 2;
    padding-top: 190px;
    padding-bottom: 100px;
}

.ct-press-hero h1 {
    max-width: 900px;
    margin: 0 0 24px;
    color: var(--ct-press-white);
    font-size: clamp(56px, 8vw, 112px);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -0.065em;
}

.ct-press-hero p {
    margin: 0;
    color: var(--ct-press-peach);
    font-size: clamp(22px, 2.8vw, 38px);
    font-weight: 600;
    line-height: 1.2;
}


/* =========================================================
   INTRO
========================================================= */

.ct-press-intro {
    padding: 130px 0;
    background: var(--ct-press-white);
}

.ct-press-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 90px;
}

.ct-press-intro__image {
    position: relative;
}

.ct-press-intro__image::before {
    content: "";
    position: absolute;
    top: -24px;
    left: -24px;
    width: 52%;
    height: 52%;
    background: var(--ct-press-peach);
    border-radius: 4px;
}

.ct-press-intro__image img {
    position: relative;
    z-index: 1;
    min-height: 560px;
    object-fit: cover;
    border-radius: 4px;
    box-shadow: 0 30px 70px rgba(41, 37, 65, 0.18);
}

.ct-press-intro__content h2 {
    margin: 0 0 28px;
    color: var(--ct-press-purple);
    font-size: clamp(38px, 4.5vw, 68px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.05em;
}

.ct-press-intro__content p {
    margin: 0 0 20px;
    color: var(--ct-press-muted);
    font-size: 18px;
    line-height: 1.75;
}

.ct-press-intro__content p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   TYPES
========================================================= */

.ct-press-types {
    padding: 120px 0;
    background: var(--ct-press-bg);
}

.ct-press-types__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.ct-press-type-card {
    position: relative;
    min-height: 340px;
    padding: 38px 30px 34px;
    overflow: hidden;
    background: var(--ct-press-white);
    border: 1px solid var(--ct-press-border);
    border-radius: 4px;
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.ct-press-type-card::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -50px;
    width: 150px;
    height: 150px;
    background: var(--ct-press-peach);
    border-radius: 50%;
    opacity: 0.2;
    transition: transform 0.35s ease;
}

.ct-press-type-card:hover {
    transform: translateY(-10px);
    border-color: var(--ct-press-lilac);
    box-shadow: 0 24px 50px rgba(41, 37, 65, 0.12);
}

.ct-press-type-card:hover::after {
    transform: scale(1.35);
}

.ct-press-type-card__number {
    display: block;
    margin-bottom: 70px;
    color: var(--ct-press-lilac);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.ct-press-type-card h3 {
    position: relative;
    z-index: 1;
    margin: 0 0 18px;
    color: var(--ct-press-purple);
    font-size: 25px;
    font-weight: 800;
    line-height: 1.15;
}

.ct-press-type-card p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--ct-press-muted);
    font-size: 16px;
    line-height: 1.65;
}


/* =========================================================
   FEATURED
========================================================= */

.ct-press-featured-heading {
    padding: 120px 0 40px;
    background: var(--ct-press-purple-dark);
}

.ct-press-featured-dynamic {
    padding: 0 0 120px;
    background: var(--ct-press-purple-dark);
}

.ct-press-featured-dynamic > .sppb-addon-content,
.ct-press-featured-dynamic .sppb-addon-content {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.ct-press-featured-dynamic .sppb-row {
    align-items: center;
}

.ct-press-featured-dynamic img {
    max-height: 620px;
    object-fit: contain;
    transition: transform 0.35s ease;
}

.ct-press-featured-dynamic img:hover {
    transform: translateY(-10px) rotate(-1deg);
}

.ct-press-featured-dynamic h2,
.ct-press-featured-dynamic h3,
.ct-press-featured-dynamic h4,
.ct-press-featured-dynamic .sppb-addon-title {
    color: var(--ct-press-white);
}

.ct-press-featured-dynamic p {
    color: rgba(255, 255, 255, 0.76);
    font-size: 17px;
    line-height: 1.7;
}

.ct-press-featured-dynamic a {
    color: var(--ct-press-peach);
}


/* =========================================================
   BOOK LIBRARY
========================================================= */

.ct-press-library-heading {
    padding: 125px 0 35px;
    background: var(--ct-press-white);
}

.ct-press-books-dynamic {
    padding: 0 0 45px;
    background: var(--ct-press-white);
}

.ct-press-books-dynamic > .sppb-addon-content,
.ct-press-books-dynamic .sppb-addon-content {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.ct-press-books-dynamic .sppb-row {
    row-gap: 42px;
}

.ct-press-books-dynamic img {
    width: 100%;
    aspect-ratio: 0.7;
    object-fit: cover;
    border-radius: 3px;
    box-shadow: 0 16px 36px rgba(41, 37, 65, 0.13);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.ct-press-books-dynamic img:hover {
    transform: translateY(-12px);
    box-shadow: 0 28px 50px rgba(41, 37, 65, 0.2);
}

.ct-press-books-dynamic h3,
.ct-press-books-dynamic h4,
.ct-press-books-dynamic .sppb-addon-title {
    margin-top: 20px;
    color: var(--ct-press-purple);
    font-size: 21px;
    font-weight: 800;
    line-height: 1.2;
}

.ct-press-books-dynamic p {
    color: var(--ct-press-muted);
    line-height: 1.6;
}

.ct-press-library-action {
    padding: 10px 0 120px;
    text-align: center;
    background: var(--ct-press-white);
}


/* =========================================================
   VALUES
========================================================= */

.ct-press-values {
    padding: 120px 0;
    background: var(--ct-press-bg);
}

.ct-press-values__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ct-press-value-card {
    min-height: 300px;
    padding: 42px;
    background: var(--ct-press-white);
    border-left: 5px solid var(--ct-press-lilac);
    box-shadow: 0 15px 40px rgba(41, 37, 65, 0.07);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.ct-press-value-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 24px 50px rgba(41, 37, 65, 0.13);
}

.ct-press-value-card > span {
    display: block;
    margin-bottom: 45px;
    color: var(--ct-press-peach);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.ct-press-value-card h3 {
    margin: 0 0 18px;
    color: var(--ct-press-purple);
    font-size: 29px;
    font-weight: 800;
    line-height: 1.15;
}

.ct-press-value-card p {
    margin: 0;
    color: var(--ct-press-muted);
    font-size: 17px;
    line-height: 1.7;
}


/* =========================================================
   STATS
========================================================= */

.ct-press-stats {
    padding: 120px 0;
    background:
        linear-gradient(
            135deg,
            var(--ct-press-purple-dark),
            var(--ct-press-purple)
        );
}

.ct-press-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.ct-press-stat {
    padding: 42px 20px;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 4px;
}

.ct-press-stat strong {
    display: block;
    margin-bottom: 12px;
    color: var(--ct-press-peach);
    font-size: clamp(48px, 5vw, 78px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.06em;
}

.ct-press-stat span {
    color: var(--ct-press-white);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
}


/* =========================================================
   LATEST RELEASES
========================================================= */

.ct-press-latest-heading {
    padding: 120px 0 35px;
    background: var(--ct-press-white);
}

.ct-press-latest-dynamic {
    padding: 0 0 120px;
    background: var(--ct-press-white);
}

.ct-press-latest-dynamic > .sppb-addon-content,
.ct-press-latest-dynamic .sppb-addon-content {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.ct-press-latest-dynamic img {
    width: 100%;
    aspect-ratio: 0.7;
    object-fit: cover;
    border-radius: 3px;
    box-shadow: 0 16px 36px rgba(41, 37, 65, 0.13);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.ct-press-latest-dynamic img:hover {
    transform: translateY(-10px);
    box-shadow: 0 25px 48px rgba(41, 37, 65, 0.19);
}

.ct-press-latest-dynamic h3,
.ct-press-latest-dynamic h4,
.ct-press-latest-dynamic .sppb-addon-title {
    margin-top: 18px;
    color: var(--ct-press-purple);
    font-size: 21px;
    font-weight: 800;
}


/* =========================================================
   CTA
========================================================= */

.ct-press-cta {
    position: relative;
    padding: 100px 0;
    overflow: hidden;
    background: var(--ct-press-peach);
}

.ct-press-cta::after {
    content: "";
    position: absolute;
    right: -120px;
    bottom: -160px;
    width: 430px;
    height: 430px;
    border: 65px solid rgba(64, 59, 110, 0.09);
    border-radius: 50%;
}

.ct-press-cta__content {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) auto;
    align-items: center;
    gap: 60px;
}

.ct-press-cta .ct-press-eyebrow {
    color: var(--ct-press-purple);
}

.ct-press-cta h2 {
    max-width: 760px;
    margin: 0 0 18px;
    color: var(--ct-press-purple-dark);
    font-size: clamp(40px, 5vw, 72px);
    font-weight: 900;
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.ct-press-cta p {
    max-width: 660px;
    margin: 0;
    color: rgba(41, 37, 65, 0.78);
    font-size: 18px;
    line-height: 1.65;
}


/* =========================================================
   BUTTONS
========================================================= */

.ct-press-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 15px 27px;
    border: 2px solid transparent;
    border-radius: 2px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-align: center;
    text-decoration: none !important;
    text-transform: uppercase;
    transition:
        transform 0.25s ease,
        color 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease;
}

.ct-press-button:hover {
    transform: translateY(-3px);
}

.ct-press-button--dark {
    color: var(--ct-press-white) !important;
    background: var(--ct-press-purple);
    border-color: var(--ct-press-purple);
}

.ct-press-button--dark:hover {
    color: var(--ct-press-purple) !important;
    background: transparent;
}

.ct-press-button--light {
    color: var(--ct-press-purple-dark) !important;
    background: var(--ct-press-white);
    border-color: var(--ct-press-white);
}

.ct-press-button--light:hover {
    color: var(--ct-press-white) !important;
    background: var(--ct-press-purple-dark);
    border-color: var(--ct-press-purple-dark);
}


/* =========================================================
   JOOMLA / HELIX FULL-WIDTH FIX
========================================================= */

.ct-press-page .page-header,
.ct-press-page + .article-info,
.item-page:has(.ct-press-page) > .page-header,
.item-page:has(.ct-press-page) > .article-info {
    display: none !important;
}

.item-page:has(.ct-press-page),
.item-page:has(.ct-press-page) .article-body,
.item-page:has(.ct-press-page) .com-content-article__body {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

#sp-main-body:has(.ct-press-page) {
    padding: 0 !important;
}

#sp-main-body:has(.ct-press-page) > .container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

#sp-main-body:has(.ct-press-page) .row {
    margin: 0 !important;
}

#sp-main-body:has(.ct-press-page) [class*="col-"] {
    padding: 0 !important;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {

    .ct-press-hero {
        min-height: 640px;
    }

    .ct-press-hero__content {
        padding-top: 160px;
        padding-bottom: 80px;
    }

    .ct-press-intro {
        padding: 95px 0;
    }

    .ct-press-intro__grid {
        grid-template-columns: 1fr;
        gap: 65px;
    }

    .ct-press-intro__image {
        max-width: 720px;
    }

    .ct-press-intro__image img {
        min-height: 480px;
    }

    .ct-press-types__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-press-values__grid {
        grid-template-columns: 1fr;
    }

    .ct-press-stats__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-press-cta__content {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .ct-press-cta__action {
        justify-self: start;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .ct-press-container {
        width: min(100% - 30px, 1180px);
    }

    .ct-press-hero {
        min-height: 560px;
        background-position: 62% center;
    }

    .ct-press-hero__overlay {
        background: rgba(35, 31, 57, 0.8);
    }

    .ct-press-hero__content {
        padding-top: 140px;
        padding-bottom: 60px;
    }

    .ct-press-hero h1 {
        font-size: clamp(47px, 15vw, 70px);
        line-height: 0.94;
    }

    .ct-press-hero p {
        font-size: 21px;
    }

    .ct-press-heading {
        margin-bottom: 38px;
    }

    .ct-press-heading h2 {
        font-size: 38px;
    }

    .ct-press-heading p {
        font-size: 16px;
    }

    .ct-press-intro,
    .ct-press-types,
    .ct-press-values,
    .ct-press-stats {
        padding: 78px 0;
    }

    .ct-press-intro__grid {
        gap: 45px;
    }

    .ct-press-intro__image::before {
        top: -12px;
        left: -12px;
    }

    .ct-press-intro__image img {
        min-height: 390px;
    }

    .ct-press-intro__content h2 {
        font-size: 40px;
    }

    .ct-press-intro__content p {
        font-size: 16px;
    }

    .ct-press-types__grid {
        grid-template-columns: 1fr;
    }

    .ct-press-type-card {
        min-height: 280px;
    }

    .ct-press-type-card__number {
        margin-bottom: 45px;
    }

    .ct-press-featured-heading,
    .ct-press-library-heading,
    .ct-press-latest-heading {
        padding-top: 80px;
    }

    .ct-press-featured-dynamic {
        padding-bottom: 80px;
    }

    .ct-press-featured-dynamic > .sppb-addon-content,
    .ct-press-featured-dynamic .sppb-addon-content,
    .ct-press-books-dynamic > .sppb-addon-content,
    .ct-press-books-dynamic .sppb-addon-content,
    .ct-press-latest-dynamic > .sppb-addon-content,
    .ct-press-latest-dynamic .sppb-addon-content {
        width: min(100% - 30px, 1180px);
    }

    .ct-press-library-action {
        padding-bottom: 80px;
    }

    .ct-press-value-card {
        min-height: 0;
        padding: 32px 26px;
    }

    .ct-press-value-card > span {
        margin-bottom: 30px;
    }

    .ct-press-value-card h3 {
        font-size: 25px;
    }

    .ct-press-stats__grid {
        grid-template-columns: 1fr;
    }

    .ct-press-stat {
        padding: 32px 18px;
    }

    .ct-press-latest-dynamic {
        padding-bottom: 80px;
    }

    .ct-press-cta {
        padding: 75px 0;
    }

    .ct-press-cta h2 {
        font-size: 42px;
    }

    .ct-press-cta p {
        font-size: 16px;
    }

    .ct-press-button {
        width: 100%;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .ct-press-page *,
    .ct-press-page *::before,
    .ct-press-page *::after,
    .ct-press-featured-dynamic *,
    .ct-press-books-dynamic *,
    .ct-press-latest-dynamic * {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

.ct-press-source-row {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}


/* =========================================================
   COMIXADIKO — PREMIUM LANDING PAGE
   Τοποθέτηση: στο τέλος του custom.css
========================================================= */

/* ---------------------------------------------------------
   SP PAGE BUILDER — ΕΝΑ FULL-WIDTH ROW
--------------------------------------------------------- */

.ct-comix-page-row {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;
}

.ct-comix-page-row > .sppb-row-container,
.ct-comix-page-row .sppb-row-container,
.ct-comix-page-row .sppb-container-inner,
.ct-comix-page-row .sppb-row,
.ct-comix-page-row [class*="sppb-col"],
.ct-comix-page-row .sppb-column,
.ct-comix-page-row .sppb-column-addons,
.ct-comix-page-row .sppb-addon-wrapper,
.ct-comix-page-row .sppb-addon,
.ct-comix-page-row .sppb-addon-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* ---------------------------------------------------------
   VARIABLES / BASE
--------------------------------------------------------- */

.ct-comix-page {
    --ct-comix-ink: #191722;
    --ct-comix-ink-soft: #24212f;
    --ct-comix-purple: #403b6e;
    --ct-comix-purple-deep: #2c284e;
    --ct-comix-violet: #b273e0;
    --ct-comix-peach: #ffbf82;
    --ct-comix-lime: #cde96f;
    --ct-comix-paper: #fcfaf6;
    --ct-comix-cream: #f1ece3;
    --ct-comix-white: #ffffff;
    --ct-comix-muted: #706b78;
    --ct-comix-line: rgba(25, 23, 34, 0.13);

    --ct-comix-display:
        "Montserrat",
        "Avenir Next",
        "Segoe UI",
        Arial,
        sans-serif;

    --ct-comix-sans:
        "Manrope",
        "Avenir Next",
        "Segoe UI",
        Arial,
        sans-serif;

    position: relative;
    width: 100%;
    overflow: hidden;
    color: var(--ct-comix-ink);
    background: var(--ct-comix-paper);
    font-family: var(--ct-comix-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-comix-page *,
.ct-comix-page *::before,
.ct-comix-page *::after {
    box-sizing: border-box;
}

.ct-comix-page h1,
.ct-comix-page h2,
.ct-comix-page h3,
.ct-comix-page p,
.ct-comix-page blockquote,
.ct-comix-page address {
    margin-top: 0;
}

.ct-comix-page a {
    color: inherit;
    text-decoration: none;
}

.ct-comix-page em {
    color: var(--ct-comix-violet);
    font-style: normal;
}

.ct-comix-container {
    position: relative;
    width: min(1240px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-comix-section {
    position: relative;
    padding: 130px 0;
}

.ct-comix-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: var(--ct-comix-purple);
    font-family: var(--ct-comix-sans);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.ct-comix-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-comix-eyebrow--light {
    color: var(--ct-comix-peach);
}

.ct-comix-section-number {
    display: block;
    margin-bottom: 22px;
    color: var(--ct-comix-violet);
    font-family: var(--ct-comix-sans);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.ct-comix-section-number--light {
    color: var(--ct-comix-peach);
}

.ct-comix-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.ct-comix-button {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 15px 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: var(--ct-comix-sans);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease,
        color 0.25s ease;
}

.ct-comix-button:hover,
.ct-comix-button:focus-visible {
    transform: translateY(-3px);
}

.ct-comix-button--lime {
    color: var(--ct-comix-ink);
    background: var(--ct-comix-lime);
    border-color: var(--ct-comix-lime);
}

.ct-comix-button--lime:hover,
.ct-comix-button--lime:focus-visible {
    background: #ddf592;
    border-color: #ddf592;
}

.ct-comix-button--ghost {
    color: #fff;
    background: transparent;
    border-color: rgba(255, 255, 255, 0.32);
}

.ct-comix-button--ghost:hover,
.ct-comix-button--ghost:focus-visible {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.55);
}

.ct-comix-button--paper {
    color: var(--ct-comix-ink) !important;
    background: var(--ct-comix-lime);
    border-color: var(--ct-comix-lime);
    box-shadow: 0 12px 30px rgba(10, 8, 18, 0.18);
}

.ct-comix-button--paper span {
    color: inherit !important;
}

.ct-comix-button--paper:hover,
.ct-comix-button--paper:focus-visible {
    color: var(--ct-comix-ink) !important;
    background: #ddf592;
    border-color: #ddf592;
}


/* ---------------------------------------------------------
   REVEAL
--------------------------------------------------------- */

.ct-comix-js [data-comix-reveal] {
    opacity: 0;
    transform: translate3d(0, 32px, 0);
    transition:
        opacity 0.75s ease,
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ct-comix-delay, 0ms);
}

.ct-comix-js [data-comix-reveal].is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}


/* ---------------------------------------------------------
   HERO
--------------------------------------------------------- */

.ct-comix-hero {
    position: relative;
    min-height: 900px;
    display: flex;
    align-items: center;
    padding: 145px 0 105px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 16% 20%, rgba(178, 115, 224, 0.2), transparent 30%),
        radial-gradient(circle at 82% 76%, rgba(205, 233, 111, 0.1), transparent 28%),
        linear-gradient(145deg, #15131d 0%, #211d31 55%, #2c284e 100%);
}

.ct-comix-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.07;
    background-image:
        linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px);
    background-size: 76px 76px;
    mask-image: linear-gradient(to bottom, #000 0%, transparent 82%);
}

.ct-comix-hero__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(2px);
    pointer-events: none;
}

.ct-comix-hero__glow--one {
    top: -260px;
    left: -180px;
    width: 600px;
    height: 600px;
    border: 95px solid rgba(255, 191, 130, 0.055);
}

.ct-comix-hero__glow--two {
    right: -230px;
    bottom: -250px;
    width: 620px;
    height: 620px;
    border: 110px solid rgba(205, 233, 111, 0.045);
}

.ct-comix-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(480px, 1.1fr);
    align-items: center;
    gap: clamp(55px, 7vw, 110px);
}

.ct-comix-hero__content {
    max-width: 660px;
}

.ct-comix-hero h1 {
    margin: 28px 0 30px;
    color: #fff;
    font-family: var(--ct-comix-display);
    font-size: clamp(72px, 8.2vw, 132px);
    font-weight: 500;
    line-height: 0.79;
    letter-spacing: -0.065em;
}

.ct-comix-hero h1 em {
    color: var(--ct-comix-lime);
}

.ct-comix-hero__lead {
    max-width: 610px;
    margin-bottom: 36px;
    color: rgba(255, 255, 255, 0.74);
    font-size: 18px;
    line-height: 1.72;
}

.ct-comix-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 42px;
}

.ct-comix-hero__tags span {
    padding: 8px 12px;
    color: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.ct-comix-hero__media {
    position: relative;
    min-height: 630px;
    transform:
        translate3d(
            0,
            var(--ct-comix-parallax-y, 0px),
            0
        );
    transition: transform 0.1s linear;
}

.ct-comix-hero-card {
    position: absolute;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(to top, rgba(13, 11, 19, 0.8), transparent 56%),
        linear-gradient(135deg, rgba(178, 115, 224, 0.25), rgba(205, 233, 111, 0.09)),
        var(--ct-comix-image),
        linear-gradient(135deg, #4b456f, #201d2d);
    background-position: center;
    background-size: cover;
    border: 1px solid rgba(255,255,255,0.14);
    box-shadow: 0 34px 70px rgba(5, 4, 10, 0.37);
}

.ct-comix-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255,255,255,0.08);
    pointer-events: none;
}

.ct-comix-hero-card--main {
    inset: 20px 110px 65px 0;
    transform: rotate(-3deg);
}

.ct-comix-hero-card--games {
    top: 0;
    right: 0;
    width: 220px;
    height: 285px;
    transform: rotate(4deg);
}

.ct-comix-hero-card--lab {
    right: 18px;
    bottom: 10px;
    width: 255px;
    height: 300px;
    transform: rotate(2deg);
}

.ct-comix-hero-card__index,
.ct-comix-hero-card__label {
    position: absolute;
    z-index: 2;
}

.ct-comix-hero-card__index {
    top: 18px;
    left: 18px;
    color: rgba(255,255,255,0.7);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.ct-comix-hero-card__label {
    right: 18px;
    bottom: 18px;
    left: 18px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.ct-comix-hero__stamp {
    position: absolute;
    left: -58px;
    bottom: 2px;
    display: grid;
    width: 120px;
    height: 120px;
    place-items: center;
    color: var(--ct-comix-lime);
    border: 1px solid rgba(205, 233, 111, 0.45);
    border-radius: 50%;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: 0.15em;
    text-align: center;
    transform: rotate(-10deg);
}

.ct-comix-scroll {
    position: absolute;
    z-index: 3;
    right: 42px;
    bottom: 34px;
    display: flex;
    align-items: center;
    gap: 16px;
    color: rgba(255,255,255,0.5);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.18em;
    writing-mode: vertical-rl;
}

.ct-comix-scroll i {
    width: 1px;
    height: 52px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.7), transparent);
}


/* ---------------------------------------------------------
   INTRO
--------------------------------------------------------- */

.ct-comix-intro {
    background:
        radial-gradient(circle at 90% 5%, rgba(178, 115, 224, 0.08), transparent 27%),
        var(--ct-comix-paper);
}

.ct-comix-intro__headline {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    margin-bottom: 80px;
}

.ct-comix-intro__headline h2,
.ct-comix-section-head h2,
.ct-comix-play h2,
.ct-comix-lab h2,
.ct-comix-visit h2 {
    margin: 0;
    color: var(--ct-comix-ink);
    font-family: var(--ct-comix-display);
    font-size: clamp(58px, 7.2vw, 108px);
    font-weight: 500;
    line-height: 0.9;
    letter-spacing: -0.055em;
}

.ct-comix-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(420px, 1.2fr);
    align-items: end;
    gap: clamp(50px, 8vw, 130px);
}

.ct-comix-intro__copy {
    padding-left: 120px;
}

.ct-comix-intro__copy p {
    margin-bottom: 22px;
    color: var(--ct-comix-muted);
    font-size: 16px;
    line-height: 1.8;
}

.ct-comix-intro__copy .ct-comix-lead-copy {
    color: var(--ct-comix-ink);
    font-family: var(--ct-comix-display);
    font-size: clamp(28px, 3vw, 43px);
    line-height: 1.16;
    letter-spacing: -0.025em;
}

.ct-comix-location-note {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 36px;
    color: var(--ct-comix-purple);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.ct-comix-location-note span {
    color: var(--ct-comix-lime);
}

.ct-comix-intro__visual {
    position: relative;
    min-height: 610px;
    overflow: hidden;
    background:
        linear-gradient(to top, rgba(20, 17, 28, 0.75), transparent 58%),
        var(--ct-comix-image),
        linear-gradient(135deg, #d7cee2, #8f87a0);
    background-position: center;
    background-size: cover;
}

.ct-comix-intro__visual::before {
    content: "";
    position: absolute;
    inset: 20px;
    border: 1px solid rgba(255,255,255,0.45);
}

.ct-comix-intro__caption {
    position: absolute;
    right: 34px;
    bottom: 32px;
    left: 34px;
    color: #fff;
    font-family: var(--ct-comix-display);
    font-size: 25px;
    line-height: 1.2;
}


/* ---------------------------------------------------------
   SECTION HEAD
--------------------------------------------------------- */

.ct-comix-section-head {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    align-items: start;
    gap: 30px;
    margin-bottom: 75px;
}

.ct-comix-section-head > div {
    padding-top: 12px;
}


/* ---------------------------------------------------------
   WORLDS
--------------------------------------------------------- */

.ct-comix-worlds {
    background: var(--ct-comix-cream);
}

.ct-comix-worlds__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.ct-comix-world-card {
    position: relative;
    min-height: 500px;
    display: flex;
    align-items: flex-end;
    padding: 34px;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(to top, rgba(13, 11, 18, 0.88), rgba(13, 11, 18, 0.08) 70%),
        var(--ct-comix-image),
        linear-gradient(135deg, #4e476b, #1d1a27);
    background-position: center;
    background-size: cover;
    isolation: isolate;
}

.ct-comix-world-card--wide {
    min-height: 570px;
}

.ct-comix-world-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(135deg, rgba(178,115,224,0.12), rgba(205,233,111,0.06));
    transition: opacity 0.35s ease;
}

.ct-comix-world-card::after {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(255,255,255,0.16);
    pointer-events: none;
}

.ct-comix-world-card:hover::before {
    opacity: 0.3;
}

.ct-comix-world-card__number {
    position: absolute;
    top: 26px;
    left: 28px;
    color: rgba(255,255,255,0.65);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.ct-comix-world-card__content {
    position: relative;
    width: 100%;
    max-width: 480px;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.ct-comix-world-card:hover .ct-comix-world-card__content {
    transform: translateY(-8px);
}

.ct-comix-world-card__kicker {
    display: block;
    margin-bottom: 14px;
    color: var(--ct-comix-lime);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.ct-comix-world-card h3 {
    margin: 0 0 16px;
    color: #fff;
    font-family: var(--ct-comix-display);
    font-size: clamp(38px, 4.2vw, 63px);
    font-weight: 500;
    line-height: 0.93;
    letter-spacing: -0.04em;
}

.ct-comix-world-card p {
    max-width: 420px;
    margin: 0;
    color: rgba(255,255,255,0.72);
    font-size: 14px;
    line-height: 1.65;
}

.ct-comix-world-card__arrow {
    position: absolute;
    right: 0;
    bottom: 0;
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    color: var(--ct-comix-ink);
    background: var(--ct-comix-lime);
    border-radius: 50%;
    font-size: 18px;
}


/* ---------------------------------------------------------
   PLAY
--------------------------------------------------------- */

.ct-comix-play {
    color: #fff;
    background:
        radial-gradient(circle at 20% 80%, rgba(178,115,224,0.17), transparent 28%),
        linear-gradient(135deg, #17151f, #2a2644);
}

.ct-comix-play__top {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    align-items: end;
    gap: 80px;
    margin-bottom: 82px;
}

.ct-comix-play h2 {
    margin-top: 18px;
    color: #fff;
}

.ct-comix-play h2 em {
    color: var(--ct-comix-lime);
}

.ct-comix-play__intro p {
    margin: 0;
    color: rgba(255,255,255,0.68);
    font-size: 17px;
    line-height: 1.8;
}

.ct-comix-play__feature {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
    gap: 70px;
}

.ct-comix-play__image {
    position: relative;
    min-height: 620px;
    overflow: hidden;
    background:
        linear-gradient(to top, rgba(10,8,16,0.72), transparent 52%),
        var(--ct-comix-image),
        linear-gradient(135deg, #64587a, #272132);
    background-position: center;
    background-size: cover;
}

.ct-comix-play__image::after {
    content: "";
    position: absolute;
    inset: 20px;
    border: 1px solid rgba(255,255,255,0.18);
}

.ct-comix-play__image span {
    position: absolute;
    z-index: 2;
    right: 30px;
    bottom: 28px;
    color: var(--ct-comix-lime);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.ct-comix-play__list {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ct-comix-play-item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 22px;
    padding: 34px 0;
    border-top: 1px solid rgba(255,255,255,0.14);
}

.ct-comix-play-item:last-child {
    border-bottom: 1px solid rgba(255,255,255,0.14);
}

.ct-comix-play-item__number {
    color: var(--ct-comix-peach);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.ct-comix-play-item h3 {
    margin: 0 0 12px;
    color: #fff;
    font-family: var(--ct-comix-display);
    font-size: 31px;
    font-weight: 500;
    line-height: 1.05;
}

.ct-comix-play-item p {
    margin: 0;
    color: rgba(255,255,255,0.62);
    font-size: 14px;
    line-height: 1.7;
}


/* ---------------------------------------------------------
   EVENTS
--------------------------------------------------------- */

.ct-comix-events {
    background: var(--ct-comix-paper);
}

.ct-comix-section-head--events {
    grid-template-columns: 180px minmax(0, 1fr) 330px;
}

.ct-comix-section-head--events p {
    align-self: end;
    margin: 0;
    color: var(--ct-comix-muted);
    font-size: 15px;
    line-height: 1.75;
}

.ct-comix-events__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-rows: 250px;
    gap: 20px;
}

.ct-comix-event-card {
    position: relative;
    grid-column: span 5;
    grid-row: span 2;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(to top, rgba(17,15,24,0.88), transparent 65%),
        var(--ct-comix-image),
        linear-gradient(135deg, #59516f, #2a2635);
    background-position: center;
    background-size: cover;
}

.ct-comix-event-card--large {
    grid-column: span 7;
}

.ct-comix-event-card::after {
    content: "";
    position: absolute;
    inset: 13px;
    border: 1px solid rgba(255,255,255,0.16);
}

.ct-comix-event-card__type {
    position: relative;
    z-index: 2;
    color: var(--ct-comix-lime);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.17em;
}

.ct-comix-event-card > div {
    position: relative;
    z-index: 2;
}

.ct-comix-event-card__number {
    display: block;
    margin-bottom: 10px;
    color: rgba(255,255,255,0.62);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.ct-comix-event-card h3 {
    margin: 0;
    color: #fff;
    font-family: var(--ct-comix-display);
    font-size: clamp(34px, 4vw, 58px);
    font-weight: 500;
    line-height: 0.95;
    letter-spacing: -0.035em;
}


/* ---------------------------------------------------------
   LAB
--------------------------------------------------------- */

.ct-comix-lab {
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(205,233,111,0.13), transparent 26%),
        linear-gradient(145deg, #36315f, #4a4275 58%, #2e294f);
}

.ct-comix-lab::before {
    content: "LAB";
    position: absolute;
    top: -70px;
    right: -40px;
    color: rgba(255,255,255,0.035);
    font-family: var(--ct-comix-display);
    font-size: min(34vw, 520px);
    line-height: 1;
    pointer-events: none;
}

.ct-comix-lab__header {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) 330px;
    gap: 34px;
    align-items: end;
    margin-bottom: 72px;
}

.ct-comix-lab__brand {
    display: block;
    color: var(--ct-comix-lime);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.ct-comix-lab h2 {
    color: #fff;
    font-size: clamp(52px, 6vw, 92px);
}

.ct-comix-lab h2 em {
    color: var(--ct-comix-lime);
}

.ct-comix-lab__header > p {
    margin: 0;
    color: rgba(255,255,255,0.66);
    font-size: 15px;
    line-height: 1.75;
}

.ct-comix-lab__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid rgba(255,255,255,0.18);
    border-left: 1px solid rgba(255,255,255,0.18);
}

.ct-comix-lab-card {
    min-height: 410px;
    display: flex;
    flex-direction: column;
    padding: 28px;
    border-right: 1px solid rgba(255,255,255,0.18);
    border-bottom: 1px solid rgba(255,255,255,0.18);
    transition:
        background-color 0.3s ease,
        transform 0.3s ease;
}

.ct-comix-lab-card:hover {
    background: rgba(255,255,255,0.06);
    transform: translateY(-5px);
}

.ct-comix-lab-card__index {
    color: var(--ct-comix-peach);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.ct-comix-lab-card__line {
    width: 46px;
    height: 1px;
    margin: 30px 0 45px;
    background: var(--ct-comix-lime);
}

.ct-comix-lab-card h3 {
    margin: 0 0 18px;
    color: #fff;
    font-family: var(--ct-comix-display);
    font-size: 38px;
    font-weight: 500;
    line-height: 1;
}

.ct-comix-lab-card p {
    margin: 0;
    color: rgba(255,255,255,0.65);
    font-size: 14px;
    line-height: 1.7;
}

.ct-comix-lab-card__meta {
    margin-top: auto;
    padding-top: 30px;
    color: rgba(255,255,255,0.45);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.14em;
}

.ct-comix-lab__footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding-top: 38px;
}

.ct-comix-lab__footer > span {
    color: rgba(255,255,255,0.64);
    font-family: var(--ct-comix-display);
    font-size: 26px;
}


/* ---------------------------------------------------------
   COMMUNITY
--------------------------------------------------------- */

.ct-comix-community {
    background: var(--ct-comix-cream);
}

.ct-comix-community__quote {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    margin-bottom: 80px;
}

.ct-comix-community blockquote {
    margin: 0;
    color: var(--ct-comix-ink);
    font-family: var(--ct-comix-display);
    font-size: clamp(56px, 7vw, 105px);
    font-weight: 500;
    line-height: 0.92;
    letter-spacing: -0.055em;
}

.ct-comix-community__grid {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 80px;
    align-items: start;
}

.ct-comix-community__copy {
    padding-top: 42px;
}

.ct-comix-community__copy p {
    margin-bottom: 22px;
    color: var(--ct-comix-muted);
    font-size: 15px;
    line-height: 1.8;
}

.ct-comix-community__gallery {
    min-height: 650px;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    grid-template-rows: 1.1fr 0.9fr;
    gap: 18px;
}

.ct-comix-gallery-item {
    min-height: 250px;
    background:
        linear-gradient(135deg, rgba(178,115,224,0.08), rgba(205,233,111,0.04)),
        var(--ct-comix-image),
        linear-gradient(135deg, #a79caf, #625b6c);
    background-position: center;
    background-size: cover;
}

.ct-comix-gallery-item--one {
    grid-row: 1 / 3;
}

.ct-comix-gallery-item--three {
    background-position: center 30%;
}


/* ---------------------------------------------------------
   MARQUEE
--------------------------------------------------------- */

.ct-comix-marquee {
    width: 100%;
    overflow: hidden;
    color: var(--ct-comix-ink);
    background: var(--ct-comix-lime);
    border-top: 1px solid rgba(25,23,34,0.15);
    border-bottom: 1px solid rgba(25,23,34,0.15);
}

.ct-comix-marquee__track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 24px 0;
    animation: ct-comix-marquee 28s linear infinite;
}

.ct-comix-marquee__track span {
    font-family: var(--ct-comix-display);
    font-size: clamp(30px, 4vw, 56px);
    line-height: 1;
    letter-spacing: -0.025em;
    white-space: nowrap;
}

.ct-comix-marquee__track i {
    font-style: normal;
    font-size: 16px;
}

@keyframes ct-comix-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}


/* ---------------------------------------------------------
   VISIT
--------------------------------------------------------- */

.ct-comix-visit {
    padding: 110px 0;
    color: #fff;
    background: var(--ct-comix-ink);
}

.ct-comix-visit__panel {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
    min-height: 680px;
    background: var(--ct-comix-purple-deep);
}

.ct-comix-visit__image {
    position: relative;
    min-height: 680px;
    background:
        linear-gradient(to top, rgba(12,10,17,0.45), transparent 55%),
        var(--ct-comix-image),
        linear-gradient(135deg, #665c77, #2e2937);
    background-position: center;
    background-size: cover;
}

.ct-comix-visit__badge {
    position: absolute;
    right: 30px;
    bottom: 28px;
    display: grid;
    width: 112px;
    height: 112px;
    place-items: center;
    color: var(--ct-comix-ink);
    background: var(--ct-comix-lime);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.45;
    letter-spacing: 0.14em;
    text-align: center;
    transform: rotate(-8deg);
}

.ct-comix-visit__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(48px, 6vw, 90px);
}

.ct-comix-visit h2 {
    margin: 26px 0 28px;
    color: #fff;
    font-size: clamp(50px, 5vw, 78px);
}

.ct-comix-visit h2 em {
    color: var(--ct-comix-lime);
}

.ct-comix-visit__content > p {
    margin-bottom: 30px;
    color: rgba(255,255,255,0.67);
    font-size: 16px;
    line-height: 1.75;
}

.ct-comix-visit address {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 36px;
    color: #fff;
    font-style: normal;
}

.ct-comix-visit address strong {
    font-family: var(--ct-comix-display);
    font-size: 24px;
    font-weight: 500;
}

.ct-comix-visit address span {
    color: rgba(255,255,255,0.6);
    font-size: 13px;
}


/* ---------------------------------------------------------
   TABLET
--------------------------------------------------------- */

@media (max-width: 1100px) {

    .ct-comix-container {
        width: min(100% - 48px, 960px);
    }

    .ct-comix-section {
        padding: 105px 0;
    }

    .ct-comix-hero {
        min-height: auto;
    }

    .ct-comix-hero__grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(400px, 1.1fr);
        gap: 48px;
    }

    .ct-comix-hero h1 {
        font-size: clamp(64px, 8vw, 92px);
    }

    .ct-comix-hero__media {
        min-height: 560px;
    }

    .ct-comix-hero-card--main {
        right: 82px;
    }

    .ct-comix-hero-card--games {
        width: 185px;
        height: 245px;
    }

    .ct-comix-hero-card--lab {
        width: 215px;
        height: 260px;
    }

    .ct-comix-intro__headline,
    .ct-comix-community__quote {
        grid-template-columns: 90px minmax(0, 1fr);
    }

    .ct-comix-intro__copy {
        padding-left: 90px;
    }

    .ct-comix-section-head {
        grid-template-columns: 165px minmax(0, 1fr);
    }

    .ct-comix-section-head--events,
    .ct-comix-lab__header {
        grid-template-columns: 160px minmax(0, 1fr);
    }

    .ct-comix-section-head--events p,
    .ct-comix-lab__header > p {
        grid-column: 2;
    }

    .ct-comix-lab__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-comix-community__grid {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 50px;
    }

    .ct-comix-visit__panel {
        grid-template-columns: 1fr 1fr;
    }
}


/* ---------------------------------------------------------
   MOBILE / SMALL TABLET
--------------------------------------------------------- */

@media (max-width: 820px) {

    .ct-comix-container {
        width: min(100% - 34px, 680px);
    }

    .ct-comix-section {
        padding: 82px 0;
    }

    .ct-comix-hero {
        padding: 125px 0 90px;
    }

    .ct-comix-hero__grid,
    .ct-comix-intro__grid,
    .ct-comix-play__top,
    .ct-comix-play__feature,
    .ct-comix-community__grid,
    .ct-comix-visit__panel {
        grid-template-columns: 1fr;
    }

    .ct-comix-hero__grid {
        gap: 60px;
    }

    .ct-comix-hero__content {
        max-width: none;
    }

    .ct-comix-hero h1 {
        font-size: clamp(66px, 18vw, 112px);
    }

    .ct-comix-hero__media {
        min-height: 600px;
    }

    .ct-comix-hero-card--main {
        inset: 30px 70px 75px 0;
    }

    .ct-comix-hero__stamp {
        left: auto;
        right: 5px;
        bottom: 0;
    }

    .ct-comix-scroll {
        display: none;
    }

    .ct-comix-intro__headline,
    .ct-comix-community__quote,
    .ct-comix-section-head,
    .ct-comix-section-head--events,
    .ct-comix-lab__header {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .ct-comix-intro__headline {
        margin-bottom: 48px;
    }

    .ct-comix-intro__copy {
        padding-left: 0;
    }

    .ct-comix-intro__visual {
        min-height: 520px;
    }

    .ct-comix-worlds__grid {
        grid-template-columns: 1fr;
    }

    .ct-comix-world-card,
    .ct-comix-world-card--wide {
        min-height: 520px;
    }

    .ct-comix-play__top {
        gap: 32px;
        margin-bottom: 56px;
    }

    .ct-comix-play__feature {
        gap: 48px;
    }

    .ct-comix-play__image {
        min-height: 540px;
    }

    .ct-comix-section-head--events p,
    .ct-comix-lab__header > p {
        grid-column: auto;
    }

    .ct-comix-events__grid {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .ct-comix-event-card,
    .ct-comix-event-card--large {
        grid-column: auto;
        grid-row: auto;
        min-height: 480px;
    }

    .ct-comix-community__grid {
        gap: 36px;
    }

    .ct-comix-community__copy {
        padding-top: 0;
    }

    .ct-comix-community__gallery {
        min-height: 600px;
    }

    .ct-comix-visit__image {
        min-height: 540px;
    }

    .ct-comix-visit__content {
        padding: 55px 34px;
    }
}


/* ---------------------------------------------------------
   SMALL MOBILE
--------------------------------------------------------- */

@media (max-width: 560px) {

    .ct-comix-container {
        width: calc(100% - 28px);
    }

    .ct-comix-hero {
        padding-top: 112px;
    }

    .ct-comix-hero h1 {
        font-size: clamp(58px, 19vw, 86px);
    }

    .ct-comix-hero__lead {
        font-size: 16px;
    }

    .ct-comix-actions {
        flex-direction: column;
    }

    .ct-comix-button {
        width: 100%;
    }

    .ct-comix-hero__media {
        min-height: 470px;
    }

    .ct-comix-hero-card--main {
        inset: 25px 34px 58px 0;
    }

    .ct-comix-hero-card--games {
        width: 135px;
        height: 185px;
    }

    .ct-comix-hero-card--lab {
        right: 0;
        width: 165px;
        height: 205px;
    }

    .ct-comix-hero__stamp {
        width: 92px;
        height: 92px;
        font-size: 7px;
    }

    .ct-comix-intro__headline h2,
    .ct-comix-section-head h2,
    .ct-comix-play h2,
    .ct-comix-lab h2,
    .ct-comix-community blockquote,
    .ct-comix-visit h2 {
        font-size: clamp(47px, 15vw, 69px);
    }

    .ct-comix-intro__visual {
        min-height: 420px;
    }

    .ct-comix-world-card,
    .ct-comix-world-card--wide {
        min-height: 480px;
        padding: 26px;
    }

    .ct-comix-world-card h3 {
        font-size: 43px;
    }

    .ct-comix-world-card p {
        padding-right: 42px;
    }

    .ct-comix-play__image {
        min-height: 440px;
    }

    .ct-comix-play-item {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 14px;
    }

    .ct-comix-event-card,
    .ct-comix-event-card--large {
        min-height: 420px;
    }

    .ct-comix-lab__grid {
        grid-template-columns: 1fr;
    }

    .ct-comix-lab-card {
        min-height: 340px;
    }

    .ct-comix-lab__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .ct-comix-community__gallery {
        min-height: 740px;
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, 1fr);
    }

    .ct-comix-gallery-item--one {
        grid-row: auto;
    }

    .ct-comix-visit {
        padding: 70px 0;
    }

    .ct-comix-visit__image {
        min-height: 420px;
    }

    .ct-comix-visit__badge {
        width: 95px;
        height: 95px;
        font-size: 8px;
    }

    .ct-comix-visit__content {
        padding: 44px 24px;
    }
}


/* ---------------------------------------------------------
   REDUCED MOTION
--------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .ct-comix-page *,
    .ct-comix-page *::before,
    .ct-comix-page *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .ct-comix-js [data-comix-reveal] {
        opacity: 1;
        transform: none;
    }
}


/* ---------------------------------------------------------
   TYPOGRAPHY REFINEMENT — GEOMETRIC / LESS ORNAMENTAL
--------------------------------------------------------- */

.ct-comix-hero h1,
.ct-comix-intro__headline h2,
.ct-comix-section-head h2,
.ct-comix-play h2,
.ct-comix-lab h2,
.ct-comix-community blockquote,
.ct-comix-visit h2,
.ct-comix-world-card h3,
.ct-comix-event-card h3,
.ct-comix-lab-card h3,
.ct-comix-play-item h3,
.ct-comix-intro__copy .ct-comix-lead-copy,
.ct-comix-lab__footer > span,
.ct-comix-visit address strong,
.ct-comix-marquee__track span {
    font-family: var(--ct-comix-display);
    font-weight: 700;
}

.ct-comix-hero h1,
.ct-comix-intro__headline h2,
.ct-comix-section-head h2,
.ct-comix-play h2,
.ct-comix-lab h2,
.ct-comix-community blockquote,
.ct-comix-visit h2 {
    letter-spacing: -0.045em;
}

/* =========================================================
   CHANIARTOON PRESS — RESTORE PREMIUM BOOK LAYOUT
   Βάλτε ολόκληρο το block στο τέλος του custom.css
========================================================= */

.ct-press-page {
    --press-purple: #3f3a72;
    --press-purple-dark: #27233f;
    --press-violet: #b66ee8;
    --press-peach: #ffb97a;
    --press-cream: #f6f2ec;
    --press-paper: #fcfbf8;
    --press-text: #282535;
    --press-muted: #777281;
    --press-line: rgba(63, 58, 114, 0.14);

    --press-font-display:
        "Montserrat",
        "Avenir Next",
        "Segoe UI",
        Arial,
        sans-serif;

    --press-font-editorial:
        Georgia,
        "Times New Roman",
        serif;
}


/* =========================================================
   LIBRARY SECTION
========================================================= */

.ct-press-library {
    padding: 120px 0;
    background: var(--press-paper);
}

.ct-press-library__toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: -20px 0 42px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--press-line);
}

.ct-press-library__count {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0;
    color: var(--press-muted);
    font-family: var(--press-font-display);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ct-press-library__count strong {
    color: var(--press-purple);
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.04em;
}


/* =========================================================
   MAIN BOOK GRID
========================================================= */

.ct-press-page #press-page-books-grid,
.ct-press-page .ct-press-books-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
    gap: 64px 38px;
    width: 100%;
}


/* =========================================================
   BOOK CARD
========================================================= */

.ct-press-page .ct-press-book-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
}

.ct-press-page .ct-press-book-card__link {
    display: flex;
    flex: 1;
    flex-direction: column;
    color: inherit !important;
    text-decoration: none !important;
}

.ct-press-page .ct-press-book-card__cover {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 0.71;
    padding: 26px;
    overflow: hidden;
    background:
        linear-gradient(
            145deg,
            #f7f3ed 0%,
            #ebe5dc 100%
        );
    border: 1px solid rgba(63, 58, 114, 0.08);
    border-radius: 3px;
    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s ease,
        border-color 0.4s ease;
}

.ct-press-page .ct-press-book-card__cover::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(
            circle at 50% 30%,
            rgba(255, 255, 255, 0.9),
            transparent 60%
        );
    pointer-events: none;
}

.ct-press-page .ct-press-book-card__cover img {
    position: relative;
    z-index: 1;
    display: block;
    width: auto !important;
    max-width: 100%;
    height: 100% !important;
    max-height: 100%;
    margin: 0 auto;
    object-fit: contain !important;
    border-radius: 2px;
    box-shadow:
        0 18px 35px rgba(34, 29, 58, 0.2),
        0 4px 10px rgba(34, 29, 58, 0.08);
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s ease;
}

.ct-press-page .ct-press-book-card:hover .ct-press-book-card__cover {
    transform: translateY(-8px);
    border-color: rgba(182, 110, 232, 0.35);
    box-shadow:
        0 28px 55px rgba(39, 35, 63, 0.14);
}

.ct-press-page .ct-press-book-card:hover .ct-press-book-card__cover img {
    transform: scale(1.025);
    box-shadow:
        0 24px 44px rgba(34, 29, 58, 0.25),
        0 7px 14px rgba(34, 29, 58, 0.1);
}


/* =========================================================
   BOOK CARD BODY
========================================================= */

.ct-press-page .ct-press-book-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 27px 4px 0;
}

.ct-press-page .ct-press-book-card__title {
    margin: 0 0 17px !important;
    color: var(--press-purple-dark) !important;
    font-family: var(--press-font-editorial);
    font-size: clamp(23px, 2vw, 30px) !important;
    font-weight: 600 !important;
    line-height: 1.12 !important;
    letter-spacing: -0.025em;
    transition: color 0.25s ease;
}

.ct-press-page .ct-press-book-card:hover .ct-press-book-card__title {
    color: var(--press-violet) !important;
}


/* =========================================================
   CREDITS
========================================================= */

.ct-press-page .ct-press-book-card__credits {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin: 0 0 23px;
}

.ct-press-page .ct-press-book-card__credits p {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0 !important;
    color: var(--press-muted);
    font-family: var(--press-font-display);
    font-size: 13px;
    line-height: 1.45;
}

.ct-press-page .ct-press-book-card__credits span {
    color: #9b95a4;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ct-press-page .ct-press-book-card__credits strong {
    color: var(--press-text);
    font-weight: 650;
}


/* =========================================================
   MORE LINK
========================================================= */

.ct-press-page .ct-press-book-card__more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 9px;
    margin-top: auto;
    padding-top: 4px;
    color: var(--press-purple);
    font-family: var(--press-font-display);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ct-press-page .ct-press-book-card__more > span {
    display: inline-block;
    font-size: 17px;
    transition: transform 0.25s ease;
}

.ct-press-page .ct-press-book-card:hover .ct-press-book-card__more > span {
    transform: translateX(5px);
}


/* =========================================================
   FEATURED SECTION
========================================================= */

.ct-press-featured {
    position: relative;
    padding: 120px 0 135px;
    overflow: hidden;
    background:
        linear-gradient(
            135deg,
            var(--press-purple-dark) 0%,
            var(--press-purple) 100%
        );
}

.ct-press-featured::before {
    content: "";
    position: absolute;
    top: -180px;
    right: -180px;
    width: 520px;
    height: 520px;
    border: 75px solid rgba(255, 255, 255, 0.035);
    border-radius: 50%;
}

.ct-press-featured::after {
    content: "";
    position: absolute;
    bottom: -190px;
    left: -170px;
    width: 430px;
    height: 430px;
    background: rgba(255, 185, 122, 0.05);
    border-radius: 50%;
}

.ct-press-featured .ct-press-container {
    position: relative;
    z-index: 1;
}

.ct-press-page .ct-press-featured-book {
    display: grid !important;
    grid-template-columns:
        minmax(300px, 0.85fr)
        minmax(0, 1.15fr) !important;
    align-items: center;
    gap: clamp(60px, 8vw, 125px);
}

.ct-press-page .ct-press-featured-book__visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ct-press-page .ct-press-featured-book__visual::before {
    content: "";
    position: absolute;
    width: 92%;
    height: 92%;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transform: rotate(-5deg);
}

.ct-press-page .ct-press-featured-book__visual img {
    position: relative;
    z-index: 1;
    display: block;
    width: auto !important;
    max-width: 100%;
    height: auto !important;
    max-height: 610px;
    margin: 0 auto;
    object-fit: contain;
    border-radius: 2px;
    box-shadow:
        0 38px 80px rgba(10, 8, 23, 0.42),
        0 10px 24px rgba(10, 8, 23, 0.22);
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s ease;
}

.ct-press-page .ct-press-featured-book__visual:hover img {
    transform: translateY(-12px) rotate(-1deg);
    box-shadow:
        0 48px 95px rgba(10, 8, 23, 0.48),
        0 14px 30px rgba(10, 8, 23, 0.26);
}

.ct-press-page .ct-press-featured-book__details {
    max-width: 600px;
}

.ct-press-page .ct-press-featured-book__label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    color: var(--press-peach);
    font-family: var(--press-font-display);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ct-press-page .ct-press-featured-book__label::before {
    content: "";
    width: 38px;
    height: 1px;
    background: currentColor;
}

.ct-press-page .ct-press-featured-book__details h3 {
    margin: 0 0 30px !important;
    color: #fff !important;
    font-family: var(--press-font-editorial);
    font-size: clamp(50px, 6vw, 86px) !important;
    font-weight: 500 !important;
    line-height: 0.98 !important;
    letter-spacing: -0.05em;
}

.ct-press-page .ct-press-featured-book__credits {
    margin-bottom: 28px;
}

.ct-press-page .ct-press-featured-book__credits p {
    color: rgba(255, 255, 255, 0.72);
    font-size: 15px;
}

.ct-press-page .ct-press-featured-book__credits span {
    color: var(--press-peach);
}

.ct-press-page .ct-press-featured-book__credits strong {
    color: #fff;
}

.ct-press-page .ct-press-featured-book__description {
    max-width: 520px;
    margin: 0 0 35px !important;
    color: rgba(255, 255, 255, 0.7);
    font-family: var(--press-font-display);
    font-size: 17px;
    line-height: 1.75;
}


/* =========================================================
   LATEST RELEASES
========================================================= */

.ct-press-latest {
    padding: 120px 0 130px;
    background: var(--press-cream);
}

.ct-press-page #press-page-latest-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 42px 24px;
}

.ct-press-page #press-page-latest-grid .ct-press-book-card__cover {
    padding: 20px;
}

.ct-press-page #press-page-latest-grid .ct-press-book-card__title {
    font-size: clamp(20px, 1.7vw, 25px) !important;
}

.ct-press-page #press-page-latest-grid .ct-press-book-card__body {
    padding-top: 22px;
}


/* =========================================================
   LIBRARY ACTION / LOADING
========================================================= */

.ct-press-library__action {
    display: flex;
    justify-content: center;
    margin-top: 65px;
}

.ct-press-page .ct-press-loading {
    grid-column: 1 / -1;
    margin: 0;
    padding: 45px;
    color: var(--press-muted);
    font-family: var(--press-font-display);
    font-size: 16px;
    text-align: center;
    background: var(--press-cream);
}

.ct-press-page .ct-press-loading--error {
    color: #a64c4c;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {

    .ct-press-page #press-page-books-grid,
    .ct-press-page .ct-press-books-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 55px 30px;
    }

    .ct-press-page .ct-press-featured-book {
        grid-template-columns:
            minmax(260px, 0.8fr)
            minmax(0, 1.2fr) !important;
        gap: 55px;
    }

    .ct-press-page .ct-press-featured-book__visual img {
        max-height: 500px;
    }

    .ct-press-page .ct-press-featured-book__details h3 {
        font-size: clamp(45px, 7vw, 66px) !important;
    }

    .ct-press-page #press-page-latest-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 55px 30px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .ct-press-library,
    .ct-press-featured,
    .ct-press-latest {
        padding-top: 78px;
        padding-bottom: 85px;
    }

    .ct-press-library__toolbar {
        justify-content: flex-start;
        margin-top: 0;
        margin-bottom: 32px;
    }

    .ct-press-page #press-page-books-grid,
    .ct-press-page .ct-press-books-grid,
    .ct-press-page #press-page-latest-grid {
        grid-template-columns: 1fr !important;
        gap: 52px;
    }

    .ct-press-page .ct-press-book-card {
        max-width: 430px;
        margin-right: auto;
        margin-left: auto;
    }

    .ct-press-page .ct-press-book-card__cover {
        padding: 24px;
    }

    .ct-press-page .ct-press-book-card__title,
    .ct-press-page #press-page-latest-grid .ct-press-book-card__title {
        font-size: 27px !important;
    }

    .ct-press-page .ct-press-featured-book {
        grid-template-columns: 1fr !important;
        gap: 55px;
    }

    .ct-press-page .ct-press-featured-book__visual {
        max-width: 390px;
        margin: 0 auto;
    }

    .ct-press-page .ct-press-featured-book__visual img {
        max-height: 520px;
    }

    .ct-press-page .ct-press-featured-book__details {
        max-width: none;
        text-align: center;
    }

    .ct-press-page .ct-press-featured-book__label {
        justify-content: center;
    }

    .ct-press-page .ct-press-featured-book__details h3 {
        font-size: clamp(44px, 13vw, 65px) !important;
    }

    .ct-press-page .ct-press-featured-book__credits {
        align-items: center;
    }

    .ct-press-page .ct-press-featured-book__credits p {
        justify-content: center;
    }

    .ct-press-page .ct-press-featured-book__description {
        margin-right: auto !important;
        margin-left: auto !important;
    }

    .ct-press-library__action {
        margin-top: 50px;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .ct-press-page .ct-press-book-card__cover {
        padding: 18px;
    }

    .ct-press-page .ct-press-book-card__body {
        padding-top: 22px;
    }

    .ct-press-page .ct-press-book-card__title,
    .ct-press-page #press-page-latest-grid .ct-press-book-card__title {
        font-size: 24px !important;
    }

    .ct-press-page .ct-press-featured-book__details h3 {
        font-size: 42px !important;
    }
}

/* =========================================================
   CHANIARTOON — VOLUNTEERS PAGE
   Βάλτε το block στο τέλος του custom.css
========================================================= */


/* ---------------------------------------------------------
   SP PAGE BUILDER — ΕΝΑ ROW / ΜΙΑ ΣΤΗΛΗ
--------------------------------------------------------- */

.ct-vol-page-row {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;
}

.ct-vol-page-row > .sppb-row-container,
.ct-vol-page-row .sppb-row-container,
.ct-vol-page-row .sppb-container-inner,
.ct-vol-page-row .sppb-row,
.ct-vol-page-row [class*="sppb-col"],
.ct-vol-page-row .sppb-column,
.ct-vol-page-row .sppb-column-addons {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ct-vol-page-row .sppb-addon-wrapper,
.ct-vol-page-row .sppb-addon,
.ct-vol-page-row .sppb-addon-content {
    margin: 0;
}


/* ---------------------------------------------------------
   VARIABLES / BASE
--------------------------------------------------------- */

.ct-vol-page,
.ct-volunteers-form-addon {
    --ct-vol-ink: #191722;
    --ct-vol-ink-soft: #252230;
    --ct-vol-purple: #403b6e;
    --ct-vol-purple-dark: #292548;
    --ct-vol-violet: #b273e0;
    --ct-vol-peach: #ffbf82;
    --ct-vol-lime: #cfe977;
    --ct-vol-paper: #fcfaf6;
    --ct-vol-cream: #f2ede5;
    --ct-vol-muted: #746f7d;
    --ct-vol-line: rgba(25, 23, 34, 0.13);

    --ct-vol-display:
        "Montserrat",
        "Avenir Next",
        "Segoe UI",
        Arial,
        sans-serif;

    --ct-vol-sans:
        "Manrope",
        "Avenir Next",
        "Segoe UI",
        Arial,
        sans-serif;
}

.ct-vol-page {
    position: relative;
    width: 100%;
    overflow: hidden;
    color: var(--ct-vol-ink);
    background: var(--ct-vol-paper);
    font-family: var(--ct-vol-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-vol-page *,
.ct-vol-page *::before,
.ct-vol-page *::after,
.ct-volunteers-form-addon *,
.ct-volunteers-form-addon *::before,
.ct-volunteers-form-addon *::after {
    box-sizing: border-box;
}

.ct-vol-page h1,
.ct-vol-page h2,
.ct-vol-page h3,
.ct-vol-page p,
.ct-vol-page blockquote {
    margin-top: 0;
}

.ct-vol-page a {
    color: inherit;
    text-decoration: none;
}

.ct-vol-page em {
    color: var(--ct-vol-violet);
    font-style: normal;
}

.ct-vol-container {
    position: relative;
    width: min(1240px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-vol-section {
    position: relative;
    padding: 125px 0;
}

.ct-vol-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ct-vol-purple);
    font-size: 11px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-vol-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-vol-eyebrow--light {
    color: var(--ct-vol-peach);
}

.ct-vol-section-number {
    display: block;
    margin-bottom: 20px;
    color: var(--ct-vol-violet);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.ct-vol-section-number--light {
    color: var(--ct-vol-peach);
}

.ct-vol-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.ct-vol-button {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 16px 23px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
    transition:
        transform 0.25s ease,
        color 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease;
}

.ct-vol-button:hover,
.ct-vol-button:focus-visible {
    transform: translateY(-3px);
}

.ct-vol-button--accent {
    color: var(--ct-vol-ink);
    background: var(--ct-vol-lime);
    border-color: var(--ct-vol-lime);
}

.ct-vol-button--accent:hover,
.ct-vol-button--accent:focus-visible {
    background: #def293;
    border-color: #def293;
}

.ct-vol-button--ghost {
    color: #fff;
    background: transparent;
    border-color: rgba(255,255,255,0.28);
}

.ct-vol-button--ghost:hover,
.ct-vol-button--ghost:focus-visible {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.5);
}


/* ---------------------------------------------------------
   REVEAL
--------------------------------------------------------- */

.ct-vol-js [data-vol-reveal] {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition:
        opacity 0.7s ease,
        transform 0.82s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ct-vol-delay, 0ms);
}

.ct-vol-js [data-vol-reveal].is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}


/* ---------------------------------------------------------
   HERO
--------------------------------------------------------- */

.ct-vol-hero {
    position: relative;
    min-height: 900px;
    display: flex;
    align-items: center;
    padding: 145px 0 110px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 15% 18%, rgba(178,115,224,0.21), transparent 29%),
        radial-gradient(circle at 88% 78%, rgba(207,233,119,0.1), transparent 27%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-vol-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.065;
    background-image:
        linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px);
    background-size: 74px 74px;
    mask-image: linear-gradient(to bottom, #000 0%, transparent 86%);
}

.ct-vol-hero__orb {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.ct-vol-hero__orb--one {
    top: -230px;
    left: -180px;
    width: 560px;
    height: 560px;
    border: 90px solid rgba(255,191,130,0.05);
}

.ct-vol-hero__orb--two {
    right: -250px;
    bottom: -280px;
    width: 650px;
    height: 650px;
    border: 110px solid rgba(207,233,119,0.045);
}

.ct-vol-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(480px, 1.05fr);
    align-items: center;
    gap: clamp(55px, 7vw, 105px);
}

.ct-vol-hero__content {
    max-width: 710px;
}

.ct-vol-hero h1 {
    margin: 28px 0 30px;
    color: #fff;
    font-family: var(--ct-vol-display);
    font-size: clamp(58px, 6.8vw, 105px);
    font-weight: 750;
    line-height: 0.91;
    letter-spacing: -0.055em;
}

.ct-vol-hero h1 em {
    display: block;
    margin-top: 14px;
    color: var(--ct-vol-lime);
}

.ct-vol-hero__lead {
    max-width: 650px;
    margin-bottom: 36px;
    color: rgba(255,255,255,0.72);
    font-size: 18px;
    line-height: 1.74;
}

.ct-vol-hero__note {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 34px;
    color: rgba(255,255,255,0.56);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ct-vol-hero__note span {
    color: var(--ct-vol-peach);
}

.ct-vol-hero__visual {
    position: relative;
    min-height: 620px;
    transform: translate3d(
        0,
        var(--ct-vol-parallax-y, 0px),
        0
    );
}

.ct-vol-photo {
    position: absolute;
    overflow: hidden;
    background:
        linear-gradient(to top, rgba(12,10,17,0.76), transparent 55%),
        var(--ct-vol-image),
        linear-gradient(135deg, #5e5675, #282432);
    background-position: center;
    background-size: cover;
    border: 1px solid rgba(255,255,255,0.13);
    box-shadow: 0 32px 70px rgba(5,4,10,0.36);
}

.ct-vol-photo::after {
    content: "";
    position: absolute;
    inset: 13px;
    border: 1px solid rgba(255,255,255,0.13);
}

.ct-vol-photo span {
    position: absolute;
    z-index: 2;
    right: 18px;
    bottom: 17px;
    color: #fff;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.ct-vol-photo--main {
    inset: 28px 105px 55px 0;
    transform: rotate(-2.5deg);
}

.ct-vol-photo--top {
    top: 0;
    right: 0;
    width: 220px;
    height: 270px;
    transform: rotate(4deg);
}

.ct-vol-photo--bottom {
    right: 10px;
    bottom: 4px;
    width: 260px;
    height: 300px;
    transform: rotate(2deg);
}

.ct-vol-hero__stamp {
    position: absolute;
    left: -48px;
    bottom: 0;
    display: grid;
    width: 116px;
    height: 116px;
    place-items: center;
    color: var(--ct-vol-lime);
    border: 1px solid rgba(207,233,119,0.5);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: 0.14em;
    text-align: center;
    transform: rotate(-9deg);
}

.ct-vol-scroll {
    position: absolute;
    z-index: 3;
    right: 38px;
    bottom: 30px;
    display: flex;
    align-items: center;
    gap: 15px;
    color: rgba(255,255,255,0.45);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: 0.16em;
    writing-mode: vertical-rl;
}

.ct-vol-scroll i {
    width: 1px;
    height: 50px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.65), transparent);
}


/* ---------------------------------------------------------
   COMMON SECTION HEAD
--------------------------------------------------------- */

.ct-vol-section-head {
    display: grid;
    grid-template-columns: 205px minmax(0, 1fr);
    gap: 30px;
    margin-bottom: 72px;
}

.ct-vol-section-head > div {
    padding-top: 8px;
}

.ct-vol-section-head h2,
.ct-vol-roles h2,
.ct-vol-process h2,
.ct-vol-form-intro h2 {
    margin: 0;
    color: var(--ct-vol-ink);
    font-family: var(--ct-vol-display);
    font-size: clamp(54px, 6.5vw, 98px);
    font-weight: 750;
    line-height: 0.93;
    letter-spacing: -0.05em;
}


/* ---------------------------------------------------------
   WHY
--------------------------------------------------------- */

.ct-vol-why {
    background:
        radial-gradient(circle at 90% 0%, rgba(178,115,224,0.08), transparent 26%),
        var(--ct-vol-paper);
}

.ct-vol-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--ct-vol-line);
    border-left: 1px solid var(--ct-vol-line);
}

.ct-vol-benefit {
    position: relative;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    padding: 30px;
    border-right: 1px solid var(--ct-vol-line);
    border-bottom: 1px solid var(--ct-vol-line);
    transition:
        transform 0.3s ease,
        background-color 0.3s ease;
}

.ct-vol-benefit:hover {
    z-index: 2;
    background: #fff;
    transform: translateY(-7px);
}

.ct-vol-benefit__number {
    color: var(--ct-vol-violet);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.ct-vol-benefit__icon {
    display: grid;
    width: 66px;
    height: 66px;
    place-items: center;
    margin: 50px 0 42px;
    color: var(--ct-vol-purple);
    border: 1px solid rgba(64,59,110,0.2);
    border-radius: 50%;
    font-size: 28px;
}

.ct-vol-benefit h3 {
    margin: 0 0 17px;
    color: var(--ct-vol-ink);
    font-family: var(--ct-vol-display);
    font-size: 31px;
    font-weight: 750;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.ct-vol-benefit p {
    margin: 0;
    color: var(--ct-vol-muted);
    font-size: 14px;
    line-height: 1.72;
}


/* ---------------------------------------------------------
   ROLES
--------------------------------------------------------- */

.ct-vol-roles {
    color: #fff;
    background:
        radial-gradient(circle at 15% 90%, rgba(178,115,224,0.17), transparent 27%),
        linear-gradient(140deg, #17151f, #2c2848);
}

.ct-vol-roles__top {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    align-items: end;
    gap: 75px;
    margin-bottom: 70px;
}

.ct-vol-roles h2 {
    margin-top: 18px;
    color: #fff;
}

.ct-vol-roles h2 em {
    color: var(--ct-vol-lime);
}

.ct-vol-roles__intro p {
    margin-bottom: 18px;
    color: rgba(255,255,255,0.7);
    font-size: 17px;
    line-height: 1.78;
}

.ct-vol-roles__intro span {
    color: var(--ct-vol-peach);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ct-vol-role-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid rgba(255,255,255,0.16);
    border-left: 1px solid rgba(255,255,255,0.16);
}

.ct-vol-role-card {
    min-height: 310px;
    display: flex;
    flex-direction: column;
    padding: 26px;
    border-right: 1px solid rgba(255,255,255,0.16);
    border-bottom: 1px solid rgba(255,255,255,0.16);
    transition:
        background-color 0.3s ease,
        transform 0.3s ease;
}

.ct-vol-role-card:hover {
    background: rgba(255,255,255,0.06);
    transform: translateY(-5px);
}

.ct-vol-role-card > span {
    color: var(--ct-vol-peach);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.ct-vol-role-card h3 {
    margin: auto 0 15px;
    color: #fff;
    font-family: var(--ct-vol-display);
    font-size: 25px;
    font-weight: 720;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.ct-vol-role-card p {
    margin: 0;
    color: rgba(255,255,255,0.58);
    font-size: 13px;
    line-height: 1.65;
}


/* ---------------------------------------------------------
   PROCESS
--------------------------------------------------------- */

.ct-vol-process {
    background: var(--ct-vol-cream);
}

.ct-vol-process__header {
    display: grid;
    grid-template-columns: 175px 210px minmax(0, 1fr);
    align-items: start;
    gap: 25px;
    margin-bottom: 72px;
}

.ct-vol-process__header .ct-vol-section-number {
    margin-top: 12px;
}

.ct-vol-process__header .ct-vol-eyebrow {
    margin-top: 13px;
}

.ct-vol-timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ct-vol-timeline::before {
    content: "";
    position: absolute;
    top: 24px;
    right: 12.5%;
    left: 12.5%;
    height: 1px;
    background: rgba(64,59,110,0.22);
}

.ct-vol-step {
    position: relative;
    padding: 0 26px;
}

.ct-vol-step__number {
    position: relative;
    z-index: 1;
    display: grid;
    width: 49px;
    height: 49px;
    place-items: center;
    margin-bottom: 34px;
    color: var(--ct-vol-purple);
    background: var(--ct-vol-cream);
    border: 1px solid rgba(64,59,110,0.28);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.ct-vol-step h3 {
    margin: 0 0 14px;
    color: var(--ct-vol-ink);
    font-family: var(--ct-vol-display);
    font-size: 26px;
    font-weight: 730;
    line-height: 1.06;
    letter-spacing: -0.03em;
}

.ct-vol-step p {
    margin: 0;
    color: var(--ct-vol-muted);
    font-size: 13px;
    line-height: 1.68;
}


/* ---------------------------------------------------------
   TEAM
--------------------------------------------------------- */

.ct-vol-team {
    color: #fff;
    background:
        radial-gradient(circle at 90% 10%, rgba(207,233,119,0.1), transparent 24%),
        linear-gradient(145deg, #3a3565, #292548 66%, #201d37);
}

.ct-vol-team__quote {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    margin-bottom: 75px;
}

.ct-vol-team blockquote {
    margin: 0;
    color: #fff;
    font-family: var(--ct-vol-display);
    font-size: clamp(52px, 6.5vw, 96px);
    font-weight: 750;
    line-height: 0.94;
    letter-spacing: -0.05em;
}

.ct-vol-team blockquote em {
    color: var(--ct-vol-lime);
}

.ct-vol-team__grid {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    align-items: start;
    gap: 75px;
}

.ct-vol-team__copy {
    padding-top: 35px;
}

.ct-vol-team__copy p {
    margin-bottom: 21px;
    color: rgba(255,255,255,0.65);
    font-size: 15px;
    line-height: 1.78;
}

.ct-vol-text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 15px;
    color: var(--ct-vol-lime) !important;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.ct-vol-team__gallery {
    min-height: 640px;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    grid-template-rows: 1.1fr 0.9fr;
    gap: 17px;
}

.ct-vol-gallery-item {
    min-height: 240px;
    background:
        linear-gradient(135deg, rgba(178,115,224,0.08), rgba(207,233,119,0.04)),
        var(--ct-vol-image),
        linear-gradient(135deg, #756d86, #3a3544);
    background-position: center;
    background-size: cover;
}

.ct-vol-gallery-item--one {
    grid-row: 1 / 3;
}


/* ---------------------------------------------------------
   FORM INTRO
--------------------------------------------------------- */

.ct-vol-form-intro {
    position: relative;
    padding: 110px 0 70px;
    color: #fff;
    background: var(--ct-vol-ink);
}

.ct-vol-form-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(330px, 0.75fr);
    align-items: end;
    gap: 80px;
}

.ct-vol-form-intro h2 {
    margin-top: 22px;
    color: #fff;
}

.ct-vol-form-intro h2 em {
    color: var(--ct-vol-lime);
}

.ct-vol-form-intro__copy p {
    margin-bottom: 22px;
    color: rgba(255,255,255,0.7);
    font-size: 16px;
    line-height: 1.75;
}

.ct-vol-form-intro__copy ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ct-vol-form-intro__copy li {
    position: relative;
    padding-left: 23px;
    color: rgba(255,255,255,0.55);
    font-size: 12px;
    line-height: 1.6;
}

.ct-vol-form-intro__copy li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    color: var(--ct-vol-lime);
    font-weight: 900;
}




/* ---------------------------------------------------------
   FORM SCROLL ANCHOR
   Το anchor βρίσκεται στο τέλος του Custom HTML addon.
--------------------------------------------------------- */

.ct-vol-form-anchor {
    position: relative;
    width: 100%;
    height: 0;
    scroll-margin-top: 110px;
    visibility: hidden;
    pointer-events: none;
}


/* ---------------------------------------------------------
   FORM BUILDER ADDON
   Advanced → ID: volunteer-form-panel
   Advanced → CSS Class: ct-volunteers-form-addon
--------------------------------------------------------- */

.ct-volunteers-form-addon {
    position: relative;
    width: 100%;
    padding: 0 0 115px !important;
    color: #fff;
    background: var(--ct-vol-ink);
    font-family: var(--ct-vol-sans);
}

.ct-volunteers-form-addon > .sppb-addon,
.ct-volunteers-form-addon.sppb-addon-form-builder,
.ct-volunteers-form-addon .sppb-addon-form-builder {
    width: min(1100px, calc(100% - 72px));
    margin: 0 auto !important;
    padding: clamp(32px, 5vw, 66px) !important;
    color: var(--ct-vol-ink);
    background: var(--ct-vol-paper);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 4px;
    box-shadow: 0 32px 80px rgba(5,4,10,0.32);
}

.ct-volunteers-form-addon .sppb-addon-title {
    margin: 0 0 12px !important;
    color: var(--ct-vol-ink) !important;
    font-family: var(--ct-vol-display) !important;
    font-size: clamp(34px, 4vw, 56px) !important;
    font-weight: 750 !important;
    line-height: 1 !important;
    letter-spacing: -0.04em;
}

.ct-volunteers-form-addon .sppb-addon-content > p,
.ct-volunteers-form-addon .sppb-form-builder-content {
    color: var(--ct-vol-muted);
}

.ct-volunteers-form-addon form {
    margin-top: 35px;
}

.ct-volunteers-form-addon .sppb-form-group,
.ct-volunteers-form-addon .form-group {
    margin-bottom: 22px !important;
}

.ct-volunteers-form-addon label {
    display: block;
    margin-bottom: 9px;
    color: var(--ct-vol-ink);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.ct-volunteers-form-addon input[type="text"],
.ct-volunteers-form-addon input[type="email"],
.ct-volunteers-form-addon input[type="tel"],
.ct-volunteers-form-addon input[type="number"],
.ct-volunteers-form-addon input[type="date"],
.ct-volunteers-form-addon select,
.ct-volunteers-form-addon textarea,
.ct-volunteers-form-addon .sppb-form-control,
.ct-volunteers-form-addon .form-control {
    width: 100%;
    min-height: 54px;
    padding: 14px 15px !important;
    color: var(--ct-vol-ink) !important;
    background: #fff !important;
    border: 1px solid rgba(25,23,34,0.16) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    font-family: var(--ct-vol-sans);
    font-size: 15px;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.ct-volunteers-form-addon textarea,
.ct-volunteers-form-addon textarea.sppb-form-control {
    min-height: 135px;
    resize: vertical;
}

.ct-volunteers-form-addon input:focus,
.ct-volunteers-form-addon select:focus,
.ct-volunteers-form-addon textarea:focus,
.ct-volunteers-form-addon .sppb-form-control:focus,
.ct-volunteers-form-addon .form-control:focus {
    outline: none;
    border-color: var(--ct-vol-violet) !important;
    box-shadow: 0 0 0 3px rgba(178,115,224,0.12) !important;
}

.ct-volunteers-form-addon input[type="checkbox"],
.ct-volunteers-form-addon input[type="radio"] {
    accent-color: var(--ct-vol-purple);
}

.ct-volunteers-form-addon .sppb-form-check,
.ct-volunteers-form-addon .form-check,
.ct-volunteers-form-addon .sppb-form-builder-field-checkbox,
.ct-volunteers-form-addon .sppb-form-builder-field-radio {
    color: var(--ct-vol-muted);
    font-size: 14px;
    line-height: 1.55;
}

.ct-volunteers-form-addon .sppb-form-check label,
.ct-volunteers-form-addon .form-check label {
    display: inline;
    margin: 0;
    color: var(--ct-vol-muted);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.ct-volunteers-form-addon button[type="submit"],
.ct-volunteers-form-addon .sppb-btn,
.ct-volunteers-form-addon .sppb-btn-primary {
    min-height: 58px;
    padding: 16px 27px !important;
    color: var(--ct-vol-ink) !important;
    background: var(--ct-vol-lime) !important;
    border: 1px solid var(--ct-vol-lime) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-family: var(--ct-vol-sans);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition:
        transform 0.25s ease,
        background-color 0.25s ease;
}

.ct-volunteers-form-addon button[type="submit"]:hover,
.ct-volunteers-form-addon .sppb-btn:hover,
.ct-volunteers-form-addon .sppb-btn-primary:hover {
    color: var(--ct-vol-ink) !important;
    background: #def293 !important;
    transform: translateY(-3px);
}

.ct-volunteers-form-addon .sppb-alert,
.ct-volunteers-form-addon .alert {
    border-radius: 2px;
}


/* ---------------------------------------------------------
   TABLET
--------------------------------------------------------- */

@media (max-width: 1100px) {

    .ct-vol-container {
        width: min(100% - 48px, 960px);
    }

    .ct-vol-section {
        padding: 105px 0;
    }

    .ct-vol-hero {
        min-height: auto;
    }

    .ct-vol-hero__grid {
        grid-template-columns: minmax(0, 0.95fr) minmax(400px, 1.05fr);
        gap: 48px;
    }

    .ct-vol-hero h1 {
        font-size: clamp(54px, 6.8vw, 82px);
    }

    .ct-vol-hero__visual {
        min-height: 555px;
    }

    .ct-vol-photo--main {
        right: 82px;
    }

    .ct-vol-photo--top {
        width: 185px;
        height: 235px;
    }

    .ct-vol-photo--bottom {
        width: 215px;
        height: 250px;
    }

    .ct-vol-role-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-vol-process__header {
        grid-template-columns: 130px minmax(0, 1fr);
    }

    .ct-vol-process__header h2 {
        grid-column: 2;
    }

    .ct-vol-timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 55px 0;
    }

    .ct-vol-timeline::before {
        display: none;
    }

    .ct-vol-team__grid {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 50px;
    }
}


/* ---------------------------------------------------------
   MOBILE / SMALL TABLET
--------------------------------------------------------- */

@media (max-width: 820px) {

    .ct-vol-container {
        width: min(100% - 34px, 680px);
    }

    .ct-vol-section {
        padding: 82px 0;
    }

    .ct-vol-hero {
        padding: 125px 0 90px;
    }

    .ct-vol-hero__grid,
    .ct-vol-section-head,
    .ct-vol-roles__top,
    .ct-vol-process__header,
    .ct-vol-team__grid,
    .ct-vol-form-intro__grid {
        grid-template-columns: 1fr;
    }

    .ct-vol-hero__grid {
        gap: 58px;
    }

    .ct-vol-hero h1 {
        font-size: clamp(58px, 13vw, 90px);
    }

    .ct-vol-hero__visual {
        min-height: 590px;
    }

    .ct-vol-photo--main {
        inset: 28px 68px 72px 0;
    }

    .ct-vol-hero__stamp {
        left: auto;
        right: 0;
    }

    .ct-vol-scroll {
        display: none;
    }

    .ct-vol-benefits {
        grid-template-columns: 1fr;
    }

    .ct-vol-benefit {
        min-height: 330px;
    }

    .ct-vol-roles__top {
        gap: 30px;
    }

    .ct-vol-process__header h2 {
        grid-column: auto;
    }

    .ct-vol-team__quote {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .ct-vol-team__grid {
        gap: 38px;
    }

    .ct-vol-team__copy {
        padding-top: 0;
    }

    .ct-vol-form-intro__grid {
        gap: 35px;
    }

    .ct-volunteers-form-addon > .sppb-addon,
    .ct-volunteers-form-addon .sppb-addon-form-builder {
        width: min(100% - 34px, 680px);
    }
}


/* ---------------------------------------------------------
   SMALL MOBILE
--------------------------------------------------------- */

@media (max-width: 560px) {

    .ct-vol-container {
        width: calc(100% - 28px);
    }

    .ct-vol-hero {
        padding-top: 112px;
    }

    .ct-vol-hero h1 {
        font-size: clamp(49px, 14vw, 70px);
    }

    .ct-vol-hero__lead {
        font-size: 16px;
    }

    .ct-vol-actions {
        flex-direction: column;
    }

    .ct-vol-button {
        width: 100%;
    }

    .ct-vol-hero__visual {
        min-height: 465px;
    }

    .ct-vol-photo--main {
        inset: 24px 35px 56px 0;
    }

    .ct-vol-photo--top {
        width: 135px;
        height: 175px;
    }

    .ct-vol-photo--bottom {
        right: 0;
        width: 165px;
        height: 200px;
    }

    .ct-vol-hero__stamp {
        width: 90px;
        height: 90px;
        font-size: 8px;
    }

    .ct-vol-section-head h2,
    .ct-vol-roles h2,
    .ct-vol-process h2,
    .ct-vol-team blockquote,
    .ct-vol-form-intro h2 {
        font-size: clamp(43px, 13vw, 64px);
    }

    .ct-vol-role-grid {
        grid-template-columns: 1fr;
    }

    .ct-vol-role-card {
        min-height: 270px;
    }

    .ct-vol-timeline {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .ct-vol-step {
        padding: 0;
    }

    .ct-vol-team__gallery {
        min-height: 740px;
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, 1fr);
    }

    .ct-vol-gallery-item--one {
        grid-row: auto;
    }

    .ct-vol-form-intro {
        padding-top: 80px;
    }

    .ct-volunteers-form-addon {
        padding-bottom: 80px !important;
    }

    .ct-volunteers-form-addon > .sppb-addon,
    .ct-volunteers-form-addon .sppb-addon-form-builder {
        width: calc(100% - 28px);
        padding: 28px 20px !important;
    }

    .ct-volunteers-form-addon button[type="submit"],
    .ct-volunteers-form-addon .sppb-btn,
    .ct-volunteers-form-addon .sppb-btn-primary {
        width: 100%;
    }
}


/* ---------------------------------------------------------
   REDUCED MOTION
--------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .ct-vol-page *,
    .ct-vol-page *::before,
    .ct-vol-page *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .ct-vol-js [data-vol-reveal] {
        opacity: 1;
        transform: none;
    }
}

.ct-vol-hero__content {
    position: relative;
    z-index: 3;
}

.ct-vol-hero__visual {
    z-index: 1;
}

/*CHANIARTOON — SPONSORS PAGE
========================================================= */
.ct-sponsors-page-row {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;
}

.ct-sponsors-page-row > .sppb-row-container,
.ct-sponsors-page-row .sppb-row-container,
.ct-sponsors-page-row .sppb-container-inner,
.ct-sponsors-page-row .sppb-row,
.ct-sponsors-page-row [class*="sppb-col"],
.ct-sponsors-page-row .sppb-column,
.ct-sponsors-page-row .sppb-column-addons {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ct-sponsors-page,
.ct-sponsors-form-addon {
    --ct-sponsors-ink: #191722;
    --ct-sponsors-purple: #403b6e;
    --ct-sponsors-purple-dark: #292548;
    --ct-sponsors-violet: #b273e0;
    --ct-sponsors-peach: #ffbf82;
    --ct-sponsors-lime: #cfe977;
    --ct-sponsors-paper: #fcfaf6;
    --ct-sponsors-cream: #f2ede5;
    --ct-sponsors-muted: #746f7d;
    --ct-sponsors-line: rgba(25, 23, 34, 0.13);
    --ct-sponsors-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ct-sponsors-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;
}

.ct-sponsors-page {
    width: 100%;
    overflow: hidden;
    color: var(--ct-sponsors-ink);
    background: var(--ct-sponsors-paper);
    font-family: var(--ct-sponsors-sans);
}

.ct-sponsors-page *,
.ct-sponsors-page *::before,
.ct-sponsors-page *::after,
.ct-sponsors-form-addon *,
.ct-sponsors-form-addon *::before,
.ct-sponsors-form-addon *::after {
    box-sizing: border-box;
}

.ct-sponsors-page h1,
.ct-sponsors-page h2,
.ct-sponsors-page h3,
.ct-sponsors-page p {
    margin-top: 0;
}

.ct-sponsors-page a {
    color: inherit;
    text-decoration: none;
}

.ct-sponsors-page em {
    color: var(--ct-sponsors-violet);
    font-style: normal;
}

.ct-sponsors-container {
    position: relative;
    width: min(1240px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-sponsors-section {
    position: relative;
    padding: 120px 0;
}

.ct-sponsors-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ct-sponsors-purple);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-sponsors-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-sponsors-eyebrow--light {
    color: var(--ct-sponsors-peach);
}

.ct-sponsors-section-number {
    display: block;
    margin-bottom: 21px;
    color: var(--ct-sponsors-violet);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.ct-sponsors-section-number--light {
    color: var(--ct-sponsors-peach);
}

.ct-sponsors-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.ct-sponsors-button {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 16px 23px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
    transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}

.ct-sponsors-button:hover,
.ct-sponsors-button:focus-visible {
    transform: translateY(-3px);
}

.ct-sponsors-button--accent {
    color: var(--ct-sponsors-ink);
    background: var(--ct-sponsors-lime);
    border-color: var(--ct-sponsors-lime);
}

.ct-sponsors-button--ghost {
    color: #fff;
    border-color: rgba(255,255,255,.28);
}

.ct-sponsors-js [data-sponsors-reveal] {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition: opacity .72s ease, transform .84s cubic-bezier(.22,1,.36,1);
    transition-delay: var(--ct-sponsors-delay, 0ms);
}

.ct-sponsors-js [data-sponsors-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* HERO */

.ct-sponsors-hero {
    min-height: 690px;
    display: flex;
    align-items: center;
    padding: 132px 0 90px;
    color: #fff;
    background:
        radial-gradient(circle at 15% 18%, rgba(178,115,224,.2), transparent 29%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-sponsors-hero__grid {
    display: grid;
    grid-template-columns: minmax(0,.9fr) minmax(460px,1.1fr);
    align-items: center;
    gap: clamp(55px,7vw,105px);
}

.ct-sponsors-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ct-sponsors-display);
    font-size: clamp(62px,7vw,108px);
    font-weight: 760;
    line-height: .9;
    letter-spacing: -.055em;
}

.ct-sponsors-hero h1 em {
    display: block;
    color: var(--ct-sponsors-lime);
}

.ct-sponsors-hero__content p {
    margin-bottom: 34px;
    color: rgba(255,255,255,.72);
    font-size: 17px;
    line-height: 1.75;
}

.ct-sponsors-hero__visual {
    position: relative;
    min-height: 480px;
    overflow: hidden;
    background:
        linear-gradient(to top, rgba(12,10,17,.72), transparent 58%),
        var(--ct-sponsors-image),
        linear-gradient(135deg,#655c7b,#2c2738);
    background-position: center;
    background-size: cover;
    border: 1px solid rgba(255,255,255,.13);
    box-shadow: 0 32px 70px rgba(5,4,10,.34);
    transform: translate3d(0,var(--ct-sponsors-parallax-y,0),0);
}

.ct-sponsors-hero__badge {
    position: absolute;
    top: 28px;
    right: 28px;
    display: grid;
    width: 108px;
    height: 108px;
    place-items: center;
    color: var(--ct-sponsors-ink);
    background: var(--ct-sponsors-lime);
    border-radius: 50%;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: .13em;
    text-align: center;
    transform: rotate(7deg);
}

.ct-sponsors-hero__caption {
    position: absolute;
    right: 28px;
    bottom: 24px;
    left: 28px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}


/* LOGOS */

.ct-sponsors-logos {
    padding-top: 105px;
    background: var(--ct-sponsors-paper);
}

.ct-sponsors-logos__header {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 30px;
    margin-bottom: 80px;
}

.ct-sponsors-logos__header h2,
.ct-sponsors-thanks h2,
.ct-sponsors-impact h2,
.ct-sponsors-section-head h2,
.ct-sponsors-collaboration h2,
.ct-sponsors-form-intro h2 {
    margin: 18px 0 0;
    font-family: var(--ct-sponsors-display);
    font-size: clamp(54px,6.4vw,96px);
    font-weight: 760;
    line-height: .92;
    letter-spacing: -.05em;
}

.ct-sponsor-group {
    padding: 62px 0;
    border-top: 1px solid var(--ct-sponsors-line);
}

.ct-sponsor-group:last-child {
    border-bottom: 1px solid var(--ct-sponsors-line);
}

.ct-sponsor-group__heading {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 20px;
    margin-bottom: 32px;
}

.ct-sponsor-group__heading span {
    color: var(--ct-sponsors-violet);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .16em;
}

.ct-sponsor-group__heading h3 {
    margin: 0;
    color: var(--ct-sponsors-purple-dark);
    font-family: var(--ct-sponsors-display);
    font-size: clamp(28px,3vw,42px);
    font-weight: 720;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.ct-sponsor-grid {
    display: grid;
    gap: 18px;
}

.ct-sponsor-grid--patronage {
    grid-template-columns: minmax(280px, 430px);
    justify-content: center;
}

.ct-sponsor-grid--coorganizers {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.ct-sponsor-grid--coorganizers > .ct-sponsor-logo {
    grid-column: span 2;
}

/* Με 5 συνδιοργανωτές, τα δύο τελευταία κεντράρονται. */
.ct-sponsor-grid--coorganizers > .ct-sponsor-logo:nth-last-child(2):nth-child(3n + 1) {
    grid-column: 2 / span 2;
}

.ct-sponsor-grid--major {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ct-sponsor-grid--major > .ct-sponsor-logo {
    width: 100%;
}

/* Αν το τελευταίο είναι μονό και μένει μόνο του, να πιάνει και τις 2 στήλες και να κεντράρεται */
.ct-sponsor-grid--major > .ct-sponsor-logo:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    width: min(100%, 520px);
    justify-self: center;
}

/*
 * Οι παρακάτω κατηγορίες δέχονται απεριόριστα λογότυπα.
 * Κάθε νέο <a class="ct-sponsor-logo"> δημιουργεί αυτόματα
 * νέα θέση και, όταν γεμίσει η σειρά, περνά στην επόμενη.
 */
.ct-sponsor-grid--standard {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ct-sponsor-grid--supporters {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ct-sponsor-grid--media {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.ct-sponsor-logo {
    min-height: 175px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    color: var(--ct-sponsors-muted);
    background: #fff;
    border: 1px solid rgba(25,23,34,.1);
    transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.ct-sponsor-logo:hover {
    transform: translateY(-6px);
    border-color: rgba(178,115,224,.35);
    box-shadow: 0 24px 48px rgba(41,37,72,.11);
}

/*
 * Πιο ομοιόμορφο οπτικό μέγεθος λογοτύπων.
 * Τα τετράγωνα, κάθετα και οριζόντια logos δεν παραμορφώνονται.
 */
.ct-sponsor-logo img {
    display: block;
    width: 90%;
    height: 120px;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
}

/* Μεγάλοι χορηγοί / συνδιοργανωτές */
.ct-sponsor-logo--large,
.ct-sponsor-logo--hero {
    min-height: 245px;
    padding: 26px;
}

.ct-sponsor-logo--large img,
.ct-sponsor-logo--hero img {
    width: 90%;
    height: 155px;
}

/* Επίσημος χορηγός ακτοπλοϊκών */
.ct-sponsor-logo--ferry img {
    width: 90%;
    height: 155px;
}

/* Υποστηρικτές */
.ct-sponsor-logo--compact {
    min-height: 145px;
    padding: 18px;
}

.ct-sponsor-logo--compact img {
    width: 88%;
    height: 92px;
}

/* Χορηγοί επικοινωνίας */
.ct-sponsor-logo--media {
    min-height: 120px;
    padding: 14px;
}

.ct-sponsor-logo--media img {
    width: 90%;
    height: 76px;
}

.ct-sponsor-logo__placeholder {
    max-width: 230px;
    color: rgba(64,59,110,.5);
    font-size: 11px;
    font-weight: 850;
    line-height: 1.5;
    letter-spacing: .12em;
    text-align: center;
    text-transform: uppercase;
}

@media (max-width: 560px) {
    .ct-sponsor-logo {
        min-height: 165px;
        padding: 20px;
    }

    .ct-sponsor-logo img {
        width: 86%;
        height: 115px;
    }

    .ct-sponsor-logo--large,
    .ct-sponsor-logo--hero,
    .ct-sponsor-logo--ferry {
        min-height: 210px;
    }

    .ct-sponsor-logo--large img,
    .ct-sponsor-logo--hero img,
    .ct-sponsor-logo--ferry img {
        width: 86%;
        height: 145px;
    }

    .ct-sponsor-logo--compact {
        min-height: 135px;
    }

    .ct-sponsor-logo--compact img {
        width: 82%;
        height: 88px;
    }

    .ct-sponsor-logo--media {
        min-height: 115px;
    }

    .ct-sponsor-logo--media img {
        width: 82%;
        height: 72px;
    }
}


/* FERRY */

.ct-sponsor-ferry {
    display: grid;
    grid-template-columns: minmax(0,.8fr) minmax(420px,1.2fr);
    align-items: center;
    gap: 55px;
    padding: 48px;
    color: #fff;
    background: linear-gradient(140deg,var(--ct-sponsors-purple-dark),var(--ct-sponsors-purple));
}

.ct-sponsor-ferry__label {
    display: block;
    margin-bottom: 15px;
    color: var(--ct-sponsors-peach);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .16em;
}

.ct-sponsor-ferry h3 {
    margin: 0 0 18px;
    color: #fff;
    font-family: var(--ct-sponsors-display);
    font-size: clamp(36px,4vw,58px);
    line-height: .98;
    letter-spacing: -.04em;
}

.ct-sponsor-ferry p {
    margin: 0;
    color: rgba(255,255,255,.66);
    line-height: 1.72;
}

.ct-sponsor-logo--ferry {
    min-height: 245px;
}


/* THANKS / IMPACT */

.ct-sponsors-thanks {
    background: var(--ct-sponsors-cream);
}

.ct-sponsors-thanks__grid {
    display: grid;
    grid-template-columns: minmax(0,1.3fr) minmax(330px,.7fr);
    align-items: end;
    gap: 80px;
}

.ct-sponsors-thanks__copy p {
    color: var(--ct-sponsors-muted);
    font-size: 16px;
    line-height: 1.78;
}

.ct-sponsors-impact {
    color: #fff;
    background: linear-gradient(140deg,#17151f,#2c2848);
}

.ct-sponsors-impact h2 {
    color: #fff;
}

.ct-sponsors-impact h2 em {
    color: var(--ct-sponsors-lime);
}

.ct-sponsors-impact__grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    margin-top: 70px;
    border-top: 1px solid rgba(255,255,255,.16);
    border-left: 1px solid rgba(255,255,255,.16);
}

.ct-sponsors-impact__grid article {
    min-height: 280px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px;
    border-right: 1px solid rgba(255,255,255,.16);
    border-bottom: 1px solid rgba(255,255,255,.16);
}

.ct-sponsors-impact__grid strong {
    margin-bottom: 15px;
    color: var(--ct-sponsors-lime);
    font-family: var(--ct-sponsors-display);
    font-size: clamp(40px,4.5vw,67px);
    line-height: .95;
    letter-spacing: -.04em;
}

.ct-sponsors-impact__grid span {
    color: rgba(255,255,255,.62);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.5;
    letter-spacing: .08em;
    text-transform: uppercase;
}


/* ENABLES */

.ct-sponsors-section-head {
    display: grid;
    grid-template-columns: 145px 1fr;
    gap: 30px;
    margin-bottom: 70px;
}

.ct-sponsors-section-head h2 {
    margin-top: 0;
}

.ct-sponsors-enables__grid,
.ct-sponsors-collaboration__grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    border-top: 1px solid var(--ct-sponsors-line);
    border-left: 1px solid var(--ct-sponsors-line);
}

.ct-sponsors-enables__grid article,
.ct-sponsors-collaboration__grid article {
    min-height: 340px;
    display: flex;
    flex-direction: column;
    padding: 27px;
    border-right: 1px solid var(--ct-sponsors-line);
    border-bottom: 1px solid var(--ct-sponsors-line);
}

.ct-sponsors-enables__grid article > span {
    color: var(--ct-sponsors-violet);
    font-size: 10px;
    font-weight: 850;
}

.ct-sponsors-enables__grid h3,
.ct-sponsors-collaboration__grid h3 {
    margin: auto 0 16px;
    font-family: var(--ct-sponsors-display);
    font-size: 27px;
    line-height: 1.06;
    letter-spacing: -.03em;
}

.ct-sponsors-enables__grid p {
    margin: 0;
    color: var(--ct-sponsors-muted);
    line-height: 1.68;
}


/* COLLABORATION */

.ct-sponsors-collaboration {
    color: #fff;
    background: linear-gradient(145deg,#3a3565,#292548 66%,#201d37);
}

.ct-sponsors-collaboration__top {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr);
    align-items: end;
    gap: 75px;
    margin-bottom: 70px;
}

.ct-sponsors-collaboration h2 {
    color: #fff;
}

.ct-sponsors-collaboration h2 em {
    color: var(--ct-sponsors-lime);
}

.ct-sponsors-collaboration__intro p {
    color: rgba(255,255,255,.68);
    font-size: 16px;
    line-height: 1.76;
}

.ct-sponsors-text-link {
    color: var(--ct-sponsors-lime) !important;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.ct-sponsors-collaboration__grid {
    border-color: rgba(255,255,255,.16);
}

.ct-sponsors-collaboration__grid article {
    min-height: 235px;
    border-color: rgba(255,255,255,.16);
}

.ct-sponsors-collaboration__grid article span {
    color: var(--ct-sponsors-peach);
    font-size: 9px;
    font-weight: 850;
}

.ct-sponsors-collaboration__grid h3 {
    color: #fff;
}


/* FORM INTRO / FORM */

.ct-sponsors-form-intro {
    padding: 105px 0 65px;
    color: #fff;
    background: var(--ct-sponsors-ink);
}

.ct-sponsors-form-intro__grid {
    display: grid;
    grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr);
    align-items: end;
    gap: 80px;
}

.ct-sponsors-form-intro h2 {
    color: #fff;
}

.ct-sponsors-form-intro h2 em {
    color: var(--ct-sponsors-lime);
}

.ct-sponsors-form-intro__copy p,
.ct-sponsors-form-intro__copy li {
    color: rgba(255,255,255,.65);
    line-height: 1.7;
}

.ct-sponsors-form-intro__copy ul {
    padding: 0;
    list-style: none;
}

.ct-sponsors-form-intro__copy li {
    margin-bottom: 8px;
}

.ct-sponsors-form-anchor {
    width: 100%;
    height: 0;
    scroll-margin-top: 110px;
    visibility: hidden;
}

.ct-sponsors-form-addon {
    width: 100%;
    padding: 0 0 115px !important;
    color: #fff;
    background: var(--ct-sponsors-ink);
    font-family: var(--ct-sponsors-sans);
}

.ct-sponsors-form-addon > .sppb-addon,
.ct-sponsors-form-addon.sppb-addon-form-builder,
.ct-sponsors-form-addon .sppb-addon-form-builder {
    width: min(1100px,calc(100% - 72px));
    margin: 0 auto !important;
    padding: clamp(32px,5vw,66px) !important;
    color: var(--ct-sponsors-ink);
    background: var(--ct-sponsors-paper);
    box-shadow: 0 32px 80px rgba(5,4,10,.32);
}

.ct-sponsors-form-addon label {
    display: block;
    margin-bottom: 9px;
    color: var(--ct-sponsors-ink);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.ct-sponsors-form-addon input,
.ct-sponsors-form-addon select,
.ct-sponsors-form-addon textarea,
.ct-sponsors-form-addon .sppb-form-control {
    width: 100%;
    min-height: 54px;
    padding: 14px 15px !important;
    color: var(--ct-sponsors-ink) !important;
    background: #fff !important;
    border: 1px solid rgba(25,23,34,.16) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
}

.ct-sponsors-form-addon textarea {
    min-height: 145px;
}

.ct-sponsors-form-addon button[type="submit"],
.ct-sponsors-form-addon .sppb-btn,
.ct-sponsors-form-addon .sppb-btn-primary {
    min-height: 58px;
    padding: 16px 27px !important;
    color: var(--ct-sponsors-ink) !important;
    background: var(--ct-sponsors-lime) !important;
    border: 1px solid var(--ct-sponsors-lime) !important;
    border-radius: 999px !important;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}


/* RESPONSIVE */

@media (max-width:1100px) {
    .ct-sponsors-container { width: min(100% - 48px,960px); }
    .ct-sponsors-hero__grid { grid-template-columns: minmax(0,.9fr) minmax(400px,1.1fr); gap: 48px; }
    .ct-sponsor-grid--coorganizers {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-sponsor-grid--coorganizers > .ct-sponsor-logo {
        grid-column: auto;
    }

    .ct-sponsor-grid--coorganizers > .ct-sponsor-logo:nth-last-child(2):nth-child(3n + 1) {
        grid-column: auto;
    }

    .ct-sponsor-grid--coorganizers > .ct-sponsor-logo:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        width: min(100%, 470px);
        justify-self: center;
    }

    .ct-sponsor-grid--supporters,
    .ct-sponsor-grid--media {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .ct-sponsors-impact__grid,
    .ct-sponsors-enables__grid,
    .ct-sponsors-collaboration__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width:820px) {
    .ct-sponsors-container { width: min(100% - 34px,680px); }
    .ct-sponsors-section { padding: 82px 0; }
    .ct-sponsors-hero { min-height: auto; padding: 122px 0 82px; }
    .ct-sponsors-hero__grid,
    .ct-sponsors-thanks__grid,
    .ct-sponsors-collaboration__top,
    .ct-sponsors-form-intro__grid,
    .ct-sponsor-ferry { grid-template-columns: 1fr; }
    .ct-sponsors-hero__visual { min-height: 470px; }
    .ct-sponsors-logos__header,
    .ct-sponsors-section-head { grid-template-columns: 1fr; }
    .ct-sponsor-grid--coorganizers,
    .ct-sponsor-grid--patronage,
    .ct-sponsor-grid--standard,
    .ct-sponsor-grid--supporters,
    .ct-sponsor-grid--media {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-sponsor-grid--patronage {
        justify-content: stretch;
    }
    .ct-sponsors-form-addon > .sppb-addon,
    .ct-sponsors-form-addon.sppb-addon-form-builder,
    .ct-sponsors-form-addon .sppb-addon-form-builder { width: min(100% - 34px,680px); }
}

@media (max-width:560px) {
    .ct-sponsors-container { width: calc(100% - 28px); }
    .ct-sponsors-hero h1,
    .ct-sponsors-logos__header h2,
    .ct-sponsors-thanks h2,
    .ct-sponsors-impact h2,
    .ct-sponsors-section-head h2,
    .ct-sponsors-collaboration h2,
    .ct-sponsors-form-intro h2 { font-size: clamp(44px,13vw,66px); }
    .ct-sponsors-actions { flex-direction: column; }
    .ct-sponsors-button { width: 100%; }
    .ct-sponsors-hero__visual { min-height: 390px; }
    .ct-sponsor-group__heading,
    .ct-sponsor-grid--coorganizers,
    .ct-sponsor-grid--major,
    .ct-sponsor-grid--patronage,
    .ct-sponsor-grid--standard,
    .ct-sponsor-grid--supporters,
    .ct-sponsor-grid--media {
        grid-template-columns: 1fr;
    }

    .ct-sponsor-grid--coorganizers > .ct-sponsor-logo,
    .ct-sponsor-grid--coorganizers > .ct-sponsor-logo:last-child:nth-child(odd) {
        grid-column: auto;
        width: 100%;
    }
    .ct-sponsors-impact__grid,
    .ct-sponsors-enables__grid,
    .ct-sponsors-collaboration__grid { grid-template-columns: 1fr; }
    .ct-sponsors-form-addon > .sppb-addon,
    .ct-sponsors-form-addon.sppb-addon-form-builder,
    .ct-sponsors-form-addon .sppb-addon-form-builder {
        width: calc(100% - 28px);
        padding: 28px 20px !important;
    }
}

@media (prefers-reduced-motion:reduce) {
    .ct-sponsors-js [data-sponsors-reveal] {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 820px) {
    .ct-sponsor-grid--major {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-sponsor-grid--major > .ct-sponsor-logo:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        width: min(100%, 420px);
        justify-self: center;
    }
}

@media (max-width: 560px) {
    .ct-sponsor-grid--major {
        grid-template-columns: 1fr;
    }

    .ct-sponsor-grid--major > .ct-sponsor-logo:last-child:nth-child(odd) {
        grid-column: auto;
        width: 100%;
    }
}

/* =========================================================
CHANIARTOON — PARTNERS PAGE
Βάλτε όλο το block στο τέλος του custom.css
========================================================= */

.ct-partners-page-row {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;
}

.ct-partners-page-row > .sppb-row-container,
.ct-partners-page-row .sppb-row-container,
.ct-partners-page-row .sppb-container-inner,
.ct-partners-page-row .sppb-row,
.ct-partners-page-row [class*="sppb-col"],
.ct-partners-page-row .sppb-column,
.ct-partners-page-row .sppb-column-addons {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ct-partners-page {
    --ct-partners-ink: #191722;
    --ct-partners-purple: #403b6e;
    --ct-partners-purple-dark: #292548;
    --ct-partners-violet: #b273e0;
    --ct-partners-peach: #ffbf82;
    --ct-partners-lime: #cfe977;
    --ct-partners-paper: #fcfaf6;
    --ct-partners-cream: #f2ede5;
    --ct-partners-muted: #746f7d;
    --ct-partners-line: rgba(25, 23, 34, 0.13);
    --ct-partners-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ct-partners-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    width: 100%;
    overflow: hidden;
    color: var(--ct-partners-ink);
    background: var(--ct-partners-paper);
    font-family: var(--ct-partners-sans);
    -webkit-font-smoothing: antialiased;
}

.ct-partners-page *,
.ct-partners-page *::before,
.ct-partners-page *::after {
    box-sizing: border-box;
}

.ct-partners-page h1,
.ct-partners-page h2,
.ct-partners-page h3,
.ct-partners-page p {
    margin-top: 0;
}

.ct-partners-page a {
    color: inherit;
    text-decoration: none;
}

.ct-partners-page em {
    color: var(--ct-partners-violet);
    font-style: normal;
}

.ct-partners-container {
    position: relative;
    width: min(1240px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-partners-section {
    position: relative;
    padding: 120px 0;
}

.ct-partners-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ct-partners-purple);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-partners-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-partners-eyebrow--light {
    color: var(--ct-partners-peach);
}

.ct-partners-section-number {
    display: block;
    margin-bottom: 21px;
    color: var(--ct-partners-violet);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.ct-partners-section-number--light {
    color: var(--ct-partners-peach);
}

.ct-partners-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.ct-partners-button {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 16px 23px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease;
}

.ct-partners-button:hover,
.ct-partners-button:focus-visible {
    transform: translateY(-3px);
}

.ct-partners-button--accent {
    color: var(--ct-partners-ink);
    background: var(--ct-partners-lime);
    border-color: var(--ct-partners-lime);
}

.ct-partners-button--ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.28);
}

.ct-partners-text-link,
.ct-partner-card__link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ct-partners-purple) !important;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}


/* REVEAL */

.ct-partners-js [data-partners-reveal] {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition:
        opacity 0.72s ease,
        transform 0.84s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ct-partners-delay, 0ms);
}

.ct-partners-js [data-partners-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* HERO */

.ct-partners-hero {
    position: relative;
    min-height: 720px;
    display: flex;
    align-items: center;
    padding: 135px 0 90px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 15% 18%, rgba(178, 115, 224, 0.2), transparent 29%),
        radial-gradient(circle at 90% 80%, rgba(207, 233, 119, 0.08), transparent 28%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-partners-hero__orb {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.ct-partners-hero__orb--one {
    top: -250px;
    left: -170px;
    width: 580px;
    height: 580px;
    border: 92px solid rgba(255, 191, 130, 0.05);
}

.ct-partners-hero__orb--two {
    right: -230px;
    bottom: -290px;
    width: 650px;
    height: 650px;
    border: 112px solid rgba(207, 233, 119, 0.04);
}

.ct-partners-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(460px, 1.08fr);
    align-items: center;
    gap: clamp(55px, 7vw, 105px);
}

.ct-partners-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ct-partners-display);
    font-size: clamp(60px, 6.8vw, 104px);
    font-weight: 760;
    line-height: 0.91;
    letter-spacing: -0.055em;
}

.ct-partners-hero h1 em {
    display: block;
    color: var(--ct-partners-lime);
}

.ct-partners-hero__content p {
    max-width: 640px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 17px;
    line-height: 1.75;
}

.ct-partners-hero__visual {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    background:
        linear-gradient(to top, rgba(12, 10, 17, 0.72), transparent 58%),
        var(--ct-partners-image),
        linear-gradient(135deg, #655c7b, #2c2738);
    background-position: center;
    background-size: cover;
    border: 1px solid rgba(255, 255, 255, 0.13);
    box-shadow: 0 32px 70px rgba(5, 4, 10, 0.34);
    transform: translate3d(0, var(--ct-partners-parallax-y, 0), 0);
}

.ct-partners-hero__stamp {
    position: absolute;
    top: 28px;
    right: 28px;
    display: grid;
    width: 108px;
    height: 108px;
    place-items: center;
    color: var(--ct-partners-ink);
    background: var(--ct-partners-lime);
    border-radius: 50%;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.13em;
    text-align: center;
    transform: rotate(7deg);
}

.ct-partners-hero__caption {
    position: absolute;
    right: 28px;
    bottom: 24px;
    left: 28px;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}


/* SECTION TITLES */

.ct-partners-section-head {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 30px;
    margin-bottom: 80px;
}

.ct-partners-section-head h2,
.ct-partners-directory__head h2,
.ct-partners-create h2,
.ct-partners-network h2,
.ct-partners-cta h2 {
    margin: 18px 0 0;
    color: var(--ct-partners-ink);
    font-family: var(--ct-partners-display);
    font-size: clamp(54px, 6.4vw, 96px);
    font-weight: 760;
    line-height: 0.92;
    letter-spacing: -0.05em;
}


/* FEATURED */

.ct-partners-featured {
    background:
        radial-gradient(circle at 93% 5%, rgba(178, 115, 224, 0.07), transparent 25%),
        var(--ct-partners-paper);
}

.ct-partners-featured__list {
    display: grid;
    gap: 34px;
}

.ct-partners-feature-card {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(380px, 0.88fr);
    min-height: 490px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--ct-partners-line);
}

.ct-partners-feature-card--reverse .ct-partners-feature-card__image {
    order: 2;
}

.ct-partners-feature-card__image {
    position: relative;
    min-height: 470px;
    background:
        linear-gradient(to top, rgba(25, 23, 34, 0.38), transparent 55%),
        var(--ct-feature-image),
        linear-gradient(135deg, #8a8198, #3f394c);
    background-position: center;
    background-size: cover;
}

.ct-partners-feature-card__image > span {
    position: absolute;
    bottom: 25px;
    left: 27px;
    color: #fff;
    font-family: var(--ct-partners-display);
    font-size: 76px;
    font-weight: 760;
    line-height: 1;
    letter-spacing: -0.05em;
}

.ct-partners-feature-card__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(35px, 5vw, 70px);
}

.ct-partners-feature-card__type,
.ct-partner-card__type {
    color: var(--ct-partners-violet);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ct-partners-feature-card__logo {
    width: 155px;
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 28px 0 25px;
    padding: 15px;
    border: 1px solid var(--ct-partners-line);
}

.ct-partners-feature-card__logo img {
    max-width: 100%;
    max-height: 58px;
    object-fit: contain;
}

.ct-partners-feature-card__logo span {
    color: rgba(64, 59, 110, 0.42);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.ct-partners-feature-card h3 {
    margin: 0 0 18px;
    color: var(--ct-partners-purple-dark);
    font-family: var(--ct-partners-display);
    font-size: clamp(38px, 4vw, 58px);
    font-weight: 740;
    line-height: 0.98;
    letter-spacing: -0.04em;
}

.ct-partners-feature-card p {
    margin-bottom: 27px;
    color: var(--ct-partners-muted);
    font-size: 15px;
    line-height: 1.75;
}


/* DIRECTORY */

.ct-partners-directory {
    background: var(--ct-partners-cream);
}

.ct-partners-directory__head {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 52px;
}

.ct-partners-directory__head p {
    margin: 0;
    color: var(--ct-partners-muted);
    font-size: 16px;
    line-height: 1.75;
}

.ct-partners-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 38px;
}

.ct-partners-filter {
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;

    color: var(--ct-partners-purple);
    background: transparent;
    border: 1px solid rgba(64, 59, 110, 0.2);
    border-radius: 999px;
    cursor: pointer;

    font-family: var(--ct-partners-sans);
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.075em;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;

    transition:
        color 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease;
}

.ct-partners-filter:hover,
.ct-partners-filter:focus-visible,
.ct-partners-filter.is-active {
    color: #fff;
    background: var(--ct-partners-purple);
    border-color: var(--ct-partners-purple);
}

.ct-partners-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

/*
Απεριόριστες κάρτες:
Κάθε νέο .ct-partner-card μπαίνει αυτόματα στην επόμενη
διαθέσιμη θέση χωρίς καμία αλλαγή στο CSS.
*/

.ct-partner-card {
    min-height: 420px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(25, 23, 34, 0.1);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        opacity 0.24s ease;
}

.ct-partner-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 24px 46px rgba(41, 37, 72, 0.1);
}

.ct-partner-card.is-hidden {
    display: none;
}

.ct-partner-card__logo {
    min-height: 165px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background:
        linear-gradient(145deg, #fff, #f6f2f9);
    border-bottom: 1px solid var(--ct-partners-line);
}

.ct-partner-card__logo img {
    display: block;
    max-width: 78%;
    max-height: 92px;
    object-fit: contain;
}

.ct-partner-card__logo > span {
    color: rgba(64, 59, 110, 0.42);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.ct-partner-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 27px;
}

.ct-partner-card h3 {
    margin: 15px 0 13px;
    color: var(--ct-partners-purple-dark);
    font-family: var(--ct-partners-display);
    font-size: 29px;
    font-weight: 730;
    line-height: 1.02;
    letter-spacing: -0.035em;
}

.ct-partner-card p {
    margin-bottom: 24px;
    color: var(--ct-partners-muted);
    font-size: 13px;
    line-height: 1.68;
}

.ct-partner-card__link {
    margin-top: auto;
}

.ct-partners-empty {
    margin: 35px 0 0;
    color: var(--ct-partners-muted);
    text-align: center;
}


/* CREATE */

.ct-partners-create {
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(207, 233, 119, 0.1), transparent 25%),
        linear-gradient(145deg, #3a3565, #292548 66%, #201d37);
}

.ct-partners-create__top {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
    align-items: end;
    gap: 75px;
    margin-bottom: 70px;
}

.ct-partners-create h2 {
    color: #fff;
}

.ct-partners-create h2 em {
    color: var(--ct-partners-lime);
}

.ct-partners-create__top > p {
    margin: 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 16px;
    line-height: 1.78;
}

.ct-partners-create__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.ct-partners-create__grid article {
    min-height: 330px;
    display: flex;
    flex-direction: column;
    padding: 27px;
    border-right: 1px solid rgba(255, 255, 255, 0.16);
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.ct-partners-create__grid article > span {
    color: var(--ct-partners-peach);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.ct-partners-create__grid h3 {
    margin: auto 0 15px;
    color: #fff;
    font-family: var(--ct-partners-display);
    font-size: 27px;
    font-weight: 720;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.ct-partners-create__grid p {
    margin: 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 13px;
    line-height: 1.66;
}


/* NETWORK */

.ct-partners-network {
    padding: 110px 0;
    background: var(--ct-partners-paper);
}

.ct-partners-network__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(450px, 1.1fr);
    align-items: end;
    gap: 70px;
}

.ct-partners-network__places {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 22px;
}

.ct-partners-network__places span {
    color: var(--ct-partners-purple);
    font-family: var(--ct-partners-display);
    font-size: clamp(29px, 4vw, 57px);
    font-weight: 760;
    line-height: 1;
    letter-spacing: -0.045em;
}

.ct-partners-network__places span:nth-child(even) {
    color: var(--ct-partners-violet);
}

.ct-partners-network__places span::after {
    content: "·";
    margin-left: 22px;
    color: var(--ct-partners-peach);
}

.ct-partners-network__places span:last-child::after {
    content: "";
    margin: 0;
}


/* CTA */

.ct-partners-cta {
    padding: 115px 0;
    color: #fff;
    background:
        radial-gradient(circle at 15% 85%, rgba(178, 115, 224, 0.16), transparent 27%),
        linear-gradient(140deg, #17151f, #2c2848);
}

.ct-partners-cta__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, 0.75fr);
    align-items: end;
    gap: 80px;
}

.ct-partners-cta h2 {
    color: #fff;
}

.ct-partners-cta h2 em {
    color: var(--ct-partners-lime);
}

.ct-partners-cta__content p {
    margin-bottom: 28px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 16px;
    line-height: 1.76;
}


/* RESPONSIVE */

@media (max-width: 1100px) {
    .ct-partners-container {
        width: min(100% - 48px, 960px);
    }

    .ct-partners-hero__grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(400px, 1.1fr);
        gap: 48px;
    }

    .ct-partners-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-partners-create__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .ct-partners-container {
        width: min(100% - 34px, 680px);
    }

    .ct-partners-section {
        padding: 82px 0;
    }

    .ct-partners-hero {
        min-height: auto;
        padding: 122px 0 82px;
    }

    .ct-partners-hero__grid,
    .ct-partners-feature-card,
    .ct-partners-directory__head,
    .ct-partners-create__top,
    .ct-partners-network__grid,
    .ct-partners-cta__grid {
        grid-template-columns: 1fr;
    }

    .ct-partners-feature-card--reverse .ct-partners-feature-card__image {
        order: initial;
    }

    .ct-partners-section-head {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .ct-partners-hero__visual {
        min-height: 470px;
    }

    .ct-partners-feature-card__image {
        min-height: 410px;
    }

    .ct-partners-directory__head,
    .ct-partners-create__top,
    .ct-partners-network__grid,
    .ct-partners-cta__grid {
        gap: 38px;
    }
}

@media (max-width: 560px) {
    .ct-partners-container {
        width: calc(100% - 28px);
    }

    .ct-partners-hero h1,
    .ct-partners-section-head h2,
    .ct-partners-directory__head h2,
    .ct-partners-create h2,
    .ct-partners-network h2,
    .ct-partners-cta h2 {
        font-size: clamp(43px, 13vw, 65px);
    }

    .ct-partners-actions {
        flex-direction: column;
    }

    .ct-partners-button {
        width: 100%;
    }

    .ct-partners-hero__visual {
        min-height: 390px;
    }

    .ct-partners-feature-card__image {
        min-height: 340px;
    }

    .ct-partners-feature-card__content {
        padding: 30px 22px 35px;
    }

    .ct-partners-filters {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .ct-partners-grid,
    .ct-partners-create__grid {
        grid-template-columns: 1fr;
    }

    .ct-partner-card {
        min-height: 390px;
    }

    .ct-partners-network__places span::after {
        margin-left: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-partners-js [data-partners-reveal] {
        opacity: 1;
        transform: none;
    }
}


.ct-vol-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
}
/* =========================================================
CHANIARTOON — PREMIUM GALLERY
Βάλτε ολόκληρο το block στο τέλος του custom.css
========================================================= */
/* FULL-WIDTH SP PAGE BUILDER ROW */

.ct-gallery-page-row {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;
}

.ct-gallery-page-row > .sppb-row-container,
.ct-gallery-page-row .sppb-row-container,
.ct-gallery-page-row .sppb-container-inner,
.ct-gallery-page-row .sppb-row,
.ct-gallery-page-row [class*="sppb-col"],
.ct-gallery-page-row .sppb-column,
.ct-gallery-page-row .sppb-column-addons {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* BASE */

.ct-gallery-page {
    /*
     * Δεύτερο full-bleed επίπεδο ώστε να εξαφανίζεται
     * το μικρό λευκό περιθώριο του Joomla/Helix.
     */
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;

    --ct-gallery-ink: #191722;
    --ct-gallery-purple: #403b6e;
    --ct-gallery-purple-dark: #292548;
    --ct-gallery-violet: #b273e0;
    --ct-gallery-peach: #ffbf82;
    --ct-gallery-lime: #cfe977;
    --ct-gallery-paper: #fcfaf6;
    --ct-gallery-cream: #f2ede5;
    --ct-gallery-muted: #746f7d;
    --ct-gallery-line: rgba(25, 23, 34, 0.13);
    --ct-gallery-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ct-gallery-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    width: 100%;
    overflow: hidden;
    color: var(--ct-gallery-ink);
    background: var(--ct-gallery-paper);
    font-family: var(--ct-gallery-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-gallery-page *,
.ct-gallery-page *::before,
.ct-gallery-page *::after {
    box-sizing: border-box;
}

.ct-gallery-page h1,
.ct-gallery-page h2,
.ct-gallery-page p,
.ct-gallery-page figure,
.ct-gallery-page blockquote {
    margin-top: 0;
}

.ct-gallery-page a {
    color: inherit;
    text-decoration: none;
}

.ct-gallery-page em {
    color: var(--ct-gallery-violet);
    font-style: normal;
}

.ct-gallery-page button {
    font: inherit;
}

.ct-gallery-container {
    position: relative;
    width: min(1240px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-gallery-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ct-gallery-purple);
    font-size: 11px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-gallery-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-gallery-eyebrow--light {
    color: var(--ct-gallery-peach);
}

.ct-gallery-section-number {
    display: block;
    margin-bottom: 21px;
    color: var(--ct-gallery-violet);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.ct-gallery-section-number--light {
    color: var(--ct-gallery-peach);
}

.ct-gallery-button {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 16px 23px;
    color: var(--ct-gallery-ink) !important;
    background: var(--ct-gallery-lime);
    border: 1px solid var(--ct-gallery-lime);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
    transition:
        transform 0.25s ease,
        background-color 0.25s ease;
}

.ct-gallery-button:hover,
.ct-gallery-button:focus-visible {
    background: #def293;
    transform: translateY(-3px);
}


/* REVEAL */

.ct-gallery-js [data-gallery-reveal] {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition:
        opacity 0.72s ease,
        transform 0.84s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ct-gallery-delay, 0ms);
}

.ct-gallery-js [data-gallery-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* HERO */

.ct-gallery-hero {
    position: relative;
    min-height: 760px;
    display: flex;
    align-items: center;
    padding: 138px 0 92px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 15% 18%, rgba(178, 115, 224, 0.2), transparent 29%),
        radial-gradient(circle at 90% 85%, rgba(207, 233, 119, 0.08), transparent 27%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-gallery-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.055;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.8) 1px, transparent 1px);
    background-size: 74px 74px;
}

.ct-gallery-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(500px, 1.15fr);
    align-items: center;
    gap: clamp(55px, 7vw, 105px);
}

.ct-gallery-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ct-gallery-display);
    font-size: clamp(67px, 7.4vw, 118px);
    font-weight: 760;
    line-height: 0.88;
    letter-spacing: -0.06em;
}

.ct-gallery-hero h1 em {
    display: block;
    color: var(--ct-gallery-lime);
}

.ct-gallery-hero__content p {
    max-width: 560px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 17px;
    line-height: 1.75;
}

.ct-gallery-hero__visual {
    position: relative;
    min-height: 530px;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    color: #fff;
    background: #312d3f;
    border: 1px solid rgba(255, 255, 255, 0.13);
    cursor: zoom-in;
    box-shadow: 0 32px 70px rgba(5, 4, 10, 0.34);
}

.ct-gallery-hero__visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.5s ease;
}

.ct-gallery-hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(12, 10, 17, 0.76), transparent 58%),
        linear-gradient(135deg, rgba(178, 115, 224, 0.08), transparent 45%);
    pointer-events: none;
}

.ct-gallery-hero__visual:hover img {
    transform: scale(1.045);
    filter: saturate(1.06);
}

.ct-gallery-hero__frame {
    position: absolute;
    z-index: 2;
    inset: 15px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    pointer-events: none;
}

.ct-gallery-hero__stamp {
    position: absolute;
    z-index: 3;
    top: 28px;
    right: 28px;
    display: grid;
    width: 112px;
    height: 112px;
    place-items: center;
    color: var(--ct-gallery-ink);
    background: var(--ct-gallery-lime);
    border-radius: 50%;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.13em;
    text-align: center;
    transform: rotate(7deg);
}

.ct-gallery-hero__caption {
    position: absolute;
    z-index: 3;
    right: 28px;
    bottom: 24px;
    left: 28px;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-align: left;
    text-transform: uppercase;
}


/* INTRO */

.ct-gallery-intro {
    padding: 120px 0;
    background: var(--ct-gallery-cream);
}

.ct-gallery-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(340px, 0.7fr);
    align-items: end;
    gap: 80px;
}

.ct-gallery-intro h2,
.ct-gallery-collection__head h2,
.ct-gallery-closing h2 {
    margin: 18px 0 0;
    color: var(--ct-gallery-ink);
    font-family: var(--ct-gallery-display);
    font-size: clamp(54px, 6.4vw, 96px);
    font-weight: 760;
    line-height: 0.92;
    letter-spacing: -0.05em;
}

.ct-gallery-intro__copy p {
    margin-bottom: 20px;
    color: var(--ct-gallery-muted);
    font-size: 16px;
    line-height: 1.78;
}


/* COLLECTION */

.ct-gallery-collection {
    padding: 120px 0;
    background:
        radial-gradient(circle at 95% 2%, rgba(178, 115, 224, 0.065), transparent 25%),
        var(--ct-gallery-paper);
}

.ct-gallery-collection__head {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 30px;
    margin-bottom: 75px;
}

.ct-gallery-collection__head h2 {
    margin-top: 0;
}


/* EDITORIAL GRID */

.ct-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-flow: dense;
    grid-auto-rows: 145px;
    gap: 16px;
}

.ct-gallery-item {
    position: relative;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background: #ded9e1;
}

.ct-gallery-item--standard {
    grid-column: span 4;
    grid-row: span 2;
}

.ct-gallery-item--wide {
    grid-column: span 8;
    grid-row: span 2;
}

.ct-gallery-item--tall {
    grid-column: span 4;
    grid-row: span 4;
}

.ct-gallery-item--hero {
    grid-column: span 8;
    grid-row: span 4;
}

.ct-gallery-item > button {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    overflow: hidden;
    background: transparent;
    border: 0;
    cursor: zoom-in;
}

.ct-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.5s ease;
}

.ct-gallery-item > button::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(18, 16, 26, 0.62), transparent 48%);
    opacity: 0.68;
    transition: opacity 0.35s ease;
}

.ct-gallery-item:hover img,
.ct-gallery-item:focus-within img {
    transform: scale(1.055);
    filter: saturate(1.08);
}

.ct-gallery-item:hover > button::after,
.ct-gallery-item:focus-within > button::after {
    opacity: 0.42;
}

.ct-gallery-item__number {
    position: absolute;
    z-index: 2;
    bottom: 18px;
    left: 20px;
    color: #fff;
    font-family: var(--ct-gallery-display);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.12em;
}


/* QUOTE BLOCKS */

.ct-gallery-quote {
    /*
     * Το quote καταλαμβάνει πλέον δύο πραγματικές grid rows.
     * Έτσι οι επόμενες φωτογραφίες δεν ανεβαίνουν πάνω από
     * τα γράμματα.
     */
    position: relative;
    z-index: 4;
    grid-column: 1 / -1;
    grid-row: span 2;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0;
    padding: clamp(35px, 6vw, 82px);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 90% 15%, rgba(207, 233, 119, 0.12), transparent 25%),
        linear-gradient(145deg, #3a3565, #292548 66%, #201d37);
}

.ct-gallery-quote span,
.ct-gallery-quote strong {
    position: relative;
    z-index: 2;
    display: block;
    font-family: var(--ct-gallery-display);
    font-size: clamp(42px, 6vw, 92px);
    font-weight: 760;
    line-height: 0.94;
    letter-spacing: -0.05em;
}

.ct-gallery-quote span {
    color: #fff;
}

.ct-gallery-quote strong {
    color: var(--ct-gallery-lime);
}

.ct-gallery-quote--light {
    color: var(--ct-gallery-ink);
    background: var(--ct-gallery-peach);
}

.ct-gallery-quote--light span {
    color: var(--ct-gallery-purple-dark);
}

.ct-gallery-quote--light strong {
    color: var(--ct-gallery-purple);
}

.ct-gallery-quote--final {
    margin-bottom: 0;
    background:
        radial-gradient(circle at 10% 85%, rgba(178, 115, 224, 0.17), transparent 26%),
        linear-gradient(140deg, #17151f, #2c2848);
}


/* CLOSING */

.ct-gallery-closing {
    padding: 120px 0;
    color: #fff;
    background:
        radial-gradient(circle at 15% 85%, rgba(178, 115, 224, 0.16), transparent 27%),
        linear-gradient(140deg, #17151f, #2c2848);
}

.ct-gallery-closing__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(340px, 0.72fr);
    align-items: end;
    gap: 80px;
}

.ct-gallery-closing h2 {
    color: #fff;
}

.ct-gallery-closing h2 em {
    color: var(--ct-gallery-lime);
}

.ct-gallery-closing__copy p {
    margin-bottom: 28px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 16px;
    line-height: 1.76;
}


/* LIGHTBOX */

body.ct-gallery-lightbox-open {
    overflow: hidden;
}

.ct-gallery-lightbox[hidden] {
    display: none !important;
}

.ct-gallery-lightbox {
    position: fixed;
    z-index: 100000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 26px;
}

.ct-gallery-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 7, 12, 0.94);
    backdrop-filter: blur(8px);
}

.ct-gallery-lightbox__panel {
    position: relative;
    z-index: 2;
    width: min(1500px, 100%);
    height: min(900px, calc(100vh - 52px));
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 72px;
    align-items: center;
}

.ct-gallery-lightbox__figure {
    min-width: 0;
    height: 100%;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    margin: 0;
}

.ct-gallery-lightbox__image-wrap {
    min-height: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.ct-gallery-lightbox__image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
    opacity: 1;
    transition: opacity 0.18s ease;
}

.ct-gallery-lightbox__image.is-loading {
    opacity: 0.28;
}

.ct-gallery-lightbox__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 0 0;
    color: rgba(255, 255, 255, 0.72);
}

.ct-gallery-lightbox__caption {
    font-size: 13px;
    line-height: 1.5;
}

.ct-gallery-lightbox__counter {
    flex: 0 0 auto;
    color: var(--ct-gallery-lime);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.ct-gallery-lightbox__close,
.ct-gallery-lightbox__nav {
    display: grid;
    place-items: center;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.22);
    cursor: pointer;
    transition:
        color 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease;
}

.ct-gallery-lightbox__close:hover,
.ct-gallery-lightbox__close:focus-visible,
.ct-gallery-lightbox__nav:hover,
.ct-gallery-lightbox__nav:focus-visible {
    color: var(--ct-gallery-ink);
    background: var(--ct-gallery-lime);
    border-color: var(--ct-gallery-lime);
}

.ct-gallery-lightbox__close {
    position: absolute;
    z-index: 3;
    top: 0;
    right: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    font-size: 30px;
    line-height: 1;
}

.ct-gallery-lightbox__nav {
    width: 52px;
    height: 52px;
    justify-self: center;
    border-radius: 50%;
    font-size: 21px;
}


/* TABLET */

@media (max-width: 1100px) {
    .ct-gallery-container {
        width: min(100% - 48px, 960px);
    }

    .ct-gallery-hero__grid {
        grid-template-columns: minmax(0, 0.85fr) minmax(410px, 1.15fr);
        gap: 48px;
    }

    .ct-gallery-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        grid-auto-rows: 135px;
    }

    .ct-gallery-item--standard {
        grid-column: span 3;
    }

    .ct-gallery-item--wide,
    .ct-gallery-item--hero {
        grid-column: span 6;
    }

    .ct-gallery-item--tall {
        grid-column: span 3;
    }
}


/* SMALL TABLET */

@media (max-width: 820px) {
    .ct-gallery-container {
        width: min(100% - 34px, 680px);
    }

    .ct-gallery-hero {
        min-height: auto;
        padding: 122px 0 82px;
    }

    .ct-gallery-hero__grid,
    .ct-gallery-intro__grid,
    .ct-gallery-closing__grid {
        grid-template-columns: 1fr;
    }

    .ct-gallery-hero__grid {
        gap: 52px;
    }

    .ct-gallery-hero__visual {
        min-height: 500px;
    }

    .ct-gallery-intro,
    .ct-gallery-collection,
    .ct-gallery-closing {
        padding: 88px 0;
    }

    .ct-gallery-intro__grid,
    .ct-gallery-closing__grid {
        gap: 38px;
    }

    .ct-gallery-collection__head {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .ct-gallery-grid {
        gap: 12px;
    }

    .ct-gallery-lightbox {
        padding: 18px;
    }

    .ct-gallery-lightbox__panel {
        height: calc(100vh - 36px);
        grid-template-columns: 52px minmax(0, 1fr) 52px;
    }

    .ct-gallery-lightbox__nav {
        width: 42px;
        height: 42px;
    }
}


/* MOBILE */

@media (max-width: 560px) {
    .ct-gallery-container {
        width: calc(100% - 28px);
    }

    .ct-gallery-hero h1,
    .ct-gallery-intro h2,
    .ct-gallery-collection__head h2,
    .ct-gallery-closing h2 {
        font-size: clamp(44px, 13vw, 66px);
    }

    .ct-gallery-hero__visual {
        min-height: 390px;
    }

    .ct-gallery-grid {
        display: block;
    }

    .ct-gallery-item {
        position: relative;
        width: 100%;
        margin-bottom: 12px;
    }

    .ct-gallery-item--standard,
    .ct-gallery-item--wide {
        aspect-ratio: 4 / 3;
    }

    .ct-gallery-item--tall {
        aspect-ratio: 3 / 4;
    }

    .ct-gallery-item--hero {
        aspect-ratio: 4 / 5;
    }

    .ct-gallery-quote {
        min-height: 240px;
        height: auto;
        margin: 40px 0;
        padding: 34px 24px;
    }

    .ct-gallery-quote span,
    .ct-gallery-quote strong {
        font-size: clamp(36px, 12vw, 57px);
    }

    .ct-gallery-lightbox {
        padding: 10px;
    }

    .ct-gallery-lightbox__panel {
        height: calc(100vh - 20px);
        display: block;
        padding: 58px 0 0;
    }

    .ct-gallery-lightbox__figure {
        height: calc(100% - 58px);
    }

    .ct-gallery-lightbox__close {
        top: 4px;
        right: 4px;
    }

    .ct-gallery-lightbox__nav {
        position: absolute;
        z-index: 3;
        top: 50%;
        width: 44px;
        height: 44px;
        transform: translateY(-50%);
        background: rgba(15, 13, 21, 0.6);
    }

    .ct-gallery-lightbox__nav--prev {
        left: 4px;
    }

    .ct-gallery-lightbox__nav--next {
        right: 4px;
    }

    .ct-gallery-lightbox__meta {
        align-items: flex-start;
        padding: 14px 4px 0;
    }
}


/* REDUCED MOTION */

@media (prefers-reduced-motion: reduce) {
    .ct-gallery-page *,
    .ct-gallery-page *::before,
    .ct-gallery-page *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .ct-gallery-js [data-gallery-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* =========================================================
CHANIARTOON — PREMIUM CONTACT PAGE
Place the complete block at the END of custom.css
========================================================= */


/* ---------------------------------------------------------
   FULL-WIDTH SP PAGE BUILDER ROW
--------------------------------------------------------- */

.ct-contact-page-row {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;
}

.ct-contact-page-row > .sppb-row-container,
.ct-contact-page-row .sppb-row-container,
.ct-contact-page-row .sppb-container-inner,
.ct-contact-page-row .sppb-row,
.ct-contact-page-row [class*="sppb-col"],
.ct-contact-page-row .sppb-column,
.ct-contact-page-row .sppb-column-addons,
.ct-contact-page-row .sppb-addon-wrapper {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* ---------------------------------------------------------
   BASE
--------------------------------------------------------- */

.ct-contact-page,
.ct-contact-after,
.ct-contact-form-addon {
    --ct-contact-ink: #191722;
    --ct-contact-purple: #403b6e;
    --ct-contact-purple-dark: #292548;
    --ct-contact-violet: #b273e0;
    --ct-contact-peach: #ffbf82;
    --ct-contact-lime: #cfe977;
    --ct-contact-paper: #fcfaf6;
    --ct-contact-cream: #f2ede5;
    --ct-contact-muted: #746f7d;
    --ct-contact-line: rgba(25, 23, 34, 0.13);
    --ct-contact-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ct-contact-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    font-family: var(--ct-contact-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-contact-page,
.ct-contact-after {
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin-right: -50vw;
    margin-left: -50vw;
    overflow: hidden;
    color: var(--ct-contact-ink);
    background: var(--ct-contact-paper);
}

.ct-contact-page *,
.ct-contact-page *::before,
.ct-contact-page *::after,
.ct-contact-after *,
.ct-contact-after *::before,
.ct-contact-after *::after,
.ct-contact-form-addon *,
.ct-contact-form-addon *::before,
.ct-contact-form-addon *::after {
    box-sizing: border-box;
}

.ct-contact-page h1,
.ct-contact-page h2,
.ct-contact-page p,
.ct-contact-after h2,
.ct-contact-after p {
    margin-top: 0;
}

.ct-contact-page a,
.ct-contact-after a {
    color: inherit;
    text-decoration: none;
}

.ct-contact-page em,
.ct-contact-after em {
    color: var(--ct-contact-violet);
    font-style: normal;
}

.ct-contact-container {
    position: relative;
    width: min(1240px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-contact-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ct-contact-purple);
    font-size: 11px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-contact-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-contact-eyebrow--light {
    color: var(--ct-contact-peach);
}

.ct-contact-button {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 16px 23px;
    color: var(--ct-contact-ink) !important;
    background: var(--ct-contact-lime);
    border: 1px solid var(--ct-contact-lime);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    transition:
        transform 0.24s ease,
        background-color 0.24s ease;
}

.ct-contact-button:hover,
.ct-contact-button:focus-visible {
    background: #def293;
    transform: translateY(-3px);
}

.ct-contact-button--dark {
    color: #fff !important;
    background: var(--ct-contact-purple);
    border-color: var(--ct-contact-purple);
}

.ct-contact-button--dark:hover,
.ct-contact-button--dark:focus-visible {
    color: var(--ct-contact-ink) !important;
    background: var(--ct-contact-lime);
    border-color: var(--ct-contact-lime);
}

.ct-contact-text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ct-contact-purple) !important;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.ct-contact-text-link--light {
    color: rgba(255,255,255,0.78) !important;
}


/* ---------------------------------------------------------
   REVEAL
--------------------------------------------------------- */

.ct-contact-js [data-contact-reveal] {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition:
        opacity 0.72s ease,
        transform 0.84s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ct-contact-delay, 0ms);
}

.ct-contact-js [data-contact-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* ---------------------------------------------------------
   HERO
--------------------------------------------------------- */

.ct-contact-hero {
    position: relative;
    min-height: 790px;
    display: flex;
    align-items: center;
    padding: 138px 0 94px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 14% 19%, rgba(178,115,224,0.22), transparent 28%),
        radial-gradient(circle at 91% 84%, rgba(207,233,119,0.09), transparent 26%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-contact-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.05;
    background-image:
        linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px);
    background-size: 74px 74px;
}

.ct-contact-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(500px, 1.1fr);
    align-items: center;
    gap: clamp(52px, 7vw, 100px);
}

.ct-contact-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ct-contact-display);
    font-size: clamp(67px, 7.5vw, 118px);
    font-weight: 760;
    line-height: 0.88;
    letter-spacing: -0.06em;
}

.ct-contact-hero h1 em {
    display: block;
    color: var(--ct-contact-lime);
}

.ct-contact-hero__content > p {
    max-width: 580px;
    margin-bottom: 34px;
    color: rgba(255,255,255,0.7);
    font-size: 17px;
    line-height: 1.75;
}

.ct-contact-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px 25px;
}

.ct-contact-hero__visual {
    --ct-contact-parallax-y: 0px;

    position: relative;
    min-height: 520px;
    overflow: hidden;
    color: var(--ct-contact-ink);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.19), rgba(255,255,255,0.03)),
        var(--ct-contact-peach);
    border: 1px solid rgba(255,255,255,0.13);
    box-shadow: 0 32px 70px rgba(5,4,10,0.34);
    transform: translate3d(0, var(--ct-contact-parallax-y), 0);
}

.ct-contact-hero__visual::before {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(25,23,34,0.17);
}

.ct-contact-hero__visual::after {
    content: "";
    position: absolute;
    top: -120px;
    right: -90px;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(64,59,110,0.22);
    border-radius: 50%;
}

.ct-contact-hero__visual-label {
    position: absolute;
    z-index: 3;
    top: 35px;
    left: 37px;
    color: rgba(25,23,34,0.66);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.15em;
}

.ct-contact-hero__visual-copy {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: clamp(35px, 6vw, 78px);
    transform: translateY(-52%);
}

.ct-contact-hero__visual-copy span,
.ct-contact-hero__visual-copy strong {
    display: block;
    font-family: var(--ct-contact-display);
    font-size: clamp(74px, 8vw, 126px);
    font-weight: 790;
    line-height: 0.8;
    letter-spacing: -0.07em;
}

.ct-contact-hero__visual-copy span {
    color: var(--ct-contact-purple-dark);
}

.ct-contact-hero__visual-copy strong {
    color: var(--ct-contact-purple);
}

.ct-contact-hero__orbit {
    position: absolute;
    z-index: 3;
    right: 34px;
    bottom: 32px;
    display: grid;
    gap: 7px;
    color: rgba(25,23,34,0.7);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-align: right;
}

.ct-contact-hero__visual-mark {
    position: absolute;
    right: -25px;
    bottom: -69px;
    color: rgba(64,59,110,0.08);
    font-family: var(--ct-contact-display);
    font-size: 330px;
    font-weight: 900;
    line-height: 1;
}


/* ---------------------------------------------------------
   CONTACT CHANNELS
--------------------------------------------------------- */

.ct-contact-channels {
    padding: 120px 0;
    background: var(--ct-contact-cream);
}

.ct-contact-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(330px, 0.72fr);
    align-items: end;
    gap: 75px;
    margin-bottom: 60px;
}

.ct-contact-section-head h2,
.ct-contact-form-intro h2,
.ct-contact-location h2,
.ct-contact-social h2 {
    margin: 18px 0 0;
    color: var(--ct-contact-ink);
    font-family: var(--ct-contact-display);
    font-size: clamp(54px, 6.4vw, 96px);
    font-weight: 760;
    line-height: 0.92;
    letter-spacing: -0.05em;
}

.ct-contact-section-head > p {
    margin: 0;
    color: var(--ct-contact-muted);
    font-size: 16px;
    line-height: 1.78;
}

.ct-contact-channel-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ct-contact-channel {
    position: relative;
    min-height: 340px;
    display: flex;
    flex-direction: column;
    padding: 29px;
    overflow: hidden;
    color: var(--ct-contact-ink);
    background: var(--ct-contact-paper);
    border: 1px solid rgba(25,23,34,0.11);
    transition:
        color 0.28s ease,
        background-color 0.28s ease,
        transform 0.28s ease,
        box-shadow 0.28s ease;
}

.ct-contact-channel::before {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -110px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(64,59,110,0.1);
    border-radius: 50%;
}

.ct-contact-channel:hover,
.ct-contact-channel:focus-visible {
    color: #fff;
    background: var(--ct-contact-purple);
    transform: translateY(-7px);
    box-shadow: 0 28px 54px rgba(41,37,72,0.13);
}

.ct-contact-channel__number,
.ct-contact-channel__label {
    position: relative;
    z-index: 2;
    color: var(--ct-contact-violet);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.ct-contact-channel__label {
    margin-top: 35px;
}

.ct-contact-channel strong {
    position: relative;
    z-index: 2;
    display: block;
    margin: 18px 0;
    overflow-wrap: anywhere;
    font-family: var(--ct-contact-display);
    font-size: clamp(27px, 2.7vw, 39px);
    font-weight: 740;
    line-height: 1;
    letter-spacing: -0.035em;
}

.ct-contact-channel p {
    position: relative;
    z-index: 2;
    max-width: 310px;
    margin-bottom: 0;
    color: var(--ct-contact-muted);
    font-size: 13px;
    line-height: 1.65;
    transition: color 0.28s ease;
}

.ct-contact-channel:hover p,
.ct-contact-channel:focus-visible p {
    color: rgba(255,255,255,0.65);
}

.ct-contact-channel__arrow {
    position: relative;
    z-index: 2;
    margin-top: auto;
    align-self: flex-end;
    font-size: 25px;
}


/* ---------------------------------------------------------
   FORM INTRO
--------------------------------------------------------- */

.ct-contact-form-intro {
    padding: 120px 0 72px;
    color: #fff;
    background:
        radial-gradient(circle at 14% 85%, rgba(178,115,224,0.17), transparent 27%),
        linear-gradient(140deg, #17151f, #2c2848);
}

.ct-contact-form-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
    align-items: start;
    gap: 90px;
}

.ct-contact-form-intro h2 {
    color: #fff;
}

.ct-contact-form-intro h2 em {
    color: var(--ct-contact-lime);
}

.ct-contact-form-intro__lead {
    max-width: 570px;
    margin: 27px 0 0;
    color: rgba(255,255,255,0.64);
    font-size: 16px;
    line-height: 1.75;
}

.ct-contact-topic-list {
    border-top: 1px solid rgba(255,255,255,0.15);
}

.ct-contact-topic {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 18px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}

.ct-contact-topic span {
    color: var(--ct-contact-peach);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.ct-contact-topic strong {
    color: rgba(255,255,255,0.83);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.45;
}


/* ---------------------------------------------------------
   FORM ANCHOR
--------------------------------------------------------- */

.ct-contact-form-anchor {
    position: relative;
    width: 100%;
    height: 0;
    scroll-margin-top: 110px;
    visibility: hidden;
    pointer-events: none;
}


/* ---------------------------------------------------------
   FORM BUILDER ADDON
   Advanced → CSS Class: ct-contact-form-addon
--------------------------------------------------------- */

.ct-contact-form-addon {
    position: relative;
    width: 100%;
    padding: 0 0 120px !important;
    color: #fff;
    background:
        radial-gradient(circle at 86% 8%, rgba(207,233,119,0.07), transparent 24%),
        linear-gradient(140deg, #17151f, #2c2848);
}

.ct-contact-form-addon > .sppb-addon,
.ct-contact-form-addon.sppb-addon-form-builder,
.ct-contact-form-addon .sppb-addon-form-builder {
    width: min(1100px, calc(100% - 72px));
    margin: 0 auto !important;
    padding: clamp(34px, 5.5vw, 72px) !important;
    color: var(--ct-contact-ink);
    background: var(--ct-contact-paper);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 3px;
    box-shadow: 0 32px 80px rgba(5,4,10,0.33);
}

.ct-contact-form-addon .sppb-addon-title {
    margin: 0 0 12px !important;
    color: var(--ct-contact-ink) !important;
    font-family: var(--ct-contact-display) !important;
    font-size: clamp(37px, 4.4vw, 61px) !important;
    font-weight: 760 !important;
    line-height: 0.96 !important;
    letter-spacing: -0.045em;
}

.ct-contact-form-addon .sppb-addon-content > p,
.ct-contact-form-addon .sppb-form-builder-content {
    color: var(--ct-contact-muted);
}

.ct-contact-form-addon form {
    margin-top: 38px;
}

.ct-contact-form-addon .sppb-form-group,
.ct-contact-form-addon .form-group {
    margin-bottom: 24px !important;
}

.ct-contact-form-addon label {
    display: block;
    margin-bottom: 9px;
    color: var(--ct-contact-ink);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.ct-contact-form-addon input[type="text"],
.ct-contact-form-addon input[type="email"],
.ct-contact-form-addon input[type="tel"],
.ct-contact-form-addon input[type="number"],
.ct-contact-form-addon select,
.ct-contact-form-addon textarea,
.ct-contact-form-addon .sppb-form-control,
.ct-contact-form-addon .form-control {
    width: 100%;
    min-height: 58px;
    padding: 15px 16px !important;
    color: var(--ct-contact-ink) !important;
    background: #fff !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(25,23,34,0.22) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: var(--ct-contact-sans);
    font-size: 15px;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease;
}

.ct-contact-form-addon textarea,
.ct-contact-form-addon textarea.sppb-form-control {
    min-height: 170px;
    resize: vertical;
}

.ct-contact-form-addon input:focus,
.ct-contact-form-addon select:focus,
.ct-contact-form-addon textarea:focus,
.ct-contact-form-addon .sppb-form-control:focus,
.ct-contact-form-addon .form-control:focus {
    outline: none;
    background: #f9f6fd !important;
    border-bottom-color: var(--ct-contact-violet) !important;
}

.ct-contact-form-addon input[type="checkbox"],
.ct-contact-form-addon input[type="radio"] {
    accent-color: var(--ct-contact-purple);
}

.ct-contact-form-addon .sppb-form-check,
.ct-contact-form-addon .form-check,
.ct-contact-form-addon .sppb-form-builder-field-checkbox,
.ct-contact-form-addon .sppb-form-builder-field-radio {
    color: var(--ct-contact-muted);
    font-size: 13px;
    line-height: 1.55;
}

.ct-contact-form-addon .sppb-form-check label,
.ct-contact-form-addon .form-check label {
    display: inline;
    margin: 0;
    color: var(--ct-contact-muted);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.ct-contact-form-addon button[type="submit"],
.ct-contact-form-addon .sppb-btn,
.ct-contact-form-addon .sppb-btn-primary {
    min-height: 59px;
    padding: 16px 28px !important;
    color: var(--ct-contact-ink) !important;
    background: var(--ct-contact-lime) !important;
    border: 1px solid var(--ct-contact-lime) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-family: var(--ct-contact-sans);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    transition:
        transform 0.24s ease,
        background-color 0.24s ease;
}

.ct-contact-form-addon button[type="submit"]:hover,
.ct-contact-form-addon .sppb-btn:hover,
.ct-contact-form-addon .sppb-btn-primary:hover {
    color: var(--ct-contact-ink) !important;
    background: #def293 !important;
    transform: translateY(-3px);
}

.ct-contact-form-addon .sppb-alert,
.ct-contact-form-addon .alert {
    border-radius: 2px;
}


/* ---------------------------------------------------------
   LOCATION
--------------------------------------------------------- */

.ct-contact-location {
    padding: 120px 0;
    background: var(--ct-contact-cream);
}

.ct-contact-location__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(390px, 0.88fr);
    align-items: stretch;
    gap: 75px;
}

.ct-contact-map {
    position: relative;
    min-height: 610px;
    display: block;
    overflow: hidden;
    background:
        linear-gradient(rgba(64,59,110,0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(64,59,110,0.055) 1px, transparent 1px),
        var(--ct-contact-paper);
    background-size: 50px 50px;
    border: 1px solid rgba(25,23,34,0.12);
}

.ct-contact-map::before,
.ct-contact-map::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(64,59,110,0.16);
    border-radius: 50%;
}

.ct-contact-map::before {
    width: 330px;
    height: 330px;
    top: -140px;
    right: -85px;
}

.ct-contact-map::after {
    width: 230px;
    height: 230px;
    bottom: -100px;
    left: -60px;
}

.ct-contact-map__street {
    position: absolute;
    display: block;
    height: 1px;
    background: rgba(64,59,110,0.22);
    transform-origin: left center;
}

.ct-contact-map__street--one {
    top: 26%;
    left: -4%;
    width: 115%;
    transform: rotate(15deg);
}

.ct-contact-map__street--two {
    top: 62%;
    left: -3%;
    width: 110%;
    transform: rotate(-12deg);
}

.ct-contact-map__street--three {
    top: 10%;
    left: 37%;
    width: 105%;
    transform: rotate(76deg);
}

.ct-contact-map__street--four {
    top: 5%;
    left: 70%;
    width: 95%;
    transform: rotate(103deg);
}

.ct-contact-map__pin {
    position: absolute;
    z-index: 4;
    top: 49%;
    left: 51%;
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    background: var(--ct-contact-purple);
    border-radius: 50% 50% 50% 0;
    box-shadow: 0 22px 45px rgba(41,37,72,0.24);
    transform: translate(-50%, -50%) rotate(-45deg);
    transition: transform 0.3s ease;
}

.ct-contact-map:hover .ct-contact-map__pin,
.ct-contact-map:focus-visible .ct-contact-map__pin {
    transform: translate(-50%, -57%) rotate(-45deg);
}

.ct-contact-map__pin span {
    width: 23px;
    height: 23px;
    background: var(--ct-contact-lime);
    border-radius: 50%;
}

.ct-contact-map__label {
    position: absolute;
    z-index: 5;
    top: calc(49% + 58px);
    left: 51%;
    color: var(--ct-contact-purple-dark);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.13em;
    transform: translateX(-50%);
}

.ct-contact-map__coordinates {
    position: absolute;
    right: 25px;
    bottom: 22px;
    color: rgba(25,23,34,0.5);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.15em;
}

.ct-contact-location__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ct-contact-location h2 {
    margin-bottom: 42px;
}

.ct-contact-location__details {
    display: grid;
    border-top: 1px solid var(--ct-contact-line);
}

.ct-contact-location__details > div {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 25px;
    padding: 21px 0;
    border-bottom: 1px solid var(--ct-contact-line);
}

.ct-contact-location__details span {
    color: var(--ct-contact-violet);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.ct-contact-location__details strong,
.ct-contact-location__details a {
    color: var(--ct-contact-purple-dark);
    font-size: 15px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.ct-contact-location .ct-contact-button {
    align-self: flex-start;
    margin-top: 36px;
}


/* ---------------------------------------------------------
   SOCIAL
--------------------------------------------------------- */

.ct-contact-social {
    padding: 120px 0 48px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 13%, rgba(207,233,119,0.09), transparent 26%),
        linear-gradient(140deg, #17151f, #2c2848);
}

.ct-contact-social h2 {
    color: #fff;
}

.ct-contact-social h2 em {
    color: var(--ct-contact-lime);
}

.ct-contact-social__links {
    margin-top: 70px;
    border-top: 1px solid rgba(255,255,255,0.17);
}

.ct-contact-social__links a {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) minmax(160px, 0.35fr) 40px;
    align-items: center;
    gap: 20px;
    padding: 28px 0;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.17);
    transition:
        color 0.25s ease,
        padding-left 0.25s ease;
}

.ct-contact-social__links a:hover,
.ct-contact-social__links a:focus-visible {
    color: var(--ct-contact-lime);
    padding-left: 13px;
}

.ct-contact-social__links span {
    color: var(--ct-contact-peach);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.ct-contact-social__links strong {
    font-family: var(--ct-contact-display);
    font-size: clamp(35px, 5vw, 70px);
    font-weight: 740;
    line-height: 1;
    letter-spacing: -0.045em;
}

.ct-contact-social__links em {
    color: rgba(255,255,255,0.5);
    font-family: var(--ct-contact-sans);
    font-size: 12px;
    font-style: normal;
    letter-spacing: 0.07em;
}

.ct-contact-social__links b {
    font-size: 24px;
    font-weight: 400;
}

.ct-contact-social__footer {
    display: flex;
    justify-content: space-between;
    gap: 25px;
    padding-top: 42px;
    color: rgba(255,255,255,0.43);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.ct-contact-social__footer a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: rgba(255,255,255,0.7);
}


/* ---------------------------------------------------------
   TABLET
--------------------------------------------------------- */

@media (max-width: 1100px) {
    .ct-contact-container {
        width: min(100% - 48px, 960px);
    }

    .ct-contact-hero__grid {
        grid-template-columns: minmax(0, 0.85fr) minmax(410px, 1.15fr);
        gap: 48px;
    }

    .ct-contact-channel strong {
        font-size: 28px;
    }

    .ct-contact-form-intro__grid {
        gap: 55px;
    }
}


/* ---------------------------------------------------------
   SMALL TABLET
--------------------------------------------------------- */

@media (max-width: 820px) {
    .ct-contact-container {
        width: min(100% - 34px, 680px);
    }

    .ct-contact-hero {
        min-height: auto;
        padding: 122px 0 82px;
    }

    .ct-contact-hero__grid,
    .ct-contact-section-head,
    .ct-contact-form-intro__grid,
    .ct-contact-location__grid {
        grid-template-columns: 1fr;
    }

    .ct-contact-hero__grid {
        gap: 52px;
    }

    .ct-contact-hero__visual {
        min-height: 490px;
    }

    .ct-contact-channels,
    .ct-contact-form-intro,
    .ct-contact-location,
    .ct-contact-social {
        padding-top: 88px;
        padding-bottom: 88px;
    }

    .ct-contact-section-head,
    .ct-contact-form-intro__grid,
    .ct-contact-location__grid {
        gap: 40px;
    }

    .ct-contact-channel-grid {
        grid-template-columns: 1fr;
    }

    .ct-contact-channel {
        min-height: 290px;
    }

    .ct-contact-form-addon > .sppb-addon,
    .ct-contact-form-addon.sppb-addon-form-builder,
    .ct-contact-form-addon .sppb-addon-form-builder {
        width: calc(100% - 34px);
    }

    .ct-contact-map {
        min-height: 500px;
    }
}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 560px) {
    .ct-contact-container {
        width: calc(100% - 28px);
    }

    .ct-contact-hero h1,
    .ct-contact-section-head h2,
    .ct-contact-form-intro h2,
    .ct-contact-location h2,
    .ct-contact-social h2 {
        font-size: clamp(44px, 13vw, 66px);
    }

    .ct-contact-hero__visual {
        min-height: 390px;
    }

    .ct-contact-hero__visual-copy span,
    .ct-contact-hero__visual-copy strong {
        font-size: clamp(66px, 20vw, 92px);
    }

    .ct-contact-channel {
        padding: 25px 22px;
    }

    .ct-contact-form-addon {
        padding-bottom: 86px !important;
    }

    .ct-contact-form-addon > .sppb-addon,
    .ct-contact-form-addon.sppb-addon-form-builder,
    .ct-contact-form-addon .sppb-addon-form-builder {
        width: calc(100% - 28px);
        padding: 31px 22px !important;
    }

    .ct-contact-map {
        min-height: 420px;
    }

    .ct-contact-location__details > div {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .ct-contact-social__links a {
        grid-template-columns: 38px minmax(0, 1fr) 28px;
        gap: 12px;
    }

    .ct-contact-social__links strong {
        font-size: 35px;
    }

    .ct-contact-social__links em {
        display: none;
    }

    .ct-contact-social__footer {
        flex-direction: column;
    }
}


/* ---------------------------------------------------------
   REDUCED MOTION
--------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .ct-contact-page *,
    .ct-contact-page *::before,
    .ct-contact-page *::after,
    .ct-contact-after *,
    .ct-contact-after *::before,
    .ct-contact-after *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .ct-contact-js [data-contact-reveal] {
        opacity: 1;
        transform: none;
    }
}


  /* =====================================================
           CHANIARTOON GLOBAL FOOTER — SELF-CONTAINED STYLES
        ====================================================== */
/* BASE */

.ct-global-footer {
    --ctf-bg: #0e0b0a;
    --ctf-bg-soft: #16110f;
    --ctf-white: #f8f5ef;
    --ctf-muted: rgba(248, 245, 239, 0.55);
    --ctf-line: rgba(248, 245, 239, 0.13);
    --ctf-orange: #f0a35f;
    --ctf-lime: #cfe977;
    --ctf-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ctf-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin-right: -50vw;
    margin-left: -50vw;
    overflow: hidden;

    color: var(--ctf-white);
    background:
        radial-gradient(circle at 86% 7%, rgba(240, 163, 95, 0.045), transparent 22%),
        linear-gradient(145deg, var(--ctf-bg) 0%, #120e0c 100%);

    font-family: var(--ctf-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-global-footer *,
.ct-global-footer *::before,
.ct-global-footer *::after {
    box-sizing: border-box;
}

.ct-global-footer h2,
.ct-global-footer h3,
.ct-global-footer p {
    margin-top: 0;
}

.ct-global-footer a {
    color: inherit;
    text-decoration: none;
}

.ct-global-footer button,
.ct-global-footer input {
    font: inherit;
}

.ctf-inner {
    position: relative;
    z-index: 3;
    width: min(1500px, calc(100% - 110px));
    margin-inline: auto;
}

.ctf-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ctf-orange);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.ctf-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}


/* NEWSLETTER */

.ctf-newsletter {
    position: relative;
    padding: 92px 0 88px;
    overflow: hidden;
    border-bottom: 1px solid var(--ctf-line);
    background:
        radial-gradient(circle at 14% 15%, rgba(207, 233, 119, 0.045), transparent 26%);
}

.ctf-newsletter::after {
    content: "CONNECT";
    position: absolute;
    right: -25px;
    bottom: -36px;
    color: rgba(248, 245, 239, 0.022);
    font-family: var(--ctf-display);
    font-size: clamp(100px, 15vw, 230px);
    font-weight: 900;
    line-height: 0.8;
    letter-spacing: -0.08em;
    pointer-events: none;
}

.ctf-newsletter-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(520px, 1.1fr);
    align-items: end;
    gap: clamp(65px, 8vw, 135px);
}

.ctf-newsletter h2 {
    margin: 21px 0 0;
    color: var(--ctf-white);
    font-family: var(--ctf-display);
    font-size: clamp(58px, 6.4vw, 96px);
    font-weight: 820;
    line-height: 0.88;
    letter-spacing: -0.065em;
}

.ctf-newsletter h2 em {
    color: var(--ctf-lime);
    font-style: normal;
}

.ctf-newsletter-copy > p {
    max-width: 650px;
    margin-bottom: 28px;
    color: var(--ctf-muted);
    font-size: 15px;
    line-height: 1.75;
}

.ctf-newsletter-form {
    position: relative;
}

.ctf-newsletter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 15px;
}

.ctf-field label {
    display: block;
    margin-bottom: 9px;
    color: rgba(248, 245, 239, 0.65);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ctf-field input {
    width: 100%;
    min-height: 61px;
    padding: 14px 3px 12px;
    color: var(--ctf-white);
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(248, 245, 239, 0.3);
    border-radius: 0;
    outline: none;
    box-shadow: none;
    font-size: 17px;
}

.ctf-field input::placeholder {
    color: rgba(248, 245, 239, 0.34);
}

.ctf-field input:focus {
    border-bottom-color: var(--ctf-lime);
}

.ctf-newsletter-submit {
    min-height: 61px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 16px 25px;
    color: #15110f;
    background: var(--ctf-lime);
    border: 1px solid var(--ctf-lime);
    border-radius: 999px;
    cursor: pointer;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition:
        transform 0.24s ease,
        background-color 0.24s ease,
        opacity 0.24s ease;
}

.ctf-newsletter-submit:hover,
.ctf-newsletter-submit:focus-visible {
    background: #def293;
    transform: translateY(-3px);
}

.ctf-newsletter-submit:disabled {
    cursor: wait;
    opacity: 0.65;
    transform: none;
}

.ctf-newsletter-note {
    margin: 14px 0 0;
    color: rgba(248, 245, 239, 0.38);
    font-size: 10px;
    line-height: 1.55;
}

.ctf-newsletter-message {
    min-height: 20px;
    margin: 10px 0 0;
    color: var(--ctf-orange);
    font-size: 12px;
    line-height: 1.5;
}

.ctf-newsletter-message.is-success {
    color: var(--ctf-lime);
}

.ctf-newsletter-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.ctf-newsletter-success {
    display: none;
    padding: 27px 0 0;
    border-top: 1px solid var(--ctf-line);
}

.ctf-newsletter-success.is-visible {
    display: block;
}

.ctf-newsletter-success > span {
    color: var(--ctf-lime);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ctf-newsletter-success h3 {
    margin: 12px 0 9px;
    color: var(--ctf-white);
    font-family: var(--ctf-display);
    font-size: clamp(31px, 4vw, 48px);
    font-weight: 800;
    line-height: 0.96;
    letter-spacing: -0.045em;
}

.ctf-newsletter-success p {
    max-width: 600px;
    margin-bottom: 0;
    color: var(--ctf-muted);
    font-size: 13px;
    line-height: 1.65;
}


/* BRAND + SOCIALS — SAME LOGIC AS HOMEPAGE */

.ctf-brand-social {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(420px, 0.72fr);
    align-items: start;
    gap: clamp(80px, 10vw, 165px);
    padding: 108px 0 96px;
}

.ctf-brand {
    min-width: 0;
}

.ctf-brand-kicker {
    margin-bottom: 20px;
    color: var(--ctf-orange);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ctf-brand h2 {
    max-width: 100%;
    margin-bottom: 28px;
    color: var(--ctf-white);
    font-family: var(--ctf-display);
    font-size: clamp(57px, 6.2vw, 103px);
    font-weight: 900;
    line-height: 0.82;
    letter-spacing: -0.075em;
    white-space: nowrap;
}

.ctf-brand-intro {
    max-width: 700px;
    margin-bottom: 0;
    color: var(--ctf-muted);
    font-size: 15px;
    line-height: 1.75;
}


/* 2 × 2 SOCIAL GRID */

.ctf-social-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--ctf-line);
    border-left: 1px solid var(--ctf-line);
}

.ctf-social-card {
    position: relative;
    min-height: 158px;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    align-items: center;
    gap: 12px 17px;
    padding: 28px;
    color: var(--ctf-white);
    border-right: 1px solid var(--ctf-line);
    border-bottom: 1px solid var(--ctf-line);
    transition:
        color 0.24s ease,
        background-color 0.24s ease;
}

.ctf-social-card:hover,
.ctf-social-card:focus-visible {
    color: var(--ctf-lime);
    background: rgba(248, 245, 239, 0.035);
}

.ctf-social-card__icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    color: currentColor;
}

.ctf-social-card__icon svg {
    width: 42px;
    height: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ctf-social-card__icon svg .ctf-fill {
    fill: currentColor;
    stroke: none;
}

.ctf-social-card__name {
    align-self: center;
    font-family: var(--ctf-display);
    font-size: clamp(17px, 1.5vw, 23px);
    font-weight: 780;
    line-height: 1;
    letter-spacing: -0.025em;
}

.ctf-social-card__arrow {
    grid-column: 1 / -1;
    align-self: end;
    font-size: 18px;
}


/* NAVIGATION / GHOST WORDMARK */

.ctf-navigation-wrap {
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--ctf-line);
    border-bottom: 1px solid var(--ctf-line);
}

.ctf-wordmark {
    position: absolute;
    z-index: 1;
    top: 4px;
    left: 50%;
    color: rgba(248, 245, 239, 0.018);
    font-family: var(--ctf-display);
    font-size: clamp(145px, 20vw, 335px);
    font-weight: 900;
    line-height: 0.78;
    letter-spacing: -0.085em;
    white-space: nowrap;
    pointer-events: none;
    transform: translateX(-50%);
    user-select: none;
}

.ctf-nav {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(55px, 8vw, 115px);
    padding: 98px 0 82px;
}

.ctf-nav-column-title {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 20px;
    color: var(--ctf-white);
    background: transparent;
    border: 0;
    cursor: default;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.15em;
    text-align: left;
    text-transform: uppercase;
}

.ctf-nav-plus {
    display: none;
    width: 15px;
    height: 15px;
    position: relative;
}

.ctf-nav-plus::before,
.ctf-nav-plus::after {
    content: "";
    position: absolute;
    top: 7px;
    left: 1px;
    width: 13px;
    height: 1px;
    background: currentColor;
}

.ctf-nav-plus::after {
    transform: rotate(90deg);
    transition: transform 0.22s ease;
}

.ctf-nav-column-title[aria-expanded="true"] .ctf-nav-plus::after {
    transform: rotate(0deg);
}

.ctf-nav-column-body {
    display: grid;
    gap: 12px;
}

.ctf-nav-column-body a {
    width: fit-content;
    color: rgba(248, 245, 239, 0.53);
    font-size: 13px;
    line-height: 1.45;
    transition:
        color 0.2s ease,
        transform 0.2s ease;
}

.ctf-nav-column-body a:hover,
.ctf-nav-column-body a:focus-visible {
    color: var(--ctf-lime);
    transform: translateX(5px);
}


/* BOTTOM — COPYRIGHT ONLY */

.ctf-bottom {
    min-height: 76px;
    display: flex;
    align-items: center;
    padding: 25px 0 31px;
    color: rgba(248, 245, 239, 0.4);
    font-size: 9px;
    font-weight: 750;
}

.ctf-bottom p {
    margin-bottom: 0;
}


/* RESPONSIVE */

@media (max-width: 1180px) {
    .ctf-inner {
        width: min(100% - 60px, 1050px);
    }

    .ctf-newsletter-grid {
        grid-template-columns: minmax(0, 0.8fr) minmax(430px, 1.2fr);
        gap: 65px;
    }

    .ctf-brand-social {
        grid-template-columns: minmax(0, 1fr) minmax(390px, 0.78fr);
        gap: 70px;
    }

    .ctf-brand h2 {
        font-size: clamp(55px, 7vw, 82px);
    }

    .ctf-nav {
        gap: 55px;
    }
}

@media (max-width: 900px) {
    .ctf-newsletter-grid,
    .ctf-brand-social {
        grid-template-columns: 1fr;
    }

    .ctf-brand-social {
        gap: 55px;
    }

    .ctf-brand h2 {
        font-size: clamp(60px, 12vw, 96px);
    }

    .ctf-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 55px 70px;
    }
}

@media (max-width: 760px) {
    .ctf-inner {
        width: calc(100% - 32px);
    }

    .ctf-newsletter {
        padding: 78px 0 74px;
    }

    .ctf-newsletter-row {
        grid-template-columns: 1fr;
    }

    .ctf-newsletter-submit {
        width: 100%;
    }

    .ctf-brand-social {
        padding: 80px 0 70px;
    }

    .ctf-brand h2 {
        font-size: clamp(47px, 14vw, 70px);
        white-space: normal;
    }

    .ctf-social-card {
        min-height: 140px;
        grid-template-columns: 45px minmax(0, 1fr);
        padding: 22px;
    }

    .ctf-social-card__icon {
        width: 42px;
        height: 42px;
    }

    .ctf-social-card__icon svg {
        width: 35px;
        height: 35px;
    }

    .ctf-navigation-wrap {
        border-bottom: 1px solid var(--ctf-line);
    }

    .ctf-wordmark {
        top: 34px;
        font-size: clamp(104px, 32vw, 180px);
    }

    .ctf-nav {
        display: block;
        padding: 60px 0 50px;
    }

    .ctf-nav-column {
        border-bottom: 1px solid var(--ctf-line);
    }

    .ctf-nav-column-title {
        min-height: 62px;
        padding: 0;
        cursor: pointer;
    }

    .ctf-nav-plus {
        display: block;
    }

    .ctf-nav-column-body {
        display: none;
        padding: 0 0 25px;
    }

    .ctf-nav-column.is-open .ctf-nav-column-body {
        display: grid;
    }
}

@media (max-width: 480px) {
    .ctf-newsletter h2 {
        font-size: clamp(43px, 13vw, 61px);
    }

    .ctf-social-grid {
        grid-template-columns: 1fr;
    }

    .ctf-social-card {
        min-height: 105px;
        grid-template-columns: 48px minmax(0, 1fr) 25px;
        grid-template-rows: 1fr;
    }

    .ctf-social-card__arrow {
        grid-column: auto;
        align-self: center;
    }

    .ctf-bottom {
        font-size: 8px;
        line-height: 1.55;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-global-footer *,
    .ct-global-footer *::before,
    .ct-global-footer *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.ct-footer {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
}

.ct-footer .ct-footer-inner {
    width: min(1500px, calc(100% - 110px)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

/* =========================================================
CHANIARTOON — ANALYTICAL PROGRAMME
Events Booking 5.8.2 / Category Timeline Override
Place at the END of custom.css
========================================================= */


/* FULL BLEED */

.ct-program-page {
    --ctp-ink: #191722;
    --ctp-purple: #403b6e;
    --ctp-purple-dark: #292548;
    --ctp-violet: #b273e0;
    --ctp-peach: #ffbf82;
    --ctp-lime: #cfe977;
    --ctp-paper: #fcfaf6;
    --ctp-cream: #f2ede5;
    --ctp-muted: #746f7d;
    --ctp-line: rgba(25, 23, 34, 0.13);
    --ctp-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ctp-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;

    color: var(--ctp-ink);
    background: var(--ctp-paper);
    font-family: var(--ctp-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-program-page *,
.ct-program-page *::before,
.ct-program-page *::after {
    box-sizing: border-box;
}

.ct-program-page h1,
.ct-program-page h2,
.ct-program-page p {
    margin-top: 0;
}

.ct-program-page a {
    color: inherit;
    text-decoration: none;
}

.ct-program-page em {
    color: var(--ctp-violet);
    font-style: normal;
}

.ct-program-container {
    position: relative;
    width: min(1320px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-program-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ctp-purple);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.ct-program-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-program-eyebrow--light {
    color: var(--ctp-peach);
}


/* REVEAL */

.ct-program-js [data-program-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 0.7s ease,
        transform 0.82s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ctp-reveal-delay, 0ms);
}

.ct-program-js [data-program-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* HERO */

.ct-program-hero {
    position: relative;
    min-height: 760px;
    display: flex;
    align-items: center;
    padding: 138px 0 92px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 13% 18%, rgba(178, 115, 224, 0.2), transparent 28%),
        radial-gradient(circle at 91% 84%, rgba(207, 233, 119, 0.09), transparent 27%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-program-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.05;
    background-image:
        linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px);
    background-size: 74px 74px;
}

.ct-program-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.72fr);
    align-items: center;
    gap: clamp(60px, 8vw, 120px);
}

.ct-program-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ctp-display);
    font-size: clamp(68px, 7.5vw, 120px);
    font-weight: 780;
    line-height: 0.87;
    letter-spacing: -0.065em;
}

.ct-program-hero h1 em {
    display: block;
    color: var(--ctp-lime);
}

.ct-program-hero__content > p {
    max-width: 610px;
    margin-bottom: 35px;
    color: rgba(255,255,255,0.68);
    font-size: 17px;
    line-height: 1.75;
}

.ct-program-hero__dates {
    display: grid;
    gap: 7px;
    padding-left: 19px;
    border-left: 2px solid var(--ctp-peach);
}

.ct-program-hero__dates span {
    color: rgba(255,255,255,0.48);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.ct-program-hero__dates strong {
    color: #fff;
    font-size: 13px;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.ct-program-hero__stats {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,0.17);
    border-left: 1px solid rgba(255,255,255,0.17);
}

.ct-program-hero__stats > div:not(.ct-program-hero__stats-mark) {
    position: relative;
    z-index: 2;
    min-height: 205px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 29px;
    border-right: 1px solid rgba(255,255,255,0.17);
    border-bottom: 1px solid rgba(255,255,255,0.17);
}

.ct-program-hero__stats > div:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 155px;
}

.ct-program-hero__stats span {
    color: var(--ctp-lime);
    font-family: var(--ctp-display);
    font-size: clamp(58px, 6vw, 92px);
    font-weight: 820;
    line-height: 0.82;
    letter-spacing: -0.07em;
}

.ct-program-hero__stats strong {
    color: rgba(255,255,255,0.7);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ct-program-hero__stats-mark {
    position: absolute;
    right: -20px;
    bottom: -72px;
    color: rgba(255,255,255,0.035);
    font-family: var(--ctp-display);
    font-size: 260px;
    font-weight: 900;
    line-height: 1;
}


/* FILTERS */

.ct-program-controls {
    position: sticky;
    z-index: 50;
    top: 0;
    padding: 31px 0 25px;
    background: rgba(252, 250, 246, 0.95);
    border-bottom: 1px solid var(--ctp-line);
    box-shadow: 0 18px 40px rgba(41,37,72,0.055);
    backdrop-filter: blur(14px);
}

.ct-program-controls__top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 35px;
    margin-bottom: 24px;
}

.ct-program-controls__top p {
    margin: 10px 0 0;
    color: var(--ctp-muted);
    font-size: 12px;
}

.ct-program-visible-count {
    display: flex;
    align-items: baseline;
    gap: 9px;
    color: var(--ctp-purple);
}

.ct-program-visible-count span {
    font-family: var(--ctp-display);
    font-size: 36px;
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.04em;
}

.ct-program-visible-count strong {
    color: var(--ctp-muted);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ct-program-filter-group {
    display: grid;
    grid-template-columns: 125px minmax(0, 1fr);
    align-items: start;
    gap: 20px;
    margin-top: 12px;
}

.ct-program-filter-label {
    padding-top: 15px;
    color: var(--ctp-violet);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.ct-program-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ct-program-filter {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    color: var(--ctp-purple);
    background: transparent;
    border: 1px solid rgba(64,59,110,0.2);
    border-radius: 999px;
    cursor: pointer;
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.075em;
    text-transform: uppercase;
    transition:
        color 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease,
        transform 0.22s ease;
}

.ct-program-filter:hover,
.ct-program-filter:focus-visible,
.ct-program-filter.is-active {
    color: #fff;
    background: var(--ctp-purple);
    border-color: var(--ctp-purple);
    transform: translateY(-2px);
}

.ct-program-reset {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 17px 0 0 145px;
    padding: 0;
    color: var(--ctp-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
}

.ct-program-reset[hidden] {
    display: none !important;
}


/* LIST SECTION */

.ct-program-list-section {
    padding: 100px 0 125px;
    background:
        radial-gradient(circle at 95% 2%, rgba(178,115,224,0.065), transparent 24%),
        var(--ctp-paper);
}

.ct-program-intro {
    max-width: 860px;
    margin: 0 0 65px;
    color: var(--ctp-muted);
    font-size: 16px;
    line-height: 1.75;
}

.ct-program-timeline {
    display: grid;
    gap: 72px;
}

.ct-program-day {
    position: relative;
}

.ct-program-day[hidden],
.ct-program-event[hidden] {
    display: none !important;
}

.ct-program-day__header {
    position: relative;
    min-height: 170px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 30px;
    padding: 0 0 31px;
    overflow: hidden;
    border-bottom: 1px solid rgba(25,23,34,0.18);
}

.ct-program-day__date {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    gap: 19px;
}

.ct-program-day__number {
    color: var(--ctp-purple);
    font-family: var(--ctp-display);
    font-size: clamp(84px, 9vw, 145px);
    font-weight: 850;
    line-height: 0.72;
    letter-spacing: -0.085em;
}

.ct-program-day__date > div {
    display: grid;
    gap: 4px;
    padding-bottom: 4px;
}

.ct-program-day__date strong {
    color: var(--ctp-purple-dark);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.11em;
}

.ct-program-day__date > div span {
    color: var(--ctp-muted);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.ct-program-day__weekday {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 5px;
    padding-bottom: 4px;
    text-align: right;
}

.ct-program-day__weekday span {
    color: var(--ctp-purple-dark);
    font-size: 17px;
    font-weight: 800;
}

.ct-program-day__weekday strong {
    color: var(--ctp-violet);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.ct-program-day__ghost {
    position: absolute;
    right: 0;
    bottom: -65px;
    color: rgba(64,59,110,0.035);
    font-family: var(--ctp-display);
    font-size: 230px;
    font-weight: 900;
    line-height: 1;
    pointer-events: none;
}


/* EVENT ROW */

.ct-program-day__events {
    border-bottom: 1px solid rgba(25,23,34,0.15);
}

.ct-program-event {
    position: relative;
    display: grid;
    grid-template-columns:
        115px
        minmax(0, 1fr)
        minmax(170px, 245px)
        minmax(175px, 225px);
    align-items: stretch;
    gap: 0;
    min-height: 290px;
    border-top: 1px solid rgba(25,23,34,0.13);
    transition:
        background-color 0.3s ease,
        transform 0.3s ease;
}

.ct-program-event:first-child {
    border-top: 0;
}

.ct-program-event:hover {
    background: #fff;
    box-shadow: 0 25px 52px rgba(41,37,72,0.075);
    transform: translateY(-2px);
}

.ct-program-event__time {
    display: flex;
    flex-direction: column;
    padding: 35px 22px 32px 0;
    border-right: 1px solid rgba(25,23,34,0.1);
}

.ct-program-event__time strong {
    color: var(--ctp-purple);
    font-family: var(--ctp-display);
    font-size: 29px;
    font-weight: 780;
    line-height: 1;
    letter-spacing: -0.04em;
}

.ct-program-event__time span {
    margin-top: 6px;
    color: var(--ctp-muted);
    font-size: 11px;
    font-weight: 750;
}

.ct-program-event__content {
    min-width: 0;
    padding: 34px 35px;
}

.ct-program-event__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 17px;
}

.ct-program-event__meta span {
    color: var(--ctp-violet);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ct-program-event__meta span:not(:last-child)::after {
    content: "·";
    margin-left: 7px;
    color: rgba(25,23,34,0.25);
}

.ct-program-event h2 {
    max-width: 760px;
    margin: 0 0 15px;
    color: var(--ctp-purple-dark);
    font-family: var(--ctp-display);
    font-size: clamp(31px, 3.3vw, 48px);
    font-weight: 760;
    line-height: 0.98;
    letter-spacing: -0.045em;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.ct-program-event h2 a {
    color: inherit;
}

.ct-program-event h2 a:hover,
.ct-program-event h2 a:focus-visible {
    color: var(--ctp-violet);
}

.ct-program-event__location {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 17px;
    color: var(--ctp-purple);
    font-size: 12px;
    font-weight: 700;
}

.ct-program-event__location a {
    color: inherit !important;
}

.ct-program-event__description {
    max-width: 760px;
    margin-bottom: 19px;
    color: var(--ctp-muted);
    font-size: 13px;
    line-height: 1.66;
}

.ct-program-event__info {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.ct-program-event__info span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 5px 9px;
    color: var(--ctp-purple);
    background: rgba(178,115,224,0.075);
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
}

.ct-program-event__visual {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    background:
        linear-gradient(135deg, #7a7286, #342f3d);
}

.ct-program-event__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(20,17,28,0.48), transparent 55%);
}

.ct-program-event__visual img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 290px;
    object-fit: cover;
    transition:
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.4s ease;
}

.ct-program-event:hover .ct-program-event__visual img {
    transform: scale(1.055);
    filter: saturate(1.08);
}

.ct-program-event__visual > span {
    position: absolute;
    right: 17px;
    bottom: 4px;
    color: rgba(255,255,255,0.13);
    font-family: var(--ctp-display);
    font-size: 110px;
    font-weight: 900;
    line-height: 1;
}

.ct-program-event__action-panel {
    display: flex;
    flex-direction: column;
    padding: 30px 0 30px 28px;
}

.ct-program-event__status {
    color: var(--ctp-violet);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.ct-program-event__actions {
    margin-top: auto;
}

.ct-program-event__actions ul {
    display: grid !important;
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.ct-program-event__actions li {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ct-program-event__actions a,
.ct-program-event__actions button,
.ct-program-details-link {
    width: 100%;
    min-height: 47px;
    display: inline-flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    padding: 11px 14px !important;
    color: var(--ctp-purple-dark) !important;
    background: transparent !important;
    border: 1px solid rgba(64,59,110,0.2) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: var(--ctp-sans) !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.07em !important;
    text-align: left;
    text-transform: uppercase;
    transition:
        color 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease,
        transform 0.22s ease;
}

.ct-program-event__actions a:hover,
.ct-program-event__actions a:focus-visible,
.ct-program-event__actions button:hover,
.ct-program-event__actions button:focus-visible {
    color: #fff !important;
    background: var(--ctp-purple) !important;
    border-color: var(--ctp-purple) !important;
    transform: translateY(-2px);
}

.ct-program-event__actions li:first-child a {
    color: var(--ctp-ink) !important;
    background: var(--ctp-lime) !important;
    border-color: var(--ctp-lime) !important;
}

.ct-program-event__actions li:first-child a:hover,
.ct-program-event__actions li:first-child a:focus-visible {
    color: var(--ctp-ink) !important;
    background: #def293 !important;
    border-color: #def293 !important;
}

.ct-program-event__message,
.ct-program-event__tickets {
    grid-column: 2 / -1;
    padding: 0 0 25px 35px;
    color: var(--ctp-muted);
    font-size: 12px;
}

.ct-program-event__message .alert {
    margin: 0;
}

.ct-program-no-results,
.ct-program-empty {
    min-height: 260px;
    display: grid;
    place-items: center;
    gap: 15px;
    color: var(--ctp-muted);
    border: 1px solid var(--ctp-line);
    text-align: center;
}

.ct-program-no-results[hidden] {
    display: none !important;
}

.ct-program-no-results button {
    padding: 0;
    color: var(--ctp-purple);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.ct-program-pagination {
    display: flex;
    justify-content: center;
    margin-top: 65px;
}


/* TABLET */

@media (max-width: 1120px) {
    .ct-program-container {
        width: min(100% - 48px, 1020px);
    }

    .ct-program-event {
        grid-template-columns: 105px minmax(0, 1fr) 205px;
    }

    .ct-program-event__visual {
        display: none;
    }

    .ct-program-event__message,
    .ct-program-event__tickets {
        grid-column: 2 / -1;
    }
}

@media (max-width: 860px) {
    .ct-program-hero {
        min-height: auto;
        padding: 122px 0 82px;
    }

    .ct-program-hero__grid {
        grid-template-columns: 1fr;
    }

    .ct-program-controls {
        position: relative;
        top: auto;
    }

    .ct-program-filter-group {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .ct-program-filter-label {
        padding-top: 0;
    }

    .ct-program-reset {
        margin-left: 0;
    }

    .ct-program-event {
        grid-template-columns: 90px minmax(0, 1fr);
    }

    .ct-program-event__action-panel {
        grid-column: 2;
        padding: 0 28px 30px 34px;
    }

    .ct-program-event__message,
    .ct-program-event__tickets {
        grid-column: 2;
        padding-left: 34px;
    }
}


/* MOBILE */

@media (max-width: 600px) {
    .ct-program-container {
        width: calc(100% - 28px);
    }

    .ct-program-hero h1 {
        font-size: clamp(49px, 14vw, 70px);
    }

    .ct-program-hero__stats > div:not(.ct-program-hero__stats-mark) {
        min-height: 155px;
        padding: 22px;
    }

    .ct-program-controls__top {
        align-items: flex-start;
    }

    .ct-program-filter-buttons {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-program-filter {
        width: 100%;
        padding: 0 10px;
    }

    .ct-program-list-section {
        padding: 78px 0 90px;
    }

    .ct-program-timeline {
        gap: 58px;
    }

    .ct-program-day__header {
        min-height: 135px;
    }

    .ct-program-day__number {
        font-size: 82px;
    }

    .ct-program-day__weekday {
        display: none;
    }

    .ct-program-event {
        display: block;
        min-height: auto;
        padding: 27px 0;
    }

    .ct-program-event__time {
        display: flex;
        flex-direction: row;
        align-items: baseline;
        gap: 5px;
        padding: 0 0 15px;
        border-right: 0;
    }

    .ct-program-event__time strong {
        font-size: 25px;
    }

    .ct-program-event__content {
        padding: 0;
    }

    .ct-program-event h2 {
        font-size: 34px;
    }

    .ct-program-event__visual {
        display: block;
        min-height: 230px;
        margin-top: 24px;
    }

    .ct-program-event__visual img {
        min-height: 230px;
    }

    .ct-program-event__action-panel {
        padding: 24px 0 0;
    }

    .ct-program-event__message,
    .ct-program-event__tickets {
        padding: 22px 0 0;
    }
}


/* REDUCED MOTION */

@media (prefers-reduced-motion: reduce) {
    .ct-program-page *,
    .ct-program-page *::before,
    .ct-program-page *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .ct-program-js [data-program-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* =========================================================
CHANIARTOON — PROGRAMME BY DAY
Events Booking 5.8.2 / Calendar Daily Layout
Place at the END of custom.css
========================================================= */

.ct-day-program-page {
    --ctd-ink: #191722;
    --ctd-purple: #403b6e;
    --ctd-purple-dark: #292548;
    --ctd-violet: #b273e0;
    --ctd-peach: #ffbf82;
    --ctd-lime: #cfe977;
    --ctd-paper: #fcfaf6;
    --ctd-cream: #f2ede5;
    --ctd-muted: #746f7d;
    --ctd-line: rgba(25, 23, 34, 0.13);
    --ctd-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ctd-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;

    color: var(--ctd-ink);
    background: var(--ctd-paper);
    font-family: var(--ctd-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-day-program-page *,
.ct-day-program-page *::before,
.ct-day-program-page *::after {
    box-sizing: border-box;
}

.ct-day-program-page h1,
.ct-day-program-page h2,
.ct-day-program-page h3,
.ct-day-program-page p {
    margin-top: 0;
}

.ct-day-program-page a {
    color: inherit;
    text-decoration: none;
}

.ct-day-program-page em {
    color: var(--ctd-violet);
    font-style: normal;
}

.ct-day-container {
    position: relative;
    width: min(1320px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-day-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ctd-purple);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.ct-day-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-day-eyebrow--light {
    color: var(--ctd-peach);
}


/* REVEAL */

.ct-day-js [data-day-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 0.7s ease,
        transform 0.82s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ctd-delay, 0ms);
}

.ct-day-js [data-day-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* HERO */

.ct-day-hero {
    position: relative;
    min-height: 650px;
    display: flex;
    align-items: center;
    padding: 138px 0 90px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 13% 18%, rgba(178,115,224,0.2), transparent 28%),
        radial-gradient(circle at 91% 84%, rgba(207,233,119,0.09), transparent 27%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-day-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.05;
    background-image:
        linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px);
    background-size: 74px 74px;
}

.ct-day-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.55fr);
    align-items: center;
    gap: clamp(65px, 9vw, 130px);
}

.ct-day-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ctd-display);
    font-size: clamp(58px, 7vw, 106px);
    font-weight: 780;
    line-height: 0.88;
    letter-spacing: -0.06em;
}

.ct-day-hero h1 em {
    display: block;
    color: var(--ctd-lime);
}

.ct-day-hero__content > p {
    max-width: 620px;
    margin-bottom: 0;
    color: rgba(255,255,255,0.68);
    font-size: 16px;
    line-height: 1.75;
}

.ct-day-hero__summary {
    position: relative;
    min-height: 355px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 34px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.17);
}

.ct-day-hero__summary-number {
    position: relative;
    z-index: 2;
    color: var(--ctd-lime);
    font-family: var(--ctd-display);
    font-size: clamp(95px, 10vw, 160px);
    font-weight: 840;
    line-height: 0.72;
    letter-spacing: -0.085em;
}

.ct-day-hero__summary > strong {
    position: relative;
    z-index: 2;
    color: rgba(255,255,255,0.68);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.ct-day-hero__summary > div {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 7px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.16);
}

.ct-day-hero__summary > div span {
    color: var(--ctd-peach);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.ct-day-hero__summary > div b {
    color: #fff;
    font-size: 14px;
    letter-spacing: 0.07em;
}

.ct-day-hero__ghost {
    position: absolute;
    right: -24px;
    bottom: -72px;
    color: rgba(255,255,255,0.035);
    font-family: var(--ctd-display);
    font-size: 280px;
    font-weight: 900;
    line-height: 1;
}


/* DAY NAVIGATION */

.ct-day-navigation {
    position: relative;
    z-index: 20;
    padding: 32px 0 29px;
    background: var(--ctd-cream);
    border-bottom: 1px solid var(--ctd-line);
}

.ct-day-navigation__top {
    display: grid;
    grid-template-columns: auto minmax(380px, 1fr) auto;
    align-items: end;
    gap: 35px;
    margin-bottom: 27px;
}

.ct-day-nav-arrow {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ctd-purple);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ct-day-nav-arrow--next {
    justify-content: flex-end;
}

.ct-day-picker {
    display: grid;
    justify-items: center;
    gap: 10px;
}

.ct-day-picker > span {
    color: var(--ctd-muted);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.ct-day-picker__controls {
    display: flex;
    align-items: stretch;
    gap: 9px;
}

.ct-day-picker__controls .field-calendar {
    display: flex;
    align-items: stretch;
}

.ct-day-picker__input,
.ct-day-picker__controls input {
    min-height: 48px !important;
    padding: 10px 14px !important;
    color: var(--ctd-purple-dark) !important;
    background: var(--ctd-paper) !important;
    border: 1px solid rgba(64,59,110,0.2) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.ct-day-picker__controls button,
.ct-day-picker__controls .btn {
    border-radius: 0 !important;
}

.ct-day-picker__button {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 17px;
    color: #fff;
    background: var(--ctd-purple);
    border: 1px solid var(--ctd-purple);
    cursor: pointer;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ct-day-strip-wrap {
    position: relative;
    overflow: hidden;
}

.ct-day-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 2px 13px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

.ct-day-tab {
    flex: 0 0 78px;
    min-height: 102px;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 3px;
    padding: 12px 8px;
    color: var(--ctd-purple);
    background: var(--ctd-paper);
    border: 1px solid rgba(64,59,110,0.16);
    scroll-snap-align: center;
    transition:
        color 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease,
        transform 0.22s ease;
}

.ct-day-tab:hover,
.ct-day-tab:focus-visible,
.ct-day-tab.is-active {
    color: #fff;
    background: var(--ctd-purple);
    border-color: var(--ctd-purple);
    transform: translateY(-3px);
}

.ct-day-tab span,
.ct-day-tab small {
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.1em;
}

.ct-day-tab strong {
    font-family: var(--ctd-display);
    font-size: 31px;
    font-weight: 820;
    line-height: 1;
    letter-spacing: -0.05em;
}

.ct-day-tab em {
    color: var(--ctd-peach);
    font-size: 7px;
    font-weight: 900;
    letter-spacing: 0.09em;
}

.ct-day-tab--special {
    flex-basis: 97px;
}

.ct-day-strip__separator {
    flex: 0 0 1px;
    min-height: 102px;
    background: rgba(25,23,34,0.16);
}


/* DAY LIST */

.ct-day-list-section {
    padding: 105px 0 125px;
    background:
        radial-gradient(circle at 95% 2%, rgba(178,115,224,0.065), transparent 24%),
        var(--ctd-paper);
}

.ct-day-list-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 60px;
}

.ct-day-list-head h2 {
    margin: 18px 0 0;
    color: var(--ctd-ink);
    font-family: var(--ctd-display);
    font-size: clamp(54px, 6vw, 92px);
    font-weight: 780;
    line-height: 0.91;
    letter-spacing: -0.055em;
}

.ct-day-list-head > p {
    margin-bottom: 0;
    color: var(--ctd-muted);
    font-size: 15px;
    line-height: 1.75;
}

.ct-day-events {
    border-top: 1px solid rgba(25,23,34,0.16);
}

.ct-day-event {
    position: relative;
    display: grid;
    grid-template-columns:
        125px
        minmax(0, 1fr)
        minmax(180px, 245px)
        minmax(180px, 220px);
    min-height: 290px;
    border-bottom: 1px solid rgba(25,23,34,0.15);
    transition:
        background-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}

.ct-day-event:hover {
    background: #fff;
    box-shadow: 0 24px 52px rgba(41,37,72,0.075);
    transform: translateY(-2px);
}

.ct-day-event__time {
    display: flex;
    flex-direction: column;
    padding: 35px 24px 30px 0;
    border-right: 1px solid rgba(25,23,34,0.1);
}

.ct-day-event__time strong {
    color: var(--ctd-purple);
    font-family: var(--ctd-display);
    font-size: 31px;
    font-weight: 790;
    line-height: 1;
    letter-spacing: -0.045em;
}

.ct-day-event__time span {
    margin-top: 6px;
    color: var(--ctd-muted);
    font-size: 11px;
    font-weight: 750;
}

.ct-day-event__time em {
    width: fit-content;
    margin-top: 17px;
    padding: 6px 9px;
    color: var(--ctd-ink);
    background: var(--ctd-lime);
    border-radius: 999px;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.11em;
}

.ct-day-event__time em[hidden] {
    display: none !important;
}

.ct-day-event__content {
    min-width: 0;
    padding: 34px 35px;
}

.ct-day-event__category {
    display: block;
    margin-bottom: 17px;
    color: var(--ctd-violet);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ct-day-event h3 {
    max-width: 720px;
    margin: 0 0 15px;
    color: var(--ctd-purple-dark);
    font-family: var(--ctd-display);
    font-size: clamp(31px, 3.2vw, 47px);
    font-weight: 760;
    line-height: 0.98;
    letter-spacing: -0.045em;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.ct-day-event h3 a:hover,
.ct-day-event h3 a:focus-visible {
    color: var(--ctd-violet);
}

.ct-day-event__location {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
    color: var(--ctd-purple);
    font-size: 12px;
    font-weight: 700;
}

.ct-day-event__location a {
    color: inherit !important;
}

.ct-day-event__content > p {
    max-width: 720px;
    margin-bottom: 0;
    color: var(--ctd-muted);
    font-size: 13px;
    line-height: 1.66;
}

.ct-day-event__visual {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    background: linear-gradient(135deg, #7a7286, #342f3d);
}

.ct-day-event__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(20,17,28,0.46), transparent 55%);
}

.ct-day-event__visual img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 290px;
    object-fit: cover;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.ct-day-event:hover .ct-day-event__visual img {
    transform: scale(1.055);
}

.ct-day-event__visual > span {
    position: absolute;
    right: 17px;
    bottom: 4px;
    color: rgba(255,255,255,0.13);
    font-family: var(--ctd-display);
    font-size: 110px;
    font-weight: 900;
    line-height: 1;
}

.ct-day-event__action {
    display: flex;
    flex-direction: column;
    padding: 31px 0 31px 28px;
}

.ct-day-event__action > span {
    color: var(--ctd-violet);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.ct-day-event__action a {
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding: 12px 14px;
    color: var(--ctd-ink);
    background: var(--ctd-lime);
    border: 1px solid var(--ctd-lime);
    font-size: 9px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    transition:
        background-color 0.22s ease,
        transform 0.22s ease;
}

.ct-day-event__action a:hover,
.ct-day-event__action a:focus-visible {
    background: #def293;
    transform: translateY(-2px);
}

.ct-day-event__action b {
    font-size: 16px;
    font-weight: 500;
}

.ct-day-empty {
    min-height: 320px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 13px;
    padding: 40px;
    color: var(--ctd-muted);
    border: 1px solid var(--ctd-line);
    text-align: center;
}

.ct-day-empty > span {
    color: var(--ctd-purple-dark);
    font-family: var(--ctd-display);
    font-size: 32px;
    font-weight: 760;
}

.ct-day-empty p {
    max-width: 520px;
    margin-bottom: 0;
}

.ct-day-empty a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ctd-purple);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}


/* TABLET */

@media (max-width: 1120px) {
    .ct-day-container {
        width: min(100% - 48px, 1020px);
    }

    .ct-day-event {
        grid-template-columns: 110px minmax(0, 1fr) 210px;
    }

    .ct-day-event__visual {
        display: none;
    }
}

@media (max-width: 850px) {
    .ct-day-hero {
        min-height: auto;
        padding: 122px 0 82px;
    }

    .ct-day-hero__grid,
    .ct-day-list-head {
        grid-template-columns: 1fr;
    }

    .ct-day-navigation__top {
        grid-template-columns: 1fr 1fr;
    }

    .ct-day-picker {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .ct-day-nav-arrow {
        grid-row: 2;
    }

    .ct-day-nav-arrow--next {
        justify-self: end;
    }

    .ct-day-event {
        grid-template-columns: 95px minmax(0, 1fr);
    }

    .ct-day-event__action {
        grid-column: 2;
        padding: 0 28px 30px 35px;
    }
}


/* MOBILE */

@media (max-width: 600px) {
    .ct-day-container {
        width: calc(100% - 28px);
    }

    .ct-day-hero h1 {
        font-size: clamp(48px, 14vw, 68px);
    }

    .ct-day-hero__summary {
        min-height: 300px;
    }

    .ct-day-navigation__top {
        gap: 20px;
    }

    .ct-day-nav-arrow span {
        display: none;
    }

    .ct-day-picker__controls {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-day-picker__controls .field-calendar,
    .ct-day-picker__controls input,
    .ct-day-picker__button {
        width: 100%;
    }

    .ct-day-tab {
        flex-basis: 70px;
        min-height: 94px;
    }

    .ct-day-list-section {
        padding: 80px 0 90px;
    }

    .ct-day-list-head {
        margin-bottom: 43px;
    }

    .ct-day-list-head h2 {
        font-size: clamp(46px, 13vw, 65px);
    }

    .ct-day-event {
        display: block;
        min-height: auto;
        padding: 28px 0;
    }

    .ct-day-event__time {
        flex-direction: row;
        align-items: baseline;
        gap: 5px;
        padding: 0 0 15px;
        border-right: 0;
    }

    .ct-day-event__time strong {
        font-size: 26px;
    }

    .ct-day-event__time em {
        margin: 0 0 0 auto;
    }

    .ct-day-event__content {
        padding: 0;
    }

    .ct-day-event h3 {
        font-size: 35px;
    }

    .ct-day-event__visual {
        display: block;
        min-height: 235px;
        margin-top: 24px;
    }

    .ct-day-event__visual img {
        min-height: 235px;
    }

    .ct-day-event__action {
        padding: 24px 0 0;
    }
}


/* REDUCED MOTION */

@media (prefers-reduced-motion: reduce) {
    .ct-day-program-page *,
    .ct-day-program-page *::before,
    .ct-day-program-page *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .ct-day-js [data-day-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* =========================================================
CHANIARTOON — PREMIUM FULL CALENDAR
Events Booking 5.8.2
Place at the END of custom.css
========================================================= */

.ct-calendar-page {
    --ctc-ink: #191722;
    --ctc-purple: #403b6e;
    --ctc-purple-dark: #292548;
    --ctc-violet: #b273e0;
    --ctc-peach: #ffbf82;
    --ctc-lime: #cfe977;
    --ctc-paper: #fcfaf6;
    --ctc-cream: #f2ede5;
    --ctc-muted: #746f7d;
    --ctc-line: rgba(25, 23, 34, 0.13);
    --ctc-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --ctc-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: hidden;

    color: var(--ctc-ink);
    background: var(--ctc-paper);
    font-family: var(--ctc-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-calendar-page *,
.ct-calendar-page *::before,
.ct-calendar-page *::after {
    box-sizing: border-box;
}

.ct-calendar-page h1,
.ct-calendar-page h2,
.ct-calendar-page h3,
.ct-calendar-page p {
    margin-top: 0;
}

.ct-calendar-page a {
    color: inherit;
    text-decoration: none;
}

.ct-calendar-page em {
    color: var(--ctc-violet);
    font-style: normal;
}

.ct-calendar-container {
    position: relative;
    width: min(1320px, calc(100% - 72px));
    margin-inline: auto;
}

.ct-calendar-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--ctc-purple);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.ct-calendar-eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}

.ct-calendar-eyebrow--light {
    color: var(--ctc-peach);
}


/* REVEAL */

.ct-calendar-js [data-calendar-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 0.7s ease,
        transform 0.82s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--ctc-delay, 0ms);
}

.ct-calendar-js [data-calendar-reveal].is-visible {
    opacity: 1;
    transform: none;
}


/* HERO */

.ct-calendar-hero {
    position: relative;
    min-height: 690px;
    display: flex;
    align-items: center;
    padding: 138px 0 92px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 13% 18%, rgba(178,115,224,0.2), transparent 28%),
        radial-gradient(circle at 91% 84%, rgba(207,233,119,0.09), transparent 27%),
        linear-gradient(145deg, #15131d 0%, #242035 58%, #302b50 100%);
}

.ct-calendar-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.05;
    background-image:
        linear-gradient(rgba(255,255,255,0.8) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.8) 1px, transparent 1px);
    background-size: 74px 74px;
}

.ct-calendar-hero__grid {
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(370px, 0.58fr);
    align-items: center;
    gap: clamp(65px, 9vw, 130px);
}

.ct-calendar-hero h1 {
    margin: 28px 0;
    color: #fff;
    font-family: var(--ctc-display);
    font-size: clamp(66px, 7.5vw, 116px);
    font-weight: 780;
    line-height: 0.87;
    letter-spacing: -0.065em;
}

.ct-calendar-hero h1 em {
    display: block;
    color: var(--ctc-lime);
}

.ct-calendar-hero__content > p {
    max-width: 620px;
    margin-bottom: 34px;
    color: rgba(255,255,255,0.68);
    font-size: 16px;
    line-height: 1.75;
}

.ct-calendar-hero__dates {
    display: grid;
    gap: 7px;
    padding-left: 19px;
    border-left: 2px solid var(--ctc-peach);
}

.ct-calendar-hero__dates span {
    color: rgba(255,255,255,0.48);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.ct-calendar-hero__dates strong {
    color: #fff;
    font-size: 13px;
    font-weight: 850;
    letter-spacing: 0.08em;
}

.ct-calendar-hero__stats {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,0.17);
    border-left: 1px solid rgba(255,255,255,0.17);
}

.ct-calendar-hero__stats > div:not(.ct-calendar-hero__mark) {
    position: relative;
    z-index: 2;
    min-height: 185px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 29px;
    border-right: 1px solid rgba(255,255,255,0.17);
    border-bottom: 1px solid rgba(255,255,255,0.17);
}

.ct-calendar-hero__stats span {
    color: var(--ctc-lime);
    font-family: var(--ctc-display);
    font-size: clamp(68px, 7vw, 105px);
    font-weight: 840;
    line-height: 0.8;
    letter-spacing: -0.075em;
}

.ct-calendar-hero__stats strong {
    color: rgba(255,255,255,0.68);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.ct-calendar-hero__mark {
    position: absolute;
    right: -20px;
    bottom: -70px;
    color: rgba(255,255,255,0.035);
    font-family: var(--ctc-display);
    font-size: 270px;
    font-weight: 900;
    line-height: 1;
}


/* WORKSPACE */

.ct-calendar-workspace {
    padding: 108px 0 125px;
    background:
        radial-gradient(circle at 96% 2%, rgba(178,115,224,0.065), transparent 24%),
        var(--ctc-paper);
}

.ct-calendar-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.52fr);
    align-items: end;
    gap: 72px;
    margin-bottom: 58px;
}

.ct-calendar-section-head h2 {
    margin: 18px 0 0;
    color: var(--ctc-ink);
    font-family: var(--ctc-display);
    font-size: clamp(54px, 6vw, 92px);
    font-weight: 780;
    line-height: 0.91;
    letter-spacing: -0.055em;
}

.ct-calendar-section-head > p {
    margin-bottom: 0;
    color: var(--ctc-muted);
    font-size: 15px;
    line-height: 1.75;
}

.ct-calendar-intro {
    max-width: 860px;
    margin: -25px 0 50px;
    color: var(--ctc-muted);
    font-size: 15px;
    line-height: 1.75;
}


/* FILTERS */

.ct-calendar-filters {
    margin-bottom: 34px;
    padding: 27px;
    background: var(--ctc-cream);
    border: 1px solid var(--ctc-line);
}

.ct-calendar-filters__heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 19px;
}

.ct-calendar-filters__heading > span {
    color: var(--ctc-purple);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.ct-calendar-filters__heading p {
    margin-bottom: 0;
    color: var(--ctc-muted);
    font-size: 11px;
}

.ct-calendar-filters__fields {
    display: grid;
    grid-template-columns:
        minmax(230px, 1.2fr)
        minmax(190px, 0.9fr)
        minmax(190px, 0.9fr)
        auto;
    align-items: end;
    gap: 12px;
}

.ct-calendar-filter-field {
    display: grid;
    gap: 8px;
    margin: 0;
}

.ct-calendar-filter-field > span {
    color: var(--ctc-violet);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.ct-calendar-filter-field input,
.ct-calendar-filter-field select {
    width: 100% !important;
    min-height: 49px !important;
    margin: 0 !important;
    padding: 10px 13px !important;
    color: var(--ctc-purple-dark) !important;
    background: var(--ctc-paper) !important;
    border: 1px solid rgba(64,59,110,0.18) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 12px !important;
}

.ct-calendar-filter-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ct-calendar-filter-apply {
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 10px 17px;
    color: #fff;
    background: var(--ctc-purple);
    border: 1px solid var(--ctc-purple);
    cursor: pointer;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ct-calendar-filter-reset {
    padding: 0;
    color: var(--ctc-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 9px;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 4px;
}


/* FULLCALENDAR SHELL */

.ct-calendar-shell {
    padding: 34px;
    background: var(--ctc-cream);
    border: 1px solid var(--ctc-line);
}

.ct-calendar-page .fc {
    --fc-border-color: rgba(25, 23, 34, 0.12);
    --fc-button-bg-color: #403b6e;
    --fc-button-border-color: #403b6e;
    --fc-button-hover-bg-color: #292548;
    --fc-button-hover-border-color: #292548;
    --fc-button-active-bg-color: #191722;
    --fc-button-active-border-color: #191722;
    --fc-event-bg-color: #403b6e;
    --fc-event-border-color: #403b6e;
    --fc-today-bg-color: rgba(207, 233, 119, 0.18);

    color: var(--ctc-ink);
    font-family: var(--ctc-sans);
}

.ct-calendar-page .fc .fc-toolbar {
    margin-bottom: 28px;
}

.ct-calendar-page .fc .fc-toolbar-title {
    color: var(--ctc-purple-dark);
    font-family: var(--ctc-display);
    font-size: clamp(35px, 4vw, 56px);
    font-weight: 790;
    line-height: 1;
    letter-spacing: -0.045em;
}

.ct-calendar-page .fc .fc-button {
    min-height: 43px;
    padding: 8px 13px;
    border-radius: 0;
    box-shadow: none !important;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ct-calendar-page .fc .fc-prev-button,
.ct-calendar-page .fc .fc-next-button {
    min-width: 45px;
}

.ct-calendar-page .fc .fc-col-header-cell {
    padding: 15px 7px;
    background: var(--ctc-purple-dark);
}

.ct-calendar-page .fc .fc-col-header-cell-cushion {
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ct-calendar-page .fc .fc-daygrid-day {
    min-height: 155px;
    background: var(--ctc-paper);
    transition: background-color 0.22s ease;
}

.ct-calendar-page .fc .fc-daygrid-day:hover {
    background: #fff;
}

.ct-calendar-page .fc .fc-daygrid-day-frame {
    min-height: 155px;
    padding: 7px;
}

.ct-calendar-page .fc .fc-daygrid-day-top {
    justify-content: flex-end;
}

.ct-calendar-page .fc .fc-daygrid-day-number {
    min-width: 35px;
    min-height: 35px;
    display: grid;
    place-items: center;
    color: var(--ctc-purple);
    border-radius: 50%;
    font-family: var(--ctc-display);
    font-size: 15px;
    font-weight: 780;
    cursor: pointer;
    transition:
        color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

.ct-calendar-page .fc .fc-daygrid-day-number:hover,
.ct-calendar-page .fc .fc-daygrid-day-number:focus-visible {
    color: #fff;
    background: var(--ctc-purple);
    transform: translateY(-2px);
}

.ct-calendar-page .fc .fc-day-today .fc-daygrid-day-number {
    color: var(--ctc-ink);
    background: var(--ctc-lime);
}

.ct-calendar-page .fc .fc-event {
    margin: 3px 0;
    padding: 4px 6px;
    overflow: hidden;
    color: #fff;
    border-radius: 0;
    cursor: pointer;
    transition:
        transform 0.2s ease,
        background-color 0.2s ease;
}

.ct-calendar-page .fc .fc-event:hover {
    background: var(--ctc-violet);
    border-color: var(--ctc-violet);
    transform: translateX(3px);
}

.ct-calendar-page .fc .fc-event-main {
    color: inherit;
}

.ct-calendar-page .fc .fc-event-time {
    font-size: 8px;
    font-weight: 900;
}

.ct-calendar-page .fc .fc-event-title {
    font-size: 10px;
    font-weight: 750;
}

.ct-calendar-page .fc .fc-daygrid-more-link {
    color: var(--ctc-violet);
    font-size: 9px;
    font-weight: 900;
}


/* MOBILE AGENDA */

.ct-calendar-mobile-agenda {
    display: none;
}

.ct-calendar-mobile-day {
    border-top: 1px solid var(--ctc-line);
}

.ct-calendar-mobile-day__head {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 20px 0;
}

.ct-calendar-mobile-day__date {
    color: var(--ctc-purple);
    font-family: var(--ctc-display);
    font-size: 35px;
    font-weight: 820;
    line-height: 1;
    letter-spacing: -0.05em;
}

.ct-calendar-mobile-day__head strong {
    color: var(--ctc-purple-dark);
    font-size: 12px;
    font-weight: 850;
}

.ct-calendar-mobile-day__head > a {
    color: var(--ctc-violet);
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.ct-calendar-mobile-events {
    display: grid;
    gap: 8px;
    padding-bottom: 21px;
}

.ct-calendar-mobile-event {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 10px;
    padding: 15px;
    color: #fff !important;
    background: var(--ctc-purple);
}

.ct-calendar-mobile-event:hover,
.ct-calendar-mobile-event:focus-visible {
    background: var(--ctc-violet);
}

.ct-calendar-mobile-event time {
    font-size: 10px;
    font-weight: 900;
}

.ct-calendar-mobile-event strong {
    font-size: 13px;
    font-weight: 750;
}

.ct-calendar-mobile-empty {
    padding: 32px;
    color: var(--ctc-muted);
    border: 1px solid var(--ctc-line);
    text-align: center;
}

.ct-calendar-mobile-empty[hidden] {
    display: none !important;
}


/* TABLET */

@media (max-width: 1050px) {
    .ct-calendar-container {
        width: min(100% - 48px, 980px);
    }

    .ct-calendar-filters__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-calendar-filter-actions {
        min-height: 49px;
    }
}

@media (max-width: 820px) {
    .ct-calendar-hero {
        min-height: auto;
        padding: 122px 0 82px;
    }

    .ct-calendar-hero__grid,
    .ct-calendar-section-head {
        grid-template-columns: 1fr;
    }

    .ct-calendar-shell {
        padding: 22px;
    }

    .ct-calendar-page .fc .fc-toolbar {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ct-calendar-page .fc .fc-toolbar-chunk {
        display: flex;
        justify-content: center;
    }

    .ct-calendar-page .fc .fc-toolbar-title {
        text-align: center;
    }
}


/* MOBILE */

@media (max-width: 650px) {
    .ct-calendar-container {
        width: calc(100% - 28px);
    }

    .ct-calendar-hero h1 {
        font-size: clamp(49px, 14vw, 69px);
    }

    .ct-calendar-workspace {
        padding: 80px 0 92px;
    }

    .ct-calendar-section-head h2 {
        font-size: clamp(47px, 13vw, 65px);
    }

    .ct-calendar-filters {
        padding: 21px;
    }

    .ct-calendar-filters__heading {
        display: block;
    }

    .ct-calendar-filters__heading p {
        margin-top: 7px;
    }

    .ct-calendar-filters__fields {
        grid-template-columns: 1fr;
    }

    .ct-calendar-filter-actions {
        justify-content: space-between;
    }

    .ct-calendar-shell {
        padding: 19px;
    }

    .ct-calendar-page .fc .fc-view-harness {
        display: none;
    }

    .ct-calendar-page .fc .fc-toolbar {
        margin-bottom: 0;
    }

    .ct-calendar-page .fc .fc-toolbar-chunk:nth-child(2) {
        order: -1;
    }

    .ct-calendar-mobile-agenda {
        display: block;
        margin-top: 27px;
    }
}


/* REDUCED MOTION */

@media (prefers-reduced-motion: reduce) {
    .ct-calendar-page *,
    .ct-calendar-page *::before,
    .ct-calendar-page *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .ct-calendar-js [data-calendar-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* =========================================================
   CHANIARTOON — FULL CALENDAR PREMIUM
========================================================= */

#eb-calendar-page,
#eb-calendar-page * {
  box-sizing: border-box;
}

#eb-calendar-page {
  --ct-fc-bg: #f4f0e7;
  --ct-fc-surface: #fbf8f2;
  --ct-fc-line: rgba(30, 24, 39, 0.12);
  --ct-fc-line-strong: rgba(30, 24, 39, 0.22);
  --ct-fc-text: #211b2d;
  --ct-fc-muted: #6d6877;
  --ct-fc-accent: #463f7d;
  --ct-fc-accent-2: #7fd0cc;
  --ct-fc-accent-3: #ffbf82;
  --ct-fc-highlight: #d2ef73;
  --ct-fc-white: #ffffff;

  width: 100%;
  max-width: 100%;
  padding: 32px 32px 48px;
  background: linear-gradient(180deg, #f8f5ef 0%, #f2eee6 100%);
  border: 1px solid rgba(30, 24, 39, 0.06);
  border-radius: 28px;
  position: relative;
  overflow: hidden;
}

#eb-calendar-page::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(70, 63, 125, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(70, 63, 125, 0.05) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
  opacity: 0.55;
}

#eb-calendar-page > * {
  position: relative;
  z-index: 1;
}

/* =========================================================
   PAGE HEADING
========================================================= */

#eb-calendar-page .eb-page-heading {
  margin: 0 0 26px;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--ct-fc-text);
}

#eb-calendar-page .eb-description {
  max-width: 920px;
  margin: 0 0 22px;
  font-size: 17px;
  line-height: 1.7;
  color: var(--ct-fc-muted);
}

/* =========================================================
   FILTER BAR
========================================================= */

#eb-fullcalendar-filter-container {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr 1fr auto;
  gap: 14px;
  align-items: center;
  margin: 0 0 28px !important;
  padding: 18px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(30, 24, 39, 0.08);
  border-radius: 22px;
  backdrop-filter: blur(10px);
  box-shadow:
    0 10px 30px rgba(30, 24, 39, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

#eb-fullcalendar-filter-container .filter-search,
#eb-fullcalendar-filter-container .btn-group {
  float: none !important;
  width: 100%;
  margin: 0 !important;
}

#eb-fullcalendar-filter-container input[type="text"],
#eb-fullcalendar-filter-container select,
#eb-fullcalendar-filter-container .form-control {
  width: 100% !important;
  height: 56px !important;
  padding: 0 18px !important;
  border: 1px solid rgba(30, 24, 39, 0.12) !important;
  border-radius: 16px !important;
  background: #fff !important;
  color: var(--ct-fc-text) !important;
  font-size: 15px !important;
  font-weight: 600;
  box-shadow: none !important;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
  outline: none !important;
}

#eb-fullcalendar-filter-container input[type="text"]::placeholder {
  color: #8a8592;
  font-weight: 500;
}

#eb-fullcalendar-filter-container input[type="text"]:focus,
#eb-fullcalendar-filter-container select:focus,
#eb-fullcalendar-filter-container .form-control:focus {
  border-color: rgba(70, 63, 125, 0.45) !important;
  box-shadow: 0 0 0 4px rgba(127, 208, 204, 0.16) !important;
  transform: translateY(-1px);
}

#eb-fullcalendar-filter-container .eb-btn-apply-fullcalendar-filter,
#eb-fullcalendar-filter-container #btn-apply-calendar-filter {
  width: 100% !important;
  height: 56px !important;
  padding: 0 24px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #7fd0cc 0%, #64b8b4 100%) !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em;
  text-transform: none;
  box-shadow: 0 16px 30px rgba(100, 184, 180, 0.24);
  transition: transform 0.2s ease, box-shadow 0.25s ease, filter 0.25s ease;
}

#eb-fullcalendar-filter-container .eb-btn-apply-fullcalendar-filter:hover,
#eb-fullcalendar-filter-container #btn-apply-calendar-filter:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 34px rgba(100, 184, 180, 0.28);
  filter: brightness(1.02);
}

#eb-fullcalendar-filter-container .eb-btn-apply-fullcalendar-filter:active,
#eb-fullcalendar-filter-container #btn-apply-calendar-filter:active {
  transform: translateY(0);
}

/* =========================================================
   FULLCALENDAR TOOLBAR
========================================================= */

#eb-calendar-page .fc {
  color: var(--ct-fc-text);
  font-size: 15px;
}

#eb-calendar-page .fc .fc-toolbar {
  margin-bottom: 18px !important;
  gap: 16px;
  flex-wrap: wrap;
}

#eb-calendar-page .fc .fc-toolbar-title {
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 800;
  color: var(--ct-fc-text);
}

#eb-calendar-page .fc .fc-button {
  height: 48px;
  padding: 0 18px;
  border: 1px solid rgba(30, 24, 39, 0.12) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,0.88) !important;
  color: var(--ct-fc-text) !important;
  font-size: 14px;
  font-weight: 700;
  text-transform: none;
  box-shadow: none !important;
  transition: all 0.25s ease;
}

#eb-calendar-page .fc .fc-button:hover {
  background: #fff !important;
  border-color: rgba(70, 63, 125, 0.28) !important;
  transform: translateY(-1px);
}

#eb-calendar-page .fc .fc-button.fc-button-active,
#eb-calendar-page .fc .fc-button:focus,
#eb-calendar-page .fc .fc-button-primary:not(:disabled).fc-button-active {
  background: var(--ct-fc-accent) !important;
  color: #fff !important;
  border-color: var(--ct-fc-accent) !important;
  box-shadow: 0 0 0 4px rgba(70, 63, 125, 0.12) !important;
}

#eb-calendar-page .fc .fc-toolbar-chunk {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

/* =========================================================
   CALENDAR GRID
========================================================= */

#eb-calendar-page .fc .fc-scrollgrid {
  border: 1px solid var(--ct-fc-line-strong);
  border-radius: 24px;
  overflow: hidden;
  background: rgba(255,255,255,0.68);
  box-shadow: 0 14px 40px rgba(30, 24, 39, 0.06);
}

#eb-calendar-page .fc-theme-standard td,
#eb-calendar-page .fc-theme-standard th,
#eb-calendar-page .fc-theme-standard .fc-scrollgrid {
  border-color: var(--ct-fc-line);
}

#eb-calendar-page .fc .fc-col-header-cell {
  background: rgba(70, 63, 125, 0.04);
  padding: 10px 6px;
}

#eb-calendar-page .fc .fc-col-header-cell-cushion {
  padding: 10px 8px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ct-fc-accent);
}

#eb-calendar-page .fc .fc-daygrid-day-frame {
  min-height: 180px;
  padding: 8px 8px 12px;
  background: rgba(255,255,255,0.28);
}

#eb-calendar-page .fc .fc-daygrid-day-top {
  justify-content: flex-end;
  padding-bottom: 6px;
}

#eb-calendar-page .fc .fc-daygrid-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 800;
  color: var(--ct-fc-text);
}

#eb-calendar-page .fc .fc-day-today {
  background: rgba(127, 208, 204, 0.08) !important;
}

#eb-calendar-page .fc .fc-day-today .fc-daygrid-day-number {
  background: rgba(70, 63, 125, 0.12);
  color: var(--ct-fc-accent);
}

#eb-calendar-page .fc .fc-day-other {
  background: rgba(32, 27, 45, 0.02);
}

#eb-calendar-page .fc .fc-day-other .fc-daygrid-day-number {
  color: #b0a9b8;
}

/* =========================================================
   EVENTS IN CELLS
========================================================= */

#eb-calendar-page .fc .fc-daygrid-day-events {
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#eb-calendar-page .fc .fc-daygrid-event-harness {
  margin: 0 !important;
}

#eb-calendar-page .fc .fc-daygrid-dot-event,
#eb-calendar-page .fc .fc-daygrid-block-event,
#eb-calendar-page .fc .fc-h-event {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 14px !important;
  overflow: hidden;
  background: linear-gradient(135deg, #463f7d 0%, #5a52a0 100%) !important;
  color: #fff !important;
  box-shadow: 0 10px 18px rgba(70, 63, 125, 0.18);
  transition: transform 0.2s ease, box-shadow 0.25s ease, filter 0.25s ease;
}

#eb-calendar-page .fc .fc-daygrid-dot-event:hover,
#eb-calendar-page .fc .fc-daygrid-block-event:hover,
#eb-calendar-page .fc .fc-h-event:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(70, 63, 125, 0.24);
  filter: brightness(1.03);
}

#eb-calendar-page .fc .fc-event-main {
  padding: 9px 11px 10px;
}

#eb-calendar-page .fc .fc-event-time {
  display: block;
  margin: 0 0 3px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
}

#eb-calendar-page .fc .fc-event-title {
  display: block;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  line-height: 1.25;
  font-size: 13px;
  font-weight: 800;
}

/* Αν υπάρχουν extra classes από το EventBooking */
#eb-calendar-page .fc .eb-event-full {
  opacity: 0.65;
}

/* Κρύβουμε το +more */
#eb-calendar-page .fc .fc-daygrid-more-link {
  display: none !important;
}

#eb-calendar-page .fc .fc-daygrid-day-bottom {
  display: none !important;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {
  #eb-fullcalendar-filter-container {
    grid-template-columns: 1fr 1fr;
  }

  #eb-fullcalendar-filter-container .btn-group:last-child,
  #eb-fullcalendar-filter-container .filter-search:first-child {
    grid-column: span 2;
  }
}

@media (max-width: 767px) {
  #eb-calendar-page {
    padding: 22px 16px 34px;
    border-radius: 20px;
  }

  #eb-fullcalendar-filter-container {
    grid-template-columns: 1fr;
    padding: 14px;
    border-radius: 18px;
  }

  #eb-fullcalendar-filter-container .btn-group:last-child,
  #eb-fullcalendar-filter-container .filter-search:first-child {
    grid-column: auto;
  }

  #eb-fullcalendar-filter-container input[type="text"],
  #eb-fullcalendar-filter-container select,
  #eb-fullcalendar-filter-container .form-control,
  #eb-fullcalendar-filter-container .eb-btn-apply-fullcalendar-filter,
  #eb-fullcalendar-filter-container #btn-apply-calendar-filter {
    height: 52px !important;
  }

  #eb-calendar-page .fc .fc-toolbar {
    align-items: flex-start;
  }

  #eb-calendar-page .fc .fc-toolbar-title {
    font-size: 30px;
  }

  #eb-calendar-page .fc .fc-daygrid-day-frame {
    min-height: 130px;
  }
}

/* =========================================================
CHANIARTOON — FULL CALENDAR TYPOGRAPHY & SPACING FIX
Place this block at the VERY END of custom.css
========================================================= */

/* ---------------------------------------------------------
1. EVENT CARDS — keep time and title clearly separated
--------------------------------------------------------- */

#eb-calendar-page .fc .fc-event-main {
    padding: 10px 12px !important;
}

#eb-calendar-page .fc .fc-event-main-frame {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: start !important;
    column-gap: 10px !important;
    row-gap: 3px !important;
    min-width: 0;
}

#eb-calendar-page .fc .fc-event-time {
    display: block !important;
    margin: 0 !important;
    padding: 1px 0 0 !important;
    white-space: nowrap !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: 0.01em !important;
}

#eb-calendar-page .fc .fc-event-title-container {
    min-width: 0 !important;
}

#eb-calendar-page .fc .fc-event-title {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
}

/* Event Booking can sometimes output time and title without
   separate wrappers. This adds a safe visual gap as fallback. */
#eb-calendar-page .fc .fc-event-time + .fc-event-title-container,
#eb-calendar-page .fc .fc-event-time + .fc-event-title {
    margin-left: 0 !important;
}


/* ---------------------------------------------------------
2. DAY CELLS — more breathing room
--------------------------------------------------------- */

#eb-calendar-page .fc .fc-daygrid-day-frame {
    padding: 10px 9px 14px !important;
}

#eb-calendar-page .fc .fc-daygrid-day-top {
    min-height: 38px;
    padding-bottom: 8px !important;
}

#eb-calendar-page .fc .fc-daygrid-day-events {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin-top: 3px !important;
}

#eb-calendar-page .fc .fc-daygrid-event-harness {
    margin: 0 !important;
}

#eb-calendar-page .fc .fc-daygrid-event {
    margin: 0 !important;
}


/* ---------------------------------------------------------
3. NATIVE EVENT BOOKING FILTER BAR
   Also covers the default markup if the filter override
   is not being loaded.
--------------------------------------------------------- */

#eb-fullcalendar-filter-container.filters {
    display: grid !important;
    grid-template-columns:
        minmax(220px, 1.2fr)
        minmax(220px, 1fr)
        minmax(220px, 1fr)
        minmax(145px, auto);
    align-items: stretch !important;
    gap: 14px !important;
}

#eb-fullcalendar-filter-container.filters .filter-search,
#eb-fullcalendar-filter-container.filters .btn-group {
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

#eb-fullcalendar-filter-container.filters input[type="text"],
#eb-fullcalendar-filter-container.filters input[type="search"],
#eb-fullcalendar-filter-container.filters select,
#eb-fullcalendar-filter-container.filters .form-control,
#eb-fullcalendar-filter-container.filters .form-select {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 0 48px 0 18px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

#eb-fullcalendar-filter-container.filters input[type="text"],
#eb-fullcalendar-filter-container.filters input[type="search"] {
    padding-right: 18px !important;
}

#eb-fullcalendar-filter-container.filters
.eb-btn-apply-fullcalendar-filter,
#eb-fullcalendar-filter-container.filters
#btn-apply-calendar-filter {
    width: 100% !important;
    min-width: 145px !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 0 22px !important;
    white-space: nowrap !important;
}


/* ---------------------------------------------------------
4. PREMIUM FILTER OVERRIDE
--------------------------------------------------------- */

.ct-calendar-filters__fields {
    grid-template-columns:
        minmax(230px, 1.2fr)
        minmax(220px, 1fr)
        minmax(220px, 1fr)
        minmax(185px, auto) !important;
    gap: 14px !important;
}

.ct-calendar-filter-field {
    min-width: 0;
}

.ct-calendar-filter-field input,
.ct-calendar-filter-field select {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-right: 48px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.ct-calendar-filter-actions {
    min-width: 0;
}

.ct-calendar-filter-apply {
    min-width: 130px;
    white-space: nowrap;
}


/* ---------------------------------------------------------
5. CUSTOM MOBILE AGENDA DATE HEADING
--------------------------------------------------------- */

.ct-calendar-mobile-day__head {
    grid-template-columns: 100px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 18px !important;
    padding: 23px 0 !important;
}

.ct-calendar-mobile-day__date {
    white-space: nowrap !important;
    font-size: 39px !important;
    line-height: 1 !important;
    letter-spacing: -0.055em !important;
}

.ct-calendar-mobile-day__head strong {
    min-width: 0;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-transform: capitalize;
}

.ct-calendar-mobile-day__head > a {
    white-space: nowrap;
}


/* ---------------------------------------------------------
6. MOBILE
--------------------------------------------------------- */

@media (max-width: 700px) {

    /* One filter per row, so labels are never cut off. */
    #eb-fullcalendar-filter-container.filters,
    .ct-calendar-filters__fields {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 11px !important;
    }

    #eb-fullcalendar-filter-container.filters .filter-search,
    #eb-fullcalendar-filter-container.filters .btn-group {
        grid-column: auto !important;
        width: 100% !important;
    }

    #eb-fullcalendar-filter-container.filters
    .eb-btn-apply-fullcalendar-filter,
    #eb-fullcalendar-filter-container.filters
    #btn-apply-calendar-filter,
    .ct-calendar-filter-apply {
        width: 100% !important;
        min-width: 0 !important;
    }

    .ct-calendar-filter-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    .ct-calendar-filter-reset {
        justify-self: start;
    }

    /* Event typography inside narrow calendar cells. */
    #eb-calendar-page .fc .fc-event-main {
        padding: 9px 10px !important;
    }

    #eb-calendar-page .fc .fc-event-main-frame {
        grid-template-columns: max-content minmax(0, 1fr) !important;
        column-gap: 8px !important;
    }

    #eb-calendar-page .fc .fc-event-time {
        font-size: 9px !important;
        line-height: 1.4 !important;
    }

    #eb-calendar-page .fc .fc-event-title {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    #eb-calendar-page .fc .fc-daygrid-day-frame {
        padding: 8px 5px 11px !important;
    }

    /* Mobile agenda heading: date on its own row. */
    .ct-calendar-mobile-day__head {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 9px 14px !important;
    }

    .ct-calendar-mobile-day__date {
        grid-column: 1 / -1;
        font-size: 37px !important;
        margin-bottom: 2px;
    }

    .ct-calendar-mobile-day__head strong {
        font-size: 13px !important;
    }
}


/* Very narrow phones */
@media (max-width: 430px) {

    #eb-calendar-page .fc .fc-event-main-frame {
        grid-template-columns: 1fr !important;
        row-gap: 3px !important;
    }

    #eb-calendar-page .fc .fc-event-time {
        font-size: 9px !important;
    }

    #eb-calendar-page .fc .fc-event-title {
        font-size: 11px !important;
    }
}

/* =========================================================
CHANIARTOON — DATA-DRIVEN PREMIUM EXHIBITIONS V4
Replace the previous exhibition CSS block with this file.
========================================================= */

.ct-exhibition-page {
    --cte-ink: #191720;
    --cte-purple: #403b6e;
    --cte-purple-dark: #292548;
    --cte-violet: #b273e0;
    --cte-paper: #fcfaf6;
    --cte-cream: #f0ebe3;
    --cte-muted: #746f7d;
    --cte-line: rgba(25, 23, 32, 0.14);
    --cte-accent: #cfe977;
    --cte-accent-2: #b273e0;
    --cte-display: "Montserrat", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --cte-sans: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;

    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding: 0 !important;
    overflow: clip;
    color: var(--cte-ink);
    background: var(--cte-paper);
    font-family: var(--cte-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ct-exhibition-page *,
.ct-exhibition-page *::before,
.ct-exhibition-page *::after { box-sizing: border-box; }

.ct-exhibition-page h1,
.ct-exhibition-page h2,
.ct-exhibition-page h3,
.ct-exhibition-page p,
.ct-exhibition-page figure,
.ct-exhibition-page blockquote,
.ct-exhibition-page dl,
.ct-exhibition-page dd { margin-top: 0; }

.ct-exhibition-page a { color: inherit; text-decoration: none; }
.ct-exhibition-container { position: relative; width: min(1320px, calc(100% - 72px)); margin-inline: auto; }
.ct-exhibition-admin { position: fixed; z-index: 200; right: 18px; bottom: 18px; }

/* Reveal */
.ct-exhibition-js [data-exhibition-reveal] {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition: opacity .72s ease, transform .88s cubic-bezier(.22,1,.36,1);
    transition-delay: var(--cte-delay, 0ms);
}
.ct-exhibition-js [data-exhibition-reveal].is-visible { opacity: 1; transform: none; }

/* Hero */
.ct-exhibition-hero {
    position: relative;
    min-height: 820px;
    display: flex;
    align-items: center;
    padding: 140px 0 96px;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 12% 15%, color-mix(in srgb, var(--cte-accent) 16%, transparent), transparent 27%),
        radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--cte-accent-2) 13%, transparent), transparent 29%),
        linear-gradient(145deg, #15131b 0%, #211e2b 55%, #302b4d 100%);
}

.ct-exhibition-pattern--grid .ct-exhibition-hero::before,
.ct-exhibition-pattern--panels .ct-exhibition-hero::before {
    content: ""; position: absolute; inset: 0; opacity: .045;
    background-image: linear-gradient(rgba(255,255,255,.8) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.8) 1px, transparent 1px);
    background-size: 74px 74px;
}
.ct-exhibition-pattern--dots .ct-exhibition-hero::before { content:""; position:absolute; inset:0; opacity:.12; background-image:radial-gradient(circle, #fff 1px, transparent 1.5px); background-size:24px 24px; }
.ct-exhibition-pattern--paper .ct-exhibition-hero::before { content:""; position:absolute; inset:0; opacity:.06; background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.6) 0 1px, transparent 1px 4px); }
.ct-exhibition-pattern--ink .ct-exhibition-hero::before { content:""; position:absolute; inset:-20%; opacity:.12; background:radial-gradient(ellipse at 76% 30%, #000 0 5%, transparent 6%), radial-gradient(ellipse at 20% 80%, #000 0 7%, transparent 8%); filter:blur(18px); }

.ct-exhibition-hero__grid { z-index:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(410px,.66fr); align-items:center; gap:clamp(65px,8vw,120px); }
.ct-exhibition-eyebrow,
.ct-exhibition-section-label { display:inline-flex; align-items:center; gap:13px; font-size:9px; font-weight:900; line-height:1; letter-spacing:.16em; text-transform:uppercase; }
.ct-exhibition-eyebrow { color:var(--cte-accent); }
.ct-exhibition-section-label { color:var(--cte-purple); }
.ct-exhibition-eyebrow::before,
.ct-exhibition-section-label::before { content:""; width:34px; height:1px; background:currentColor; }

.ct-exhibition-hero h1 { max-width:830px; margin:28px 0 22px; color:#fff; font-family:var(--cte-display); font-size:clamp(68px,8.2vw,132px); font-weight:800; line-height:.83; letter-spacing:-.07em; overflow-wrap:anywhere; text-wrap:balance; }
.ct-exhibition-hero__artist { display:block; margin-bottom:17px; color:var(--cte-accent-2); font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.ct-exhibition-hero__subtitle { max-width:660px; margin-bottom:35px; color:rgba(255,255,255,.68); font-size:17px; line-height:1.7; }
.ct-exhibition-hero__quickfacts { display:flex; flex-wrap:wrap; gap:24px 42px; }
.ct-exhibition-hero__quickfacts span { display:grid; gap:7px; color:#fff; font-size:11px; font-weight:750; }
.ct-exhibition-hero__quickfacts b { color:var(--cte-accent); font-size:8px; letter-spacing:.13em; }

.ct-exhibition-hero__visual { position:relative; min-height:575px; overflow:hidden; border-radius:32px; background:#69636e; box-shadow:0 45px 90px rgba(0,0,0,.27); transform-style:preserve-3d; will-change:transform; }
.ct-exhibition-hero__visual img { display:block; width:100%; height:100%; min-height:575px; object-fit:cover; object-position:center; }
.ct-exhibition-focus--top img { object-position:center top; }
.ct-exhibition-focus--bottom img { object-position:center bottom; }
.ct-exhibition-focus--left img { object-position:left center; }
.ct-exhibition-focus--right img { object-position:right center; }
.ct-exhibition-hero__visual::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(16,14,21,.62), transparent 52%); pointer-events:none; }
.ct-exhibition-hero__visual figcaption { position:absolute; z-index:3; left:24px; bottom:22px; max-width:70%; color:rgba(255,255,255,.68); font-size:9px; line-height:1.45; }
.ct-exhibition-hero__number { position:absolute; z-index:3; right:20px; bottom:-25px; color:rgba(255,255,255,.16); font-family:var(--cte-display); font-size:165px; font-weight:900; line-height:1; letter-spacing:-.09em; }

/* Hero compositions */
.ct-exhibition-hero-layout--full .ct-exhibition-hero { min-height:920px; align-items:flex-end; }
.ct-exhibition-hero-layout--full .ct-exhibition-hero__grid { display:block; }
.ct-exhibition-hero-layout--full .ct-exhibition-hero__visual { position:absolute; inset:0; min-height:100%; border-radius:0; box-shadow:none; }
.ct-exhibition-hero-layout--full .ct-exhibition-hero__visual img { min-height:100%; }
.ct-exhibition-hero-layout--full .ct-exhibition-hero__visual::after { background:linear-gradient(90deg, rgba(9,8,12,.88), rgba(9,8,12,.28) 65%, rgba(9,8,12,.46)); }
.ct-exhibition-hero-layout--full .ct-exhibition-hero__content { position:relative; z-index:4; width:min(800px,70%); }

.ct-exhibition-hero-layout--cover .ct-exhibition-hero__grid { grid-template-columns:minmax(0,.82fr) minmax(430px,.72fr); }
.ct-exhibition-hero-layout--cover .ct-exhibition-hero__visual { transform:rotate(2deg); border-radius:8px; box-shadow:22px 28px 0 color-mix(in srgb, var(--cte-accent) 58%, transparent), 0 45px 90px rgba(0,0,0,.28); }

.ct-exhibition-hero-layout--archive .ct-exhibition-hero { background:linear-gradient(145deg,#191612,#312820 58%,#514130); }
.ct-exhibition-hero-layout--archive .ct-exhibition-hero__grid { grid-template-columns:minmax(0,.72fr) minmax(500px,1fr); }
.ct-exhibition-hero-layout--archive .ct-exhibition-hero__visual { border-radius:2px; }

/* Signature */
.ct-exhibition-signature { position:absolute; z-index:5; pointer-events:none; opacity:.72; }
.ct-exhibition-signature img { display:block; max-width:min(260px,25vw); max-height:260px; object-fit:contain; }
.ct-exhibition-signature span { display:block; max-width:280px; color:color-mix(in srgb, var(--cte-accent) 76%, #fff); font-family:var(--cte-display); font-size:clamp(34px,5vw,78px); font-weight:850; line-height:.85; letter-spacing:-.06em; }
.ct-exhibition-signature--right { right:0; top:9%; }
.ct-exhibition-signature--left { left:0; bottom:7%; }
.ct-exhibition-signature--center { left:50%; top:50%; transform:translate(-50%,-50%); }
.ct-exhibition-signature-motion--float { animation:cteFloat 6s ease-in-out infinite; }
.ct-exhibition-signature-motion--rotate { animation:cteRotate 18s linear infinite; }
@keyframes cteFloat { 50% { transform:translateY(-14px); } }
@keyframes cteRotate { to { transform:rotate(360deg); } }

/* Facts */
.ct-exhibition-facts { background:var(--cte-accent); }
.ct-exhibition-facts__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.ct-exhibition-facts__grid > div { min-width:0; min-height:126px; display:flex; flex-direction:column; justify-content:space-between; gap:13px; padding:28px 25px; border-right:1px solid rgba(26,24,33,.16); border-bottom:1px solid rgba(26,24,33,.16); }
.ct-exhibition-facts span { color:rgba(26,24,33,.55); font-size:8px; font-weight:900; letter-spacing:.13em; }
.ct-exhibition-facts strong,
.ct-exhibition-facts a { color:var(--cte-ink); font-size:12px; font-weight:850; line-height:1.35; }

/* Sticky contents */
.ct-exhibition-body { position:relative; }
.ct-exhibition-toc { position:absolute; z-index:20; left:max(18px,calc((100vw - 1450px)/2)); top:100px; bottom:100px; width:120px; pointer-events:none; }
.ct-exhibition-toc__inner { position:sticky; top:120px; display:grid; gap:20px; pointer-events:auto; }
.ct-exhibition-toc__inner > strong { color:var(--cte-accent-2); font-family:var(--cte-display); font-size:46px; font-weight:850; line-height:1; }
.ct-exhibition-toc nav { display:grid; gap:9px; }
.ct-exhibition-toc nav a { color:var(--cte-muted); font-size:8px; font-weight:850; line-height:1.25; letter-spacing:.08em; text-transform:uppercase; transition:color .2s ease, transform .2s ease; }
.ct-exhibition-toc nav a.is-active { color:var(--cte-purple); transform:translateX(5px); }
.ct-exhibition-toc__progress { width:1px; height:110px; background:var(--cte-line); overflow:hidden; }
.ct-exhibition-toc__progress i { display:block; width:100%; height:var(--cte-progress,0%); background:var(--cte-accent-2); }

/* Main sections */
.ct-exhibition-main { padding:125px 0 135px; background:radial-gradient(circle at 96% 4%, color-mix(in srgb,var(--cte-accent) 12%,transparent), transparent 25%), var(--cte-paper); }
.ct-exhibition-section { margin-bottom:125px; scroll-margin-top:120px; }
.ct-exhibition-section:last-child { margin-bottom:0; }
.ct-exhibition-section-head { margin-bottom:42px; }
.ct-exhibition-section-head h2 { max-width:970px; margin:20px 0 0; color:var(--cte-purple-dark); font-family:var(--cte-display); font-size:clamp(48px,5.8vw,88px); font-weight:790; line-height:.92; letter-spacing:-.06em; text-wrap:balance; }
.ct-exhibition-prose { color:var(--cte-muted); font-size:16px; line-height:1.82; }
.ct-exhibition-prose > *:first-child { margin-top:0; }
.ct-exhibition-prose > *:last-child { margin-bottom:0; }
.ct-exhibition-prose p:first-child { color:#403b49; font-size:18px; }
.ct-exhibition-prose h3 { margin:35px 0 12px; color:var(--cte-purple-dark); font-family:var(--cte-display); font-size:28px; font-weight:760; letter-spacing:-.03em; }
.ct-exhibition-prose a { color:var(--cte-purple); text-decoration:underline; text-underline-offset:4px; }

/* Intro */
.ct-exhibition-intro { display:grid; grid-template-columns:minmax(0,.88fr) minmax(420px,1fr); gap:clamp(70px,10vw,145px); align-items:start; }

/* Feature */
.ct-exhibition-feature figure { margin:0; }
.ct-exhibition-feature img { display:block; width:100%; max-height:850px; object-fit:cover; border-radius:28px; }
.ct-exhibition-feature figcaption { margin-top:13px; color:var(--cte-muted); font-size:10px; line-height:1.5; }
.ct-exhibition-feature--offset-left figure { width:82%; margin-right:auto; }
.ct-exhibition-feature--offset-right figure { width:82%; margin-left:auto; }
.ct-exhibition-feature--portrait figure { width:min(680px,75%); margin-inline:auto; }

/* Secondary */
.ct-exhibition-secondary { display:grid; grid-template-columns:minmax(300px,.75fr) minmax(0,1fr); gap:clamp(60px,9vw,130px); align-items:center; }
.ct-exhibition-secondary--image-right .ct-exhibition-secondary__visual { order:2; }
.ct-exhibition-secondary--full { grid-template-columns:1fr; }
.ct-exhibition-secondary__visual { min-height:560px; overflow:hidden; border-radius:28px; background:var(--cte-cream); }
.ct-exhibition-secondary__visual img { display:block; width:100%; height:100%; min-height:560px; object-fit:cover; }

/* Gallery */
.ct-exhibition-gallery__grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; }
.ct-exhibition-gallery__item { grid-column:span 4; margin:0; }
.ct-exhibition-gallery__item--wide { grid-column:span 8; }
.ct-exhibition-gallery__item--full { grid-column:1/-1; }
.ct-exhibition-gallery__item--tall { grid-column:span 4; grid-row:span 2; }
.ct-exhibition-gallery__button { position:relative; width:100%; padding:0; overflow:hidden; background:#17151c; border:0; border-radius:22px; cursor:zoom-in; }
.ct-exhibition-gallery__button img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .65s cubic-bezier(.22,1,.36,1); }
.ct-exhibition-gallery__item--tall img { aspect-ratio:3/5; }
.ct-exhibition-gallery__item--wide img { aspect-ratio:16/9; }
.ct-exhibition-gallery__button > span { position:absolute; right:15px; bottom:12px; color:#fff; font-size:20px; }
.ct-exhibition-gallery__button:hover img { transform:scale(1.045); }
.ct-exhibition-gallery figcaption { display:grid; gap:4px; margin-top:10px; color:var(--cte-muted); font-size:10px; }
.ct-exhibition-gallery figcaption strong { color:var(--cte-purple-dark); font-size:12px; }
.ct-exhibition-gallery figcaption small { opacity:.72; }
.ct-exhibition-gallery--strips .ct-exhibition-gallery__grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:16px; }
.ct-exhibition-gallery--strips .ct-exhibition-gallery__item { flex:0 0 min(880px,82vw); scroll-snap-align:center; }
.ct-exhibition-gallery--dark .ct-exhibition-gallery__grid { padding:35px; background:#121014; }
.ct-exhibition-gallery--dark figcaption strong { color:#fff; }

/* Timeline */
.ct-exhibition-timeline__items { border-top:1px solid var(--cte-line); }
.ct-exhibition-timeline__item { display:grid; grid-template-columns:170px minmax(0,1fr) minmax(0,280px); gap:35px; align-items:start; padding:36px 0; border-bottom:1px solid var(--cte-line); }
.ct-exhibition-timeline time { color:var(--cte-accent-2); font-family:var(--cte-display); font-size:44px; font-weight:850; line-height:1; letter-spacing:-.05em; }
.ct-exhibition-timeline h3 { margin:0 0 12px; color:var(--cte-purple-dark); font-family:var(--cte-display); font-size:28px; letter-spacing:-.03em; }
.ct-exhibition-timeline__item img { width:100%; max-height:190px; object-fit:cover; border-radius:14px; }
.ct-exhibition-timeline--horizontal .ct-exhibition-timeline__items { display:flex; overflow-x:auto; gap:18px; border:0; scroll-snap-type:x mandatory; }
.ct-exhibition-timeline--horizontal .ct-exhibition-timeline__item { flex:0 0 min(430px,82vw); display:block; padding:28px; border:1px solid var(--cte-line); scroll-snap-align:start; }

/* People */
.ct-exhibition-people__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ct-exhibition-person { overflow:hidden; background:var(--cte-cream); border-radius:22px; }
.ct-exhibition-person > img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
.ct-exhibition-person > div { position:relative; padding:24px; }
.ct-exhibition-person span { color:var(--cte-accent-2); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.ct-exhibition-person h3 { margin:9px 0 16px; color:var(--cte-purple-dark); font-family:var(--cte-display); font-size:30px; line-height:1; letter-spacing:-.04em; }
.ct-exhibition-person a { position:absolute; right:22px; top:22px; }
.ct-exhibition-people--mosaic .ct-exhibition-person:nth-child(4n+1) { grid-column:span 2; }

/* Cards */
.ct-exhibition-cards__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cte-line); border-left:1px solid var(--cte-line); }
.ct-exhibition-card { min-height:280px; display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1fr); border-right:1px solid var(--cte-line); border-bottom:1px solid var(--cte-line); }
.ct-exhibition-card > img { width:100%; height:100%; object-fit:cover; }
.ct-exhibition-card > div { position:relative; display:flex; flex-direction:column; padding:28px; }
.ct-exhibition-card span { color:var(--cte-accent-2); font-family:var(--cte-display); font-size:38px; font-weight:850; }
.ct-exhibition-card h3 { margin:auto 0 12px; color:var(--cte-purple-dark); font-family:var(--cte-display); font-size:30px; line-height:1; letter-spacing:-.04em; }
.ct-exhibition-card a { position:absolute; right:20px; top:20px; }
.ct-exhibition-cards--panels .ct-exhibition-card { box-shadow:7px 7px 0 color-mix(in srgb,var(--cte-accent) 60%,transparent); margin:8px; border:2px solid var(--cte-ink); }

/* Quote */
.ct-exhibition-quote { position:relative; margin:0; padding:80px clamp(35px,7vw,105px); overflow:hidden; color:var(--cte-ink); background:var(--cte-accent); border-radius:28px; }
.ct-exhibition-quote::before { content:"“"; position:absolute; left:26px; top:-55px; color:rgba(26,24,33,.1); font:260px/1 Georgia,serif; }
.ct-exhibition-quote .ct-exhibition-section-label { position:relative; z-index:2; }
.ct-exhibition-quote p { position:relative; z-index:2; max-width:1050px; margin:25px 0 34px; font-family:var(--cte-display); font-size:clamp(36px,5vw,73px); font-weight:760; line-height:1; letter-spacing:-.045em; }
.ct-exhibition-quote cite { position:relative; z-index:2; color:rgba(26,24,33,.64); font-size:9px; font-style:normal; font-weight:900; letter-spacing:.14em; }

/* Related */
.ct-exhibition-related__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.ct-exhibition-related-card { overflow:hidden; background:#17151d; border-radius:20px; color:#fff !important; }
.ct-exhibition-related-card img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; opacity:.82; }
.ct-exhibition-related-card > div { position:relative; padding:24px; }
.ct-exhibition-related-card span { color:var(--cte-accent); font-size:8px; font-weight:900; letter-spacing:.12em; }
.ct-exhibition-related-card h3 { margin:12px 0; font-family:var(--cte-display); font-size:28px; line-height:1; letter-spacing:-.04em; }
.ct-exhibition-related-card p { margin:0; color:rgba(255,255,255,.62); font-size:10px; }
.ct-exhibition-related-card b { position:absolute; right:22px; top:22px; }

/* Visit */
.ct-exhibition-visit { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1fr); gap:clamp(60px,9vw,130px); padding-top:100px; border-top:1px solid var(--cte-line); }
.ct-exhibition-visit__details dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--cte-line); border-left:1px solid var(--cte-line); }
.ct-exhibition-visit__details dl > div { min-height:135px; display:flex; flex-direction:column; justify-content:space-between; gap:15px; padding:25px; border-right:1px solid var(--cte-line); border-bottom:1px solid var(--cte-line); }
.ct-exhibition-visit dt { color:var(--cte-accent-2); font-size:8px; font-weight:900; letter-spacing:.13em; }
.ct-exhibition-visit dd { color:var(--cte-purple-dark); font-size:13px; font-weight:800; line-height:1.45; }

/* Visual navigation */
.ct-exhibition-nav { padding:40px 0; color:#fff; background:#15131a; }
.ct-exhibition-nav__grid { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:22px; }
.ct-exhibition-nav-card { position:relative; min-height:165px; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; overflow:hidden; border:1px solid rgba(255,255,255,.12); }
.ct-exhibition-nav-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.25; transition:opacity .25s ease, transform .6s cubic-bezier(.22,1,.36,1); }
.ct-exhibition-nav-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(15,13,18,.95),rgba(15,13,18,.12)); }
.ct-exhibition-nav-card span,
.ct-exhibition-nav-card strong { position:relative; z-index:2; }
.ct-exhibition-nav-card span { color:var(--cte-accent); font-size:8px; font-weight:900; letter-spacing:.12em; }
.ct-exhibition-nav-card strong { margin-top:9px; font-size:13px; }
.ct-exhibition-nav-card:hover img { opacity:.48; transform:scale(1.04); }
.ct-exhibition-nav-card--next { text-align:right; }
.ct-exhibition-nav__all { align-self:center; padding:16px 18px; color:var(--cte-accent) !important; border:1px solid rgba(255,255,255,.18); font-size:9px; font-weight:900; letter-spacing:.1em; text-align:center; }

/* Lightbox */
.ct-exhibition-lightbox { position:fixed; z-index:10000; inset:0; display:grid; grid-template-columns:80px minmax(0,1fr) 80px; align-items:center; padding:30px; color:#fff; background:rgba(8,7,10,.97); }
.ct-exhibition-lightbox[hidden] { display:none !important; }
.ct-exhibition-lightbox figure { max-width:1500px; max-height:92vh; margin:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,340px); gap:30px; align-items:end; }
.ct-exhibition-lightbox figure img { display:block; max-width:100%; max-height:88vh; object-fit:contain; }
.ct-exhibition-lightbox figcaption { display:grid; gap:10px; color:rgba(255,255,255,.66); }
.ct-exhibition-lightbox figcaption strong { color:#fff; font-family:var(--cte-display); font-size:30px; line-height:1; }
.ct-exhibition-lightbox figcaption p { margin:0; }
.ct-exhibition-lightbox__close { position:absolute; right:25px; top:20px; width:48px; height:48px; color:#fff; background:transparent; border:1px solid rgba(255,255,255,.25); border-radius:50%; font-size:28px; cursor:pointer; }
.ct-exhibition-lightbox__nav { width:56px; height:56px; color:#fff; background:transparent; border:1px solid rgba(255,255,255,.25); border-radius:50%; cursor:pointer; }

/* Variant character */
.ct-exhibition-page--children .ct-exhibition-hero { background:radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--cte-accent) 31%,transparent),transparent 28%),radial-gradient(circle at 88% 76%,color-mix(in srgb,var(--cte-accent-2) 23%,transparent),transparent 30%),linear-gradient(145deg,#28233f,#40396b 58%,#65589d); }
.ct-exhibition-page--children :is(.ct-exhibition-hero__visual,.ct-exhibition-feature img,.ct-exhibition-secondary__visual,.ct-exhibition-quote,.ct-exhibition-gallery__button) { border-radius:46px; }
.ct-exhibition-page--archive { --cte-purple:#655644; --cte-purple-dark:#342d25; --cte-violet:#967653; --cte-paper:#f5efe5; --cte-cream:#e8ddce; }
.ct-exhibition-page--archive :is(.ct-exhibition-hero__visual,.ct-exhibition-feature img,.ct-exhibition-secondary__visual,.ct-exhibition-gallery__button) { border-radius:3px; }
.ct-exhibition-page--dark { --cte-purple:#7d5369; --cte-purple-dark:#241820; --cte-paper:#f4f0ee; --cte-cream:#e6ddda; }
.ct-exhibition-page--dark .ct-exhibition-hero { background:radial-gradient(circle at 82% 20%,color-mix(in srgb,var(--cte-accent) 18%,transparent),transparent 24%),linear-gradient(145deg,#08080a,#171116 58%,#2b1720); }
.ct-exhibition-page--dark :is(.ct-exhibition-hero__visual,.ct-exhibition-feature img,.ct-exhibition-secondary__visual,.ct-exhibition-gallery__button,.ct-exhibition-quote) { border-radius:2px; }
.ct-exhibition-page--dark .ct-exhibition-quote { color:#fff; background:linear-gradient(135deg,#171116,color-mix(in srgb,var(--cte-accent) 44%,#171116)); }
.ct-exhibition-page--anthology .ct-exhibition-hero { background:radial-gradient(circle at 13% 19%,color-mix(in srgb,var(--cte-accent) 24%,transparent),transparent 25%),radial-gradient(circle at 84% 78%,color-mix(in srgb,var(--cte-accent-2) 22%,transparent),transparent 28%),linear-gradient(145deg,#241d35,#3d315e 58%,#675184); }
.ct-exhibition-page--social { --cte-purple:#4f5f5b; --cte-purple-dark:#26312f; --cte-paper:#f6f3ed; --cte-cream:#e8e2d7; }
.ct-exhibition-page--social .ct-exhibition-hero { background:radial-gradient(circle at 76% 26%,color-mix(in srgb,var(--cte-accent) 13%,transparent),transparent 26%),linear-gradient(145deg,#171c1b,#26312f 60%,#3a4a45); }
.ct-exhibition-page--humor .ct-exhibition-hero { background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(145deg,#211d33,#40396c 57%,#625993); background-size:28px 28px,28px 28px,auto; }
.ct-exhibition-page--humor :is(.ct-exhibition-hero__visual,.ct-exhibition-feature img,.ct-exhibition-gallery__button,.ct-exhibition-card) { box-shadow:7px 7px 0 color-mix(in srgb,var(--cte-accent) 62%,transparent); }
.ct-exhibition-page--magazine { --cte-purple:#31566a; --cte-purple-dark:#183343; }
.ct-exhibition-page--magazine .ct-exhibition-hero { background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(145deg,#13232d,#244b5c 58%,#39768b); background-size:58px 58px,58px 58px,auto; }

/* Responsive */
@media (max-width:1500px) { .ct-exhibition-toc { display:none; } }
@media (max-width:1020px) {
    .ct-exhibition-container { width:min(100% - 48px,950px); }
    .ct-exhibition-hero__grid { grid-template-columns:minmax(0,1fr) 380px; gap:55px; }
    .ct-exhibition-intro,.ct-exhibition-visit { grid-template-columns:1fr; }
    .ct-exhibition-people__grid,.ct-exhibition-related__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
    .ct-exhibition-hero { min-height:auto; padding:125px 0 85px; }
    .ct-exhibition-hero__grid,.ct-exhibition-secondary { grid-template-columns:1fr; }
    .ct-exhibition-hero-layout--full .ct-exhibition-hero { min-height:780px; }
    .ct-exhibition-hero-layout--full .ct-exhibition-hero__content { width:100%; }
    .ct-exhibition-secondary--image-right .ct-exhibition-secondary__visual { order:0; }
    .ct-exhibition-main { padding:95px 0 105px; }
    .ct-exhibition-timeline__item { grid-template-columns:120px minmax(0,1fr); }
    .ct-exhibition-timeline__item img { grid-column:2; }
    .ct-exhibition-nav__grid { grid-template-columns:1fr; }
    .ct-exhibition-nav__all { grid-row:2; }
    .ct-exhibition-lightbox { grid-template-columns:50px minmax(0,1fr) 50px; padding:18px; }
    .ct-exhibition-lightbox figure { grid-template-columns:1fr; }
}
@media (max-width:600px) {
    .ct-exhibition-container { width:calc(100% - 28px); }
    .ct-exhibition-hero h1 { font-size:clamp(56px,17vw,82px); }
    .ct-exhibition-hero__visual,.ct-exhibition-hero__visual img { min-height:430px; }
    .ct-exhibition-section { margin-bottom:90px; }
    .ct-exhibition-section-head h2 { font-size:clamp(43px,13vw,63px); }
    .ct-exhibition-intro { display:block; }
    .ct-exhibition-intro .ct-exhibition-section-head { margin-bottom:35px; }
    .ct-exhibition-prose { font-size:15px; }
    .ct-exhibition-secondary__visual,.ct-exhibition-secondary__visual img { min-height:420px; }
    .ct-exhibition-gallery__grid { display:block; }
    .ct-exhibition-gallery__item { margin-bottom:25px; }
    .ct-exhibition-people__grid,.ct-exhibition-related__grid,.ct-exhibition-cards__grid,.ct-exhibition-visit__details dl { grid-template-columns:1fr; }
    .ct-exhibition-card { grid-template-columns:1fr; }
    .ct-exhibition-timeline__item { display:block; }
    .ct-exhibition-timeline time { display:block; margin-bottom:15px; }
    .ct-exhibition-timeline__item img { margin-top:20px; }
    .ct-exhibition-quote { padding:55px 25px; }
    .ct-exhibition-lightbox { grid-template-columns:1fr; padding:55px 14px 18px; }
    .ct-exhibition-lightbox__nav { position:absolute; bottom:15px; }
    .ct-exhibition-lightbox__nav--prev { left:15px; }
    .ct-exhibition-lightbox__nav--next { right:15px; }
}
@media (prefers-reduced-motion:reduce) {
    .ct-exhibition-page *, .ct-exhibition-page *::before, .ct-exhibition-page *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
    .ct-exhibition-js [data-exhibition-reveal] { opacity:1; transform:none; }
}
/* =========================================================
CHANIARTOON EXHIBITION V4.1 — TOC OVERLAP FIX
Βάλ' το στο ΤΕΛΟΣ του custom.css.
========================================================= */

@media (min-width:1651px) {
    .ct-exhibition-toc {
        left: calc(50% - 825px);
        width:130px;
    }
}

@media (max-width:1650px) {
    .ct-exhibition-toc {
        display:none;
    }
}

/* =========================================================
CHANIARTOON EXHIBITION — STICKY TOC FIX
Βάλ' το στο ΤΕΛΟΣ του custom.css.
Αφορά μόνο το αριστερό ευρετήριο περιεχομένων.
========================================================= */

@media (min-width: 1660px) {
    .ct-exhibition-toc {
        display: block !important;
        position: absolute;
        z-index: 40;
        top: 100px;
        right: auto;
        bottom: auto;
        left: calc((100vw - 1320px) / 2 - 135px);
        width: 110px;
        pointer-events: none;
    }

    .ct-exhibition-toc__inner {
        position: relative;
        top: auto;
        display: grid;
        gap: 20px;
        pointer-events: auto;
    }

    .ct-exhibition-toc.is-fixed {
        position: fixed;
        top: 120px;
        bottom: auto;
    }

    .ct-exhibition-toc.is-at-bottom {
        position: absolute;
        top: auto;
        bottom: 100px;
    }
}

/* Σε μικρότερες οθόνες δεν υπάρχει αρκετό ασφαλές περιθώριο αριστερά. */
@media (max-width: 1659px) {
    .ct-exhibition-toc {
        display: none !important;
    }
}

/* =========================================================
CHANIARTOON — PREMIUM EXHIBITIONS LANDING
========================================================= */

.ct-exhibitions-index {
    --ctei-accent:#b273e0;
    --ctei-accent-2:#cfe977;
    --ctei-ink:#17172f;
    --ctei-paper:#f7f4ef;
    --ctei-muted:#6f6c77;
    --ctei-display:Georgia, "Times New Roman", serif;
    position:relative;
    left:50%;
    width:100vw;
    margin-left:-50vw;
    overflow:hidden;
    color:var(--ctei-ink);
    background:var(--ctei-paper);
}

.ct-exhibitions-index *,
.ct-exhibitions-index *::before,
.ct-exhibitions-index *::after {
    box-sizing:border-box;
}

.ct-exhibitions-index a {
    color:inherit;
    text-decoration:none;
}

.ct-exhibitions-index button {
    font:inherit;
}

/* Hero */
.ct-exhibitions-index__hero {
    position:relative;
    isolation:isolate;
    min-height:780px;
    padding:150px max(36px, calc((100vw - 1440px) / 2)) 0;
    color:#fff;
    background:
        radial-gradient(circle at 14% 17%, color-mix(in srgb, var(--ctei-accent) 24%, transparent), transparent 27%),
        radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--ctei-accent-2) 14%, transparent), transparent 30%),
        linear-gradient(145deg, #161326 0%, #28213f 57%, #493b6e 100%);
}

.ct-exhibitions-index__hero::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
}

.ct-exhibitions-index--pattern-grid .ct-exhibitions-index__hero::before {
    opacity:.06;
    background-image:
        linear-gradient(rgba(255,255,255,.55) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.55) 1px, transparent 1px);
    background-size:60px 60px;
}

.ct-exhibitions-index--pattern-dots .ct-exhibitions-index__hero::before {
    opacity:.12;
    background-image:radial-gradient(circle, #fff 1px, transparent 1.5px);
    background-size:25px 25px;
}

.ct-exhibitions-index--pattern-paper .ct-exhibitions-index__hero::before {
    opacity:.08;
    background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.8) 0 1px, transparent 1px 5px);
}

.ct-exhibitions-index__hero-inner {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(430px, .82fr);
    align-items:center;
    gap:clamp(70px, 9vw, 145px);
    width:min(1440px, 100%);
    min-height:570px;
    margin:0 auto;
}

.ct-exhibitions-index__kicker {
    display:inline-flex;
    align-items:center;
    gap:14px;
    color:var(--ctei-accent-2);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ct-exhibitions-index__kicker::before {
    content:"";
    width:44px;
    height:1px;
    background:currentColor;
}

.ct-exhibitions-index__hero h1 {
    max-width:850px;
    margin:35px 0 35px;
    font-family:var(--ctei-display);
    font-size:clamp(82px, 10vw, 168px);
    font-weight:700;
    line-height:.82;
    letter-spacing:-.075em;
    text-wrap:balance;
}

.ct-exhibitions-index__intro {
    max-width:720px;
    color:rgba(255,255,255,.7);
    font-size:18px;
    line-height:1.8;
}

.ct-exhibitions-index__intro > *:last-child {
    margin-bottom:0;
}

.ct-exhibitions-index__hero-art {
    position:relative;
    min-height:580px;
}

.ct-exhibitions-index__hero-single {
    position:absolute;
    inset:0;
    margin:0;
    overflow:hidden;
    border-radius:34px;
    background:#6b6472;
    box-shadow:0 55px 120px rgba(0,0,0,.35);
    transform:rotate(2.3deg);
}

.ct-exhibitions-index__hero-single::after,
.ct-exhibitions-index__collage::after {
    content:"";
    position:absolute;
    inset:18px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:24px;
    pointer-events:none;
}

.ct-exhibitions-index__hero-single img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-exhibitions-index__collage {
    position:absolute;
    inset:0;
}

.ct-exhibitions-index__collage-item {
    position:absolute;
    margin:0;
    overflow:hidden;
    border-radius:24px;
    background:#4a4650;
    box-shadow:0 35px 80px rgba(0,0,0,.32);
}

.ct-exhibitions-index__collage-item img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-exhibitions-index__collage-item--1 {
    inset:0 14% 8% 4%;
    z-index:2;
    transform:rotate(-3deg);
}

.ct-exhibitions-index__collage-item--2 {
    width:46%;
    height:45%;
    right:-2%;
    top:-3%;
    z-index:3;
    transform:rotate(6deg);
}

.ct-exhibitions-index__collage-item--3 {
    width:44%;
    height:38%;
    right:-5%;
    bottom:0;
    z-index:4;
    transform:rotate(-4deg);
}

.ct-exhibitions-index__hero-abstract {
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:36px;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.17), transparent 25%),
        linear-gradient(135deg, var(--ctei-accent), var(--ctei-accent-2));
    box-shadow:0 55px 120px rgba(0,0,0,.32);
    transform:rotate(2deg);
}

.ct-exhibitions-index__hero-abstract span {
    color:rgba(255,255,255,.78);
    font-family:var(--ctei-display);
    font-size:clamp(170px, 22vw, 360px);
    font-weight:700;
    line-height:1;
    letter-spacing:-.12em;
}

.ct-exhibitions-index__stats {
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    width:min(1440px, 100%);
    margin:70px auto 0;
    border-top:1px solid rgba(255,255,255,.16);
}

.ct-exhibitions-index__stats > div {
    min-height:140px;
    padding:28px 30px;
    border-right:1px solid rgba(255,255,255,.14);
}

.ct-exhibitions-index__stats > div:first-child {
    padding-left:0;
}

.ct-exhibitions-index__stats > div:last-child {
    border-right:0;
}

.ct-exhibitions-index__stats span {
    display:block;
    margin-bottom:14px;
    color:var(--ctei-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
}

.ct-exhibitions-index__stats strong {
    display:block;
    color:#fff;
    font-size:clamp(18px, 2vw, 31px);
    font-weight:750;
    line-height:1.2;
}

/* Sticky filters */
.ct-exhibitions-filter {
    position:sticky;
    z-index:80;
    top:82px;
    border-bottom:1px solid rgba(23,23,47,.1);
    background:rgba(247,244,239,.91);
    backdrop-filter:blur(18px);
}

.ct-exhibitions-filter__inner {
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
    gap:45px;
    width:min(1440px, calc(100% - 72px));
    min-height:96px;
    margin:0 auto;
}

.ct-exhibitions-filter__title {
    color:var(--ctei-muted);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
    white-space:nowrap;
}

.ct-exhibitions-filter__buttons {
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:12px 0;
    scrollbar-width:none;
}

.ct-exhibitions-filter__buttons::-webkit-scrollbar {
    display:none;
}

.ct-exhibitions-filter button {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-height:43px;
    padding:0 17px;
    border:1px solid rgba(23,23,47,.12);
    border-radius:999px;
    color:var(--ctei-ink);
    background:transparent;
    font-size:10px;
    font-weight:850;
    letter-spacing:.075em;
    cursor:pointer;
    transition:border-color .25s ease, background .25s ease, color .25s ease, transform .25s ease;
}

.ct-exhibitions-filter button:hover {
    transform:translateY(-2px);
    border-color:var(--ctei-accent);
}

.ct-exhibitions-filter button.is-active {
    border-color:var(--ctei-ink);
    color:#fff;
    background:var(--ctei-ink);
}

.ct-exhibitions-filter button small {
    display:grid;
    place-items:center;
    min-width:21px;
    height:21px;
    border-radius:50%;
    color:var(--ctei-ink);
    background:var(--ctei-accent-2);
    font-size:9px;
}

/* Catalogue */
.ct-exhibitions-catalogue {
    width:min(1440px, calc(100% - 72px));
    margin:0 auto;
    padding:130px 0 150px;
}

.ct-exhibitions-catalogue__header {
    display:grid;
    grid-template-columns:180px minmax(0, 1fr) auto;
    align-items:end;
    gap:40px;
    margin-bottom:62px;
    padding-bottom:30px;
    border-bottom:1px solid rgba(23,23,47,.16);
}

.ct-exhibitions-catalogue__header > span {
    color:var(--ctei-accent);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
}

.ct-exhibitions-catalogue__header h2 {
    max-width:850px;
    margin:0;
    font-family:var(--ctei-display);
    font-size:clamp(45px, 5.5vw, 86px);
    font-weight:700;
    line-height:.92;
    letter-spacing:-.055em;
}

.ct-exhibitions-catalogue__header p {
    display:flex;
    align-items:baseline;
    gap:9px;
    margin:0;
    color:var(--ctei-muted);
    font-size:12px;
}

.ct-exhibitions-catalogue__header strong {
    color:var(--ctei-ink);
    font-family:var(--ctei-display);
    font-size:46px;
    line-height:1;
}

.ct-exhibitions-grid {
    display:grid;
    grid-template-columns:repeat(12, minmax(0, 1fr));
    grid-auto-flow:dense;
    grid-auto-rows:82px;
    gap:22px;
}

.ct-exhibitions-card {
    position:relative;
    min-height:410px;
    overflow:hidden;
    border-radius:25px;
    background:#292631;
    box-shadow:0 30px 65px rgba(28,23,40,.11);
}

.ct-exhibitions-card--standard {
    grid-column:span 4;
    grid-row:span 5;
}

.ct-exhibitions-card--wide {
    grid-column:span 8;
    grid-row:span 5;
}

.ct-exhibitions-card--tall {
    grid-column:span 4;
    grid-row:span 7;
}

.ct-exhibitions-card--featured {
    grid-column:span 8;
    grid-row:span 7;
}

.ct-exhibitions-card > a {
    position:absolute;
    inset:0;
    display:block;
    overflow:hidden;
    color:#fff;
}

.ct-exhibitions-card__media,
.ct-exhibitions-card__abstract {
    position:absolute;
    inset:0;
}

.ct-exhibitions-card__media img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}

.ct-exhibitions-focus--top img { object-position:center top; }
.ct-exhibitions-focus--bottom img { object-position:center bottom; }
.ct-exhibitions-focus--left img { object-position:left center; }
.ct-exhibitions-focus--right img { object-position:right center; }
.ct-exhibitions-focus--center img { object-position:center; }

.ct-exhibitions-card__abstract {
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.2), transparent 26%),
        linear-gradient(135deg, var(--card-accent), var(--card-accent-2));
}

.ct-exhibitions-card__abstract::before {
    content:"";
    position:absolute;
    inset:0;
    opacity:.15;
    background-image:
        linear-gradient(rgba(255,255,255,.75) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.75) 1px, transparent 1px);
    background-size:42px 42px;
}

.ct-exhibitions-card__abstract span {
    position:relative;
    color:rgba(255,255,255,.72);
    font-family:var(--ctei-display);
    font-size:clamp(130px, 17vw, 260px);
    font-weight:700;
    letter-spacing:-.12em;
}

.ct-exhibitions-card__overlay {
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(10,9,15,.08) 15%, rgba(10,9,15,.18) 43%, rgba(10,9,15,.93) 100%),
        linear-gradient(90deg, rgba(10,9,15,.24), transparent 55%);
    transition:background .45s ease;
}

.ct-exhibitions-card__topline {
    position:absolute;
    z-index:3;
    top:25px;
    left:26px;
    right:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.ct-exhibitions-card__topline > span {
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:50%;
    color:#fff;
    background:rgba(10,9,15,.18);
    backdrop-filter:blur(10px);
    font-family:var(--ctei-display);
    font-size:24px;
    font-weight:700;
}

.ct-exhibitions-card__topline em {
    color:rgba(255,255,255,.84);
    font-size:8px;
    font-style:normal;
    font-weight:900;
    letter-spacing:.14em;
    text-align:right;
}

.ct-exhibitions-card__content {
    position:absolute;
    z-index:3;
    left:30px;
    right:70px;
    bottom:30px;
    transform:translateY(58px);
    transition:transform .5s cubic-bezier(.2,.7,.2,1);
}

.ct-exhibitions-card__artist {
    display:block;
    margin-bottom:12px;
    color:var(--card-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.ct-exhibitions-card h3 {
    max-width:760px;
    margin:0;
    font-family:var(--ctei-display);
    font-size:clamp(32px, 3.45vw, 62px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.055em;
    text-wrap:balance;
}

.ct-exhibitions-card--standard h3,
.ct-exhibitions-card--tall h3 {
    font-size:clamp(30px, 2.8vw, 48px);
}

.ct-exhibitions-card__content > p {
    max-width:660px;
    max-height:0;
    margin:16px 0 0;
    overflow:hidden;
    color:rgba(255,255,255,.72);
    font-size:14px;
    line-height:1.55;
    opacity:0;
    transition:max-height .5s ease, opacity .35s ease;
}

.ct-exhibitions-card__meta {
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    max-height:0;
    margin-top:16px;
    overflow:hidden;
    color:rgba(255,255,255,.58);
    font-size:9px;
    font-weight:800;
    letter-spacing:.08em;
    opacity:0;
    transition:max-height .5s ease, opacity .35s ease;
}

.ct-exhibitions-card__arrow {
    position:absolute;
    z-index:4;
    right:25px;
    bottom:26px;
    display:grid;
    place-items:center;
    width:45px;
    height:45px;
    border-radius:50%;
    color:var(--ctei-ink);
    background:var(--card-accent);
    font-size:18px;
    transition:transform .35s ease, background .35s ease;
}

.ct-exhibitions-card:hover img,
.ct-exhibitions-card:focus-within img {
    transform:scale(1.055);
    filter:saturate(1.08);
}

.ct-exhibitions-card:hover .ct-exhibitions-card__overlay,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__overlay {
    background:
        linear-gradient(180deg, rgba(10,9,15,.12) 8%, rgba(10,9,15,.3) 40%, rgba(10,9,15,.97) 100%);
}

.ct-exhibitions-card:hover .ct-exhibitions-card__content,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__content {
    transform:none;
}

.ct-exhibitions-card:hover .ct-exhibitions-card__content > p,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__content > p {
    max-height:110px;
    opacity:1;
}

.ct-exhibitions-card:hover .ct-exhibitions-card__meta,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__meta {
    max-height:70px;
    opacity:1;
}

.ct-exhibitions-card:hover .ct-exhibitions-card__arrow,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__arrow {
    transform:rotate(45deg);
    background:var(--card-accent-2);
}

.ct-exhibitions-card[hidden] {
    display:none !important;
}

.ct-exhibitions-empty {
    padding:80px 25px;
    border:1px solid rgba(23,23,47,.12);
    border-radius:24px;
    color:var(--ctei-muted);
    text-align:center;
}

/* CTA */
.ct-exhibitions-cta {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:end;
    gap:70px;
    width:min(1440px, calc(100% - 72px));
    margin:0 auto 120px;
    padding:75px 80px;
    border-radius:32px;
    color:#fff;
    background:
        radial-gradient(circle at 10% 20%, color-mix(in srgb, var(--ctei-accent) 24%, transparent), transparent 25%),
        linear-gradient(135deg, #17172f, #30284a);
    box-shadow:0 35px 80px rgba(23,23,47,.14);
}

.ct-exhibitions-cta > div > span {
    display:block;
    margin-bottom:20px;
    color:var(--ctei-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.17em;
}

.ct-exhibitions-cta h2 {
    max-width:890px;
    margin:0;
    font-family:var(--ctei-display);
    font-size:clamp(46px, 6vw, 92px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.06em;
}

.ct-exhibitions-cta p {
    max-width:670px;
    margin:28px 0 0;
    color:rgba(255,255,255,.66);
    font-size:16px;
    line-height:1.7;
}

.ct-exhibitions-cta > a {
    display:inline-flex;
    align-items:center;
    gap:25px;
    min-height:64px;
    padding:0 28px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#fff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    white-space:nowrap;
    transition:color .3s ease, background .3s ease, transform .3s ease;
}

.ct-exhibitions-cta > a:hover {
    color:var(--ctei-ink);
    background:var(--ctei-accent-2);
    transform:translateY(-3px);
}

.ct-exhibitions-pagination {
    margin-top:70px;
}

/* Reveal */
.ct-exhibitions-index-js [data-exhibitions-reveal] {
    opacity:0;
    transform:translateY(28px);
    transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1);
}

.ct-exhibitions-index-js [data-exhibitions-reveal].is-visible {
    opacity:1;
    transform:none;
}

/* Responsive */
@media (max-width:1250px) {
    .ct-exhibitions-index__hero {
        padding-inline:42px;
    }

    .ct-exhibitions-index__hero-inner {
        grid-template-columns:minmax(0, 1fr) minmax(360px, .75fr);
        gap:60px;
    }

    .ct-exhibitions-index__stats {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .ct-exhibitions-index__stats > div:nth-child(2) {
        border-right:0;
    }

    .ct-exhibitions-index__stats > div:nth-child(n+3) {
        border-top:1px solid rgba(255,255,255,.14);
    }

    .ct-exhibitions-card--standard,
    .ct-exhibitions-card--tall {
        grid-column:span 6;
    }

    .ct-exhibitions-card--wide,
    .ct-exhibitions-card--featured {
        grid-column:span 12;
    }
}

@media (max-width:900px) {
    .ct-exhibitions-index__hero {
        min-height:auto;
        padding:125px 28px 0;
    }

    .ct-exhibitions-index__hero-inner {
        grid-template-columns:1fr;
        min-height:auto;
    }

    .ct-exhibitions-index__hero h1 {
        font-size:clamp(68px, 16vw, 118px);
    }

    .ct-exhibitions-index__hero-art {
        min-height:520px;
    }

    .ct-exhibitions-index__stats {
        margin-top:65px;
    }

    .ct-exhibitions-filter {
        top:70px;
    }

    .ct-exhibitions-filter__inner {
        grid-template-columns:1fr;
        gap:0;
        width:calc(100% - 40px);
        padding:18px 0 8px;
    }

    .ct-exhibitions-catalogue {
        width:calc(100% - 40px);
        padding:90px 0 110px;
    }

    .ct-exhibitions-catalogue__header {
        grid-template-columns:1fr auto;
    }

    .ct-exhibitions-catalogue__header > span {
        grid-column:1 / -1;
    }

    .ct-exhibitions-grid {
        grid-auto-rows:auto;
    }

    .ct-exhibitions-card,
    .ct-exhibitions-card--standard,
    .ct-exhibitions-card--wide,
    .ct-exhibitions-card--tall,
    .ct-exhibitions-card--featured {
        grid-column:span 6;
        grid-row:auto;
        min-height:520px;
    }

    .ct-exhibitions-card__content {
        transform:none;
    }

    .ct-exhibitions-card__content > p,
    .ct-exhibitions-card__meta {
        max-height:120px;
        opacity:1;
    }

    .ct-exhibitions-cta {
        grid-template-columns:1fr;
        align-items:start;
        width:calc(100% - 40px);
        margin-bottom:80px;
        padding:55px 45px;
    }
}

@media (max-width:620px) {
    .ct-exhibitions-index__hero {
        padding-inline:20px;
    }

    .ct-exhibitions-index__hero-art {
        min-height:410px;
    }

    .ct-exhibitions-index__collage-item--2,
    .ct-exhibitions-index__collage-item--3 {
        display:none;
    }

    .ct-exhibitions-index__collage-item--1 {
        inset:0;
        transform:none;
    }

    .ct-exhibitions-index__stats {
        grid-template-columns:1fr;
    }

    .ct-exhibitions-index__stats > div,
    .ct-exhibitions-index__stats > div:first-child {
        min-height:auto;
        padding:23px 0;
        border-right:0;
        border-top:1px solid rgba(255,255,255,.14);
    }

    .ct-exhibitions-catalogue__header {
        grid-template-columns:1fr;
    }

    .ct-exhibitions-catalogue__header p {
        justify-self:start;
    }

    .ct-exhibitions-card,
    .ct-exhibitions-card--standard,
    .ct-exhibitions-card--wide,
    .ct-exhibitions-card--tall,
    .ct-exhibitions-card--featured {
        grid-column:1 / -1;
        min-height:500px;
    }

    .ct-exhibitions-card__content {
        left:23px;
        right:65px;
        bottom:24px;
    }

    .ct-exhibitions-card h3,
    .ct-exhibitions-card--standard h3,
    .ct-exhibitions-card--tall h3 {
        font-size:39px;
    }

    .ct-exhibitions-cta {
        padding:42px 26px;
        border-radius:24px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .ct-exhibitions-index *,
    .ct-exhibitions-index *::before,
    .ct-exhibitions-index *::after {
        scroll-behavior:auto !important;
        animation-duration:.01ms !important;
        transition-duration:.01ms !important;
    }

    .ct-exhibitions-index-js [data-exhibitions-reveal] {
        opacity:1;
        transform:none;
    }
}

/* =========================================================
CHANIARTOON — PREMIUM GUEST ARTICLE V1
========================================================= */

.ct-guest-page {
    --ctg-accent:#cfe977;
    --ctg-accent-2:#b273e0;
    --ctg-ink:#18172c;
    --ctg-paper:#f7f4ef;
    --ctg-soft:#ece8e2;
    --ctg-muted:#706d76;
    --ctg-line:rgba(24,23,44,.14);
    --ctg-display:Georgia, "Times New Roman", serif;
    position:relative;
    left:50%;
    width:100vw;
    margin-left:-50vw;
    overflow:clip;
    color:var(--ctg-ink);
    background:var(--ctg-paper);
}

.ct-guest-page *,
.ct-guest-page *::before,
.ct-guest-page *::after {
    box-sizing:border-box;
}

.ct-guest-page a {
    color:inherit;
    text-decoration:none;
}

.ct-guest-container {
    width:min(1260px, calc(100% - 72px));
    margin-inline:auto;
}

/* Hero */
.ct-guest-hero {
    position:relative;
    isolation:isolate;
    min-height:860px;
    padding:145px max(36px, calc((100vw - 1440px) / 2)) 0;
    overflow:hidden;
    color:#fff;
    background:
        radial-gradient(circle at 13% 18%, color-mix(in srgb, var(--ctg-accent) 22%, transparent), transparent 29%),
        radial-gradient(circle at 85% 82%, color-mix(in srgb, var(--ctg-accent-2) 20%, transparent), transparent 30%),
        linear-gradient(145deg, #171426 0%, #27203e 55%, #47366c 100%);
}

.ct-guest-hero::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
}

.ct-guest-page--pattern-grid .ct-guest-hero::before {
    opacity:.055;
    background-image:
        linear-gradient(rgba(255,255,255,.55) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.55) 1px, transparent 1px);
    background-size:58px 58px;
}

.ct-guest-page--pattern-dots .ct-guest-hero::before {
    opacity:.11;
    background-image:radial-gradient(circle, #fff 1px, transparent 1.5px);
    background-size:26px 26px;
}

.ct-guest-page--pattern-paper .ct-guest-hero::before {
    opacity:.07;
    background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.9) 0 1px, transparent 1px 5px);
}

.ct-guest-page--pattern-ink .ct-guest-hero::before {
    opacity:.12;
    background:
        radial-gradient(ellipse at 20% 30%, rgba(255,255,255,.18), transparent 22%),
        radial-gradient(ellipse at 83% 62%, rgba(255,255,255,.12), transparent 26%),
        repeating-radial-gradient(circle at 50% 50%, transparent 0 19px, rgba(255,255,255,.14) 20px 21px);
}

.ct-guest-hero__inner {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, .88fr) minmax(520px, 1.12fr);
    align-items:center;
    gap:clamp(70px, 9vw, 150px);
    width:min(1440px, 100%);
    min-height:650px;
    margin:0 auto;
}

.ct-guest-hero__copy {
    position:relative;
    z-index:4;
}

.ct-guest-hero__eyebrow {
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:40px;
}

.ct-guest-hero__eyebrow span {
    color:var(--ctg-accent);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
}

.ct-guest-hero__eyebrow strong {
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:50%;
    font-family:var(--ctg-display);
    font-size:24px;
}

.ct-guest-hero h1 {
    max-width:900px;
    margin:0;
    font-family:var(--ctg-display);
    font-size:clamp(78px, 9.5vw, 156px);
    font-weight:700;
    line-height:.82;
    letter-spacing:-.075em;
    text-wrap:balance;
}

.ct-guest-hero__native {
    margin:26px 0 0;
    color:rgba(255,255,255,.42);
    font-family:var(--ctg-display);
    font-size:25px;
    font-style:italic;
}

.ct-guest-hero__identity {
    display:flex;
    flex-wrap:wrap;
    gap:10px 26px;
    margin-top:35px;
}

.ct-guest-hero__identity span {
    position:relative;
    color:var(--ctg-accent);
    font-size:10px;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.ct-guest-hero__identity span + span::before {
    content:"";
    position:absolute;
    left:-14px;
    top:50%;
    width:3px;
    height:3px;
    border-radius:50%;
    background:rgba(255,255,255,.45);
}

.ct-guest-hero__subtitle {
    max-width:670px;
    margin:30px 0 0;
    color:rgba(255,255,255,.68);
    font-size:18px;
    line-height:1.75;
}

.ct-guest-hero__visual {
    position:relative;
    min-height:670px;
}

.ct-guest-hero__portrait,
.ct-guest-hero__art {
    position:absolute;
    margin:0;
    overflow:hidden;
    background:#635d69;
    box-shadow:0 50px 110px rgba(0,0,0,.34);
}

.ct-guest-hero__portrait {
    z-index:2;
    inset:0 3% 0 0;
    border-radius:220px 220px 34px 34px;
}

.ct-guest-hero__portrait img,
.ct-guest-hero__art img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-guest-focus--top img { object-position:center top; }
.ct-guest-focus--bottom img { object-position:center bottom; }
.ct-guest-focus--left img { object-position:left center; }
.ct-guest-focus--right img { object-position:right center; }
.ct-guest-focus--center img { object-position:center; }

.ct-guest-hero__portrait--abstract {
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.16), transparent 25%),
        linear-gradient(145deg, var(--ctg-accent), var(--ctg-accent-2));
}

.ct-guest-hero__portrait--abstract span {
    color:rgba(255,255,255,.72);
    font-family:var(--ctg-display);
    font-size:clamp(180px, 23vw, 380px);
    font-weight:700;
    letter-spacing:-.12em;
}

.ct-guest-hero__art {
    z-index:3;
    right:-5%;
    bottom:-5%;
    width:43%;
    height:43%;
    border:12px solid rgba(255,255,255,.92);
    border-radius:22px;
    transform:rotate(6deg);
}

.ct-guest-signature {
    position:absolute;
    z-index:5;
    max-width:190px;
    pointer-events:none;
}

.ct-guest-signature img {
    display:block;
    max-width:100%;
    max-height:150px;
    object-fit:contain;
}

.ct-guest-signature span {
    display:block;
    color:var(--ctg-accent);
    font-family:var(--ctg-display);
    font-size:32px;
    font-style:italic;
}

.ct-guest-signature--left {
    left:-55px;
    bottom:14%;
}

.ct-guest-signature--right {
    right:-55px;
    top:12%;
}

.ct-guest-signature--center {
    left:50%;
    bottom:3%;
    transform:translateX(-50%);
}

.ct-guest-signature--float {
    animation:ctGuestFloat 5s ease-in-out infinite;
}

.ct-guest-signature--rotate {
    animation:ctGuestRotate 9s ease-in-out infinite;
}

@keyframes ctGuestFloat {
    0%,100% { transform:translateY(0); }
    50% { transform:translateY(-12px); }
}

@keyframes ctGuestRotate {
    0%,100% { transform:rotate(-4deg); }
    50% { transform:rotate(4deg); }
}

/* Hero layouts */
.ct-guest-page--full-art .ct-guest-hero__inner {
    grid-template-columns:minmax(0, .8fr) minmax(620px, 1.2fr);
}

.ct-guest-page--full-art .ct-guest-hero__portrait {
    inset:14% 0 0 38%;
    border-radius:26px;
}

.ct-guest-page--full-art .ct-guest-hero__art {
    z-index:1;
    inset:-6% 15% 8% -8%;
    width:auto;
    height:auto;
    border:0;
    border-radius:32px;
    transform:rotate(-3deg);
}

.ct-guest-page--editorial-cover .ct-guest-hero__visual::before {
    content:"";
    position:absolute;
    inset:5% 8% -4% -6%;
    border:1px solid rgba(255,255,255,.25);
    border-radius:30px;
    transform:rotate(-5deg);
}

.ct-guest-page--editorial-cover .ct-guest-hero__portrait {
    inset:4% 8% 0 6%;
    border:16px solid #fff;
    border-radius:20px;
    transform:rotate(3deg);
}

.ct-guest-page--editorial-cover .ct-guest-hero__art {
    right:-1%;
    bottom:2%;
    width:38%;
    height:36%;
    transform:rotate(-7deg);
}

.ct-guest-page--minimal .ct-guest-hero__inner {
    grid-template-columns:minmax(0, 1fr) minmax(360px, .55fr);
}

.ct-guest-page--minimal .ct-guest-hero__portrait {
    inset:12% 4% 0;
    border-radius:50% 50% 24px 24px;
    box-shadow:none;
}

.ct-guest-page--minimal .ct-guest-hero__art {
    display:none;
}

/* Facts */
.ct-guest-facts {
    position:relative;
    z-index:5;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
    width:min(1440px, 100%);
    margin:70px auto 0;
    border-top:1px solid rgba(255,255,255,.15);
}

.ct-guest-fact {
    min-height:125px;
    padding:28px 30px;
    border-right:1px solid rgba(255,255,255,.13);
}

.ct-guest-fact:first-child {
    padding-left:0;
}

.ct-guest-fact:last-child {
    border-right:0;
}

.ct-guest-fact > span {
    display:block;
    margin-bottom:12px;
    color:var(--ctg-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
}

.ct-guest-fact strong,
.ct-guest-fact a {
    display:block;
    color:#fff;
    font-size:18px;
    font-weight:750;
    line-height:1.35;
}

/* Body + TOC */
.ct-guest-body {
    position:relative;
}

.ct-guest-toc {
    position:absolute;
    z-index:30;
    top:100px;
    bottom:100px;
    left:max(22px, calc((100vw - 1510px) / 2));
    width:120px;
}

.ct-guest-toc__inner {
    position:sticky;
    top:115px;
    display:grid;
    gap:22px;
}

.ct-guest-toc__inner > strong {
    color:var(--ctg-accent-2);
    font-family:var(--ctg-display);
    font-size:40px;
}

.ct-guest-toc nav {
    display:grid;
    gap:13px;
}

.ct-guest-toc nav a {
    display:grid;
    grid-template-columns:24px minmax(0, 1fr);
    gap:8px;
    align-items:start;
    color:rgba(24,23,44,.42);
    font-size:8px;
    font-weight:900;
    letter-spacing:.08em;
    line-height:1.35;
    text-transform:uppercase;
    transition:color .25s ease;
}

.ct-guest-toc nav a small {
    font-size:8px;
}

.ct-guest-toc nav a.is-active,
.ct-guest-toc nav a:hover {
    color:var(--ctg-ink);
}

.ct-guest-toc__progress {
    position:relative;
    display:block;
    width:2px;
    height:95px;
    background:rgba(24,23,44,.12);
}

.ct-guest-toc__progress i {
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:0;
    background:var(--ctg-accent-2);
}

.ct-guest-main {
    position:relative;
}

.ct-guest-section {
    position:relative;
    padding:125px 0;
    border-bottom:1px solid var(--ctg-line);
}

.ct-guest-section__header {
    display:grid;
    grid-template-columns:180px minmax(0, 1fr);
    gap:40px;
    align-items:start;
    margin-bottom:62px;
}

.ct-guest-section__header > span {
    padding-top:13px;
    color:var(--ctg-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.ct-guest-section__header h2 {
    max-width:950px;
    margin:0;
    font-family:var(--ctg-display);
    font-size:clamp(50px, 6vw, 92px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.06em;
    text-wrap:balance;
}

.ct-guest-prose {
    max-width:900px;
    margin-left:220px;
    color:#383642;
    font-size:18px;
    line-height:1.9;
}

.ct-guest-prose p:first-child::first-letter {
    float:left;
    margin:10px 13px 0 0;
    color:var(--ctg-accent-2);
    font-family:var(--ctg-display);
    font-size:88px;
    font-weight:700;
    line-height:.65;
}

.ct-guest-prose blockquote {
    margin:55px 0;
    padding-left:35px;
    border-left:4px solid var(--ctg-accent);
    font-family:var(--ctg-display);
    font-size:31px;
    line-height:1.35;
}

/* Secondary */
.ct-guest-secondary {
    background:#fff;
}

.ct-guest-secondary__grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(380px, .72fr);
    gap:clamp(70px, 9vw, 140px);
    align-items:center;
}

.ct-guest-secondary--image-right .ct-guest-secondary__content {
    order:1;
}

.ct-guest-secondary--image-right .ct-guest-secondary__media {
    order:2;
}

.ct-guest-secondary--image-left .ct-guest-secondary__content {
    order:2;
}

.ct-guest-secondary--image-left .ct-guest-secondary__media {
    order:1;
}

.ct-guest-secondary--full .ct-guest-secondary__grid {
    grid-template-columns:1fr;
}

.ct-guest-secondary__content .ct-guest-section__header {
    grid-template-columns:1fr;
    gap:20px;
}

.ct-guest-secondary__media {
    margin:0;
    overflow:hidden;
    border-radius:220px 220px 28px 28px;
    box-shadow:0 35px 80px rgba(24,23,44,.12);
}

.ct-guest-secondary__media img {
    display:block;
    width:100%;
    min-height:580px;
    object-fit:cover;
}

.ct-guest-richtext {
    color:#4c4954;
    font-size:16px;
    line-height:1.8;
}

/* Timeline */
.ct-guest-timeline {
    background:var(--ctg-soft);
}

.ct-guest-timeline__list {
    position:relative;
    margin-left:220px;
}

.ct-guest-timeline__list::before {
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:117px;
    width:1px;
    background:var(--ctg-line);
}

.ct-guest-timeline__item {
    position:relative;
    display:grid;
    grid-template-columns:90px minmax(0, 1fr) 190px;
    gap:55px;
    min-height:190px;
    padding:35px 0 55px;
}

.ct-guest-timeline__item > span {
    color:var(--ctg-accent-2);
    font-family:var(--ctg-display);
    font-size:34px;
    font-weight:700;
}

.ct-guest-timeline__item > div::before {
    content:"";
    position:absolute;
    left:111px;
    top:49px;
    width:13px;
    height:13px;
    border:4px solid var(--ctg-soft);
    border-radius:50%;
    background:var(--ctg-accent);
    box-shadow:0 0 0 1px rgba(24,23,44,.14);
}

.ct-guest-timeline__item h3 {
    margin:0 0 16px;
    font-family:var(--ctg-display);
    font-size:34px;
    line-height:1.05;
}

.ct-guest-timeline__item figure {
    margin:0;
    overflow:hidden;
    border-radius:16px;
}

.ct-guest-timeline__item figure img {
    width:100%;
    height:150px;
    object-fit:cover;
}

.ct-guest-timeline--horizontal .ct-guest-timeline__list {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:24px;
    margin-left:0;
}

.ct-guest-timeline--horizontal .ct-guest-timeline__list::before {
    display:none;
}

.ct-guest-timeline--horizontal .ct-guest-timeline__item {
    display:block;
    min-height:330px;
    padding:35px;
    border:1px solid var(--ctg-line);
    border-radius:22px;
    background:rgba(255,255,255,.55);
}

.ct-guest-timeline--horizontal .ct-guest-timeline__item > div::before {
    display:none;
}

.ct-guest-timeline--horizontal .ct-guest-timeline__item figure {
    margin-top:28px;
}

/* Works */
.ct-guest-works__grid {
    display:grid;
    grid-template-columns:repeat(12, minmax(0, 1fr));
    grid-auto-flow:dense;
    gap:24px;
}

.ct-guest-work {
    position:relative;
    grid-column:span 4;
    overflow:hidden;
    border-radius:24px;
    background:#fff;
    box-shadow:0 25px 60px rgba(24,23,44,.09);
}

.ct-guest-work--wide {
    grid-column:span 8;
}

.ct-guest-work--tall {
    grid-column:span 4;
}

.ct-guest-work--full {
    grid-column:1 / -1;
}

.ct-guest-work > a {
    display:block;
    height:100%;
}

.ct-guest-work figure {
    position:relative;
    min-height:390px;
    margin:0;
    overflow:hidden;
    background:#d8d4d0;
}

.ct-guest-work--tall figure {
    min-height:610px;
}

.ct-guest-work--full figure {
    min-height:600px;
}

.ct-guest-work figure img {
    width:100%;
    height:100%;
    min-height:inherit;
    object-fit:cover;
    transition:transform .6s cubic-bezier(.2,.7,.2,1);
}

.ct-guest-work:hover figure img {
    transform:scale(1.045);
}

.ct-guest-work__content {
    padding:30px 32px 35px;
}

.ct-guest-work__meta {
    display:flex;
    gap:14px;
    margin-bottom:14px;
    color:var(--ctg-accent-2);
    font-size:8px;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.ct-guest-work h3 {
    margin:0 0 18px;
    font-family:var(--ctg-display);
    font-size:36px;
    line-height:1;
}

.ct-guest-work__arrow {
    position:absolute;
    right:24px;
    top:24px;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:50%;
    color:var(--ctg-ink);
    background:var(--ctg-accent);
    transition:transform .3s ease;
}

.ct-guest-work:hover .ct-guest-work__arrow {
    transform:rotate(45deg);
}

.ct-guest-works--books .ct-guest-work {
    background:transparent;
    box-shadow:none;
}

.ct-guest-works--books .ct-guest-work figure {
    min-height:520px;
    border-radius:12px;
    box-shadow:0 30px 55px rgba(24,23,44,.16);
}

/* Festival */
.ct-guest-festival {
    color:#fff;
    background:
        radial-gradient(circle at 10% 10%, color-mix(in srgb, var(--ctg-accent) 18%, transparent), transparent 27%),
        linear-gradient(145deg, #17172c, #302746);
}

.ct-guest-festival .ct-guest-section__header > span {
    color:var(--ctg-accent);
}

.ct-guest-festival__list {
    border-top:1px solid rgba(255,255,255,.16);
}

.ct-guest-event {
    display:grid;
    grid-template-columns:150px 170px minmax(0, 1fr) 60px;
    align-items:center;
    gap:35px;
    min-height:165px;
    padding:25px 0;
    border-bottom:1px solid rgba(255,255,255,.14);
}

.ct-guest-event figure {
    width:150px;
    height:110px;
    margin:0;
    overflow:hidden;
    border-radius:14px;
}

.ct-guest-event figure img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-guest-event__type span {
    color:var(--ctg-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.ct-guest-event__main h3 {
    margin:0 0 15px;
    font-family:var(--ctg-display);
    font-size:32px;
    line-height:1.05;
}

.ct-guest-event__main > div {
    display:flex;
    flex-wrap:wrap;
    gap:8px 20px;
    color:rgba(255,255,255,.58);
    font-size:10px;
    font-weight:800;
    letter-spacing:.07em;
}

.ct-guest-event > a {
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    font-size:18px;
    transition:color .3s ease, background .3s ease, transform .3s ease;
}

.ct-guest-event > a:hover {
    color:var(--ctg-ink);
    background:var(--ctg-accent);
    transform:rotate(45deg);
}

/* Related exhibitions */
.ct-guest-related-cards {
    background:#fff;
}

.ct-guest-related-cards__grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:26px;
}

.ct-guest-related-card {
    position:relative;
    min-height:500px;
    overflow:hidden;
    border-radius:26px;
    background:#24212e;
}

.ct-guest-related-card > a {
    position:absolute;
    inset:0;
    display:block;
    color:#fff;
}

.ct-guest-related-card figure {
    position:absolute;
    inset:0;
    margin:0;
}

.ct-guest-related-card figure::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, transparent 15%, rgba(12,11,18,.22) 45%, rgba(12,11,18,.94) 100%);
}

.ct-guest-related-card figure img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .65s ease;
}

.ct-guest-related-card:hover figure img {
    transform:scale(1.05);
}

.ct-guest-related-card > div,
.ct-guest-related-card > a > div {
    position:absolute;
    z-index:2;
    left:35px;
    right:75px;
    bottom:35px;
    color:#fff;
}

.ct-guest-related-card span {
    display:block;
    margin-bottom:12px;
    color:var(--ctg-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.14em;
}

.ct-guest-related-card h3 {
    margin:0;
    font-family:var(--ctg-display);
    font-size:48px;
    line-height:.92;
}

.ct-guest-related-card p {
    margin:18px 0 0;
    color:rgba(255,255,255,.65);
}

.ct-guest-related-card > strong,
.ct-guest-related-card > a > strong {
    position:absolute;
    z-index:3;
    right:28px;
    bottom:30px;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:50%;
    color:var(--ctg-ink);
    background:var(--ctg-accent);
}

/* Related guests */
.ct-guest-related-guests__grid {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:26px;
}

.ct-guest-person a {
    display:block;
}

.ct-guest-person figure {
    aspect-ratio:4 / 5;
    margin:0 0 25px;
    overflow:hidden;
    border-radius:190px 190px 20px 20px;
    background:#d6d2ce;
}

.ct-guest-person figure img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .55s ease;
}

.ct-guest-person:hover figure img {
    transform:scale(1.04);
}

.ct-guest-person h3 {
    margin:0 0 9px;
    font-family:var(--ctg-display);
    font-size:38px;
    line-height:1;
}

.ct-guest-person span {
    color:var(--ctg-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.13em;
    text-transform:uppercase;
}

/* Quote */
.ct-guest-quote {
    padding:155px 0;
    color:#fff;
    background:
        radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--ctg-accent-2) 22%, transparent), transparent 28%),
        linear-gradient(145deg, #201b34, #4a3c70);
}

.ct-guest-quote .ct-guest-container > span {
    display:block;
    margin-bottom:38px;
    color:var(--ctg-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.18em;
}

.ct-guest-quote blockquote {
    max-width:1180px;
    margin:0;
    font-family:var(--ctg-display);
    font-size:clamp(48px, 6.5vw, 98px);
    font-weight:700;
    line-height:.98;
    letter-spacing:-.05em;
}

.ct-guest-quote cite {
    display:block;
    margin-top:38px;
    color:rgba(255,255,255,.58);
    font-size:12px;
    font-style:normal;
    font-weight:800;
    letter-spacing:.1em;
}

/* Links */
.ct-guest-links__list {
    border-top:1px solid var(--ctg-line);
}

.ct-guest-links__list a {
    display:grid;
    grid-template-columns:160px minmax(0, 1fr) 50px;
    align-items:center;
    gap:35px;
    min-height:115px;
    border-bottom:1px solid var(--ctg-line);
    transition:padding .3s ease, background .3s ease;
}

.ct-guest-links__list a:hover {
    padding-inline:22px;
    background:#fff;
}

.ct-guest-links__list a > span {
    color:var(--ctg-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.14em;
}

.ct-guest-links__list a > strong {
    font-family:var(--ctg-display);
    font-size:33px;
}

.ct-guest-links__list a > i {
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border-radius:50%;
    color:var(--ctg-ink);
    background:var(--ctg-accent);
    font-style:normal;
}

/* Navigation */
.ct-guest-navigation {
    color:#fff;
    background:#17172c;
}

.ct-guest-navigation__grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr) 300px minmax(0, 1fr);
    min-height:320px;
}

.ct-guest-navigation__side {
    position:relative;
    overflow:hidden;
}

.ct-guest-navigation__side > a {
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:180px minmax(0, 1fr);
    align-items:center;
    gap:35px;
    padding:45px;
}

.ct-guest-navigation__side img {
    width:180px;
    height:220px;
    object-fit:cover;
    border-radius:95px 95px 16px 16px;
    opacity:.78;
}

.ct-guest-navigation__side span {
    display:grid;
    gap:9px;
}

.ct-guest-navigation__side small {
    color:var(--ctg-accent);
    font-size:8px;
    font-weight:900;
    letter-spacing:.14em;
}

.ct-guest-navigation__side strong {
    font-family:var(--ctg-display);
    font-size:38px;
    line-height:.95;
}

.ct-guest-navigation__side em {
    color:rgba(255,255,255,.45);
    font-size:9px;
    font-style:normal;
    font-weight:800;
    letter-spacing:.08em;
}

.ct-guest-navigation__side--next > a {
    grid-template-columns:minmax(0, 1fr) 180px;
    text-align:right;
}

.ct-guest-navigation__side--next span {
    justify-items:end;
}

.ct-guest-navigation__all {
    display:grid;
    place-items:center;
    align-content:center;
    gap:22px;
    border-inline:1px solid rgba(255,255,255,.13);
    color:#fff;
    text-align:center;
}

.ct-guest-navigation__all span {
    max-width:160px;
    font-size:10px;
    font-weight:900;
    letter-spacing:.13em;
}

.ct-guest-navigation__all i {
    display:grid;
    place-items:center;
    width:56px;
    height:56px;
    border-radius:50%;
    color:var(--ctg-ink);
    background:var(--ctg-accent);
    font-style:normal;
    transition:transform .3s ease;
}

.ct-guest-navigation__all:hover i {
    transform:rotate(45deg);
}

/* Reveal */
.ct-guest-js [data-guest-reveal] {
    opacity:0;
    transform:translateY(28px);
    transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1);
}

.ct-guest-js [data-guest-reveal].is-visible {
    opacity:1;
    transform:none;
}

/* Responsive */
@media (max-width:1580px) {
    .ct-guest-toc {
        display:none;
    }
}

@media (max-width:1200px) {
    .ct-guest-hero {
        padding-inline:42px;
    }

    .ct-guest-hero__inner {
        grid-template-columns:minmax(0, .9fr) minmax(440px, 1.1fr);
        gap:60px;
    }

    .ct-guest-prose,
    .ct-guest-timeline__list {
        margin-left:0;
    }

    .ct-guest-work,
    .ct-guest-work--tall {
        grid-column:span 6;
    }

    .ct-guest-work--wide,
    .ct-guest-work--full {
        grid-column:1 / -1;
    }

    .ct-guest-navigation__grid {
        grid-template-columns:1fr 230px 1fr;
    }

    .ct-guest-navigation__side > a {
        grid-template-columns:120px minmax(0, 1fr);
        padding:30px;
    }

    .ct-guest-navigation__side--next > a {
        grid-template-columns:minmax(0, 1fr) 120px;
    }

    .ct-guest-navigation__side img {
        width:120px;
        height:170px;
    }
}

@media (max-width:900px) {
    .ct-guest-hero {
        min-height:auto;
        padding:125px 28px 0;
    }

    .ct-guest-hero__inner,
    .ct-guest-page--full-art .ct-guest-hero__inner,
    .ct-guest-page--minimal .ct-guest-hero__inner {
        grid-template-columns:1fr;
        min-height:auto;
    }

    .ct-guest-hero h1 {
        font-size:clamp(66px, 16vw, 112px);
    }

    .ct-guest-hero__visual {
        min-height:620px;
    }

    .ct-guest-facts {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .ct-guest-fact:nth-child(2n) {
        border-right:0;
    }

    .ct-guest-section {
        padding:90px 0;
    }

    .ct-guest-container {
        width:calc(100% - 40px);
    }

    .ct-guest-section__header {
        grid-template-columns:1fr;
        gap:18px;
    }

    .ct-guest-prose {
        font-size:17px;
    }

    .ct-guest-secondary__grid {
        grid-template-columns:1fr;
    }

    .ct-guest-secondary__content,
    .ct-guest-secondary__media {
        order:initial !important;
    }

    .ct-guest-timeline__list::before {
        left:82px;
    }

    .ct-guest-timeline__item {
        grid-template-columns:65px minmax(0, 1fr);
        gap:40px;
    }

    .ct-guest-timeline__item > div::before {
        left:76px;
    }

    .ct-guest-timeline__item figure {
        grid-column:2;
    }

    .ct-guest-event {
        grid-template-columns:110px minmax(0, 1fr) 50px;
    }

    .ct-guest-event figure {
        width:110px;
        height:90px;
    }

    .ct-guest-event__type {
        grid-column:2;
        grid-row:1;
        align-self:end;
    }

    .ct-guest-event__main {
        grid-column:2;
        grid-row:2;
    }

    .ct-guest-event > a {
        grid-column:3;
        grid-row:1 / span 2;
    }

    .ct-guest-related-cards__grid,
    .ct-guest-related-guests__grid {
        grid-template-columns:1fr;
    }

    .ct-guest-navigation__grid {
        grid-template-columns:1fr;
    }

    .ct-guest-navigation__all {
        min-height:200px;
        border:0;
        border-block:1px solid rgba(255,255,255,.13);
    }

    .ct-guest-navigation__side {
        min-height:280px;
    }
}

@media (max-width:620px) {
    .ct-guest-hero {
        padding-inline:20px;
    }

    .ct-guest-hero__visual {
        min-height:500px;
    }

    .ct-guest-hero__portrait {
        inset:0;
    }

    .ct-guest-hero__art {
        display:none;
    }

    .ct-guest-facts {
        grid-template-columns:1fr;
    }

    .ct-guest-fact,
    .ct-guest-fact:first-child {
        min-height:auto;
        padding:22px 0;
        border-right:0;
        border-top:1px solid rgba(255,255,255,.13);
    }

    .ct-guest-section__header h2 {
        font-size:46px;
    }

    .ct-guest-prose p:first-child::first-letter {
        font-size:70px;
    }

    .ct-guest-timeline__list::before,
    .ct-guest-timeline__item > div::before {
        display:none;
    }

    .ct-guest-timeline__item {
        grid-template-columns:1fr;
        gap:18px;
    }

    .ct-guest-timeline__item figure {
        grid-column:1;
    }

    .ct-guest-work,
    .ct-guest-work--wide,
    .ct-guest-work--tall,
    .ct-guest-work--full {
        grid-column:1 / -1;
    }

    .ct-guest-work figure,
    .ct-guest-work--tall figure,
    .ct-guest-work--full figure {
        min-height:440px;
    }

    .ct-guest-event {
        grid-template-columns:1fr 48px;
        gap:15px;
    }

    .ct-guest-event figure {
        grid-column:1 / -1;
        width:100%;
        height:190px;
    }

    .ct-guest-event__type,
    .ct-guest-event__main {
        grid-column:1;
        grid-row:auto;
    }

    .ct-guest-event > a {
        grid-column:2;
        grid-row:2 / span 2;
    }

    .ct-guest-links__list a {
        grid-template-columns:1fr 44px;
        gap:15px;
        padding:20px 0;
    }

    .ct-guest-links__list a > span {
        grid-column:1 / -1;
    }

    .ct-guest-navigation__side > a,
    .ct-guest-navigation__side--next > a {
        grid-template-columns:100px minmax(0, 1fr);
        text-align:left;
    }

    .ct-guest-navigation__side--next span {
        order:2;
        justify-items:start;
    }

    .ct-guest-navigation__side--next img {
        order:1;
    }

    .ct-guest-navigation__side img {
        width:100px;
        height:145px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .ct-guest-page *,
    .ct-guest-page *::before,
    .ct-guest-page *::after {
        animation-duration:.01ms !important;
        transition-duration:.01ms !important;
    }

    .ct-guest-js [data-guest-reveal] {
        opacity:1;
        transform:none;
    }
}

/* =========================================================
CHANIARTOON — PREMIUM GUESTS LANDING V1
========================================================= */

.ct-guests-index {
    --ctgi-accent:#b273e0;
    --ctgi-accent-2:#cfe977;
    --ctgi-ink:#17172f;
    --ctgi-paper:#f7f4ef;
    --ctgi-muted:#716d79;
    --ctgi-display:Georgia, "Times New Roman", serif;
    position:relative;
    left:50%;
    width:100vw;
    margin-left:-50vw;
    overflow:hidden;
    color:var(--ctgi-ink);
    background:var(--ctgi-paper);
}

.ct-guests-index *,
.ct-guests-index *::before,
.ct-guests-index *::after {
    box-sizing:border-box;
}

.ct-guests-index a {
    color:inherit;
    text-decoration:none;
}

.ct-guests-index button {
    font:inherit;
}

/* Hero */
.ct-guests-index__hero {
    position:relative;
    isolation:isolate;
    min-height:820px;
    padding:145px max(36px, calc((100vw - 1440px) / 2)) 0;
    color:#fff;
    background:
        radial-gradient(circle at 12% 20%, color-mix(in srgb, var(--ctgi-accent) 23%, transparent), transparent 28%),
        radial-gradient(circle at 88% 80%, color-mix(in srgb, var(--ctgi-accent-2) 15%, transparent), transparent 30%),
        linear-gradient(145deg, #171426 0%, #27213f 56%, #493b6f 100%);
}

.ct-guests-index__hero::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
}

.ct-guests-index--pattern-grid .ct-guests-index__hero::before {
    opacity:.055;
    background-image:
        linear-gradient(rgba(255,255,255,.55) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.55) 1px, transparent 1px);
    background-size:58px 58px;
}

.ct-guests-index--pattern-dots .ct-guests-index__hero::before {
    opacity:.11;
    background-image:radial-gradient(circle, #fff 1px, transparent 1.5px);
    background-size:25px 25px;
}

.ct-guests-index--pattern-paper .ct-guests-index__hero::before {
    opacity:.075;
    background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.9) 0 1px, transparent 1px 5px);
}

.ct-guests-index__hero-inner {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, .9fr) minmax(520px, 1.1fr);
    align-items:center;
    gap:clamp(70px, 9vw, 150px);
    width:min(1440px, 100%);
    min-height:610px;
    margin:0 auto;
}

.ct-guests-index__kicker {
    display:inline-flex;
    align-items:center;
    gap:14px;
    color:var(--ctgi-accent-2);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ct-guests-index__kicker::before {
    content:"";
    width:42px;
    height:1px;
    background:currentColor;
}

.ct-guests-index__hero h1 {
    max-width:830px;
    margin:35px 0;
    font-family:var(--ctgi-display);
    font-size:clamp(78px, 9.5vw, 158px);
    font-weight:700;
    line-height:.82;
    letter-spacing:-.075em;
    text-wrap:balance;
}

.ct-guests-index__intro {
    max-width:710px;
    color:rgba(255,255,255,.69);
    font-size:18px;
    line-height:1.8;
}

.ct-guests-index__intro > *:last-child {
    margin-bottom:0;
}

.ct-guests-index__hero-art {
    position:relative;
    min-height:590px;
}

.ct-guests-index__hero-image {
    position:absolute;
    inset:0;
    margin:0;
    overflow:hidden;
    border-radius:260px 260px 34px 34px;
    background:#665e6b;
    box-shadow:0 55px 120px rgba(0,0,0,.35);
}

.ct-guests-index__hero-image img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-guests-index__collage {
    position:absolute;
    inset:0;
}

.ct-guests-index__collage-item {
    position:absolute;
    margin:0;
    overflow:hidden;
    border:10px solid rgba(255,255,255,.95);
    background:#504b55;
    box-shadow:0 35px 80px rgba(0,0,0,.3);
}

.ct-guests-index__collage-item img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-guests-index__collage-item--1 {
    z-index:3;
    inset:2% 34% 27% 0;
    border-radius:210px 210px 22px 22px;
    transform:rotate(-3deg);
}

.ct-guests-index__collage-item--2 {
    z-index:4;
    top:-2%;
    right:0;
    width:43%;
    height:48%;
    border-radius:190px 190px 20px 20px;
    transform:rotate(5deg);
}

.ct-guests-index__collage-item--3 {
    z-index:2;
    left:8%;
    bottom:-2%;
    width:38%;
    height:39%;
    border-radius:170px 170px 18px 18px;
    transform:rotate(5deg);
}

.ct-guests-index__collage-item--4 {
    z-index:5;
    right:5%;
    bottom:0;
    width:45%;
    height:44%;
    border-radius:190px 190px 20px 20px;
    transform:rotate(-4deg);
}

.ct-guests-index--hero-portraits .ct-guests-index__collage-item {
    border-width:6px;
    border-radius:50%;
}

.ct-guests-index__hero-abstract {
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:260px 260px 34px 34px;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.17), transparent 25%),
        linear-gradient(145deg, var(--ctgi-accent), var(--ctgi-accent-2));
    box-shadow:0 55px 120px rgba(0,0,0,.33);
}

.ct-guests-index__hero-abstract span {
    color:rgba(255,255,255,.72);
    font-family:var(--ctgi-display);
    font-size:clamp(175px, 22vw, 360px);
    font-weight:700;
    line-height:1;
    letter-spacing:-.12em;
}

.ct-guests-index__stats {
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    width:min(1440px, 100%);
    margin:65px auto 0;
    border-top:1px solid rgba(255,255,255,.16);
}

.ct-guests-index__stats > div {
    min-height:132px;
    padding:27px 30px;
    border-right:1px solid rgba(255,255,255,.14);
}

.ct-guests-index__stats > div:first-child {
    padding-left:0;
}

.ct-guests-index__stats > div:last-child {
    border-right:0;
}

.ct-guests-index__stats span {
    display:block;
    margin-bottom:14px;
    color:var(--ctgi-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
}

.ct-guests-index__stats strong {
    display:block;
    color:#fff;
    font-family:var(--ctgi-display);
    font-size:clamp(28px, 3vw, 48px);
    line-height:1;
}

/* Optional filters */
.ct-guests-filter {
    position:sticky;
    z-index:80;
    top:82px;
    border-bottom:1px solid rgba(23,23,47,.1);
    background:rgba(247,244,239,.91);
    backdrop-filter:blur(18px);
}

.ct-guests-filter__inner {
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
    gap:45px;
    width:min(1440px, calc(100% - 72px));
    min-height:94px;
    margin:0 auto;
}

.ct-guests-filter__title {
    color:var(--ctgi-muted);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
    white-space:nowrap;
}

.ct-guests-filter__buttons {
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:12px 0;
    scrollbar-width:none;
}

.ct-guests-filter__buttons::-webkit-scrollbar {
    display:none;
}

.ct-guests-filter button {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-height:43px;
    padding:0 18px;
    border:1px solid rgba(23,23,47,.12);
    border-radius:999px;
    color:var(--ctgi-ink);
    background:transparent;
    font-size:10px;
    font-weight:850;
    letter-spacing:.075em;
    cursor:pointer;
    transition:border-color .25s ease, background .25s ease, color .25s ease, transform .25s ease;
}

.ct-guests-filter button:hover {
    transform:translateY(-2px);
    border-color:var(--ctgi-accent);
}

.ct-guests-filter button.is-active {
    border-color:var(--ctgi-ink);
    color:#fff;
    background:var(--ctgi-ink);
}

.ct-guests-filter button small {
    display:grid;
    place-items:center;
    min-width:21px;
    height:21px;
    border-radius:50%;
    color:var(--ctgi-ink);
    background:var(--ctgi-accent-2);
    font-size:9px;
}

/* Catalogue */
.ct-guests-catalogue {
    width:min(1440px, calc(100% - 72px));
    margin:0 auto;
    padding:130px 0 150px;
}

.ct-guests-catalogue__header {
    display:grid;
    grid-template-columns:180px minmax(0, 1fr) auto;
    align-items:end;
    gap:40px;
    margin-bottom:62px;
    padding-bottom:30px;
    border-bottom:1px solid rgba(23,23,47,.16);
}

.ct-guests-catalogue__header > span {
    color:var(--ctgi-accent);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
}

.ct-guests-catalogue__header h2 {
    max-width:900px;
    margin:0;
    font-family:var(--ctgi-display);
    font-size:clamp(46px, 5.8vw, 88px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.06em;
    text-wrap:balance;
}

.ct-guests-catalogue__header p {
    display:flex;
    align-items:baseline;
    gap:9px;
    margin:0;
    color:var(--ctgi-muted);
    font-size:12px;
}

.ct-guests-catalogue__header strong {
    color:var(--ctgi-ink);
    font-family:var(--ctgi-display);
    font-size:46px;
    line-height:1;
}

.ct-guests-grid {
    display:grid;
    grid-template-columns:repeat(12, minmax(0, 1fr));
    grid-auto-flow:dense;
    grid-auto-rows:82px;
    gap:22px;
}

.ct-guests-card {
    position:relative;
    min-height:410px;
    overflow:hidden;
    border-radius:27px;
    background:#292631;
    box-shadow:0 30px 68px rgba(28,23,40,.12);
}

.ct-guests-card--standard {
    grid-column:span 4;
    grid-row:span 5;
}

.ct-guests-card--wide {
    grid-column:span 8;
    grid-row:span 5;
}

.ct-guests-card--tall {
    grid-column:span 4;
    grid-row:span 7;
}

.ct-guests-card--featured {
    grid-column:span 8;
    grid-row:span 7;
}

.ct-guests-index--cards-grid .ct-guests-card {
    grid-column:span 6;
    grid-row:span 6;
}

.ct-guests-card > a {
    position:absolute;
    inset:0;
    display:block;
    overflow:hidden;
    color:#fff;
}

.ct-guests-card__media,
.ct-guests-card__abstract {
    position:absolute;
    inset:0;
}

.ct-guests-card__media img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    transition:transform .72s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}

.ct-guests-card__abstract {
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.2), transparent 26%),
        linear-gradient(145deg, var(--guest-accent), var(--guest-accent-2));
}

.ct-guests-card__abstract::before {
    content:"";
    position:absolute;
    inset:0;
    opacity:.15;
    background-image:
        linear-gradient(rgba(255,255,255,.75) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.75) 1px, transparent 1px);
    background-size:42px 42px;
}

.ct-guests-card__abstract span {
    position:relative;
    color:rgba(255,255,255,.72);
    font-family:var(--ctgi-display);
    font-size:clamp(130px, 17vw, 260px);
    font-weight:700;
    letter-spacing:-.12em;
}

.ct-guests-card__overlay {
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(10,9,15,.05) 14%, rgba(10,9,15,.16) 43%, rgba(10,9,15,.94) 100%),
        linear-gradient(90deg, rgba(10,9,15,.2), transparent 60%);
    transition:background .45s ease;
}

.ct-guests-card__topline {
    position:absolute;
    z-index:3;
    top:25px;
    left:26px;
    right:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.ct-guests-card__topline > span {
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:50%;
    color:#fff;
    background:rgba(10,9,15,.16);
    backdrop-filter:blur(10px);
    font-family:var(--ctgi-display);
    font-size:24px;
    font-weight:700;
}

.ct-guests-card__topline em {
    max-width:55%;
    color:rgba(255,255,255,.84);
    font-size:8px;
    font-style:normal;
    font-weight:900;
    letter-spacing:.14em;
    line-height:1.4;
    text-align:right;
    text-transform:uppercase;
}

.ct-guests-card__content {
    position:absolute;
    z-index:3;
    left:30px;
    right:72px;
    bottom:31px;
    transform:translateY(54px);
    transition:transform .5s cubic-bezier(.2,.7,.2,1);
}

.ct-guests-card h3 {
    max-width:760px;
    margin:0;
    font-family:var(--ctgi-display);
    font-size:clamp(38px, 4.2vw, 72px);
    font-weight:700;
    line-height:.86;
    letter-spacing:-.06em;
    text-wrap:balance;
}

.ct-guests-card--standard h3,
.ct-guests-card--tall h3 {
    font-size:clamp(34px, 3vw, 51px);
}

.ct-guests-card__content > p {
    max-width:650px;
    max-height:0;
    margin:17px 0 0;
    overflow:hidden;
    color:rgba(255,255,255,.72);
    font-size:14px;
    line-height:1.58;
    opacity:0;
    transition:max-height .5s ease, opacity .35s ease;
}

.ct-guests-card__meta {
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    max-height:0;
    margin-top:17px;
    overflow:hidden;
    color:var(--guest-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
    opacity:0;
    transition:max-height .5s ease, opacity .35s ease;
}

.ct-guests-card__arrow {
    position:absolute;
    z-index:4;
    right:25px;
    bottom:26px;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:50%;
    color:var(--ctgi-ink);
    background:var(--guest-accent);
    font-size:18px;
    transition:transform .35s ease, background .35s ease;
}

.ct-guests-card:hover img,
.ct-guests-card:focus-within img {
    transform:scale(1.055);
    filter:saturate(1.05);
}

.ct-guests-card:hover .ct-guests-card__overlay,
.ct-guests-card:focus-within .ct-guests-card__overlay {
    background:
        linear-gradient(180deg, rgba(10,9,15,.1) 8%, rgba(10,9,15,.3) 40%, rgba(10,9,15,.98) 100%);
}

.ct-guests-card:hover .ct-guests-card__content,
.ct-guests-card:focus-within .ct-guests-card__content {
    transform:none;
}

.ct-guests-card:hover .ct-guests-card__content > p,
.ct-guests-card:focus-within .ct-guests-card__content > p {
    max-height:110px;
    opacity:1;
}

.ct-guests-card:hover .ct-guests-card__meta,
.ct-guests-card:focus-within .ct-guests-card__meta {
    max-height:70px;
    opacity:1;
}

.ct-guests-card:hover .ct-guests-card__arrow,
.ct-guests-card:focus-within .ct-guests-card__arrow {
    transform:rotate(45deg);
    background:var(--guest-accent-2);
}

.ct-guests-card[hidden] {
    display:none !important;
}

.ct-guests-empty {
    padding:80px 25px;
    border:1px solid rgba(23,23,47,.12);
    border-radius:24px;
    color:var(--ctgi-muted);
    text-align:center;
}

/* CTA */
.ct-guests-cta {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:end;
    gap:70px;
    width:min(1440px, calc(100% - 72px));
    margin:0 auto 120px;
    padding:75px 80px;
    border-radius:32px;
    color:#fff;
    background:
        radial-gradient(circle at 10% 20%, color-mix(in srgb, var(--ctgi-accent) 24%, transparent), transparent 25%),
        linear-gradient(135deg, #17172f, #30284a);
    box-shadow:0 35px 80px rgba(23,23,47,.14);
}

.ct-guests-cta > div > span {
    display:block;
    margin-bottom:20px;
    color:var(--ctgi-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.17em;
}

.ct-guests-cta h2 {
    max-width:890px;
    margin:0;
    font-family:var(--ctgi-display);
    font-size:clamp(46px, 6vw, 92px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.06em;
}

.ct-guests-cta p {
    max-width:670px;
    margin:28px 0 0;
    color:rgba(255,255,255,.66);
    font-size:16px;
    line-height:1.7;
}

.ct-guests-cta > a {
    display:inline-flex;
    align-items:center;
    gap:25px;
    min-height:64px;
    padding:0 28px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#fff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    white-space:nowrap;
    transition:color .3s ease, background .3s ease, transform .3s ease;
}

.ct-guests-cta > a:hover {
    color:var(--ctgi-ink);
    background:var(--ctgi-accent-2);
    transform:translateY(-3px);
}

.ct-guests-pagination {
    margin-top:70px;
}

/* Reveal */
.ct-guests-index-js [data-guests-reveal] {
    opacity:0;
    transform:translateY(28px);
    transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1);
}

.ct-guests-index-js [data-guests-reveal].is-visible {
    opacity:1;
    transform:none;
}

/* Responsive */
@media (max-width:1250px) {
    .ct-guests-index__hero {
        padding-inline:42px;
    }

    .ct-guests-index__hero-inner {
        grid-template-columns:minmax(0, .95fr) minmax(420px, 1.05fr);
        gap:60px;
    }

    .ct-guests-index__stats {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .ct-guests-index__stats > div:nth-child(2n) {
        border-right:0;
    }

    .ct-guests-card--standard,
    .ct-guests-card--tall {
        grid-column:span 6;
    }

    .ct-guests-card--wide,
    .ct-guests-card--featured {
        grid-column:span 12;
    }
}

@media (max-width:900px) {
    .ct-guests-index__hero {
        min-height:auto;
        padding:125px 28px 0;
    }

    .ct-guests-index__hero-inner {
        grid-template-columns:1fr;
        min-height:auto;
    }

    .ct-guests-index__hero h1 {
        font-size:clamp(68px, 16vw, 116px);
    }

    .ct-guests-index__hero-art {
        min-height:590px;
    }

    .ct-guests-filter {
        top:70px;
    }

    .ct-guests-filter__inner {
        grid-template-columns:1fr;
        gap:0;
        width:calc(100% - 40px);
        padding:18px 0 8px;
    }

    .ct-guests-catalogue {
        width:calc(100% - 40px);
        padding:90px 0 110px;
    }

    .ct-guests-catalogue__header {
        grid-template-columns:1fr auto;
    }

    .ct-guests-catalogue__header > span {
        grid-column:1 / -1;
    }

    .ct-guests-grid {
        grid-auto-rows:auto;
    }

    .ct-guests-card,
    .ct-guests-card--standard,
    .ct-guests-card--wide,
    .ct-guests-card--tall,
    .ct-guests-card--featured,
    .ct-guests-index--cards-grid .ct-guests-card {
        grid-column:span 6;
        grid-row:auto;
        min-height:560px;
    }

    .ct-guests-card__content {
        transform:none;
    }

    .ct-guests-card__content > p,
    .ct-guests-card__meta {
        max-height:120px;
        opacity:1;
    }

    .ct-guests-cta {
        grid-template-columns:1fr;
        align-items:start;
        width:calc(100% - 40px);
        margin-bottom:80px;
        padding:55px 45px;
    }
}

@media (max-width:620px) {
    .ct-guests-index__hero {
        padding-inline:20px;
    }

    .ct-guests-index__hero-art {
        min-height:470px;
    }

    .ct-guests-index__collage-item--3,
    .ct-guests-index__collage-item--4 {
        display:none;
    }

    .ct-guests-index__collage-item--1 {
        inset:0 25% 8% 0;
    }

    .ct-guests-index__collage-item--2 {
        width:48%;
        height:50%;
        top:8%;
    }

    .ct-guests-index__stats {
        grid-template-columns:1fr;
    }

    .ct-guests-index__stats > div,
    .ct-guests-index__stats > div:first-child {
        min-height:auto;
        padding:23px 0;
        border-right:0;
        border-top:1px solid rgba(255,255,255,.14);
    }

    .ct-guests-catalogue__header {
        grid-template-columns:1fr;
    }

    .ct-guests-catalogue__header p {
        justify-self:start;
    }

    .ct-guests-card,
    .ct-guests-card--standard,
    .ct-guests-card--wide,
    .ct-guests-card--tall,
    .ct-guests-card--featured,
    .ct-guests-index--cards-grid .ct-guests-card {
        grid-column:1 / -1;
        min-height:540px;
    }

    .ct-guests-card__content {
        left:23px;
        right:65px;
        bottom:24px;
    }

    .ct-guests-card h3,
    .ct-guests-card--standard h3,
    .ct-guests-card--tall h3 {
        font-size:43px;
    }

    .ct-guests-cta {
        padding:42px 26px;
        border-radius:24px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .ct-guests-index *,
    .ct-guests-index *::before,
    .ct-guests-index *::after {
        animation-duration:.01ms !important;
        transition-duration:.01ms !important;
    }

    .ct-guests-index-js [data-guests-reveal] {
        opacity:1;
        transform:none;
    }
}

/* =========================================================
CHANIARTOON — GUESTS LANDING HERO TEXT / IMAGE FIX
Βάλ' το στο ΤΕΛΟΣ του custom.css.
========================================================= */

/* Το κείμενο μένει επάνω από τα διακοσμητικά στοιχεία
   και δεν ξεφεύγει από τη δική του στήλη. */
.ct-guests-index .ct-guests-index__hero-copy {
    position: relative;
    z-index: 6;
    min-width: 0;
}

.ct-guests-index .ct-guests-index__hero-art {
    position: relative;
    z-index: 2;
    min-width: 0;
}

/* Λίγο μικρότερος μέγιστος τίτλος, ώστε η λέξη
   «Καλεσμένοι» να μην περνά κάτω από το collage. */
.ct-guests-index .ct-guests-index__hero h1 {
    max-width: 100%;
    font-size: clamp(70px, 7.6vw, 136px);
}

/* Ενδιάμεσα desktop/tablet πλάτη:
   περισσότερο πλάτος στο κείμενο και μικρότερο collage. */
@media (min-width: 1051px) and (max-width: 1280px) {
    .ct-guests-index .ct-guests-index__hero-inner {
        grid-template-columns:
            minmax(0, 1.15fr)
            minmax(360px, .85fr);
        gap: 42px;
    }

    .ct-guests-index .ct-guests-index__hero h1 {
        font-size: clamp(68px, 7.2vw, 100px);
    }

    .ct-guests-index .ct-guests-index__hero-art {
        min-height: 535px;
    }
}

/* Σε tablet πλάτος το hero γίνεται μία στήλη,
   ώστε το πορτρέτο να μην κόβει ποτέ τον τίτλο. */
@media (max-width: 1050px) {
    .ct-guests-index .ct-guests-index__hero-inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 55px;
    }

    .ct-guests-index .ct-guests-index__hero-copy {
        max-width: 820px;
    }

    .ct-guests-index .ct-guests-index__hero h1 {
        font-size: clamp(64px, 12vw, 108px);
    }

    .ct-guests-index .ct-guests-index__hero-art {
        width: min(720px, 100%);
        min-height: 560px;
        margin-inline: auto;
    }
}

@media (max-width: 620px) {
    .ct-guests-index .ct-guests-index__hero h1 {
        font-size: clamp(58px, 16vw, 82px);
    }

    .ct-guests-index .ct-guests-index__hero-art {
        min-height: 455px;
    }
}

/* =========================================================
CHANIARTOON — FULL CALENDAR V2
Category tags, instant filters and category colours.

Add at the END of custom.css.
========================================================= */

/* Filter shell */
.ct-calendar-filters--instant {
    display:grid;
    gap:24px;
    padding:28px;
}

.ct-calendar-filters--instant .ct-calendar-filters__heading {
    align-items:flex-start;
    margin:0;
}

.ct-calendar-filters--instant .ct-calendar-filters__heading > div {
    display:grid;
    gap:7px;
}

.ct-calendar-filters--instant .ct-calendar-filters__heading > div > span,
.ct-calendar-category-filter__head > span {
    color:var(--ctc-purple);
    font-size:9px;
    font-weight:900;
    letter-spacing:.15em;
}

.ct-calendar-filters--instant .ct-calendar-filters__heading p,
.ct-calendar-category-filter__head p {
    margin:0;
    color:var(--ctc-muted);
    font-size:11px;
    line-height:1.55;
}

.ct-calendar-filters--instant .ct-calendar-filter-reset {
    flex:0 0 auto;
    min-height:38px;
    padding:0 16px;
    border:1px solid rgba(64,59,110,.18);
    border-radius:999px;
    text-decoration:none;
    transition:
        color .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.ct-calendar-filters--instant .ct-calendar-filter-reset:hover {
    color:#fff;
    border-color:var(--ctc-purple);
    background:var(--ctc-purple);
}

/* Category tags */
.ct-calendar-category-filter {
    display:grid;
    gap:15px;
    padding:22px;
    border:1px solid rgba(64,59,110,.12);
    background:rgba(255,255,255,.54);
}

.ct-calendar-category-filter__head {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:24px;
}

.ct-calendar-category-tags {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.ct-calendar-category-tag {
    --category-color:#403b6e;
    --category-text:#fff;
    display:inline-flex;
    align-items:center;
    gap:9px;
    min-height:42px;
    padding:0 14px;
    color:var(--ctc-purple-dark);
    background:var(--ctc-paper);
    border:1px solid rgba(64,59,110,.14);
    border-radius:999px;
    cursor:pointer;
    font-size:9px;
    font-weight:850;
    letter-spacing:.055em;
    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.ct-calendar-category-tag:hover {
    transform:translateY(-2px);
    border-color:var(--category-color);
    box-shadow:0 7px 17px rgba(25,23,34,.08);
}

.ct-calendar-category-tag__dot {
    width:10px;
    height:10px;
    flex:0 0 auto;
    border-radius:50%;
    background:var(--category-color);
    box-shadow:0 0 0 3px color-mix(
        in srgb,
        var(--category-color) 17%,
        transparent
    );
}

.ct-calendar-category-tag strong {
    font:inherit;
}

.ct-calendar-category-tag small {
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    margin-left:2px;
    padding:0 5px;
    color:var(--ctc-purple-dark);
    background:rgba(255,255,255,.72);
    border-radius:999px;
    font-size:8px;
}

.ct-calendar-category-tag.is-active {
    color:var(--category-text);
    background:var(--category-color);
    border-color:var(--category-color);
}

.ct-calendar-category-tag.is-active
.ct-calendar-category-tag__dot {
    background:currentColor;
    box-shadow:none;
}

.ct-calendar-category-tag.is-active small {
    color:var(--ctc-purple-dark);
    background:rgba(255,255,255,.88);
}

/* "All" tag */
.ct-calendar-category-tag[data-calendar-category-id="all"] {
    --category-color:var(--ctc-purple-dark);
    --category-text:#fff;
}

/* Keep the native select available to JavaScript only */
.ct-calendar-native-category {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0 0 0 0) !important;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
}

/* Search, location and live status */
.ct-calendar-filters--instant .ct-calendar-filters__fields {
    grid-template-columns:
        minmax(250px,1.2fr)
        minmax(230px,.8fr)
        minmax(220px,1fr) !important;
    align-items:end;
    gap:14px !important;
}

.ct-calendar-filter-status {
    display:flex;
    align-items:center;
    min-height:56px;
    padding:0 18px;
    color:var(--ctc-muted);
    border-left:3px solid var(--ctc-lime);
    background:rgba(255,255,255,.58);
    font-size:11px;
    line-height:1.5;
}

/* Category-coloured event cards */
.ct-calendar-page .fc .fc-event[
    data-ct-category-decorated="true"
] {
    border-left-width:4px !important;
    border-radius:4px !important;
    box-shadow:0 3px 10px rgba(25,23,34,.08);
}

.ct-calendar-page .fc .fc-event[
    data-ct-category-decorated="true"
]:hover {
    filter:brightness(.94) saturate(1.06);
    transform:translateX(3px);
}

.ct-calendar-event-filtered-out {
    display:none !important;
}

/* FullCalendar must render every event so instant client-side
   filtering never leaves an incorrect "+ more" counter. */
.ct-calendar-page .fc .fc-daygrid-more-link {
    display:none !important;
}

/* Mobile agenda inherits the exact event/category colour */
.ct-calendar-mobile-event {
    border-radius:5px;
    box-shadow:0 5px 15px rgba(25,23,34,.09);
}

.ct-calendar-mobile-event time,
.ct-calendar-mobile-event strong,
.ct-calendar-mobile-event > span {
    color:inherit !important;
}

/* Responsive */
@media (max-width:900px) {
    .ct-calendar-category-filter__head {
        display:grid;
        gap:6px;
    }

    .ct-calendar-filters--instant
    .ct-calendar-filters__fields {
        grid-template-columns:1fr 1fr !important;
    }

    .ct-calendar-filter-status {
        grid-column:1 / -1;
    }
}

@media (max-width:620px) {
    .ct-calendar-filters--instant {
        padding:20px;
    }

    .ct-calendar-filters--instant
    .ct-calendar-filters__heading {
        display:grid;
        gap:14px;
    }

    .ct-calendar-filters--instant
    .ct-calendar-filter-reset {
        justify-self:start;
    }

    .ct-calendar-category-filter {
        padding:17px;
    }

    .ct-calendar-category-tags {
        gap:7px;
    }

    .ct-calendar-category-tag {
        min-height:39px;
        padding:0 12px;
        font-size:8px;
    }

    .ct-calendar-filters--instant
    .ct-calendar-filters__fields {
        grid-template-columns:1fr !important;
    }

    .ct-calendar-filter-status {
        grid-column:auto;
    }
}

/* =========================================================
   FULLCALENDAR — ΤΙΤΛΟΙ ΕΚΔΗΛΩΣΕΩΝ ΣΕ ΠΟΛΛΕΣ ΓΡΑΜΜΕΣ
========================================================= */

#eb-calendar-page .fc .fc-daygrid-event,
#eb-calendar-page .fc .fc-daygrid-block-event,
#eb-calendar-page .fc .fc-h-event {
    height: auto !important;
    min-height: 42px;
    white-space: normal !important;
}

#eb-calendar-page .fc .fc-event-main {
    display: flex !important;
    align-items: center !important;
    min-height: 42px;
    padding: 7px 10px !important;

    white-space: normal !important;
    overflow: visible !important;
}

#eb-calendar-page .fc .fc-event-main-frame {
    display: flex !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;

    width: 100%;
    min-width: 0;

    white-space: normal !important;
    overflow: visible !important;
}

#eb-calendar-page .fc .fc-event-title-container {
    flex: 1 1 auto !important;
    min-width: 0 !important;

    white-space: normal !important;
    overflow: visible !important;
}

#eb-calendar-page .fc .fc-event-title {
    display: block !important;

    width: 100%;
    min-width: 0;

    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;

    overflow-wrap: break-word;
    word-break: normal;

    line-height: 1.3 !important;
}

#eb-calendar-page .fc .fc-event-time {
    flex: 0 0 auto;
    margin-right: 5px;

    white-space: nowrap !important;
}

/* Να μεγαλώνει κανονικά η σειρά του ημερολογίου */
#eb-calendar-page .fc .fc-daygrid-day-events,
#eb-calendar-page .fc .fc-daygrid-event-harness {
    height: auto !important;
}

/* ==========================================================================
   RESTORED ADDITION: PREMIUM EVENT DETAILS
   ========================================================================== */

/* ==========================================================
   CHANIARTOON — PREMIUM EVENT DETAILS
   Replace the previous CHANIARTOON EVENT DETAILS block with this.
   ========================================================== */

#eb-event-page.ct-event-page,
#eb-event-page.ct-event-page *,
#eb-event-page.ct-event-page *::before,
#eb-event-page.ct-event-page *::after {
    box-sizing: border-box;
}

#eb-event-page.ct-event-page {
    --ct-ink: #28222e;
    --ct-muted: #746d78;
    --ct-purple: #a45ed5;
    --ct-purple-dark: #7f3eab;
    --ct-peach: #ffbf82;
    --ct-line: rgba(40, 34, 46, 0.10);
    --ct-surface: #ffffff;
    --ct-soft: #f7f4f9;

    width: min(100%, 1360px);
    margin: 34px auto 100px;
    padding: 0 24px;

    border: 0 !important;
    background: transparent !important;

    font-family: "Manrope", sans-serif;
    color: var(--ct-ink);
}

/* Remove all social/share UI, including plugin fallbacks. */
#eb-event-page .ct-event-share,
#eb-event-page .ct-event-like-share,
#eb-event-page .eb-social-buttons,
#eb-event-page .eb-social-share,
#eb-event-page .eb-share-button,
#eb-event-page .twitter-share-button,
#eb-event-page .fb-like,
#eb-event-page iframe[title*="Twitter"],
#eb-event-page iframe[title*="X"] {
    display: none !important;
}

/* ==========================================================
   HERO
   ========================================================== */

#eb-event-page .ct-event-hero {
    position: relative;
    overflow: hidden;

    margin: 0 0 34px;
    padding: clamp(42px, 5.5vw, 78px);

    border: 1px solid rgba(255, 255, 255, 0.11) !important;
    border-radius: 30px;

    background:
        radial-gradient(circle at 91% 8%, rgba(255, 191, 130, 0.28), rgba(255, 191, 130, 0) 31%),
        radial-gradient(circle at 12% 105%, rgba(178, 115, 224, 0.36), rgba(178, 115, 224, 0) 35%),
        linear-gradient(128deg, #241d2d 0%, #34233f 52%, #523568 100%);

    box-shadow:
        0 30px 80px rgba(40, 34, 46, 0.20),
        0 6px 22px rgba(40, 34, 46, 0.08);
}

#eb-event-page .ct-event-hero::before,
#eb-event-page .ct-event-hero::after {
    content: "";
    position: absolute;
    pointer-events: none;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 50%;
}

#eb-event-page .ct-event-hero::before {
    width: 390px;
    height: 390px;
    top: -265px;
    right: -70px;
}

#eb-event-page .ct-event-hero::after {
    width: 260px;
    height: 260px;
    bottom: -195px;
    left: 8%;
}

#eb-event-page .ct-event-hero__inner {
    position: relative;
    z-index: 1;
    min-width: 0;
}

#eb-event-page .ct-event-hero__eyebrow {
    margin-bottom: 18px;
}

#eb-event-page .ct-event-category {
    display: inline-flex;
    align-items: center;

    padding: 7px 12px;

    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);

    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #ffffff;

    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

#eb-event-page .ct-event-title,
#eb-event-page .eb-page-heading.ct-event-title {
    max-width: 1000px;
    margin: 0 !important;
    padding: 0 80px 0 0 !important;

    border: 0 !important;
    background: transparent !important;

    font-family: "Manrope", sans-serif !important;
    font-size: clamp(46px, 6.4vw, 86px) !important;
    font-weight: 800 !important;
    line-height: 0.96 !important;
    letter-spacing: -0.055em !important;

    color: #ffffff !important;
    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: normal;
}

#eb-event-page .ct-event-print {
    position: absolute;
    top: 0;
    right: 0;

    width: 48px;
    height: 48px;
    margin: 0 !important;
}

#eb-event-page .ct-event-print a {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.09);

    color: #ffffff !important;
    text-decoration: none !important;

    transition: transform 0.22s ease, background-color 0.22s ease;
}

#eb-event-page .ct-event-print a:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.18);
}

/* ==========================================================
   PAGE LAYOUT
   ========================================================== */

#eb-event-page .ct-event-details {
    padding: 0 !important;
    background: transparent !important;
}

#eb-event-page .ct-event-layout {
    display: grid;
    grid-template-columns: minmax(300px, 0.82fr) minmax(440px, 1.18fr);
    gap: clamp(28px, 4vw, 54px);
    align-items: start;
}

#eb-event-page .ct-event-layout--no-media,
#eb-event-page .ct-event-layout--children {
    grid-template-columns: minmax(0, 1fr);
}

#eb-event-page .ct-event-media-column {
    position: sticky;
    top: 104px;
    min-width: 0;
}

#eb-event-page .ct-event-media-card {
    position: relative;
    overflow: hidden;

    margin: 0;
    padding: 11px;

    border: 1px solid rgba(40, 34, 46, 0.10);
    border-radius: 28px;
    background: #ffffff;

    box-shadow:
        0 28px 68px rgba(40, 34, 46, 0.14),
        0 5px 16px rgba(40, 34, 46, 0.05);
}

#eb-event-page .ct-event-media-card::after {
    content: "";
    position: absolute;
    inset: 11px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 19px;
    pointer-events: none;
}

#eb-event-page .ct-event-image-link {
    display: block;
}

#eb-event-page .ct-event-image,
#eb-event-page img.ct-event-image,
#eb-event-page .eb-event-large-image.ct-event-image,
#eb-event-page .eb-thumb-left.ct-event-image {
    display: block;
    float: none !important;

    width: 100% !important;
    max-width: none !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 19px !important;

    object-fit: cover;
}

#eb-event-page .ct-event-content-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

#eb-event-page .ct-event-info-card,
#eb-event-page .ct-event-description-card,
#eb-event-page .ct-event-extra-card,
#eb-event-page .ct-event-actions,
#eb-event-page .ct-event-countdown {
    border: 1px solid var(--ct-line);
    border-radius: 25px;
    background: rgba(255, 255, 255, 0.96);

    box-shadow:
        0 22px 58px rgba(40, 34, 46, 0.08),
        0 4px 13px rgba(40, 34, 46, 0.035);
}

#eb-event-page .ct-event-info-card,
#eb-event-page .ct-event-description-card {
    min-width: 0;
    margin: 0 !important;
    padding: clamp(28px, 4vw, 44px) !important;
}

#eb-event-page .ct-event-layout--no-media .ct-event-content-column {
    display: grid;
    grid-template-columns: minmax(330px, 0.72fr) minmax(0, 1.28fr);
    gap: 28px;
    align-items: start;
}

#eb-event-page .ct-event-layout--no-media .ct-event-info-card,
#eb-event-page .ct-event-layout--no-media .ct-event-description-card {
    height: fit-content;
}

/* ==========================================================
   SECTION HEADINGS
   ========================================================== */

#eb-event-page .ct-event-section-heading {
    margin: 0 0 28px;
    padding: 0 0 24px;
    border-bottom: 1px solid var(--ct-line);
}

#eb-event-page .ct-event-section-heading > span {
    display: block;
    margin: 0 0 9px;

    font-size: 10px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ct-purple);
}

#eb-event-page .ct-event-section-heading h2,
#eb-event-page #eb-event-properties-heading,
#eb-event-page .ct-event-extra-card h2 {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;

    font-family: "Manrope", sans-serif !important;
    font-size: clamp(27px, 3vw, 38px) !important;
    font-weight: 800 !important;
    line-height: 1.04 !important;
    letter-spacing: -0.04em !important;
    color: var(--ct-ink) !important;
}

/* ==========================================================
   EVENT PROPERTIES
   ========================================================== */

#eb-event-page #eb-event-info-left,
#eb-event-page #eb-event-info [class*="span"] {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

#eb-event-page #eb-event-info table {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;

    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: transparent !important;
}

#eb-event-page #eb-event-info tbody {
    display: block !important;
    width: 100% !important;
}

#eb-event-page #eb-event-info tr {
    display: grid !important;
    grid-template-columns: minmax(150px, 0.72fr) minmax(0, 1.28fr) !important;
    align-items: start;

    width: 100% !important;
    min-width: 0 !important;

    border: 0 !important;
    border-bottom: 1px solid rgba(40, 34, 46, 0.085) !important;
    background: transparent !important;
}

#eb-event-page #eb-event-info tr:last-child {
    border-bottom: 0 !important;
}

#eb-event-page #eb-event-info td,
#eb-event-page #eb-event-info th {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    padding: 17px 0 !important;

    border: 0 !important;
    background: transparent !important;

    font-family: "Manrope", sans-serif !important;
    font-size: 14px !important;
    line-height: 1.5 !important;

    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

#eb-event-page #eb-event-info td:first-child,
#eb-event-page #eb-event-info th:first-child {
    padding-right: 24px !important;

    font-weight: 800 !important;
    color: #3a3240 !important;

    overflow-wrap: normal !important;
    hyphens: none !important;
}

#eb-event-page #eb-event-info td:last-child,
#eb-event-page #eb-event-info th:last-child {
    color: #665e6b !important;
}

#eb-event-page #eb-event-info a {
    color: var(--ct-purple-dark) !important;
    font-weight: 750 !important;
    text-decoration: none !important;
}

#eb-event-page #eb-event-info a:hover {
    text-decoration: underline !important;
}

/* ==========================================================
   DESCRIPTION
   ========================================================== */

#eb-event-page .ct-event-description-copy {
    min-width: 0;

    font-family: "Manrope", sans-serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1.8 !important;
    color: #625a67 !important;
}

/* Override tiny inline font sizes coming from the editor. */
#eb-event-page .ct-event-description-copy p,
#eb-event-page .ct-event-description-copy li,
#eb-event-page .ct-event-description-copy p span,
#eb-event-page .ct-event-description-copy li span,
#eb-event-page .ct-event-description-copy div:not([class]) {
    font-family: "Manrope", sans-serif !important;
    font-size: 17px !important;
    line-height: 1.8 !important;
    color: #625a67 !important;
}

#eb-event-page .ct-event-description-copy p {
    margin: 0 0 1.15em;
}

#eb-event-page .ct-event-description-copy p:last-child,
#eb-event-page .ct-event-description-copy ul:last-child,
#eb-event-page .ct-event-description-copy ol:last-child {
    margin-bottom: 0;
}

#eb-event-page .ct-event-description-copy h2,
#eb-event-page .ct-event-description-copy h3,
#eb-event-page .ct-event-description-copy h4 {
    margin: 1.4em 0 0.55em;
    font-family: "Manrope", sans-serif !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    color: var(--ct-ink) !important;
}

#eb-event-page .ct-event-description-copy img {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
}

/* ==========================================================
   ACTIONS / ADMIN CONTROLS
   ========================================================== */

#eb-event-page .ct-event-actions {
    margin: 28px 0 0 !important;
    padding: 14px !important;
}

#eb-event-page .ct-event-actions ul {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;

    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#eb-event-page .ct-event-actions li {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#eb-event-page .ct-event-actions a,
#eb-event-page .ct-event-actions button,
#eb-event-page .ct-event-actions input[type="button"],
#eb-event-page .ct-event-actions input[type="submit"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 42px;
    padding: 0 16px !important;

    border: 1px solid rgba(40, 34, 46, 0.11) !important;
    border-radius: 999px !important;
    background: var(--ct-soft) !important;

    font-family: "Manrope", sans-serif !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;

    color: #4d4552 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    box-shadow: none !important;

    transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

#eb-event-page .ct-event-actions a:hover,
#eb-event-page .ct-event-actions button:hover,
#eb-event-page .ct-event-actions input[type="button"]:hover,
#eb-event-page .ct-event-actions input[type="submit"]:hover {
    transform: translateY(-2px);
    border-color: var(--ct-purple) !important;
    background: var(--ct-purple) !important;
    color: #ffffff !important;
}

#eb-event-page .ct-event-back-action {
    margin-left: auto !important;
}

/* ==========================================================
   EXTRA CONTENT / COUNTDOWN
   ========================================================== */

#eb-event-page .ct-event-extra-card,
#eb-event-page .ct-event-countdown {
    margin-top: 28px;
    padding: clamp(28px, 4vw, 44px);
}

#eb-event-page .ct-event-extra-card img {
    max-width: 100%;
    height: auto;
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 1100px) {
    #eb-event-page .ct-event-layout {
        grid-template-columns: minmax(280px, 0.78fr) minmax(400px, 1.22fr);
        gap: 30px;
    }

    #eb-event-page .ct-event-layout--no-media .ct-event-content-column {
        grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.22fr);
    }
}

@media (max-width: 900px) {
    #eb-event-page.ct-event-page {
        margin-top: 24px;
        padding-right: 18px;
        padding-left: 18px;
    }

    #eb-event-page .ct-event-layout,
    #eb-event-page .ct-event-layout--no-media .ct-event-content-column {
        grid-template-columns: minmax(0, 1fr);
    }

    #eb-event-page .ct-event-media-column {
        position: static;
        width: min(100%, 560px);
        margin: 0 auto;
    }
}

@media (max-width: 767px) {
    #eb-event-page .ct-event-hero {
        padding: 34px 26px 38px;
        border-radius: 23px;
    }

    #eb-event-page .ct-event-title,
    #eb-event-page .eb-page-heading.ct-event-title {
        padding-right: 0 !important;
        font-size: clamp(39px, 12vw, 58px) !important;
        line-height: 0.98 !important;
    }

    #eb-event-page .ct-event-print {
        position: static;
        margin-top: 22px !important;
    }

    #eb-event-page .ct-event-info-card,
    #eb-event-page .ct-event-description-card,
    #eb-event-page .ct-event-extra-card,
    #eb-event-page .ct-event-actions,
    #eb-event-page .ct-event-countdown {
        border-radius: 19px;
    }

    #eb-event-page .ct-event-media-card {
        border-radius: 21px;
    }

    #eb-event-page .ct-event-image,
    #eb-event-page img.ct-event-image,
    #eb-event-page .eb-event-large-image.ct-event-image,
    #eb-event-page .eb-thumb-left.ct-event-image {
        border-radius: 13px !important;
    }

    #eb-event-page .ct-event-media-card::after {
        border-radius: 13px;
    }
}

@media (max-width: 560px) {
    #eb-event-page.ct-event-page {
        padding-right: 13px;
        padding-left: 13px;
    }

    #eb-event-page .ct-event-info-card,
    #eb-event-page .ct-event-description-card {
        padding: 25px 21px !important;
    }

    #eb-event-page #eb-event-info tr {
        display: block !important;
        padding: 14px 0 !important;
    }

    #eb-event-page #eb-event-info td,
    #eb-event-page #eb-event-info th {
        display: block !important;
        width: 100% !important;
        padding: 2px 0 !important;
    }

    #eb-event-page #eb-event-info td:first-child,
    #eb-event-page #eb-event-info th:first-child {
        padding-right: 0 !important;
        margin-bottom: 5px;
        font-size: 12px !important;
        letter-spacing: 0.03em;
    }

    #eb-event-page .ct-event-actions ul,
    #eb-event-page .ct-event-actions li,
    #eb-event-page .ct-event-actions a,
    #eb-event-page .ct-event-actions button,
    #eb-event-page .ct-event-actions input[type="button"],
    #eb-event-page .ct-event-actions input[type="submit"] {
        width: 100%;
    }

    #eb-event-page .ct-event-back-action {
        margin-left: 0 !important;
    }
}

/* ==========================================================
   PRINT
   ========================================================== */

@media print {
    #eb-event-page.ct-event-page {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    #eb-event-page .ct-event-hero,
    #eb-event-page .ct-event-media-card,
    #eb-event-page .ct-event-info-card,
    #eb-event-page .ct-event-description-card,
    #eb-event-page .ct-event-extra-card {
        box-shadow: none !important;
    }

    #eb-event-page .ct-event-actions,
    #eb-event-page .ct-event-print {
        display: none !important;
    }

    #eb-event-page .ct-event-media-column {
        position: static;
    }
}

/* ==========================================================================
   RESTORED ADDITION: FULLCALENDAR PREMIUM FILTER ROWS
   ========================================================================== */

/* =========================================================
   FULLCALENDAR — PREMIUM FILTER ROWS V2
   Κατηγορίες / Τοποθεσίες σε πλήρες πλάτος
========================================================= */

#eb-fullcalendar-filter-container.filters {
    display: grid !important;
    grid-template-columns: minmax(280px, 1fr) auto !important;
    align-items: start !important;
    gap: 16px 18px !important;
}

#eb-fullcalendar-filter-container .ct-calendar-native-filter-hidden {
    display: none !important;
}

#eb-fullcalendar-filter-container .ct-calendar-filter-rows {
    grid-column: 1 / -1;
    display: grid;
    gap: 22px;
    width: 100%;
    min-width: 0;
    margin-top: 10px;
    padding-top: 22px;
    border-top: 1px solid rgba(64, 59, 110, 0.10);
}

/* Κάθε ομάδα φίλτρων γίνεται block πλήρους πλάτους */
#eb-fullcalendar-filter-container .ct-calendar-filter-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    min-width: 0;
}

/* Premium typography για ΕΙΔΟΣ ΔΡΑΣΗΣ / ΤΟΠΟΘΕΣΙΑ */
#eb-fullcalendar-filter-container .ct-calendar-filter-row__label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    color: #312b56;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: normal;
}

#eb-fullcalendar-filter-container .ct-calendar-filter-row__label::after {
    content: "";
    display: block;
    width: 54px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #413b6f 0%, #78d0cf 100%);
    opacity: 0.9;
}

/* Τα chips απλώνουν κανονικά στη γραμμή */
#eb-fullcalendar-filter-container .ct-calendar-category-tags,
#eb-fullcalendar-filter-container .ct-calendar-location-tags {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: stretch;
    justify-content: flex-start;
    gap: 12px;
    width: 100%;
    min-width: 0;
    padding: 0;
    overflow: visible;
}

#eb-fullcalendar-filter-container .ct-calendar-category-tag {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 12px 16px;
    white-space: nowrap;
}

#eb-fullcalendar-filter-container .ct-calendar-location-tag:not(.is-active) {
    background: rgba(255, 255, 255, 0.78);
}

/* Ελαφριά βελτίωση για πιο κομψό vertical rhythm */
#eb-fullcalendar-filter-container .ct-calendar-category-tag strong {
    font-weight: 800;
    letter-spacing: 0.01em;
}

#eb-fullcalendar-filter-container .ct-calendar-category-tag small {
    font-weight: 800;
    opacity: 0.82;
}

@media (max-width: 900px) {
    #eb-fullcalendar-filter-container.filters {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    #eb-fullcalendar-filter-container .ct-calendar-filter-rows {
        gap: 18px;
        margin-top: 8px;
        padding-top: 18px;
    }

    #eb-fullcalendar-filter-container .ct-calendar-filter-row__label {
        font-size: 12px;
        letter-spacing: 0.12em;
    }

    #eb-fullcalendar-filter-container .ct-calendar-category-tags,
    #eb-fullcalendar-filter-container .ct-calendar-location-tags {
        gap: 10px;
    }
}

@media (max-width: 620px) {
    #eb-fullcalendar-filter-container .ct-calendar-filter-rows {
        gap: 16px;
    }

    #eb-fullcalendar-filter-container .ct-calendar-filter-row {
        gap: 10px;
    }

    #eb-fullcalendar-filter-container .ct-calendar-filter-row__label {
        font-size: 11px;
        letter-spacing: 0.11em;
    }

    #eb-fullcalendar-filter-container .ct-calendar-category-tags,
    #eb-fullcalendar-filter-container .ct-calendar-location-tags {
        gap: 8px;
    }

    #eb-fullcalendar-filter-container .ct-calendar-category-tag {
        min-height: 44px;
        padding: 10px 14px;
        max-width: 100%;
    }
}

/* ==========================================================================
   RESTORED ADDITION: FULLCALENDAR TYPOGRAPHY
   ========================================================================== */

/* =========================================================
   FULLCALENDAR — TYPOGRAPHY MATCH WITH ANALYTICAL PROGRAMME
   Add at the END of custom.css
========================================================= */

#eb-calendar-page .ct-calendar-category-tag,
#eb-calendar-page .ct-calendar-location-tag {
    font-family: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0.075em !important;
    text-transform: uppercase !important;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

#eb-calendar-page .ct-calendar-category-tag strong,
#eb-calendar-page .ct-calendar-location-tag strong {
    font: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
    white-space: nowrap !important;
}

#eb-calendar-page .ct-calendar-category-tag small,
#eb-calendar-page .ct-calendar-location-tag small {
    flex: 0 0 auto;
    margin-left: 3px;

    font-family: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif !important;
    font-size: 8px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    font-variant-numeric: tabular-nums;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#eb-calendar-page .ct-calendar-category-tag__dot {
    flex: 0 0 auto;
}

/* Ίδιο ύψος και ρυθμός με τα φίλτρα του αναλυτικού προγράμματος */
#eb-calendar-page .ct-calendar-category-tag,
#eb-calendar-page .ct-calendar-location-tag {
    min-height: 42px !important;
    padding: 0 16px !important;
}

@media (max-width: 620px) {
    #eb-calendar-page .ct-calendar-category-tag,
    #eb-calendar-page .ct-calendar-location-tag {
        min-height: 40px !important;
        padding: 0 14px !important;
        font-size: 8.5px !important;
    }
}

/* ==========================================================================
   RESTORED ADDITION: PREMIUM WORKSHOPS FULL WIDTH
   ========================================================================== */

/* =========================================================
   CHANIARTOON — PREMIUM WORKSHOPS
   /workshops · /workshops/kids · /workshops/adults
========================================================= */

.ct-workshops-page,
.ct-workshops-page *,
.ct-workshops-page *::before,
.ct-workshops-page *::after {
    box-sizing: border-box;
}

.ct-workshops-page {
    --ct-workshop-ink: #211c35;
    --ct-workshop-muted: #6f6877;
    --ct-workshop-purple: #6657c8;
    --ct-workshop-violet: #b273e0;
    --ct-workshop-aqua: #70c8c8;
    --ct-workshop-kids: #c24d85;
    --ct-workshop-line: rgba(33, 28, 53, 0.11);

    width: 100%;
    margin: 0;
    padding: 0;

    font-family: "Manrope", sans-serif;
    color: var(--ct-workshop-ink);
}

.ct-workshops-container {
    width: min(1380px, calc(100% - 48px));
    margin: 0 auto;
}

/* HERO */
.ct-workshops-hero {
    position: relative;
    overflow: hidden;
    padding: 104px 0 92px;

    background:
        radial-gradient(circle at 87% 8%, rgba(178, 115, 224, 0.23), transparent 34%),
        radial-gradient(circle at 8% 100%, rgba(112, 200, 200, 0.15), transparent 30%),
        linear-gradient(135deg, #211c35 0%, #34264b 53%, #49325a 100%);

    color: #fff;
}

.ct-workshops-hero::before,
.ct-workshops-hero::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 50%;
    pointer-events: none;
}

.ct-workshops-hero::before {
    width: 420px;
    height: 420px;
    top: -235px;
    right: -70px;
}

.ct-workshops-hero::after {
    width: 280px;
    height: 280px;
    bottom: -190px;
    left: 9%;
}

.ct-workshops-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.65fr);
    gap: clamp(52px, 8vw, 120px);
    align-items: end;
}

.ct-workshops-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 22px;

    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.17em;
    text-transform: uppercase;
    color: #d4a9ef;
}

.ct-workshops-eyebrow::before {
    content: "";
    width: 44px;
    height: 2px;
    background: #d4a9ef;
}

.ct-workshops-hero__content h1 {
    max-width: 880px;
    margin: 0 0 27px;

    font-family: "Manrope", sans-serif;
    font-size: clamp(48px, 6vw, 88px);
    font-weight: 800;
    line-height: 0.96;
    letter-spacing: -0.058em;
    color: #fff;
}

.ct-workshops-hero__content p {
    max-width: 760px;
    margin: 0;

    font-size: 18px;
    font-weight: 500;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.72);
}

.ct-workshops-hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.ct-workshops-hero__stats div {
    min-width: 0;
    padding: 24px 17px 22px;
    background: rgba(25, 20, 39, 0.24);
}

.ct-workshops-hero__stats strong,
.ct-workshops-hero__stats span {
    display: block;
}

.ct-workshops-hero__stats strong {
    margin: 0 0 9px;
    font-size: clamp(35px, 3.5vw, 54px);
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.06em;
    color: #fff;
}

.ct-workshops-hero__stats span {
    font-size: 8px;
    font-weight: 900;
    line-height: 1.45;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.57);
}

/* CONTENT */
.ct-workshops-content {
    padding: 68px 0 112px;
    background:
        radial-gradient(circle at 95% 5%, rgba(178, 115, 224, 0.08), transparent 26%),
        #fbfaf8;
}

.ct-workshops-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 74px;
    padding: 8px;
    width: fit-content;
    max-width: 100%;

    border: 1px solid var(--ct-workshop-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 0 13px 36px rgba(33, 28, 53, 0.06);
}

.ct-workshops-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 47px;
    padding: 0 21px;

    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.065em;
    text-transform: uppercase;
    color: #514a67 !important;
    text-decoration: none !important;

    transition: transform .22s ease, background-color .22s ease, color .22s ease, box-shadow .22s ease;
}

.ct-workshops-tabs a:hover {
    transform: translateY(-2px);
    color: var(--ct-workshop-ink) !important;
}

.ct-workshops-tabs a.is-active {
    background: var(--ct-workshop-ink);
    color: #fff !important;
    box-shadow: 0 11px 25px rgba(33, 28, 53, 0.20);
}

.ct-workshops-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 40px;
    margin: 0 0 42px;
    padding: 0 0 28px;
    border-bottom: 1px solid var(--ct-workshop-line);
}

.ct-workshops-section-head > div > span {
    display: block;
    margin: 0 0 12px;

    font-size: 10px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #9651c8;
}

.ct-workshops-section-head h2 {
    max-width: 780px;
    margin: 0;

    font-family: "Manrope", sans-serif;
    font-size: clamp(36px, 4vw, 62px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.052em;
    color: var(--ct-workshop-ink);
}

.ct-workshops-section-head > p {
    flex: 0 0 auto;
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ct-workshop-muted);
}

.ct-workshops-section-head > p strong {
    display: block;
    margin: 0 0 6px;
    font-size: 38px;
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.06em;
    color: var(--ct-workshop-ink);
}

/* GRID / CARDS */
.ct-workshops-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.ct-workshop-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ct-workshop-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(33, 28, 53, 0.075);

    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.ct-workshop-card__link {
    display: grid;
    grid-template-columns: minmax(230px, 0.82fr) minmax(0, 1.18fr);
    min-height: 390px;
    color: inherit !important;
    text-decoration: none !important;
}

.ct-workshop-card__visual {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #2d2542;
}

.ct-workshop-card__visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;

    transition: transform .55s ease, filter .55s ease;
}

.ct-workshop-card__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(20, 16, 31, 0.04), rgba(20, 16, 31, 0.36)),
        linear-gradient(90deg, transparent 55%, rgba(20, 16, 31, 0.14));
    pointer-events: none;
}

.ct-workshop-card__placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 30px;

    background:
        radial-gradient(circle at 75% 18%, rgba(178, 115, 224, 0.42), transparent 28%),
        linear-gradient(145deg, #211c35, #4b315c);
}

.ct-workshop-card__placeholder span,
.ct-workshop-card__placeholder strong {
    display: block;
    color: #fff;
}

.ct-workshop-card__placeholder span {
    margin-bottom: 7px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .15em;
}

.ct-workshop-card__placeholder strong {
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -.035em;
}

.ct-workshop-card__date {
    position: absolute;
    top: 22px;
    left: 22px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 76px;
    min-height: 86px;
    padding: 10px;

    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 18px;
    background: rgba(29, 23, 43, 0.55);
    color: #fff;
    text-align: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.ct-workshop-card__date strong,
.ct-workshop-card__date span {
    display: block;
}

.ct-workshop-card__date strong {
    font-size: 35px;
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.06em;
}

.ct-workshop-card__date span {
    margin-top: 8px;
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.12em;
}

.ct-workshop-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 34px 32px 30px;
}

.ct-workshop-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
}

.ct-workshop-card__type,
.ct-workshop-card__audience {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 6px 10px;
    border-radius: 999px;

    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.095em;
    text-transform: uppercase;
}

.ct-workshop-card__type {
    background: rgba(102, 87, 200, 0.10);
    color: #5d4dbb;
}

.ct-workshop-card__audience {
    background: rgba(194, 77, 133, 0.11);
    color: #b23d75;
}

.ct-workshop-card h3 {
    margin: 0 0 17px;

    font-family: "Manrope", sans-serif;
    font-size: clamp(25px, 2.15vw, 34px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.04em;
    color: var(--ct-workshop-ink);

    overflow-wrap: anywhere;
}

.ct-workshop-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 0 0 19px;
}

.ct-workshop-card__meta span {
    position: relative;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    color: #8a568f;
}

.ct-workshop-card__meta span + span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -10px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #b6aebd;
    transform: translateY(-50%);
}

.ct-workshop-card__body > p {
    flex-grow: 1;
    margin: 0 0 27px;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.72;
    color: var(--ct-workshop-muted);
}

.ct-workshop-card__more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 10px;
    padding-bottom: 4px;

    border-bottom: 1px solid rgba(102, 87, 200, 0.34);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #5d4dbb;

    transition: gap .22s ease, border-color .22s ease;
}

@media (hover: hover) {
    .ct-workshop-card:hover {
        transform: translateY(-7px);
        border-color: rgba(102, 87, 200, 0.27);
        box-shadow: 0 27px 66px rgba(33, 28, 53, 0.14);
    }

    .ct-workshop-card:hover .ct-workshop-card__visual img {
        transform: scale(1.045);
        filter: saturate(1.05);
    }

    .ct-workshop-card:hover .ct-workshop-card__more {
        gap: 15px;
        border-color: #6657c8;
    }
}

/* EMPTY / PAGINATION */
.ct-workshops-empty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 32px;
    border: 1px solid var(--ct-workshop-line);
    border-radius: 20px;
    background: #fff;
}

.ct-workshops-empty span {
    font-size: 17px;
    font-weight: 700;
    color: var(--ct-workshop-muted);
}

.ct-workshops-empty a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 45px;
    padding: 0 18px;
    border-radius: 999px;
    background: var(--ct-workshop-ink);
    color: #fff !important;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
    text-decoration: none !important;
}

.ct-workshops-pagination {
    margin-top: 48px;
}

/* RESPONSIVE */
@media (max-width: 1199px) {
    .ct-workshops-hero__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 48px;
    }

    .ct-workshops-hero__stats {
        max-width: 650px;
    }

    .ct-workshop-card__link {
        grid-template-columns: minmax(205px, 0.76fr) minmax(0, 1.24fr);
    }
}

@media (max-width: 991px) {
    .ct-workshops-container {
        width: min(100% - 36px, 860px);
    }

    .ct-workshops-hero {
        padding: 84px 0 76px;
    }

    .ct-workshops-content {
        padding: 54px 0 88px;
    }

    .ct-workshops-tabs {
        margin-bottom: 55px;
    }

    .ct-workshops-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-workshop-card__link {
        grid-template-columns: minmax(260px, 0.82fr) minmax(0, 1.18fr);
    }
}

@media (max-width: 767px) {
    .ct-workshops-container {
        width: min(100% - 28px, 680px);
    }

    .ct-workshops-hero {
        padding: 68px 0 62px;
    }

    .ct-workshops-hero__content h1 {
        font-size: clamp(41px, 12vw, 59px);
    }

    .ct-workshops-hero__content p {
        font-size: 16px;
    }

    .ct-workshops-hero__stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ct-workshops-hero__stats div {
        padding: 20px 10px 18px;
    }

    .ct-workshops-content {
        padding: 42px 0 74px;
    }

    .ct-workshops-tabs {
        width: 100%;
        margin-bottom: 45px;
        padding: 6px;
        border-radius: 18px;
    }

    .ct-workshops-tabs a {
        flex: 1 1 100%;
        min-height: 43px;
    }

    .ct-workshops-section-head {
        display: block;
        margin-bottom: 30px;
    }

    .ct-workshops-section-head > p {
        display: flex;
        align-items: center;
        gap: 9px;
        margin-top: 24px;
    }

    .ct-workshops-section-head > p strong {
        display: inline;
        margin: 0;
        font-size: 31px;
    }

    .ct-workshop-card__link {
        display: block;
        min-height: 0;
    }

    .ct-workshop-card__visual {
        min-height: 370px;
    }

    .ct-workshop-card__body {
        padding: 28px 24px 25px;
    }

    .ct-workshop-card h3 {
        font-size: 28px;
    }

    .ct-workshops-empty {
        display: block;
        padding: 25px;
    }

    .ct-workshops-empty a {
        width: 100%;
        margin-top: 20px;
    }
}

@media (max-width: 430px) {
    .ct-workshops-hero__stats {
        grid-template-columns: minmax(0, 1fr);
        border-radius: 18px;
    }

    .ct-workshops-hero__stats div {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }

    .ct-workshops-hero__stats strong {
        margin: 0;
        font-size: 37px;
    }

    .ct-workshop-card__visual {
        min-height: 315px;
    }

    .ct-workshop-card__date {
        top: 17px;
        left: 17px;
        width: 69px;
        min-height: 79px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-workshops-tabs a,
    .ct-workshop-card,
    .ct-workshop-card__visual img,
    .ct-workshop-card__more {
        transition: none !important;
    }

    .ct-workshops-tabs a:hover,
    .ct-workshop-card:hover,
    .ct-workshop-card:hover .ct-workshop-card__visual img {
        transform: none !important;
    }
}

/* =========================================================
   WORKSHOPS — TRUE FULL-WIDTH PAGE
   Αφαιρεί το max-width/padding του Joomla component μόνο
   στις σελίδες /workshops, χωρίς να επηρεάζει άλλα views.
========================================================= */

/* Το Joomla/Helix wrapper δεν πρέπει να κρατά τη σελίδα σε στενό container. */
body:has(.ct-workshops-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.ct-workshops-page) #sp-main-body > .container,
body:has(.ct-workshops-page) #sp-main-body > .container-fluid,
body:has(.ct-workshops-page) #sp-main-body .container-inner,
body:has(.ct-workshops-page) #sp-component,
body:has(.ct-workshops-page) #sp-component > .sp-column,
body:has(.ct-workshops-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-workshops-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-workshops-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-workshops-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Full-bleed fallback ακόμη κι αν υπάρχει διαφορετικό template wrapper. */
.ct-workshops-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
}

/* Το χρωματιστό hero και το ανοιχτό φόντο καλύπτουν όλο το viewport. */
.ct-workshops-page .ct-workshops-hero,
.ct-workshops-page .ct-workshops-content {
    width: 100%;
    max-width: none;
    margin: 0;
}

/* Μόνο το περιεχόμενο μένει ευθυγραμμισμένο με το υπόλοιπο site. */
.ct-workshops-page .ct-workshops-container {
    width: min(1380px, calc(100% - 64px));
    max-width: 1380px;
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 1600px) {
    .ct-workshops-page .ct-workshops-container {
        width: min(1460px, calc(100% - 96px));
        max-width: 1460px;
    }
}

@media (max-width: 991px) {
    .ct-workshops-page .ct-workshops-container {
        width: calc(100% - 40px);
    }
}

@media (max-width: 767px) {
    .ct-workshops-page .ct-workshops-container {
        width: calc(100% - 28px);
    }
}

/* ==========================================================================
   RESTORED ADDITION: PREMIUM PRESENTATIONS
   ========================================================================== */

/* =========================================================
   CHANIARTOON — PRESENTATIONS PAGE
   /events/presentations
========================================================= */

body:has(.ct-presentations-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.ct-presentations-page) #sp-main-body > .container,
body:has(.ct-presentations-page) #sp-main-body > .container-fluid,
body:has(.ct-presentations-page) #sp-main-body .container-inner,
body:has(.ct-presentations-page) #sp-component,
body:has(.ct-presentations-page) #sp-component > .sp-column,
body:has(.ct-presentations-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-presentations-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-presentations-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-presentations-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.ct-presentations-page,
.ct-presentations-page *,
.ct-presentations-page *::before,
.ct-presentations-page *::after {
    box-sizing: border-box;
}

.ct-presentations-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
    font-family: "Manrope", sans-serif;
    color: #25203d;
}

.ct-presentations-container {
    width: min(1380px, calc(100% - 64px));
    max-width: 1380px;
    margin-right: auto;
    margin-left: auto;
}

/* HERO */
.ct-presentations-hero {
    position: relative;
    overflow: hidden;
    width: 100%;
    background:
        radial-gradient(circle at 84% 14%, rgba(200, 138, 236, 0.18), rgba(200, 138, 236, 0) 30%),
        radial-gradient(circle at 10% 92%, rgba(117, 204, 204, 0.12), rgba(117, 204, 204, 0) 31%),
        linear-gradient(135deg, #1e1935 0%, #33254e 52%, #4b315f 100%);
    color: #fff;
}

.ct-presentations-hero::before,
.ct-presentations-hero::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    pointer-events: none;
}

.ct-presentations-hero::before {
    width: 480px;
    height: 480px;
    top: -245px;
    right: 4%;
}

.ct-presentations-hero::after {
    width: 300px;
    height: 300px;
    left: 6%;
    bottom: -195px;
}

.ct-presentations-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(270px, .65fr);
    gap: 70px;
    align-items: end;
    min-height: 680px;
    padding-top: 102px;
    padding-bottom: 76px;
}

.ct-presentations-hero__content {
    max-width: 900px;
}

.ct-presentations-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 26px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .17em;
    text-transform: uppercase;
    color: #d69af4;
}

.ct-presentations-eyebrow::before {
    content: "";
    width: 42px;
    height: 2px;
    background: #d69af4;
}

.ct-presentations-hero h1 {
    max-width: 890px;
    margin: 0 0 28px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(60px, 7vw, 112px);
    font-weight: 850;
    line-height: .91;
    letter-spacing: -.06em;
    color: #fff;
}

.ct-presentations-hero p {
    max-width: 720px;
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.75;
    color: rgba(255,255,255,.73);
}

.ct-presentations-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-self: end;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 22px;
    background: rgba(255,255,255,.055);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.ct-presentations-hero__stats div {
    min-width: 0;
    padding: 28px 24px 25px;
}

.ct-presentations-hero__stats div + div {
    border-left: 1px solid rgba(255,255,255,.12);
}

.ct-presentations-hero__stats strong {
    display: block;
    margin-bottom: 8px;
    font-size: 52px;
    font-weight: 850;
    line-height: .9;
    letter-spacing: -.055em;
    color: #fff;
}

.ct-presentations-hero__stats span {
    display: block;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: rgba(255,255,255,.58);
}

/* CONTENT */
.ct-presentations-content {
    position: relative;
    width: 100%;
    padding: 54px 0 120px;
    background:
        radial-gradient(circle at 92% 7%, rgba(178,115,224,.10), rgba(178,115,224,0) 27%),
        linear-gradient(180deg, #fbf9fd 0%, #fff 38%, #fbfafc 100%);
}

/* Shared navigation for Actions */
.ct-actions-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 82px;
    padding: 7px;
    border: 1px solid rgba(37,32,61,.09);
    border-radius: 999px;
    background: rgba(255,255,255,.84);
    box-shadow: 0 15px 40px rgba(37,32,61,.08);
}

.ct-actions-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: .045em;
    color: #4a4466 !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition: transform .22s ease, background-color .22s ease, color .22s ease;
}

.ct-actions-tabs a:hover {
    transform: translateY(-2px);
    color: #251f43 !important;
}

.ct-actions-tabs a.is-active {
    background: #2a2348;
    color: #fff !important;
    box-shadow: 0 9px 22px rgba(42,35,72,.24);
}

.ct-presentations-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 40px;
    align-items: end;
    margin-bottom: 46px;
}

.ct-presentations-section-head > div > span {
    display: block;
    margin-bottom: 16px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #a35fd3;
}

.ct-presentations-section-head h2 {
    max-width: 820px;
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(48px, 5vw, 78px);
    font-weight: 850;
    line-height: .98;
    letter-spacing: -.052em;
    color: #28223f;
}

.ct-presentations-section-head > p {
    display: flex;
    align-items: baseline;
    gap: 11px;
    margin: 0 0 7px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #827a91;
}

.ct-presentations-section-head > p strong {
    font-size: 46px;
    font-weight: 850;
    line-height: .8;
    letter-spacing: -.05em;
    color: #2a2447;
}

/* LIST */
.ct-presentations-list {
    display: grid;
    gap: 24px;
}

.ct-presentation-card {
    overflow: hidden;
    border: 1px solid rgba(37,32,61,.09);
    border-radius: 24px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 18px 50px rgba(37,32,61,.07);
    transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.ct-presentation-card__link {
    display: grid;
    grid-template-columns: 150px minmax(0, 1.2fr) minmax(300px, .72fr);
    min-height: 310px;
    color: inherit !important;
    text-decoration: none !important;
}

.ct-presentation-card__date {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px 26px;
    border-right: 1px solid rgba(37,32,61,.08);
    background: linear-gradient(180deg, rgba(178,115,224,.10), rgba(117,204,204,.06));
}

.ct-presentation-card__date span,
.ct-presentation-card__date em {
    display: block;
    font-style: normal;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #8f54bd;
}

.ct-presentation-card__date strong {
    display: block;
    font-size: 78px;
    font-weight: 850;
    line-height: .8;
    letter-spacing: -.07em;
    color: #292347;
}

.ct-presentation-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 38px 42px 34px;
}

.ct-presentation-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 21px;
}

.ct-presentation-card__badges span {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(102,87,200,.10);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .10em;
    text-transform: uppercase;
    color: #6657c8;
}

.ct-presentation-card__badges span.is-audience {
    background: rgba(117,204,204,.15);
    color: #287a7f;
}

.ct-presentation-card h3 {
    max-width: 760px;
    margin: 0 0 18px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(30px, 3vw, 48px);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -.042em;
    color: #292347;
}

.ct-presentation-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-bottom: 20px;
}

.ct-presentation-card__meta span {
    position: relative;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.5;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #6f687b;
}

.ct-presentation-card__meta span + span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -11px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #b273e0;
    transform: translateY(-50%);
}

.ct-presentation-card__body p {
    max-width: 760px;
    margin: 0 0 28px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.7;
    color: #706979;
}

.ct-presentation-card__more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 9px;
    margin-top: auto;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(102,87,200,.30);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.3;
    color: #6657c8;
    transition: gap .22s ease, border-color .22s ease;
}

.ct-presentation-card__visual {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #25203d;
}

.ct-presentation-card__visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .55s ease, filter .55s ease;
}

.ct-presentation-card__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(37,32,61,.16), rgba(37,32,61,0) 45%);
    pointer-events: none;
}

.ct-presentation-card__placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px;
    background:
        radial-gradient(circle at 80% 15%, rgba(178,115,224,.35), rgba(178,115,224,0) 35%),
        linear-gradient(145deg, #28223f, #4b315f);
    color: #fff;
}

.ct-presentation-card__placeholder span {
    margin-bottom: 8px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .16em;
}

.ct-presentation-card__placeholder strong {
    font-size: 30px;
    font-weight: 850;
}

.ct-presentations-empty {
    padding: 42px;
    border: 1px solid rgba(37,32,61,.09);
    border-radius: 22px;
    background: #fff;
    font-size: 17px;
    font-weight: 700;
    color: #686172;
}

.ct-presentations-pagination {
    margin-top: 44px;
}

@media (hover: hover) {
    .ct-presentation-card:hover {
        transform: translateY(-7px);
        border-color: rgba(102,87,200,.25);
        box-shadow: 0 28px 70px rgba(37,32,61,.13);
    }

    .ct-presentation-card:hover .ct-presentation-card__visual img {
        transform: scale(1.045);
        filter: saturate(1.04);
    }

    .ct-presentation-card:hover .ct-presentation-card__more {
        gap: 14px;
        border-color: #6657c8;
    }
}

@media (min-width: 1600px) {
    .ct-presentations-container {
        width: min(1460px, calc(100% - 96px));
        max-width: 1460px;
    }
}

@media (max-width: 1199px) {
    .ct-presentations-hero__grid {
        min-height: 610px;
        gap: 45px;
    }

    .ct-presentation-card__link {
        grid-template-columns: 125px minmax(0, 1.15fr) minmax(250px, .70fr);
    }

    .ct-presentation-card__body {
        padding-right: 30px;
        padding-left: 32px;
    }
}

@media (max-width: 991px) {
    .ct-presentations-container {
        width: calc(100% - 40px);
    }

    .ct-presentations-hero__grid {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-top: 78px;
        padding-bottom: 58px;
    }

    .ct-presentations-hero__stats {
        max-width: 480px;
    }

    .ct-actions-tabs {
        width: 100%;
        border-radius: 22px;
    }

    .ct-actions-tabs a {
        flex: 1 1 auto;
    }

    .ct-presentation-card__link {
        grid-template-columns: 112px minmax(0, 1fr);
    }

    .ct-presentation-card__visual {
        grid-column: 1 / -1;
        min-height: 320px;
        order: -1;
    }

    .ct-presentation-card__date {
        min-height: 270px;
    }
}

@media (max-width: 767px) {
    .ct-presentations-container {
        width: calc(100% - 28px);
    }

    .ct-presentations-hero__grid {
        padding-top: 58px;
        padding-bottom: 48px;
    }

    .ct-presentations-hero h1 {
        font-size: clamp(48px, 14vw, 68px);
    }

    .ct-presentations-hero p {
        font-size: 16px;
    }

    .ct-presentations-content {
        padding-top: 34px;
        padding-bottom: 80px;
    }

    .ct-actions-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-bottom: 58px;
        padding: 6px;
    }

    .ct-actions-tabs a {
        min-height: 42px;
        padding: 0 12px;
        font-size: 10px;
        white-space: normal;
        text-align: center;
    }

    .ct-presentations-section-head {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .ct-presentations-section-head h2 {
        font-size: 46px;
    }

    .ct-presentations-section-head > p {
        margin: 0;
    }

    .ct-presentation-card__link {
        display: block;
    }

    .ct-presentation-card__visual {
        min-height: 300px;
    }

    .ct-presentation-card__date {
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 16px;
        min-height: 0;
        padding: 20px 22px;
        border-right: 0;
        border-bottom: 1px solid rgba(37,32,61,.08);
    }

    .ct-presentation-card__date strong {
        font-size: 54px;
    }

    .ct-presentation-card__body {
        padding: 28px 24px 25px;
    }

    .ct-presentation-card h3 {
        font-size: 32px;
    }
}

@media (max-width: 430px) {
    .ct-presentations-hero__stats div {
        padding-right: 16px;
        padding-left: 16px;
    }

    .ct-presentations-hero__stats strong {
        font-size: 42px;
    }

    .ct-actions-tabs {
        grid-template-columns: 1fr;
        border-radius: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-actions-tabs a,
    .ct-presentation-card,
    .ct-presentation-card__visual img,
    .ct-presentation-card__more {
        transition: none !important;
    }

    .ct-presentation-card:hover,
    .ct-presentation-card:hover .ct-presentation-card__visual img {
        transform: none !important;
    }
}

/* ==========================================================================
   RESTORED ADDITION: PREMIUM SCREENINGS
   ========================================================================== */

/* =========================================================
   CHANIARTOON — SCREENINGS PAGE
   /events/screenings
========================================================= */

body:has(.ct-screenings-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.ct-screenings-page) #sp-main-body > .container,
body:has(.ct-screenings-page) #sp-main-body > .container-fluid,
body:has(.ct-screenings-page) #sp-main-body .container-inner,
body:has(.ct-screenings-page) #sp-component,
body:has(.ct-screenings-page) #sp-component > .sp-column,
body:has(.ct-screenings-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-screenings-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-screenings-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-screenings-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.ct-screenings-page,
.ct-screenings-page *,
.ct-screenings-page *::before,
.ct-screenings-page *::after {
    box-sizing: border-box;
}

.ct-screenings-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
    font-family: "Manrope", sans-serif;
    color: #242039;
}

.ct-screenings-container {
    width: min(1380px, calc(100% - 64px));
    max-width: 1380px;
    margin-right: auto;
    margin-left: auto;
}

/* =========================================================
   HERO
========================================================= */

.ct-screenings-hero {
    position: relative;
    overflow: hidden;
    width: 100%;
    background:
        radial-gradient(circle at 83% 16%, rgba(216, 80, 87, 0.18), rgba(216, 80, 87, 0) 30%),
        radial-gradient(circle at 8% 92%, rgba(188, 113, 224, 0.12), rgba(188, 113, 224, 0) 31%),
        linear-gradient(135deg, #13101e 0%, #21172f 49%, #38213b 100%);
    color: #ffffff;
}

.ct-screenings-hero::before,
.ct-screenings-hero::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;
    pointer-events: none;
}

.ct-screenings-hero::before {
    width: 520px;
    height: 520px;
    top: -285px;
    right: 4%;
}

.ct-screenings-hero::after {
    width: 330px;
    height: 330px;
    bottom: -210px;
    left: 7%;
}

.ct-screenings-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(350px, 0.65fr);
    gap: 72px;
    align-items: end;
    min-height: 690px;
    padding-top: 104px;
    padding-bottom: 78px;
}

.ct-screenings-hero__content {
    max-width: 960px;
}

.ct-screenings-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.17em;
    text-transform: uppercase;
    color: #ef777c;
}

.ct-screenings-eyebrow::before {
    content: "";
    width: 42px;
    height: 2px;
    background: #ef777c;
}

.ct-screenings-hero h1 {
    max-width: 980px;
    margin: 0 0 30px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(58px, 6.9vw, 108px);
    font-weight: 850;
    line-height: 0.92;
    letter-spacing: -0.06em;
    color: #ffffff;
}

.ct-screenings-hero p {
    max-width: 735px;
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.72);
}

.ct-screenings-hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-self: end;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.055);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.ct-screenings-hero__stats div {
    min-width: 0;
    padding: 27px 19px 24px;
}

.ct-screenings-hero__stats div + div {
    border-left: 1px solid rgba(255, 255, 255, 0.11);
}

.ct-screenings-hero__stats strong {
    display: block;
    margin-bottom: 8px;
    font-size: clamp(40px, 3.3vw, 54px);
    font-weight: 850;
    line-height: 0.9;
    letter-spacing: -0.055em;
    color: #ffffff;
}

.ct-screenings-hero__stats span {
    display: block;
    font-size: 8px;
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.57);
}

/* =========================================================
   CONTENT
========================================================= */

.ct-screenings-content {
    position: relative;
    width: 100%;
    padding: 54px 0 122px;
    background:
        radial-gradient(circle at 91% 6%, rgba(216, 80, 87, 0.08), rgba(216, 80, 87, 0) 26%),
        linear-gradient(180deg, #fcfafb 0%, #ffffff 40%, #fbfafc 100%);
}

/* Uses the shared .ct-actions-tabs rules from presentations-premium.css. */
.ct-screenings-page .ct-actions-tabs {
    margin-bottom: 82px;
}

.ct-screenings-page .ct-actions-tabs a.is-active {
    background: #9f3f49;
    box-shadow: 0 9px 22px rgba(159, 63, 73, 0.25);
}

.ct-screenings-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 44px;
    align-items: end;
    margin-bottom: 48px;
}

.ct-screenings-section-head > div > span {
    display: block;
    margin-bottom: 16px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #ce5057;
}

.ct-screenings-section-head h2 {
    max-width: 900px;
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(46px, 4.8vw, 76px);
    font-weight: 850;
    line-height: 0.99;
    letter-spacing: -0.052em;
    color: #27213e;
}

.ct-screenings-section-head > p {
    display: flex;
    align-items: baseline;
    gap: 11px;
    margin: 0 0 7px;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    color: #847c91;
}

.ct-screenings-section-head > p strong {
    font-size: 46px;
    font-weight: 850;
    line-height: 0.8;
    letter-spacing: -0.05em;
    color: #2a2447;
}

/* =========================================================
   SCREENING CARDS
========================================================= */

.ct-screenings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.ct-screening-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(37, 32, 61, 0.09);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 20px 54px rgba(37, 32, 61, 0.08);
    transition: transform 0.32s ease, border-color 0.32s ease, box-shadow 0.32s ease;
}

.ct-screening-card__link {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    color: inherit !important;
    text-decoration: none !important;
}

.ct-screening-card__visual {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 3px;
    min-height: 330px;
    overflow: hidden;
    background: #191321;
}

.ct-screening-card__visual--1 {
    display: block;
}

.ct-screening-card__visual--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
}

.ct-screening-card__visual--3 .ct-screening-card__frame:first-child {
    grid-row: 1 / -1;
}

.ct-screening-card__frame {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: #241a2d;
}

.ct-screening-card__frame img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.65s ease, filter 0.65s ease;
}

.ct-screening-card__placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 34px;
    background:
        radial-gradient(circle at 75% 18%, rgba(216, 80, 87, 0.32), rgba(216, 80, 87, 0) 33%),
        linear-gradient(145deg, #17101f, #3b2442);
}

.ct-screening-card__placeholder em,
.ct-screening-card__placeholder strong {
    display: block;
    font-style: normal;
    color: #ffffff;
}

.ct-screening-card__placeholder em {
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.16em;
}

.ct-screening-card__placeholder strong {
    font-size: 42px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: -0.05em;
}

.ct-screening-card__shade {
    position: absolute;
    z-index: 2;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(17, 11, 24, 0.03), rgba(17, 11, 24, 0.08) 50%, rgba(17, 11, 24, 0.52) 100%);
    pointer-events: none;
}

.ct-screening-card__date {
    position: absolute;
    z-index: 3;
    top: 22px;
    left: 22px;
    display: flex;
    flex-direction: column;
    min-width: 92px;
    padding: 14px 16px 13px;
    border: 1px solid rgba(255, 255, 255, 0.27);
    border-radius: 17px;
    background: rgba(21, 15, 29, 0.58);
    color: #ffffff;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.ct-screening-card__date small,
.ct-screening-card__date em {
    display: block;
    font-style: normal;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}

.ct-screening-card__date strong {
    display: block;
    margin: 5px 0 4px;
    font-size: 43px;
    font-weight: 850;
    line-height: 0.82;
    letter-spacing: -0.06em;
    color: #ffffff;
}

.ct-screening-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    padding: 31px 32px 30px;
}

.ct-screening-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 17px;
}

.ct-screening-card__badges span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(216, 80, 87, 0.1);
    font-size: 9px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: #ba454d;
}

.ct-screening-card__badges .is-audience {
    background: rgba(178, 115, 224, 0.11);
    color: #8d4eb7;
}

.ct-screening-card__body h3 {
    margin: 0 0 16px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(29px, 2.4vw, 41px);
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: -0.045em;
    color: #25203d;
}

.ct-screening-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-bottom: 17px;
}

.ct-screening-card__meta span {
    position: relative;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    color: #625b70;
}

.ct-screening-card__meta span + span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -10px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #ce5057;
    transform: translateY(-50%);
}

.ct-screening-card__body > p {
    flex-grow: 1;
    margin: 0 0 24px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.7;
    color: #746d7d;
}

.ct-screening-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 25px;
}

.ct-screening-card__stats span {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    min-height: 38px;
    padding: 9px 12px;
    border: 1px solid rgba(37, 32, 61, 0.09);
    border-radius: 11px;
    background: #faf8fb;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: #777080;
}

.ct-screening-card__stats strong {
    font-size: 18px;
    font-weight: 850;
    letter-spacing: -0.035em;
    color: #2a2447;
}

.ct-screening-card__more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 10px;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(206, 80, 87, 0.32);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.3;
    color: #b9434b;
    transition: gap 0.22s ease, border-color 0.22s ease;
}

.ct-screenings-empty {
    padding: 46px;
    border: 1px solid rgba(37, 32, 61, 0.09);
    border-radius: 22px;
    background: #ffffff;
    font-size: 16px;
    color: #6e6777;
}

.ct-screenings-pagination {
    margin-top: 52px;
}

@media (hover: hover) {
    .ct-screening-card:hover {
        transform: translateY(-8px);
        border-color: rgba(206, 80, 87, 0.24);
        box-shadow: 0 29px 70px rgba(37, 32, 61, 0.14);
    }

    .ct-screening-card:hover .ct-screening-card__frame img {
        transform: scale(1.045);
        filter: saturate(1.05);
    }

    .ct-screening-card:hover .ct-screening-card__more {
        gap: 15px;
        border-color: #b9434b;
    }
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {
    .ct-screenings-hero__grid {
        grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
        gap: 44px;
        min-height: 620px;
    }

    .ct-screenings-grid {
        gap: 22px;
    }

    .ct-screening-card__visual {
        min-height: 285px;
    }
}

@media (max-width: 900px) {
    .ct-screenings-container {
        width: min(100% - 40px, 920px);
    }

    .ct-screenings-hero__grid {
        grid-template-columns: minmax(0, 1fr);
        min-height: auto;
        padding-top: 84px;
        padding-bottom: 66px;
    }

    .ct-screenings-hero__stats {
        max-width: 590px;
    }

    .ct-screenings-section-head {
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-screenings-section-head > p {
        margin: 0;
    }

    .ct-screenings-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-screening-card__visual {
        min-height: 360px;
    }
}

@media (max-width: 620px) {
    .ct-screenings-container {
        width: calc(100% - 28px);
    }

    .ct-screenings-hero__grid {
        padding-top: 68px;
        padding-bottom: 54px;
    }

    .ct-screenings-eyebrow {
        font-size: 10px;
        letter-spacing: 0.13em;
    }

    .ct-screenings-eyebrow::before {
        width: 28px;
    }

    .ct-screenings-hero h1 {
        font-size: clamp(44px, 13vw, 62px);
        line-height: 0.96;
    }

    .ct-screenings-hero p {
        font-size: 16px;
        line-height: 1.68;
    }

    .ct-screenings-hero__stats {
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-screenings-hero__stats div + div {
        border-top: 1px solid rgba(255, 255, 255, 0.11);
        border-left: 0;
    }

    .ct-screenings-content {
        padding-top: 36px;
        padding-bottom: 86px;
    }

    .ct-screenings-page .ct-actions-tabs {
        width: 100%;
        margin-bottom: 56px;
        border-radius: 19px;
    }

    .ct-screenings-page .ct-actions-tabs a {
        flex: 1 1 auto;
    }

    .ct-screenings-section-head {
        margin-bottom: 34px;
    }

    .ct-screenings-section-head h2 {
        font-size: 42px;
    }

    .ct-screening-card {
        border-radius: 21px;
    }

    .ct-screening-card__visual {
        min-height: 270px;
    }

    .ct-screening-card__date {
        top: 15px;
        left: 15px;
        min-width: 80px;
        padding: 12px 13px;
    }

    .ct-screening-card__date strong {
        font-size: 37px;
    }

    .ct-screening-card__body {
        padding: 25px 22px 24px;
    }

    .ct-screening-card__body h3 {
        font-size: 31px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-screening-card,
    .ct-screening-card__frame img,
    .ct-screening-card__more {
        transition: none !important;
    }

    .ct-screening-card:hover,
    .ct-screening-card:hover .ct-screening-card__frame img {
        transform: none !important;
    }
}


/* =========================================================
   ADDED: CONCERTS PREMIUM
========================================================= */

/* =========================================================
   CHANIARTOON — CONCERTS PAGE
   /events/concerts
========================================================= */

body:has(.ct-concerts-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.ct-concerts-page) #sp-main-body > .container,
body:has(.ct-concerts-page) #sp-main-body > .container-fluid,
body:has(.ct-concerts-page) #sp-main-body .container-inner,
body:has(.ct-concerts-page) #sp-component,
body:has(.ct-concerts-page) #sp-component > .sp-column,
body:has(.ct-concerts-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-concerts-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-concerts-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-concerts-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.ct-concerts-page,
.ct-concerts-page *,
.ct-concerts-page *::before,
.ct-concerts-page *::after {
    box-sizing: border-box;
}

.ct-concerts-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
    font-family: "Manrope", sans-serif;
    color: #211c33;
}

.ct-concerts-container {
    width: min(1440px, calc(100% - 64px));
    max-width: 1440px;
    margin-right: auto;
    margin-left: auto;
}

/* =========================================================
   HERO
========================================================= */

.ct-concerts-hero {
    position: relative;
    overflow: hidden;
    width: 100%;
    background:
        radial-gradient(circle at 83% 17%, rgba(255, 164, 80, 0.24), rgba(255, 164, 80, 0) 28%),
        radial-gradient(circle at 8% 92%, rgba(207, 77, 142, 0.18), rgba(207, 77, 142, 0) 31%),
        linear-gradient(132deg, #15121f 0%, #251b30 48%, #55302f 100%);
    color: #fff;
}

.ct-concerts-hero::before {
    content: "LIVE";
    position: absolute;
    right: -0.045em;
    bottom: -0.18em;
    font-size: clamp(180px, 24vw, 430px);
    font-weight: 900;
    line-height: 0.75;
    letter-spacing: -0.09em;
    color: rgba(255, 255, 255, 0.032);
    pointer-events: none;
    user-select: none;
}

.ct-concerts-hero::after {
    content: "";
    position: absolute;
    top: -260px;
    right: 5%;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 50%;
    pointer-events: none;
}

.ct-concerts-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
    gap: 76px;
    align-items: end;
    min-height: 730px;
    padding-top: 116px;
    padding-bottom: 84px;
}

.ct-concerts-hero__content {
    max-width: 980px;
}

.ct-concerts-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 28px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: #ffb56e;
}

.ct-concerts-eyebrow::before {
    content: "";
    width: 46px;
    height: 2px;
    background: linear-gradient(90deg, #ff9656, #e0639d);
}

.ct-concerts-hero h1 {
    max-width: 1050px;
    margin: 0 0 31px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(62px, 7.6vw, 124px);
    font-weight: 850;
    line-height: 0.89;
    letter-spacing: -0.066em;
    color: #fff;
}

.ct-concerts-hero p {
    max-width: 760px;
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.76;
    color: rgba(255, 255, 255, 0.72);
}

.ct-concerts-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-self: end;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.055);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.ct-concerts-hero__stats div {
    min-width: 0;
    padding: 29px 24px 26px;
}

.ct-concerts-hero__stats div + div {
    border-left: 1px solid rgba(255, 255, 255, 0.13);
}

.ct-concerts-hero__stats strong {
    display: block;
    margin-bottom: 8px;
    font-size: 54px;
    font-weight: 850;
    line-height: 0.9;
    letter-spacing: -0.06em;
    color: #fff;
}

.ct-concerts-hero__stats span {
    display: block;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.58);
}

/* =========================================================
   CONTENT
========================================================= */

.ct-concerts-content {
    position: relative;
    width: 100%;
    padding: 54px 0 128px;
    background:
        radial-gradient(circle at 92% 4%, rgba(223, 102, 73, 0.10), rgba(223, 102, 73, 0) 26%),
        linear-gradient(180deg, #fbf8f5 0%, #ffffff 43%, #faf8fb 100%);
}

.ct-concerts-page .ct-actions-tabs {
    margin-bottom: 84px;
}

.ct-concerts-page .ct-actions-tabs a.is-active {
    background: linear-gradient(135deg, #d85b3e, #aa3f6f);
    color: #fff !important;
    box-shadow: 0 10px 26px rgba(184, 68, 79, 0.28);
}

.ct-concerts-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 46px;
    align-items: end;
    margin-bottom: 54px;
}

.ct-concerts-section-head > div > span {
    display: block;
    margin-bottom: 17px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #d4553f;
}

.ct-concerts-section-head h2 {
    max-width: 980px;
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(48px, 5.4vw, 82px);
    font-weight: 850;
    line-height: 0.97;
    letter-spacing: -0.056em;
    color: #241f35;
}

.ct-concerts-section-head > p {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.35;
    letter-spacing: 0.075em;
    text-transform: uppercase;
    color: #6c6472;
    white-space: nowrap;
}

.ct-concerts-section-head > p strong {
    font-size: 52px;
    font-weight: 850;
    line-height: 0.85;
    letter-spacing: -0.06em;
    color: #d4553f;
}

/* =========================================================
   CONCERT CARDS
========================================================= */

.ct-concerts-list {
    display: grid;
    gap: 34px;
}

.ct-concert-card {
    position: relative;
    overflow: hidden;
    min-height: 590px;
    border-radius: 30px;
    background: #17131e;
    box-shadow:
        0 28px 74px rgba(32, 24, 37, 0.17),
        0 5px 16px rgba(32, 24, 37, 0.08);
    isolation: isolate;
}

.ct-concert-card.is-featured {
    min-height: 690px;
}

.ct-concert-card__link {
    position: relative;
    display: block;
    width: 100%;
    min-height: inherit;
    color: #fff !important;
    text-decoration: none !important;
}

.ct-concert-card__visual,
.ct-concert-card__visual img,
.ct-concert-card__placeholder,
.ct-concert-card__shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ct-concert-card__visual img {
    object-fit: cover;
    object-position: center;
    transform: scale(1.001);
    transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.8s ease;
}

.ct-concert-card__placeholder {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 54px;
    background:
        radial-gradient(circle at 78% 20%, rgba(255, 161, 84, 0.32), rgba(255, 161, 84, 0) 29%),
        linear-gradient(135deg, #251c30, #6e3937);
}

.ct-concert-card__placeholder span {
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.22em;
    color: #ffbc78;
}

.ct-concert-card__placeholder strong {
    margin-top: 8px;
    font-size: clamp(72px, 10vw, 150px);
    font-weight: 900;
    line-height: 0.8;
    letter-spacing: -0.075em;
    color: rgba(255, 255, 255, 0.14);
}

.ct-concert-card__shade {
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(12, 9, 16, 0.88) 0%, rgba(12, 9, 16, 0.62) 45%, rgba(12, 9, 16, 0.12) 100%),
        linear-gradient(0deg, rgba(12, 9, 16, 0.72) 0%, rgba(12, 9, 16, 0) 48%);
}

.ct-concert-card__number {
    position: absolute;
    z-index: 2;
    top: 34px;
    right: 38px;
    font-size: clamp(86px, 10vw, 150px);
    font-weight: 900;
    line-height: 0.8;
    letter-spacing: -0.09em;
    color: rgba(255, 255, 255, 0.15);
    pointer-events: none;
}

.ct-concert-card__content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    min-height: inherit;
    padding: 46px 48px 42px;
}

.ct-concert-card__topline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: auto;
}

.ct-concert-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ct-concert-card__badges > span,
.ct-concert-card__entry {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 13px;
    border: 1px solid rgba(255, 255, 255, 0.27);
    border-radius: 999px;
    background: rgba(23, 17, 29, 0.38);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: #fff;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.ct-concert-card__badges .is-audience {
    border-color: rgba(255, 194, 127, 0.48);
    background: rgba(214, 91, 59, 0.30);
    color: #ffe1bd;
}

.ct-concert-card__entry {
    border-color: rgba(255, 179, 102, 0.46);
    color: #ffd4a6;
}

.ct-concert-card h3 {
    max-width: 980px;
    margin: 120px 0 20px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(58px, 7vw, 112px);
    font-weight: 900;
    line-height: 0.87;
    letter-spacing: -0.067em;
    color: #fff;
    text-wrap: balance;
}

.ct-concert-card p {
    max-width: 700px;
    margin: 0 0 32px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.75);
}

.ct-concert-card__footer {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 26px;
    align-items: end;
    padding-top: 25px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.ct-concert-card__date {
    display: grid;
    grid-template-columns: auto auto;
    align-items: end;
    column-gap: 9px;
    min-width: 92px;
}

.ct-concert-card__date small {
    grid-column: 1 / -1;
    margin-bottom: 4px;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.14em;
    color: #ffb774;
}

.ct-concert-card__date strong {
    font-size: 56px;
    font-weight: 900;
    line-height: 0.78;
    letter-spacing: -0.07em;
    color: #fff;
}

.ct-concert-card__date em {
    padding-bottom: 3px;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.66);
}

.ct-concert-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 22px;
    padding-bottom: 2px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.78);
}

.ct-concert-card__meta span + span::before {
    content: "·";
    margin-right: 22px;
    color: #ff9d62;
}

.ct-concert-card__more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 0 5px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.43);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.3;
    color: #fff;
    white-space: nowrap;
    transition: gap 0.24s ease, border-color 0.24s ease;
}

.ct-concerts-empty {
    padding: 42px;
    border: 1px solid rgba(36, 31, 53, 0.10);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.76);
    text-align: center;
    font-size: 16px;
    color: #6d6573;
}

.ct-concerts-pagination {
    margin-top: 54px;
}

@media (hover: hover) {
    .ct-concert-card:hover .ct-concert-card__visual img {
        transform: scale(1.045);
        filter: saturate(1.07) contrast(1.025);
    }

    .ct-concert-card:hover .ct-concert-card__more {
        gap: 15px;
        border-color: #fff;
    }
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {
    .ct-concerts-container {
        width: min(100%, calc(100% - 40px));
    }

    .ct-concerts-hero__grid {
        grid-template-columns: minmax(0, 1fr) 260px;
        gap: 42px;
        min-height: 650px;
        padding-top: 90px;
        padding-bottom: 68px;
    }

    .ct-concerts-hero h1 {
        font-size: clamp(58px, 8.8vw, 92px);
    }

    .ct-concert-card,
    .ct-concert-card.is-featured {
        min-height: 590px;
    }

    .ct-concert-card__content {
        padding: 40px 38px 36px;
    }

    .ct-concert-card h3 {
        max-width: 820px;
        margin-top: 105px;
        font-size: clamp(54px, 8vw, 88px);
    }
}

@media (max-width: 860px) {
    .ct-concerts-hero__grid {
        display: block;
        min-height: 0;
        padding-top: 86px;
        padding-bottom: 72px;
    }

    .ct-concerts-hero__stats {
        width: min(440px, 100%);
        margin-top: 48px;
    }

    .ct-concerts-section-head {
        display: block;
    }

    .ct-concerts-section-head > p {
        margin-top: 28px;
    }

    .ct-concert-card__footer {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .ct-concert-card__more {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
    .ct-concerts-container {
        width: calc(100% - 28px);
    }

    .ct-concerts-hero__grid {
        padding-top: 70px;
        padding-bottom: 62px;
    }

    .ct-concerts-eyebrow {
        margin-bottom: 21px;
        font-size: 10px;
        letter-spacing: 0.15em;
    }

    .ct-concerts-eyebrow::before {
        width: 30px;
    }

    .ct-concerts-hero h1 {
        margin-bottom: 24px;
        font-size: clamp(46px, 14vw, 68px);
        line-height: 0.93;
    }

    .ct-concerts-hero p {
        font-size: 16px;
        line-height: 1.68;
    }

    .ct-concerts-hero__stats strong {
        font-size: 44px;
    }

    .ct-concerts-content {
        padding-top: 36px;
        padding-bottom: 82px;
    }

    .ct-concerts-page .ct-actions-tabs {
        width: 100%;
        margin-bottom: 58px;
        padding: 6px;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .ct-concerts-page .ct-actions-tabs::-webkit-scrollbar {
        display: none;
    }

    .ct-concerts-page .ct-actions-tabs a {
        flex: 0 0 auto;
    }

    .ct-concerts-section-head {
        margin-bottom: 34px;
    }

    .ct-concerts-section-head h2 {
        font-size: clamp(39px, 11vw, 54px);
    }

    .ct-concert-card,
    .ct-concert-card.is-featured {
        min-height: 570px;
        border-radius: 23px;
    }

    .ct-concert-card__shade {
        background:
            linear-gradient(0deg, rgba(12, 9, 16, 0.92) 0%, rgba(12, 9, 16, 0.59) 58%, rgba(12, 9, 16, 0.16) 100%);
    }

    .ct-concert-card__number {
        top: 25px;
        right: 24px;
        font-size: 90px;
    }

    .ct-concert-card__content {
        justify-content: flex-end;
        padding: 27px 25px 25px;
    }

    .ct-concert-card__topline {
        margin-bottom: 0;
    }

    .ct-concert-card h3 {
        margin-top: 86px;
        margin-bottom: 16px;
        font-size: clamp(44px, 13vw, 66px);
        line-height: 0.91;
    }

    .ct-concert-card p {
        margin-bottom: 24px;
        font-size: 14px;
        line-height: 1.62;
    }

    .ct-concert-card__footer {
        grid-template-columns: minmax(0, 1fr);
        gap: 17px;
    }

    .ct-concert-card__date {
        grid-row: auto;
    }

    .ct-concert-card__meta {
        display: block;
    }

    .ct-concert-card__meta span {
        display: block;
        margin-top: 4px;
    }

    .ct-concert-card__meta span + span::before {
        display: none;
    }

    .ct-concert-card__more {
        grid-column: auto;
    }
}

@media (max-width: 430px) {
    .ct-concerts-container {
        width: calc(100% - 22px);
    }

    .ct-concerts-hero h1 {
        font-size: 44px;
    }

    .ct-concerts-hero__stats div {
        padding: 22px 16px 20px;
    }

    .ct-concert-card,
    .ct-concert-card.is-featured {
        min-height: 530px;
    }

    .ct-concert-card__content {
        padding: 23px 20px 22px;
    }

    .ct-concert-card__badges > span,
    .ct-concert-card__entry {
        min-height: 30px;
        padding: 6px 10px;
        font-size: 9px;
    }

    .ct-concert-card h3 {
        font-size: 43px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-concert-card__visual img,
    .ct-concert-card__more {
        transition: none !important;
    }

    .ct-concert-card:hover .ct-concert-card__visual img {
        transform: none;
    }
}


/* =========================================================
   ADDED: CONFERENCE PREMIUM
========================================================= */

/* =========================================================
   CHANIARTOON — CONFERENCE PAGE
   /events/conference
========================================================= */

body:has(.ct-conference-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.ct-conference-page) #sp-main-body > .container,
body:has(.ct-conference-page) #sp-main-body > .container-fluid,
body:has(.ct-conference-page) #sp-main-body .container-inner,
body:has(.ct-conference-page) #sp-component,
body:has(.ct-conference-page) #sp-component > .sp-column,
body:has(.ct-conference-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-conference-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-conference-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-conference-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.ct-conference-page,
.ct-conference-page *,
.ct-conference-page *::before,
.ct-conference-page *::after {
    box-sizing: border-box;
}

.ct-conference-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
    font-family: "Manrope", sans-serif;
    color: #211d32;
}

.ct-conference-container {
    width: min(1440px, calc(100% - 64px));
    max-width: 1440px;
    margin-right: auto;
    margin-left: auto;
}

/* =========================================================
   HERO
========================================================= */

.ct-conference-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
    background:
        radial-gradient(circle at 89% 12%, rgba(184, 133, 230, 0.20), rgba(184, 133, 230, 0) 31%),
        radial-gradient(circle at 7% 92%, rgba(255, 191, 130, 0.13), rgba(255, 191, 130, 0) 29%),
        linear-gradient(132deg, #171425 0%, #25203a 45%, #3f3056 100%);
    color: #fff;
}

.ct-conference-hero::before {
    content: "FORUM";
    position: absolute;
    right: -0.03em;
    bottom: -0.17em;
    font-size: clamp(150px, 22vw, 390px);
    font-weight: 900;
    line-height: 0.76;
    letter-spacing: -0.09em;
    color: rgba(255, 255, 255, 0.027);
    pointer-events: none;
    user-select: none;
}

.ct-conference-hero::after {
    content: "";
    position: absolute;
    top: -260px;
    right: 7%;
    width: 550px;
    height: 550px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;
    pointer-events: none;
}

.ct-conference-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(380px, 0.88fr);
    gap: clamp(58px, 7vw, 110px);
    align-items: center;
    min-height: 760px;
    padding-top: 105px;
    padding-bottom: 90px;
}

.ct-conference-hero__content {
    max-width: 860px;
}

.ct-conference-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 28px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: #d29af1;
}

.ct-conference-eyebrow::before {
    content: "";
    flex: 0 0 auto;
    width: 47px;
    height: 2px;
    background: linear-gradient(90deg, #b273e0, #ffbf82);
}

.ct-conference-hero h1 {
    max-width: 900px;
    margin: 0 0 30px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(64px, 7vw, 112px);
    font-weight: 850;
    line-height: 0.92;
    letter-spacing: -0.064em;
    overflow-wrap: anywhere;
    color: #fff;
}

.ct-conference-hero__content > p {
    max-width: 750px;
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.71);
}

.ct-conference-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}

.ct-conference-hero__badges span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.065);
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

.ct-conference-primary-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 54px;
    margin-top: 38px;
    padding: 0 23px;
    border-radius: 999px;
    background: #fff;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    color: #29213c !important;
    text-decoration: none !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.18);
    transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.ct-conference-primary-link span {
    font-size: 19px;
    transition: transform 0.24s ease;
}

.ct-conference-primary-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 21px 48px rgba(0, 0, 0, 0.24);
}

.ct-conference-primary-link:hover span {
    transform: translateX(4px);
}

.ct-conference-hero__aside {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

.ct-conference-hero__image {
    position: relative;
    min-height: 370px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.055);
    box-shadow: 0 32px 70px rgba(0, 0, 0, 0.26);
}

.ct-conference-hero__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 16, 31, 0.02), rgba(20, 16, 31, 0.36));
    pointer-events: none;
}

.ct-conference-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 370px;
    object-fit: cover;
    object-position: center;
}

.ct-conference-hero__facts {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(13px);
    -webkit-backdrop-filter: blur(13px);
}

.ct-conference-hero__facts > div:not(.ct-conference-hero__fact-stats) {
    padding: 22px 25px;
}

.ct-conference-hero__facts > div + div:not(.ct-conference-hero__fact-stats) {
    border-top: 1px solid rgba(255, 255, 255, 0.10);
}

.ct-conference-hero__facts span {
    display: block;
    margin-bottom: 6px;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.48);
}

.ct-conference-hero__facts strong {
    display: block;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: #fff;
}

.ct-conference-hero__fact-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, 0.11);
}

.ct-conference-hero__fact-stats > div {
    padding: 23px 25px 21px;
}

.ct-conference-hero__fact-stats > div + div {
    border-left: 1px solid rgba(255, 255, 255, 0.11);
}

.ct-conference-hero__fact-stats strong {
    margin-bottom: 7px;
    font-size: 45px;
    font-weight: 850;
    line-height: 0.9;
    letter-spacing: -0.06em;
}

.ct-conference-hero__fact-stats span {
    margin: 0;
}

/* =========================================================
   CONTENT
========================================================= */

.ct-conference-content {
    position: relative;
    width: 100%;
    padding: 54px 0 130px;
    background:
        radial-gradient(circle at 92% 5%, rgba(178, 115, 224, 0.09), rgba(178, 115, 224, 0) 27%),
        linear-gradient(180deg, #fbfaf7 0%, #fff 46%, #faf8fc 100%);
}

.ct-conference-page .ct-actions-tabs {
    margin-bottom: 82px;
}

.ct-conference-page .ct-actions-tabs a.is-active {
    background: linear-gradient(135deg, #6550a5, #a85fcb);
    color: #fff !important;
    box-shadow: 0 11px 28px rgba(102, 81, 165, 0.28);
}

.ct-conference-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: clamp(48px, 6vw, 90px);
    align-items: start;
}

.ct-conference-main {
    min-width: 0;
}

.ct-conference-section-head {
    max-width: 920px;
    margin-bottom: 42px;
}

.ct-conference-section-head > span {
    display: block;
    margin-bottom: 16px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.17em;
    text-transform: uppercase;
    color: #a45ed5;
}

.ct-conference-section-head h2 {
    margin: 0 0 24px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(48px, 5.3vw, 78px);
    font-weight: 850;
    line-height: 0.97;
    letter-spacing: -0.055em;
    color: #221d35;
}

.ct-conference-section-head p {
    max-width: 780px;
    margin: 0;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.72;
    color: #716979;
}

.ct-conference-intro {
    max-width: 880px;
    margin: 0 0 48px;
    padding: 28px 31px;
    border: 1px solid rgba(40, 34, 46, 0.09);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 12px 36px rgba(40, 34, 46, 0.055);
}

.ct-conference-intro > :first-child {
    margin-top: 0 !important;
}

.ct-conference-intro > :last-child {
    margin-bottom: 0 !important;
}

.ct-conference-intro p,
.ct-conference-intro li {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.75;
    color: #6f6775;
}

/* =========================================================
   PROGRAMME
========================================================= */

.ct-conference-programme {
    position: relative;
}

.ct-conference-day-heading {
    display: flex;
    align-items: baseline;
    gap: 11px;
    margin: 58px 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(40, 34, 46, 0.12);
}

.ct-conference-day-heading:first-child {
    margin-top: 0;
}

.ct-conference-day-heading span,
.ct-conference-day-heading em {
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    font-style: normal;
    color: #9e94a4;
}

.ct-conference-day-heading strong {
    font-size: 34px;
    font-weight: 850;
    line-height: 0.9;
    letter-spacing: -0.045em;
    color: #28223b;
}

.ct-conference-session {
    --session-colour: #6657c8;
    position: relative;
    margin-bottom: 14px;
    overflow: hidden;
    border: 1px solid rgba(40, 34, 46, 0.10);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 12px 34px rgba(40, 34, 46, 0.055);
    transition: transform 0.27s ease, border-color 0.27s ease, box-shadow 0.27s ease;
}

.ct-conference-session::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 5px;
    background: var(--session-colour);
}

.ct-conference-session__link {
    position: relative;
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) 178px 35px;
    gap: 25px;
    align-items: center;
    min-height: 172px;
    padding: 22px 24px 22px 30px;
    color: inherit !important;
    text-decoration: none !important;
}

.ct-conference-session__time {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-self: stretch;
    min-width: 0;
    padding: 7px 20px 7px 0;
    border-right: 1px solid rgba(40, 34, 46, 0.10);
}

.ct-conference-session__time span {
    display: block;
    font-size: 32px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: -0.05em;
    color: #28223b;
}

.ct-conference-session__time small {
    display: block;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.10em;
    color: #b2a9b7;
}

.ct-conference-session__body {
    min-width: 0;
}

.ct-conference-session__category {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--session-colour) 12%, white);
    font-size: 9px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--session-colour);
}

.ct-conference-session h3 {
    margin: 0 0 11px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(24px, 2.3vw, 34px);
    font-weight: 850;
    line-height: 1.06;
    letter-spacing: -0.04em;
    color: #251f37;
}

.ct-conference-session p {
    max-width: 710px;
    margin: 0 0 13px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.65;
    color: #746d79;
}

.ct-conference-session__location {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.4;
    color: #575062;
}

.ct-conference-session__location::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--session-colour);
}

.ct-conference-session__visual {
    position: relative;
    width: 178px;
    height: 116px;
    overflow: hidden;
    border-radius: 15px;
    background: #ece9ef;
}

.ct-conference-session__visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.42s ease;
}

.ct-conference-session__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    border: 1px solid rgba(40, 34, 46, 0.12);
    border-radius: 50%;
    font-size: 18px;
    color: var(--session-colour);
    transition: transform 0.24s ease, background-color 0.24s ease, color 0.24s ease;
}

@media (hover: hover) {
    .ct-conference-session:hover {
        transform: translateY(-5px);
        border-color: color-mix(in srgb, var(--session-colour) 38%, white);
        box-shadow: 0 22px 52px rgba(40, 34, 46, 0.105);
    }

    .ct-conference-session:hover .ct-conference-session__visual img {
        transform: scale(1.055);
    }

    .ct-conference-session:hover .ct-conference-session__arrow {
        transform: translateX(4px);
        background: var(--session-colour);
        color: #fff;
    }
}

/* =========================================================
   SIDEBAR
========================================================= */

.ct-conference-sidebar {
    position: relative;
}

.ct-conference-registration-card {
    position: sticky;
    top: 118px;
    overflow: hidden;
    padding: 34px 31px 31px;
    border-radius: 25px;
    background:
        radial-gradient(circle at 100% 0, rgba(255, 191, 130, 0.18), rgba(255, 191, 130, 0) 38%),
        linear-gradient(145deg, #261e39 0%, #4b3562 100%);
    color: #fff;
    box-shadow: 0 26px 62px rgba(42, 29, 59, 0.22);
}

.ct-conference-registration-card::after {
    content: "26";
    position: absolute;
    right: -0.05em;
    bottom: -0.2em;
    font-size: 145px;
    font-weight: 900;
    line-height: 0.8;
    letter-spacing: -0.08em;
    color: rgba(255, 255, 255, 0.035);
    pointer-events: none;
}

.ct-conference-registration-card > span {
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 15px;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #d49bf2;
}

.ct-conference-registration-card h2 {
    position: relative;
    z-index: 1;
    margin: 0 0 27px;
    font-family: "Manrope", sans-serif;
    font-size: 37px;
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -0.045em;
    color: #fff;
}

.ct-conference-registration-card ul {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 13px;
    margin: 0 0 31px;
    padding: 0;
    list-style: none;
}

.ct-conference-registration-card li {
    position: relative;
    padding-left: 24px;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.78);
}

.ct-conference-registration-card li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    font-size: 15px;
    font-weight: 900;
    color: #ffbf82;
}

.ct-conference-registration-card a {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 54px;
    padding: 0 20px;
    border-radius: 999px;
    background: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    color: #2b213e !important;
    text-decoration: none !important;
    transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.ct-conference-registration-card a span {
    font-size: 18px;
}

.ct-conference-registration-card a:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 34px rgba(0, 0, 0, 0.20);
}

.ct-conference-empty {
    padding: 34px;
    border: 1px dashed rgba(40, 34, 46, 0.18);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.72);
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    color: #766f7d;
}

.ct-conference-pagination {
    margin-top: 52px;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1199px) {
    .ct-conference-hero__grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
        gap: 52px;
        min-height: 690px;
    }

    .ct-conference-layout {
        grid-template-columns: minmax(0, 1fr) 315px;
        gap: 48px;
    }

    .ct-conference-session__link {
        grid-template-columns: 90px minmax(0, 1fr) 145px 34px;
        gap: 20px;
    }

    .ct-conference-session__visual {
        width: 145px;
        height: 104px;
    }
}

@media (max-width: 991px) {
    .ct-conference-container {
        width: min(100%, calc(100% - 40px));
    }

    .ct-conference-hero__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 48px;
        min-height: 0;
        padding-top: 86px;
        padding-bottom: 76px;
    }

    .ct-conference-hero__aside {
        display: grid;
        grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
        gap: 18px;
    }

    .ct-conference-hero__image,
    .ct-conference-hero__image img {
        min-height: 330px;
    }

    .ct-conference-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-conference-sidebar {
        order: -1;
    }

    .ct-conference-registration-card {
        position: relative;
        top: auto;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(260px, 0.7fr);
        gap: 20px 42px;
        align-items: end;
    }

    .ct-conference-registration-card > span,
    .ct-conference-registration-card h2 {
        grid-column: 1;
    }

    .ct-conference-registration-card ul {
        grid-column: 1;
        margin-bottom: 0;
    }

    .ct-conference-registration-card a {
        grid-column: 2;
        grid-row: 1 / span 3;
        align-self: end;
    }
}

@media (max-width: 767px) {
    .ct-conference-container {
        width: calc(100% - 28px);
    }

    .ct-conference-hero__grid {
        padding-top: 68px;
        padding-bottom: 62px;
    }

    .ct-conference-hero h1 {
        font-size: clamp(48px, 14vw, 70px);
    }

    .ct-conference-hero__content > p {
        font-size: 16px;
    }

    .ct-conference-hero__aside {
        display: block;
    }

    .ct-conference-hero__image {
        margin-bottom: 15px;
    }

    .ct-conference-content {
        padding-top: 38px;
        padding-bottom: 92px;
    }

    .ct-conference-page .ct-actions-tabs {
        margin-bottom: 58px;
    }

    .ct-conference-section-head h2 {
        font-size: 43px;
    }

    .ct-conference-session__link {
        grid-template-columns: 74px minmax(0, 1fr) 31px;
        gap: 16px;
        min-height: 0;
        padding: 20px 18px 20px 24px;
    }

    .ct-conference-session__time {
        padding-right: 15px;
    }

    .ct-conference-session__time span {
        font-size: 25px;
    }

    .ct-conference-session__visual {
        grid-column: 2 / -1;
        width: 100%;
        height: 180px;
        margin-top: 4px;
    }

    .ct-conference-session__arrow {
        grid-column: 3;
        grid-row: 1;
    }

    .ct-conference-registration-card {
        display: block;
    }

    .ct-conference-registration-card a {
        margin-top: 28px;
    }
}

@media (max-width: 480px) {
    .ct-conference-container {
        width: calc(100% - 22px);
    }

    .ct-conference-hero__badges {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .ct-conference-hero__badges span {
        justify-content: center;
    }

    .ct-conference-primary-link {
        width: 100%;
    }

    .ct-conference-hero__fact-stats strong {
        font-size: 39px;
    }

    .ct-conference-session__link {
        grid-template-columns: minmax(0, 1fr) 31px;
    }

    .ct-conference-session__time {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
        padding: 0 0 14px;
        border-right: 0;
        border-bottom: 1px solid rgba(40, 34, 46, 0.10);
    }

    .ct-conference-session__body {
        grid-column: 1;
    }

    .ct-conference-session__visual {
        grid-column: 1 / -1;
        height: 155px;
    }

    .ct-conference-session__arrow {
        grid-column: 2;
        grid-row: 2;
    }

    .ct-conference-registration-card {
        padding: 29px 24px 25px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-conference-primary-link,
    .ct-conference-primary-link span,
    .ct-conference-session,
    .ct-conference-session__visual img,
    .ct-conference-session__arrow,
    .ct-conference-registration-card a {
        transition: none !important;
    }

    .ct-conference-primary-link:hover,
    .ct-conference-session:hover,
    .ct-conference-registration-card a:hover {
        transform: none !important;
    }
}

/* =========================================================
   CHANIARTOON — CONFERENCE ACTION LIGHTBOX
   Used only inside /events/conference
========================================================= */

.ct-conference-session__link.ct-conference-session__trigger {
    width: 100%;
    margin: 0;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

.ct-conference-session__trigger:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--session-colour) 72%, white);
    outline-offset: -3px;
}

html.ct-conference-modal-open,
body.ct-conference-modal-open {
    overflow: hidden !important;
}

.ct-conference-lightbox[hidden] {
    display: none !important;
}

.ct-conference-lightbox {
    position: fixed;
    z-index: 1000000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 28px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.22s ease, visibility 0.22s ease;
}

.ct-conference-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.ct-conference-lightbox__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(18, 14, 27, 0.82);
    cursor: zoom-out;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.ct-conference-lightbox__shell {
    position: relative;
    z-index: 1;
    width: min(1120px, calc(100vw - 56px));
    max-height: calc(100vh - 56px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 30px;
    background: #fff;
    box-shadow: 0 38px 110px rgba(0, 0, 0, 0.45);
    transform: translateY(18px) scale(0.985);
    transition: transform 0.26s ease;
}

.ct-conference-lightbox.is-open .ct-conference-lightbox__shell {
    transform: translateY(0) scale(1);
}

.ct-conference-lightbox__toolbar {
    position: absolute;
    z-index: 4;
    top: 18px;
    right: 18px;
    left: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    pointer-events: none;
}

.ct-conference-lightbox__counter {
    display: inline-flex;
    align-items: center;
    min-height: 35px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, 0.20);
    border-radius: 999px;
    background: rgba(31, 24, 45, 0.72);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.13em;
    color: #fff;
    pointer-events: auto;
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

.ct-conference-lightbox__close {
    display: grid;
    place-items: center;
    width: 43px;
    height: 43px;
    margin: 0;
    padding: 0 0 3px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    background: rgba(31, 24, 45, 0.78);
    font-family: Arial, sans-serif;
    font-size: 29px;
    font-weight: 300;
    line-height: 1;
    color: #fff;
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.ct-conference-lightbox__close:hover {
    transform: rotate(7deg) scale(1.06);
    background: #a45ed5;
}

.ct-conference-lightbox__content {
    max-height: calc(100vh - 56px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.ct-conference-lightbox__nav {
    position: absolute;
    z-index: 5;
    top: 50%;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    margin: 0;
    padding: 0 0 3px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 50%;
    background: rgba(31, 24, 45, 0.80);
    font-size: 23px;
    line-height: 1;
    color: #fff;
    cursor: pointer;
    transform: translateY(-50%);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.ct-conference-lightbox__nav:hover {
    background: #a45ed5;
}

.ct-conference-lightbox__nav--prev {
    left: 18px;
}

.ct-conference-lightbox__nav--prev:hover {
    transform: translate(-3px, -50%);
}

.ct-conference-lightbox__nav--next {
    right: 18px;
}

.ct-conference-lightbox__nav--next:hover {
    transform: translate(3px, -50%);
}

.ct-conference-modal-card {
    --session-colour: #6657c8;
    min-height: 540px;
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--session-colour) 14%, transparent), transparent 31%),
        #fff;
    color: #261f37;
}

.ct-conference-modal-card__header {
    position: relative;
    min-height: 270px;
    padding: 82px 92px 42px;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--session-colour) 48%, transparent), transparent 35%),
        linear-gradient(135deg, #1d182b 0%, #332544 100%);
    color: #fff;
}

.ct-conference-modal-card__header::after {
    content: "CHANIARTOON";
    position: absolute;
    right: -0.02em;
    bottom: -0.17em;
    font-size: clamp(78px, 12vw, 165px);
    font-weight: 900;
    line-height: 0.78;
    letter-spacing: -0.075em;
    color: rgba(255, 255, 255, 0.035);
    pointer-events: none;
}

.ct-conference-modal-card__category {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin-bottom: 18px;
    padding: 7px 12px;
    border: 1px solid color-mix(in srgb, var(--session-colour) 70%, white);
    border-radius: 999px;
    background: color-mix(in srgb, var(--session-colour) 22%, transparent);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: #fff;
}

.ct-conference-modal-card__header h2 {
    position: relative;
    z-index: 1;
    max-width: 850px;
    margin: 0 0 24px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(42px, 5.4vw, 78px);
    font-weight: 850;
    line-height: 0.97;
    letter-spacing: -0.055em;
    color: #fff;
}

.ct-conference-modal-card__meta {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ct-conference-modal-card__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.075);
    font-size: 10px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0.045em;
    color: rgba(255, 255, 255, 0.84);
}

.ct-conference-modal-card__layout {
    display: grid;
    grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(36px, 5vw, 68px);
    align-items: start;
    padding: 48px 92px 70px;
}

.ct-conference-modal-card__layout.is-without-image {
    grid-template-columns: minmax(0, 820px);
}

.ct-conference-modal-card__media {
    position: sticky;
    top: 32px;
    min-height: 310px;
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #ece9ef;
    box-shadow: 0 18px 48px rgba(38, 31, 55, 0.13);
}

.ct-conference-modal-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 310px;
    max-height: 510px;
    object-fit: cover;
    object-position: center;
}

.ct-conference-modal-card__description {
    min-width: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: #655d6c;
}

.ct-conference-modal-card__description > :first-child {
    margin-top: 0 !important;
}

.ct-conference-modal-card__description > :last-child {
    margin-bottom: 0 !important;
}

.ct-conference-modal-card__description h2,
.ct-conference-modal-card__description h3,
.ct-conference-modal-card__description h4 {
    margin-top: 1.4em;
    margin-bottom: 0.55em;
    font-family: "Manrope", sans-serif;
    font-weight: 850;
    line-height: 1.15;
    letter-spacing: -0.035em;
    color: #251f37;
}

.ct-conference-modal-card__description h2 {
    font-size: 32px;
}

.ct-conference-modal-card__description h3 {
    font-size: 25px;
}

.ct-conference-modal-card__description p,
.ct-conference-modal-card__description ul,
.ct-conference-modal-card__description ol {
    margin-top: 0;
    margin-bottom: 1.15em;
}

.ct-conference-modal-card__description a {
    font-weight: 800;
    color: var(--session-colour) !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

@media (max-width: 900px) {
    .ct-conference-lightbox {
        padding: 16px;
    }

    .ct-conference-lightbox__shell {
        width: calc(100vw - 32px);
        max-height: calc(100vh - 32px);
        border-radius: 23px;
    }

    .ct-conference-lightbox__content {
        max-height: calc(100vh - 32px);
    }

    .ct-conference-modal-card__header {
        min-height: 240px;
        padding: 76px 30px 34px;
    }

    .ct-conference-modal-card__header h2 {
        font-size: clamp(37px, 8vw, 58px);
    }

    .ct-conference-modal-card__layout {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 34px 30px 52px;
    }

    .ct-conference-modal-card__media {
        position: relative;
        top: auto;
        min-height: 260px;
    }

    .ct-conference-modal-card__media img {
        min-height: 260px;
        max-height: 430px;
    }

    .ct-conference-lightbox__nav {
        top: auto;
        bottom: 19px;
        width: 44px;
        height: 44px;
        transform: none;
    }

    .ct-conference-lightbox__nav--prev {
        left: 19px;
    }

    .ct-conference-lightbox__nav--next {
        right: 19px;
    }

    .ct-conference-lightbox__nav--prev:hover,
    .ct-conference-lightbox__nav--next:hover {
        transform: none;
    }
}

@media (max-width: 575px) {
    .ct-conference-lightbox {
        padding: 0;
    }

    .ct-conference-lightbox__shell {
        width: 100vw;
        max-height: 100dvh;
        border: 0;
        border-radius: 0;
    }

    .ct-conference-lightbox__content {
        max-height: 100dvh;
    }

    .ct-conference-lightbox__toolbar {
        top: 12px;
        right: 12px;
        left: 12px;
    }

    .ct-conference-modal-card__header {
        min-height: 235px;
        padding: 72px 22px 30px;
    }

    .ct-conference-modal-card__header h2 {
        font-size: clamp(34px, 11vw, 50px);
    }

    .ct-conference-modal-card__meta {
        gap: 7px;
    }

    .ct-conference-modal-card__layout {
        padding: 25px 22px 88px;
    }

    .ct-conference-modal-card__media,
    .ct-conference-modal-card__media img {
        min-height: 220px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-conference-lightbox,
    .ct-conference-lightbox__shell,
    .ct-conference-lightbox__close,
    .ct-conference-lightbox__nav {
        transition: none !important;
    }
}


/* ========================================================================
   CHANIARTOON CONFERENCE CHILD LIGHTBOX — FIX 2026-07-30
   ===================================================================== */

.ct-conference-modal-card__loading {
    padding: 18px 34px 30px;
    color: rgba(31, 25, 63, 0.62);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ct-conference-modal-card__remote[hidden],
.ct-conference-modal-card__loading[hidden] {
    display: none !important;
}

.ct-conference-modal-card__remote {
    padding: 0 34px 34px;
}

.ct-conference-remote-details {
    display: grid;
    gap: 18px;
}

.ct-conference-remote-details .ct-event-info-card,
.ct-conference-remote-details .ct-event-description-card,
.ct-conference-remote-details .ct-event-extra-card {
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-shadow: none !important;
}

.ct-conference-remote-details .ct-event-info-card {
    border: 1px solid rgba(31, 25, 63, 0.10) !important;
    border-radius: 18px !important;
    background: rgba(248, 247, 252, 0.86) !important;
}

.ct-conference-remote-details .ct-event-description-card,
.ct-conference-remote-details .ct-event-extra-card {
    border: 1px solid rgba(31, 25, 63, 0.10) !important;
    border-radius: 18px !important;
    background: #fff !important;
    padding: 24px !important;
}

.ct-conference-remote-details .ct-event-section-heading {
    margin-bottom: 16px !important;
}

.ct-conference-remote-details .ct-event-description-copy,
.ct-conference-remote-details .ct-event-extra-card {
    font-size: 1rem;
    line-height: 1.72;
}

.ct-conference-remote-details .eb-taskbar,
.ct-conference-remote-details .ct-event-actions,
.ct-conference-remote-details form,
.ct-conference-remote-details script {
    display: none !important;
}

@media (max-width: 767px) {
    .ct-conference-modal-card__remote {
        padding: 0 18px 22px;
    }

    .ct-conference-modal-card__loading {
        padding: 14px 18px 22px;
    }

    .ct-conference-remote-details .ct-event-description-card,
    .ct-conference-remote-details .ct-event-extra-card {
        padding: 18px !important;
    }
}

/* ========================================================================
   CHANIARTOON — PARALLEL ACTIONS PREMIUM CATEGORY
   /events/parallel
   ===================================================================== */

.ct-parallel-page {
    --ct-parallel-ink: #17152f;
    --ct-parallel-muted: #6f6980;
    --ct-parallel-accent: #f05e78;
    --ct-parallel-accent-soft: #ffe7ec;
    --ct-parallel-violet: #8f58d8;
    --ct-parallel-border: rgba(31, 25, 63, 0.11);
    --ct-parallel-shadow: 0 28px 70px rgba(31, 25, 63, 0.10);
    width: 100%;
    max-width: none !important;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 6%, rgba(143, 88, 216, 0.12), transparent 27%),
        radial-gradient(circle at 8% 34%, rgba(240, 94, 120, 0.10), transparent 24%),
        #fbfafc;
    color: var(--ct-parallel-ink);
}

.ct-parallel-page,
.ct-parallel-page * {
    box-sizing: border-box;
}

.ct-parallel-container {
    width: min(100%, 1370px);
    margin-inline: auto;
    padding-inline: 42px;
}

.ct-parallel-hero {
    position: relative;
    isolation: isolate;
    min-height: 660px;
    overflow: hidden;
    background:
        linear-gradient(125deg, rgba(21, 17, 44, 0.98) 0%, rgba(41, 28, 77, 0.98) 56%, rgba(99, 51, 119, 0.95) 100%);
    color: #fff;
}

.ct-parallel-hero::before,
.ct-parallel-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 999px;
    pointer-events: none;
}

.ct-parallel-hero::before {
    width: 620px;
    height: 620px;
    top: -310px;
    right: -90px;
    border: 86px solid rgba(255, 255, 255, 0.05);
    transform: rotate(19deg);
}

.ct-parallel-hero::after {
    width: 410px;
    height: 410px;
    left: -170px;
    bottom: -205px;
    background: rgba(240, 94, 120, 0.17);
    filter: blur(2px);
}

.ct-parallel-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.44fr);
    gap: 84px;
    align-items: end;
    min-height: 660px;
    padding-top: 112px;
    padding-bottom: 84px;
}

.ct-parallel-hero__content {
    max-width: 890px;
}

.ct-parallel-eyebrow,
.ct-parallel-section-head > div > span {
    display: block;
    margin-bottom: 24px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: 0.19em;
    text-transform: uppercase;
}

.ct-parallel-eyebrow {
    color: #ff93a7;
}

.ct-parallel-hero h1 {
    max-width: 930px;
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(68px, 7.7vw, 126px);
    font-weight: 900;
    line-height: 0.87;
    letter-spacing: -0.072em;
    color: #fff;
    text-wrap: balance;
}

.ct-parallel-hero p {
    max-width: 740px;
    margin: 38px 0 0;
    font-size: clamp(16px, 1.45vw, 20px);
    font-weight: 500;
    line-height: 1.72;
    color: rgba(255, 255, 255, 0.72);
}

.ct-parallel-hero__stats {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 25px 75px rgba(8, 5, 25, 0.28);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

.ct-parallel-hero__stats > div {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    align-items: center;
    min-height: 126px;
    padding: 22px 28px;
    background: rgba(255, 255, 255, 0.035);
}

.ct-parallel-hero__stats > div + div {
    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.ct-parallel-hero__stats strong {
    font-family: "Manrope", sans-serif;
    font-size: 58px;
    font-weight: 900;
    line-height: 0.82;
    letter-spacing: -0.065em;
    color: #fff;
}

.ct-parallel-hero__stats span {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.16em;
    color: rgba(255, 255, 255, 0.58);
}

.ct-parallel-content {
    position: relative;
    padding: 0 0 112px;
}

.ct-parallel-page .ct-actions-tabs {
    position: relative;
    z-index: 4;
    width: max-content;
    max-width: 100%;
    margin: -30px 0 96px;
}

.ct-parallel-page .ct-actions-tabs a.is-active {
    background: linear-gradient(135deg, #f05e78, #a657cc);
    box-shadow: 0 14px 34px rgba(164, 79, 190, 0.30);
    color: #fff;
}

.ct-parallel-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
    gap: 80px;
    align-items: end;
    margin-bottom: 66px;
}

.ct-parallel-section-head > div > span {
    margin-bottom: 17px;
    color: var(--ct-parallel-accent);
}

.ct-parallel-section-head h2 {
    max-width: 900px;
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(48px, 5.4vw, 86px);
    font-weight: 900;
    line-height: 0.93;
    letter-spacing: -0.062em;
    color: var(--ct-parallel-ink);
    text-wrap: balance;
}

.ct-parallel-section-head > p {
    margin: 0 0 7px;
    padding-left: 24px;
    border-left: 2px solid var(--ct-parallel-accent);
    font-size: 16px;
    line-height: 1.72;
    color: var(--ct-parallel-muted);
}

.ct-parallel-days {
    display: grid;
    gap: 92px;
}

.ct-parallel-day {
    position: relative;
}

.ct-parallel-day__heading {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 25px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ct-parallel-border);
}

.ct-parallel-day__heading > span {
    grid-column: 1 / -1;
    margin-bottom: -4px;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.17em;
    color: var(--ct-parallel-accent);
}

.ct-parallel-day__heading strong {
    font-family: "Manrope", sans-serif;
    font-size: 62px;
    font-weight: 900;
    line-height: 0.75;
    letter-spacing: -0.07em;
    color: var(--ct-parallel-ink);
}

.ct-parallel-day__heading em {
    padding-bottom: 2px;
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0.08em;
    color: var(--ct-parallel-muted);
}

.ct-parallel-day__heading small {
    padding-bottom: 4px;
    font-size: 12px;
    font-weight: 800;
    color: var(--ct-parallel-muted);
}

.ct-parallel-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.ct-parallel-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ct-parallel-border);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 14px 42px rgba(31, 25, 63, 0.055);
    transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.ct-parallel-card.is-featured {
    grid-column: 1 / -1;
}

.ct-parallel-card__link {
    display: grid;
    grid-template-columns: minmax(270px, 0.92fr) minmax(0, 1.08fr);
    min-height: 390px;
    color: inherit;
    text-decoration: none !important;
}

.ct-parallel-card:not(.is-featured) .ct-parallel-card__link {
    grid-template-columns: 1fr;
    min-height: 0;
}

.ct-parallel-card__visual {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    background: #241d3a;
}

.ct-parallel-card:not(.is-featured) .ct-parallel-card__visual {
    min-height: 285px;
}

.ct-parallel-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease;
}

.ct-parallel-card__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(13, 9, 29, 0.03), rgba(13, 9, 29, 0.36)),
        linear-gradient(115deg, transparent 45%, rgba(13, 9, 29, 0.15));
    pointer-events: none;
}

.ct-parallel-card__number {
    position: absolute;
    right: 22px;
    bottom: 18px;
    font-family: "Manrope", sans-serif;
    font-size: 70px;
    font-weight: 900;
    line-height: 0.78;
    letter-spacing: -0.08em;
    color: rgba(255, 255, 255, 0.88);
    text-shadow: 0 6px 25px rgba(0, 0, 0, 0.18);
}

.ct-parallel-card__placeholder {
    display: grid;
    align-content: end;
    width: 100%;
    height: 100%;
    min-height: inherit;
    padding: 32px;
    background:
        radial-gradient(circle at 75% 15%, rgba(255, 255, 255, 0.14), transparent 30%),
        linear-gradient(135deg, #241d3a, #5f3876 66%, #e65f80);
    color: #fff;
}

.ct-parallel-card__placeholder span {
    margin-bottom: 6px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.18em;
    opacity: 0.68;
}

.ct-parallel-card__placeholder strong {
    max-width: 240px;
    font-family: "Manrope", sans-serif;
    font-size: 32px;
    line-height: 0.9;
    letter-spacing: -0.05em;
}

.ct-parallel-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 38px 40px 35px;
}

.ct-parallel-card:not(.is-featured) .ct-parallel-card__body {
    padding: 30px 32px 31px;
}

.ct-parallel-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 27px;
}

.ct-parallel-card__badges > span {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 7px 11px;
    border-radius: 999px;
    background: var(--ct-parallel-accent-soft);
    font-size: 9px;
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: 0.105em;
    text-transform: uppercase;
    color: #c23f59;
}

.ct-parallel-card__badges .is-audience {
    background: #efe8ff;
    color: #7247b5;
}

.ct-parallel-card__badges .is-entry {
    background: #e7f7ef;
    color: #27775d;
}

.ct-parallel-card h3 {
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-size: clamp(32px, 3.25vw, 56px);
    font-weight: 900;
    line-height: 0.98;
    letter-spacing: -0.052em;
    color: var(--ct-parallel-ink);
    text-wrap: balance;
}

.ct-parallel-card:not(.is-featured) h3 {
    font-size: clamp(28px, 2.35vw, 40px);
}

.ct-parallel-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 20px;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.45;
    color: #685f73;
}

.ct-parallel-card__meta span + span::before {
    content: "·";
    margin-right: 20px;
    color: var(--ct-parallel-accent);
}

.ct-parallel-card p {
    max-width: 680px;
    margin: 25px 0 30px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--ct-parallel-muted);
}

.ct-parallel-card__more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 10px;
    margin-top: auto;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(31, 25, 63, 0.25);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.3;
    color: var(--ct-parallel-ink);
    transition: gap 0.24s ease, border-color 0.24s ease, color 0.24s ease;
}

.ct-parallel-empty {
    padding: 48px 28px;
    border: 1px dashed rgba(31, 25, 63, 0.16);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.60);
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    color: var(--ct-parallel-muted);
}

.ct-parallel-pagination {
    margin-top: 56px;
}

@media (hover: hover) {
    .ct-parallel-card:hover {
        transform: translateY(-7px);
        border-color: rgba(240, 94, 120, 0.28);
        box-shadow: var(--ct-parallel-shadow);
    }

    .ct-parallel-card:hover .ct-parallel-card__visual img {
        transform: scale(1.055);
        filter: saturate(1.05) contrast(1.02);
    }

    .ct-parallel-card:hover .ct-parallel-card__more {
        gap: 15px;
        border-color: var(--ct-parallel-accent);
        color: var(--ct-parallel-accent);
    }
}

@media (max-width: 1100px) {
    .ct-parallel-container {
        width: min(100%, calc(100% - 40px));
        padding-inline: 0;
    }

    .ct-parallel-hero__grid {
        grid-template-columns: minmax(0, 1fr) 285px;
        gap: 48px;
        min-height: 610px;
        padding-top: 92px;
        padding-bottom: 76px;
    }

    .ct-parallel-hero h1 {
        font-size: clamp(60px, 8.4vw, 94px);
    }

    .ct-parallel-hero__stats > div {
        grid-template-columns: 82px minmax(0, 1fr);
        min-height: 108px;
        padding: 20px 22px;
    }

    .ct-parallel-hero__stats strong {
        font-size: 47px;
    }

    .ct-parallel-section-head {
        gap: 45px;
    }

    .ct-parallel-card__link {
        grid-template-columns: minmax(250px, 0.85fr) minmax(0, 1.15fr);
    }
}

@media (max-width: 820px) {
    .ct-parallel-hero__grid {
        grid-template-columns: 1fr;
        align-items: start;
        min-height: 0;
        padding-top: 86px;
        padding-bottom: 72px;
    }

    .ct-parallel-hero__stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ct-parallel-hero__stats > div {
        display: block;
        min-height: 120px;
        padding: 24px 18px;
    }

    .ct-parallel-hero__stats > div + div {
        border-top: 0;
        border-left: 1px solid rgba(255, 255, 255, 0.13);
    }

    .ct-parallel-hero__stats strong,
    .ct-parallel-hero__stats span {
        display: block;
    }

    .ct-parallel-hero__stats span {
        margin-top: 10px;
    }

    .ct-parallel-page .ct-actions-tabs {
        width: 100%;
        margin-bottom: 68px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .ct-parallel-page .ct-actions-tabs::-webkit-scrollbar {
        display: none;
    }

    .ct-parallel-page .ct-actions-tabs a {
        flex: 0 0 auto;
    }

    .ct-parallel-section-head {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .ct-parallel-section-head > p {
        max-width: 650px;
    }

    .ct-parallel-grid {
        grid-template-columns: 1fr;
    }

    .ct-parallel-card.is-featured {
        grid-column: auto;
    }

    .ct-parallel-card__link,
    .ct-parallel-card:not(.is-featured) .ct-parallel-card__link {
        grid-template-columns: minmax(250px, 0.86fr) minmax(0, 1.14fr);
        min-height: 350px;
    }

    .ct-parallel-card__visual,
    .ct-parallel-card:not(.is-featured) .ct-parallel-card__visual {
        min-height: 350px;
    }
}

@media (max-width: 640px) {
    .ct-parallel-container {
        width: min(100%, calc(100% - 28px));
    }

    .ct-parallel-hero {
        min-height: 0;
    }

    .ct-parallel-hero__grid {
        gap: 42px;
        padding-top: 72px;
        padding-bottom: 58px;
    }

    .ct-parallel-eyebrow {
        margin-bottom: 18px;
        font-size: 9px;
    }

    .ct-parallel-hero h1 {
        font-size: clamp(49px, 14vw, 68px);
        line-height: 0.9;
    }

    .ct-parallel-hero p {
        margin-top: 26px;
        font-size: 15px;
    }

    .ct-parallel-hero__stats {
        border-radius: 20px;
    }

    .ct-parallel-hero__stats > div {
        min-height: 100px;
        padding: 19px 12px;
    }

    .ct-parallel-hero__stats strong {
        font-size: 38px;
    }

    .ct-parallel-hero__stats span {
        font-size: 8px;
        letter-spacing: 0.10em;
    }

    .ct-parallel-content {
        padding-bottom: 76px;
    }

    .ct-parallel-page .ct-actions-tabs {
        margin-top: -24px;
        margin-bottom: 56px;
    }

    .ct-parallel-section-head {
        margin-bottom: 48px;
    }

    .ct-parallel-section-head h2 {
        font-size: clamp(42px, 12vw, 58px);
    }

    .ct-parallel-section-head > p {
        padding-left: 17px;
        font-size: 14px;
    }

    .ct-parallel-days {
        gap: 68px;
    }

    .ct-parallel-day__heading {
        grid-template-columns: auto auto minmax(0, 1fr);
    }

    .ct-parallel-day__heading strong {
        font-size: 52px;
    }

    .ct-parallel-day__heading small {
        grid-column: 1 / -1;
        padding-top: 8px;
    }

    .ct-parallel-card {
        border-radius: 22px;
    }

    .ct-parallel-card__link,
    .ct-parallel-card:not(.is-featured) .ct-parallel-card__link {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .ct-parallel-card__visual,
    .ct-parallel-card:not(.is-featured) .ct-parallel-card__visual {
        min-height: 260px;
    }

    .ct-parallel-card__body,
    .ct-parallel-card:not(.is-featured) .ct-parallel-card__body {
        padding: 27px 24px 27px;
    }

    .ct-parallel-card h3,
    .ct-parallel-card:not(.is-featured) h3 {
        font-size: clamp(30px, 9vw, 40px);
    }

    .ct-parallel-card__meta span {
        width: 100%;
    }

    .ct-parallel-card__meta span + span::before {
        display: none;
    }

    .ct-parallel-card p {
        margin-top: 20px;
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ct-parallel-card,
    .ct-parallel-card__visual img,
    .ct-parallel-card__more {
        transition: none !important;
    }
}

/* ========================================================================
   CHANIARTOON — PARALLEL ACTIONS FULL-WIDTH FIX
   Makes /events/parallel use the full viewport like the other premium pages.
   ===================================================================== */

body:has(.ct-parallel-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body:has(.ct-parallel-page) #sp-main-body > .container,
body:has(.ct-parallel-page) #sp-main-body > .container-fluid,
body:has(.ct-parallel-page) #sp-main-body .container-inner,
body:has(.ct-parallel-page) #sp-component,
body:has(.ct-parallel-page) #sp-component > .sp-column,
body:has(.ct-parallel-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-parallel-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-parallel-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-parallel-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Full-bleed fallback even when the template uses another wrapper. */
.ct-parallel-page {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
}

.ct-parallel-page .ct-parallel-hero,
.ct-parallel-page .ct-parallel-content {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
}
/* ========================================================================
   CHANIARTOON — PREMIUM EVENT REGISTRATION
   Events Booking individual registration override
   ===================================================================== */

body:has(.ct-registration-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    background: #f7f5fb;
}

body:has(.ct-registration-page) #sp-main-body > .container,
body:has(.ct-registration-page) #sp-main-body > .container-fluid,
body:has(.ct-registration-page) #sp-main-body .container-inner,
body:has(.ct-registration-page) #sp-component,
body:has(.ct-registration-page) #sp-component > .sp-column,
body:has(.ct-registration-page) main#sp-component {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body:has(.ct-registration-page) #sp-main-body .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

body:has(.ct-registration-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-registration-page) #sp-main-body #sp-component[class*="col-"] {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.ct-registration-page {
    --ct-reg-ink: #17153b;
    --ct-reg-muted: #6f6980;
    --ct-reg-purple: #7a4fc4;
    --ct-reg-magenta: #d9558f;
    --ct-reg-coral: #ef6964;
    --ct-reg-paper: #f7f5fb;
    --ct-reg-white: #ffffff;
    --ct-reg-line: rgba(23, 21, 59, 0.12);
    --ct-reg-shadow: 0 30px 80px rgba(30, 20, 65, 0.14);
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    overflow-x: clip;
    background: var(--ct-reg-paper);
    color: var(--ct-reg-ink);
    font-family: "Manrope", sans-serif;
}

.ct-registration-page *,
.ct-registration-page *::before,
.ct-registration-page *::after {
    box-sizing: border-box;
}

.ct-registration-container {
    width: min(1280px, calc(100% - 48px));
    margin-inline: auto;
}

/* Hero */
.ct-registration-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(58px, 7vw, 104px) 0 clamp(72px, 8vw, 122px);
    color: #fff;
    background:
        radial-gradient(circle at 84% 13%, rgba(220, 86, 148, 0.35) 0 8%, transparent 8.4%),
        radial-gradient(circle at 84% 13%, transparent 0 15%, rgba(255, 255, 255, 0.06) 15.2% 22%, transparent 22.3%),
        linear-gradient(126deg, #171436 0%, #28204d 54%, #593761 100%);
}

.ct-registration-hero::after {
    content: "REGISTER";
    position: absolute;
    right: -0.05em;
    bottom: -0.31em;
    z-index: -1;
    font-size: clamp(120px, 19vw, 330px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.09em;
    color: rgba(255, 255, 255, 0.035);
    pointer-events: none;
}

.ct-registration-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    gap: clamp(42px, 7vw, 100px);
    align-items: center;
}

.ct-registration-hero__content {
    max-width: 820px;
}

.ct-registration-eyebrow,
.ct-registration-category,
.ct-registration-form-head > span,
.ct-registration-note > span,
.ct-registration-book-donation > span {
    display: block;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ct-registration-eyebrow {
    margin-bottom: 24px;
    color: #ff8eb0;
}

.ct-registration-category {
    width: max-content;
    max-width: 100%;
    margin-bottom: 20px;
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(12px);
}

.ct-registration-hero h1,
.ct-registration-hero h2,
.ct-registration-form-head h2,
.ct-registration-note h2,
.ct-registration-book-donation h2 {
    margin: 0;
    color: inherit;
    font-family: "Manrope", sans-serif;
    font-weight: 900;
    letter-spacing: -0.055em;
}

.ct-registration-hero h1 {
    max-width: 760px;
    font-size: clamp(58px, 7vw, 108px);
    line-height: 0.9;
}

.ct-registration-hero h2 {
    max-width: 760px;
    margin-top: 28px;
    font-size: clamp(24px, 3vw, 43px);
    line-height: 1.08;
    color: rgba(255, 255, 255, 0.9);
}

.ct-registration-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 38px;
}

.ct-registration-event-meta > span {
    display: flex;
    min-width: 128px;
    flex-direction: column;
    gap: 5px;
    padding: 15px 17px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(12px);
}

.ct-registration-event-meta small {
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.17em;
    color: #ff9fba;
}

.ct-registration-event-meta strong {
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    color: #fff;
}

.ct-registration-hero__visual {
    position: relative;
    min-height: 460px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 34px;
    box-shadow: 0 35px 80px rgba(0, 0, 0, 0.28);
    background: linear-gradient(145deg, #c95591, #54306c);
}

.ct-registration-hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(14, 11, 36, 0.88), rgba(14, 11, 36, 0.06) 62%);
    pointer-events: none;
}

.ct-registration-hero__visual img {
    width: 100%;
    height: 100%;
    min-height: 460px;
    object-fit: cover;
    display: block;
}

.ct-registration-hero__visual em {
    position: absolute;
    right: 24px;
    bottom: 24px;
    left: 24px;
    z-index: 2;
    padding: 17px 20px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-align: center;
    text-transform: uppercase;
    color: #fff;
    background: rgba(23, 19, 52, 0.58);
    backdrop-filter: blur(12px);
}

.ct-registration-hero__visual.is-placeholder {
    display: flex;
    min-height: 360px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.ct-registration-hero__visual.is-placeholder > span,
.ct-registration-hero__visual.is-placeholder > strong {
    position: relative;
    z-index: 1;
}

.ct-registration-hero__visual.is-placeholder > span {
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.2em;
}

.ct-registration-hero__visual.is-placeholder > strong {
    font-size: 150px;
    line-height: 0.9;
    letter-spacing: -0.1em;
    color: rgba(255, 255, 255, 0.25);
}

/* Main content */
.ct-registration-content {
    padding: clamp(70px, 8vw, 124px) 0 clamp(90px, 10vw, 150px);
}

.ct-registration-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, 370px);
    gap: clamp(28px, 4vw, 58px);
    align-items: start;
}

.ct-registration-form-card,
.ct-registration-note,
.ct-registration-book-donation {
    border: 1px solid var(--ct-reg-line);
    border-radius: 34px;
    background: #fff;
    box-shadow: var(--ct-reg-shadow);
}

.ct-registration-form-card {
    padding: clamp(30px, 5vw, 70px);
}

.ct-registration-form-head {
    max-width: 760px;
    margin-bottom: 42px;
    padding-bottom: 34px;
    border-bottom: 1px solid var(--ct-reg-line);
}

.ct-registration-form-head > span {
    margin-bottom: 16px;
    color: var(--ct-reg-magenta);
}

.ct-registration-form-head h2 {
    font-size: clamp(34px, 4.4vw, 62px);
    line-height: 0.98;
}

.ct-registration-form-head p {
    max-width: 680px;
    margin: 20px 0 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--ct-reg-muted);
}

.ct-registration-message,
.ct-registration-login,
.ct-registration-account,
.ct-registration-members,
.ct-registration-tickets {
    margin-bottom: 28px;
    padding: 22px;
    border: 1px solid rgba(122, 79, 196, 0.16);
    border-radius: 20px;
    background: rgba(122, 79, 196, 0.05);
}

.ct-registration-form {
    margin: 0 !important;
}

.ct-registration-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ct-registration-field--comment {
    grid-column: 1 / -1;
}

.ct-registration-field > :is(.control-group, .mb-3, .row),
.ct-registration-field :is(.control-group, .mb-3) {
    display: block !important;
    margin: 0 !important;
}

.ct-registration-field :is(.control-label, .form-control-label, label) {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    float: none !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--ct-reg-ink) !important;
}

.ct-registration-field :is(.controls, .col-sm-9, .col-md-9, .col-lg-9) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

.ct-registration-optional {
    margin-left: 8px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #9d97aa;
}

.ct-registration-page .required {
    color: var(--ct-reg-coral) !important;
}

.ct-registration-page :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="url"], select, textarea) {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border: 1px solid rgba(23, 21, 59, 0.16) !important;
    border-radius: 16px !important;
    outline: none !important;
    font-family: "Manrope", sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--ct-reg-ink) !important;
    background: #fbfafd !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.ct-registration-page :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="url"], select) {
    min-height: 58px !important;
    padding: 0 18px !important;
}

.ct-registration-page textarea {
    min-height: 145px !important;
    padding: 17px 18px !important;
    resize: vertical;
}

.ct-registration-page :is(input, select, textarea)::placeholder {
    color: #aaa5b5;
    opacity: 1;
}

.ct-registration-page :is(input, select, textarea):focus {
    border-color: rgba(122, 79, 196, 0.72) !important;
    background: #fff !important;
    box-shadow: 0 0 0 5px rgba(122, 79, 196, 0.09) !important;
}

.ct-registration-consent,
.ct-registration-captcha,
.ct-registration-payment {
    margin-top: 28px;
    padding-top: 26px;
    border-top: 1px solid var(--ct-reg-line);
}

.ct-registration-consent :is(.control-group, .mb-3),
.ct-registration-captcha {
    margin-bottom: 0 !important;
}

.ct-registration-consent :is(.control-label, .controls),
.ct-registration-captcha :is(.control-label, .controls) {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

.ct-registration-consent label.checkbox,
.ct-registration-consent label.form-check-label {
    display: flex !important;
    gap: 12px;
    align-items: flex-start;
    font-size: 13px !important;
    line-height: 1.65 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--ct-reg-muted) !important;
}

.ct-registration-consent input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin: 3px 0 0 !important;
    accent-color: var(--ct-reg-purple);
}

.ct-registration-payment h3 {
    margin: 0 0 22px;
    font-size: 22px;
    font-weight: 900;
    color: var(--ct-reg-ink);
}

.ct-registration-actions {
    display: flex !important;
    align-items: center;
    gap: 16px;
    margin: 36px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.ct-registration-actions #btn-submit {
    display: inline-flex !important;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
    padding: 0 24px 0 27px !important;
    border: 0 !important;
    border-radius: 18px !important;
    font-family: "Manrope", sans-serif !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #fff !important;
    background: linear-gradient(125deg, var(--ct-reg-purple), var(--ct-reg-magenta)) !important;
    box-shadow: 0 18px 35px rgba(122, 79, 196, 0.27) !important;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ct-registration-actions #btn-submit:hover,
.ct-registration-actions #btn-submit:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 23px 45px rgba(122, 79, 196, 0.36) !important;
}

.ct-registration-actions #btn-submit b {
    font-size: 20px;
    line-height: 1;
}

/* Sidebar */
.ct-registration-sidebar {
    position: sticky;
    top: 112px;
    display: grid;
    gap: 24px;
}

.ct-registration-note,
.ct-registration-book-donation {
    padding: 32px;
}

.ct-registration-note {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.08);
    background:
        radial-gradient(circle at 100% 100%, rgba(255, 255, 255, 0.08) 0 16%, transparent 16.5%),
        linear-gradient(145deg, #201a43, #52375e);
}

.ct-registration-note > span {
    margin-bottom: 18px;
    color: #ff8eb0;
}

.ct-registration-note h2,
.ct-registration-book-donation h2 {
    font-size: 32px;
    line-height: 1.04;
}

.ct-registration-note p,
.ct-registration-book-donation p {
    margin: 20px 0 0;
    font-size: 13px;
    line-height: 1.75;
}

.ct-registration-note p {
    color: rgba(255, 255, 255, 0.73);
}

.ct-registration-note ul {
    display: grid;
    gap: 12px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.ct-registration-note li {
    position: relative;
    padding-left: 24px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
}

.ct-registration-note li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #ff9f77;
}

.ct-registration-book-donation {
    color: #4b2733;
    border-color: rgba(226, 82, 126, 0.19);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.85), rgba(255, 238, 244, 0.96)),
        #fff2f6;
    box-shadow: 0 28px 65px rgba(190, 63, 103, 0.13);
}

.ct-registration-book-donation > span {
    margin-bottom: 18px;
    color: #d84d7e;
}

.ct-registration-book-donation p {
    color: #74515d;
}

.ct-registration-book-donation p + p {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(216, 77, 126, 0.17);
}

/* Validation and component messages */
.ct-registration-page .formError .formErrorContent,
.ct-registration-page .validation-advice,
.ct-registration-page .invalid-feedback {
    border-radius: 10px !important;
    font-family: "Manrope", sans-serif !important;
    font-size: 11px !important;
}

.ct-registration-page .eb-message {
    color: var(--ct-reg-ink);
}

/* Responsive */
@media (max-width: 1050px) {
    .ct-registration-hero__grid,
    .ct-registration-layout {
        grid-template-columns: 1fr;
    }

    .ct-registration-hero__visual {
        min-height: 400px;
    }

    .ct-registration-hero__visual img {
        min-height: 400px;
        max-height: 560px;
    }

    .ct-registration-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-registration-page:not(.ct-registration-page--workshop) .ct-registration-sidebar {
        grid-template-columns: minmax(0, 520px);
    }
}

@media (max-width: 720px) {
    .ct-registration-container {
        width: min(100% - 28px, 1280px);
    }

    .ct-registration-hero {
        padding-top: 44px;
        padding-bottom: 68px;
    }

    .ct-registration-hero h1 {
        font-size: clamp(50px, 16vw, 76px);
    }

    .ct-registration-hero h2 {
        font-size: 25px;
    }

    .ct-registration-event-meta {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-registration-event-meta > span:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .ct-registration-hero__visual,
    .ct-registration-hero__visual img {
        min-height: 330px;
    }

    .ct-registration-content {
        padding-top: 48px;
    }

    .ct-registration-form-card {
        padding: 28px 20px;
        border-radius: 25px;
    }

    .ct-registration-form-head h2 {
        font-size: 39px;
    }

    .ct-registration-fields,
    .ct-registration-sidebar {
        grid-template-columns: 1fr;
    }

    .ct-registration-field--comment {
        grid-column: auto;
    }

    .ct-registration-note,
    .ct-registration-book-donation {
        padding: 28px;
        border-radius: 25px;
    }

    .ct-registration-actions #btn-submit {
        width: 100%;
    }
}

@media (max-width: 440px) {
    .ct-registration-event-meta {
        grid-template-columns: 1fr;
    }

    .ct-registration-event-meta > span:last-child:nth-child(odd) {
        grid-column: auto;
    }

    .ct-registration-hero__visual,
    .ct-registration-hero__visual img {
        min-height: 280px;
    }
}

/* =========================================================
   CHANIARTOON REGISTRATION — PLACEHOLDER TYPOGRAPHY v1.0.2
   The no-image card uses a meaningful message instead of the event ID.
========================================================= */
.ct-registration-hero__visual.is-placeholder > strong {
    max-width: calc(100% - 48px);
    margin-top: 14px;
    font-size: clamp(72px, 8vw, 112px);
    line-height: 0.88;
    letter-spacing: -0.075em;
    text-align: center;
    color: rgba(255, 255, 255, 0.30);
}

.ct-registration-hero__visual.is-placeholder > small {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 15px;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.80);
}

@media (max-width: 767px) {
    .ct-registration-hero__visual.is-placeholder > strong {
        font-size: clamp(64px, 22vw, 94px);
    }
}

/* ========================================================================
   CHANIARTOON — PARALLEL ACTIONS TABS BELOW HERO
   Keeps the category menu completely on the light content background.
   ===================================================================== */
.ct-parallel-page .ct-parallel-content {
    padding-top: 40px !important;
}

.ct-parallel-page .ct-actions-tabs {
    margin-top: 0 !important;
    margin-bottom: 88px !important;
    transform: none !important;
}

@media (max-width: 820px) {
    .ct-parallel-page .ct-parallel-content {
        padding-top: 30px !important;
    }

    .ct-parallel-page .ct-actions-tabs {
        margin-top: 0 !important;
        margin-bottom: 64px !important;
    }
}

@media (max-width: 640px) {
    .ct-parallel-page .ct-parallel-content {
        padding-top: 22px !important;
    }

    .ct-parallel-page .ct-actions-tabs {
        margin-top: 0 !important;
        margin-bottom: 52px !important;
    }
}
/* ================================================================
   CHANIARTOON — VISIT / PRACTICAL INFORMATION PAGES
   Pages: Venues, Getting Here, Parking, Accessibility, Hours, FAQ,
   Contact intro. Append to /templates/shaper_macro/css/custom.css
   Namespace: .ct-visit-page
   ================================================================ */

:root {
    --ct-visit-ink: #171335;
    --ct-visit-ink-soft: #514b69;
    --ct-visit-purple: #3e285c;
    --ct-visit-purple-deep: #24183f;
    --ct-visit-pink: #df5c9b;
    --ct-visit-coral: #f06a65;
    --ct-visit-aqua: #69c8c4;
    --ct-visit-yellow: #f3c754;
    --ct-visit-paper: #f7f5f9;
    --ct-visit-card: #ffffff;
    --ct-visit-line: rgba(23, 19, 53, 0.12);
    --ct-visit-shadow: 0 22px 60px rgba(35, 24, 63, 0.12);
    --ct-visit-radius: 26px;
    --ct-visit-shell: 1240px;
}

/* Full-width escape from Helix / SP Page Builder containers */
body:has(.ct-visit-page) #sp-main-body {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: clip;
}

body:has(.ct-visit-page) #sp-main-body > .container,
body:has(.ct-visit-page) #sp-main-body > .container-fluid,
body:has(.ct-visit-page) #sp-main-body .container-inner,
body:has(.ct-visit-page) #sp-component,
body:has(.ct-visit-page) #sp-component > .sp-column,
body:has(.ct-visit-page) main#sp-component,
body:has(.ct-visit-page) .sp-page-builder,
body:has(.ct-visit-page) .page-content,
body:has(.ct-visit-page) .sppb-container,
body:has(.ct-visit-page) .sppb-row-container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body:has(.ct-visit-page) #sp-main-body .row,
body:has(.ct-visit-page) .sppb-row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body:has(.ct-visit-page) #sp-main-body [class*="col-"]#sp-component,
body:has(.ct-visit-page) #sp-main-body #sp-component[class*="col-"],
body:has(.ct-visit-page) .sppb-col-md-12,
body:has(.ct-visit-page) .sppb-column,
body:has(.ct-visit-page) .sppb-addon-wrapper,
body:has(.ct-visit-page) .sppb-addon-content {
    width: 100% !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.ct-visit-page,
.ct-visit-page * {
    box-sizing: border-box;
}

.ct-visit-page {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    color: var(--ct-visit-ink);
    background: var(--ct-visit-paper);
    font-family: inherit;
    overflow: clip;
}

.ct-visit-page a {
    color: inherit;
    text-decoration: none;
}

.ct-visit-page button,
.ct-visit-page input,
.ct-visit-page select,
.ct-visit-page textarea {
    font: inherit;
}

.ct-visit-page button {
    cursor: pointer;
}

.ct-visit-shell {
    width: min(var(--ct-visit-shell), calc(100% - 48px));
    margin-inline: auto;
}

.ct-visit-kicker {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    color: #ff8fc1;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ct-visit-kicker::before {
    width: 34px;
    height: 2px;
    content: "";
    background: currentColor;
}

/* HERO */
.ct-visit-hero {
    position: relative;
    isolation: isolate;
    min-height: 440px;
    display: flex;
    align-items: flex-end;
    color: #fff;
    background:
        radial-gradient(circle at 87% 10%, rgba(223, 92, 155, 0.35), transparent 32%),
        radial-gradient(circle at 13% 92%, rgba(105, 200, 196, 0.18), transparent 34%),
        linear-gradient(120deg, #171335 0%, #2c1d4c 58%, #543469 100%);
}

.ct-visit-hero::before,
.ct-visit-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    content: "";
}

.ct-visit-hero::before {
    top: -180px;
    right: -80px;
    width: 520px;
    height: 520px;
    box-shadow: 0 0 0 56px rgba(255, 255, 255, 0.025), 0 0 0 112px rgba(255, 255, 255, 0.02);
}

.ct-visit-hero::after {
    bottom: -260px;
    left: -180px;
    width: 460px;
    height: 460px;
}

.ct-visit-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 104px 0 76px;
}

.ct-visit-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 390px);
    gap: 72px;
    align-items: end;
}

.ct-visit-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-size: clamp(58px, 8.2vw, 120px);
    font-weight: 900;
    line-height: 0.84;
    letter-spacing: -0.065em;
}

.ct-visit-hero__lead {
    max-width: 690px;
    margin: 30px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(18px, 2vw, 23px);
    line-height: 1.55;
}

.ct-visit-hero__aside {
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.07);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(12px);
}

.ct-visit-hero__aside-label {
    display: block;
    margin-bottom: 13px;
    color: #ff8fc1;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.ct-visit-hero__aside strong {
    display: block;
    color: #fff;
    font-size: 24px;
    line-height: 1.2;
}

.ct-visit-hero__aside p {
    margin: 13px 0 0;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.55;
}

/* SHARED SUBNAV */
.ct-visit-nav-wrap {
    position: relative;
    z-index: 8;
    margin-top: -26px;
}

.ct-visit-nav {
    display: flex;
    gap: 6px;
    width: max-content;
    min-width: 100%;
    padding: 8px;
    border: 1px solid rgba(23, 19, 53, 0.08);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 16px 42px rgba(35, 24, 63, 0.13);
}

.ct-visit-nav-scroller {
    overflow-x: auto;
    padding: 0 0 18px;
    scrollbar-width: none;
}

.ct-visit-nav-scroller::-webkit-scrollbar {
    display: none;
}

.ct-visit-nav a {
    flex: 0 0 auto;
    padding: 14px 20px;
    border-radius: 999px;
    color: #2d254b;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.015em;
    white-space: nowrap;
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.ct-visit-nav a:hover {
    color: var(--ct-visit-purple);
    background: rgba(223, 92, 155, 0.1);
    transform: translateY(-1px);
}

.ct-visit-nav a.is-active,
.ct-visit-nav a[aria-current="page"] {
    color: #fff;
    background: linear-gradient(135deg, var(--ct-visit-pink), #aa56d0);
    box-shadow: 0 10px 24px rgba(181, 71, 151, 0.24);
}

/* PAGE CONTENT */
.ct-visit-main {
    padding: 84px 0 120px;
}

.ct-visit-section + .ct-visit-section {
    margin-top: 96px;
}

.ct-visit-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 500px);
    gap: 60px;
    align-items: end;
    margin-bottom: 42px;
}

.ct-visit-eyebrow {
    display: block;
    margin-bottom: 12px;
    color: var(--ct-visit-pink);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ct-visit-section-head h2,
.ct-visit-section-title {
    margin: 0;
    color: var(--ct-visit-ink);
    font-size: clamp(42px, 5vw, 76px);
    font-weight: 900;
    line-height: 0.94;
    letter-spacing: -0.05em;
}

.ct-visit-section-head p,
.ct-visit-section-intro {
    margin: 0;
    color: var(--ct-visit-ink-soft);
    font-size: 18px;
    line-height: 1.7;
}

.ct-visit-grid {
    display: grid;
    gap: 24px;
}

.ct-visit-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ct-visit-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ct-visit-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ct-visit-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ct-visit-line);
    border-radius: var(--ct-visit-radius);
    background: var(--ct-visit-card);
    box-shadow: 0 14px 40px rgba(35, 24, 63, 0.07);
}

.ct-visit-card__body {
    padding: 30px;
}

.ct-visit-card__label {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 7px 11px;
    border-radius: 999px;
    color: var(--ct-visit-pink);
    background: rgba(223, 92, 155, 0.1);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ct-visit-card h3 {
    margin: 18px 0 10px;
    color: var(--ct-visit-ink);
    font-size: 30px;
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.ct-visit-card p {
    margin: 0;
    color: var(--ct-visit-ink-soft);
    line-height: 1.65;
}

.ct-visit-button,
.ct-visit-text-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    margin-top: 22px;
    padding: 13px 20px;
    border: 0;
    border-radius: 999px;
    color: #fff !important;
    background: var(--ct-visit-ink);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.035em;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.ct-visit-button:hover,
.ct-visit-text-link:hover {
    color: #fff !important;
    background: var(--ct-visit-pink);
    box-shadow: 0 10px 24px rgba(223, 92, 155, 0.25);
    transform: translateY(-2px);
}

.ct-visit-button--light {
    color: var(--ct-visit-ink) !important;
    background: #fff;
}

.ct-visit-button--outline {
    color: var(--ct-visit-ink) !important;
    border: 1px solid var(--ct-visit-line);
    background: transparent;
}

.ct-visit-button--outline:hover {
    color: #fff !important;
    border-color: var(--ct-visit-pink);
}

.ct-visit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    color: var(--ct-visit-purple);
    background: rgba(62, 40, 92, 0.08);
    font-size: 22px;
}

.ct-visit-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* INFO / WARNING BLOCKS */
.ct-visit-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    padding: 24px 26px;
    border: 1px solid rgba(223, 92, 155, 0.22);
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(223, 92, 155, 0.08), rgba(105, 200, 196, 0.08));
}

.ct-visit-note strong {
    display: block;
    margin-bottom: 6px;
    color: var(--ct-visit-ink);
    font-size: 18px;
}

.ct-visit-note p {
    margin: 0;
    color: var(--ct-visit-ink-soft);
    line-height: 1.65;
}

.ct-visit-note--dark {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.12);
    background: linear-gradient(135deg, var(--ct-visit-purple-deep), #56356a);
}

.ct-visit-note--dark strong,
.ct-visit-note--dark p {
    color: #fff;
}

.ct-visit-note--dark p {
    opacity: 0.75;
}

/* TABS */
.ct-tabset {
    margin-top: 30px;
}

.ct-tablist {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 6px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 999px;
    background: #fff;
    scrollbar-width: none;
}

.ct-tablist::-webkit-scrollbar {
    display: none;
}

.ct-tablist button {
    flex: 0 0 auto;
    min-height: 45px;
    padding: 11px 18px;
    border: 0;
    border-radius: 999px;
    color: #514b69;
    background: transparent;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.ct-tablist button:hover {
    color: var(--ct-visit-ink);
    background: rgba(62, 40, 92, 0.07);
}

.ct-tablist button[aria-selected="true"],
.ct-tablist button.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--ct-visit-purple), #70468a);
    box-shadow: 0 8px 20px rgba(62, 40, 92, 0.22);
}

.ct-tabpanel {
    padding-top: 26px;
}

.ct-tabpanel[hidden] {
    display: none !important;
}

/* VENUES */
.ct-venue-card {
    display: grid;
    grid-template-rows: 250px auto;
    min-height: 100%;
}

.ct-venue-card__media {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(23, 19, 53, 0.18), rgba(62, 40, 92, 0.62)),
        var(--ct-bg, linear-gradient(135deg, #473263, #252040));
    background-position: center;
    background-size: cover;
}

.ct-venue-card__media::after {
    position: absolute;
    inset: auto 0 0;
    height: 45%;
    content: "";
    background: linear-gradient(to top, rgba(23, 19, 53, 0.55), transparent);
}

.ct-venue-card__number {
    position: absolute;
    z-index: 2;
    right: 22px;
    bottom: 18px;
    color: #fff;
    font-size: 54px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.06em;
}

.ct-venue-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.ct-venue-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #514b69;
    background: #f2eff5;
    font-size: 11px;
    font-weight: 800;
}

.ct-venue-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.ct-venue-actions .ct-visit-button {
    margin-top: 0;
}

.ct-map-panel {
    position: relative;
    min-height: 480px;
    overflow: hidden;
    border-radius: 30px;
    background:
        linear-gradient(rgba(23, 19, 53, 0.1), rgba(23, 19, 53, 0.06)),
        repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(23, 19, 53, 0.05) 40px),
        repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(23, 19, 53, 0.05) 40px),
        #eae7ed;
    box-shadow: var(--ct-visit-shadow);
}

.ct-map-panel__placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 40px;
    text-align: center;
}

.ct-map-panel__placeholder strong {
    display: block;
    margin-bottom: 8px;
    color: var(--ct-visit-ink);
    font-size: 30px;
}

.ct-map-panel__placeholder p {
    max-width: 560px;
    margin: 0;
    color: var(--ct-visit-ink-soft);
    line-height: 1.6;
}

/* GETTING HERE */
.ct-route-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ct-route-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    padding: 26px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 22px;
    background: #fff;
}

.ct-route-card h3 {
    margin: 0 0 8px;
    color: var(--ct-visit-ink);
    font-size: 23px;
    font-weight: 900;
}

.ct-route-card p {
    margin: 0;
    color: var(--ct-visit-ink-soft);
    line-height: 1.6;
}

.ct-route-card__details {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 14px;
}

.ct-route-card__details span {
    padding: 6px 9px;
    border-radius: 999px;
    color: var(--ct-visit-purple);
    background: rgba(62, 40, 92, 0.07);
    font-size: 11px;
    font-weight: 800;
}

.ct-route-steps {
    counter-reset: ct-route-step;
    display: grid;
    gap: 14px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.ct-route-steps li {
    counter-increment: ct-route-step;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    color: var(--ct-visit-ink-soft);
    line-height: 1.55;
}

.ct-route-steps li::before {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: #fff;
    background: var(--ct-visit-pink);
    content: counter(ct-route-step, decimal-leading-zero);
    font-size: 10px;
    font-weight: 900;
}

/* PARKING */
.ct-parking-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.ct-parking-card__top {
    min-height: 160px;
    padding: 28px;
    color: #fff;
    background: linear-gradient(135deg, var(--ct-visit-purple-deep), #56356a);
}

.ct-parking-card__top strong {
    display: block;
    margin-top: 18px;
    font-size: 32px;
    line-height: 1.05;
}

.ct-parking-card .ct-visit-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.ct-parking-list {
    display: grid;
    gap: 12px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.ct-parking-list li {
    display: flex;
    gap: 11px;
    color: var(--ct-visit-ink-soft);
    line-height: 1.5;
}

.ct-parking-list li::before {
    color: var(--ct-visit-pink);
    content: "✓";
    font-weight: 900;
}

.ct-parking-card .ct-visit-button {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 13px;
}

/* ACCESSIBILITY */
.ct-access-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ct-access-card {
    padding: 30px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 24px;
    background: #fff;
}

.ct-access-card__head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ct-visit-line);
}

.ct-access-card h3 {
    margin: 0;
    color: var(--ct-visit-ink);
    font-size: 27px;
    font-weight: 900;
    line-height: 1.1;
}

.ct-access-list {
    display: grid;
    gap: 14px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.ct-access-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    color: var(--ct-visit-ink-soft);
}

.ct-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.ct-status--yes {
    color: #17675b;
    background: rgba(105, 200, 196, 0.19);
}

.ct-status--limited {
    color: #846316;
    background: rgba(243, 199, 84, 0.24);
}

.ct-status--no {
    color: #9d3734;
    background: rgba(240, 106, 101, 0.17);
}

.ct-status--check {
    color: var(--ct-visit-purple);
    background: rgba(62, 40, 92, 0.09);
}

.ct-access-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ct-access-feature {
    min-height: 160px;
    padding: 22px;
    border-radius: 22px;
    color: #fff;
    background: linear-gradient(135deg, var(--ct-visit-purple-deep), #503268);
}

.ct-access-feature strong {
    display: block;
    margin-top: 22px;
    font-size: 20px;
    line-height: 1.15;
}

.ct-access-feature p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
    line-height: 1.45;
}

/* HOURS */
.ct-hours-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 26px;
}

.ct-hours-stat {
    padding: 24px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 22px;
    background: #fff;
}

.ct-hours-stat span {
    display: block;
    color: var(--ct-visit-pink);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ct-hours-stat strong {
    display: block;
    margin-top: 9px;
    color: var(--ct-visit-ink);
    font-size: 27px;
    line-height: 1.1;
}

.ct-hours-list {
    overflow: hidden;
    border: 1px solid var(--ct-visit-line);
    border-radius: 24px;
    background: #fff;
}

.ct-hours-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 0.55fr) minmax(220px, 1.2fr);
    gap: 22px;
    align-items: center;
    min-height: 74px;
    padding: 18px 24px;
}

.ct-hours-row + .ct-hours-row {
    border-top: 1px solid var(--ct-visit-line);
}

.ct-hours-row strong {
    color: var(--ct-visit-ink);
    font-size: 18px;
}

.ct-hours-row time {
    color: var(--ct-visit-purple);
    font-size: 17px;
    font-weight: 900;
}

.ct-hours-row span {
    color: var(--ct-visit-ink-soft);
    line-height: 1.5;
}

.ct-hours-today {
    display: none;
    align-items: center;
    gap: 8px;
    margin-left: 8px;
    padding: 5px 8px;
    border-radius: 999px;
    color: #fff;
    background: var(--ct-visit-pink);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ct-hours-today.is-visible {
    display: inline-flex;
}

/* FAQ */
.ct-faq-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    margin-bottom: 26px;
}

.ct-faq-search {
    position: relative;
}

.ct-faq-search input {
    width: 100%;
    min-height: 60px;
    padding: 16px 56px 16px 22px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 999px;
    outline: none;
    color: var(--ct-visit-ink);
    background: #fff;
    box-shadow: 0 10px 26px rgba(35, 24, 63, 0.06);
}

.ct-faq-search input:focus {
    border-color: rgba(223, 92, 155, 0.65);
    box-shadow: 0 0 0 4px rgba(223, 92, 155, 0.11);
}

.ct-faq-search::after {
    position: absolute;
    top: 50%;
    right: 22px;
    color: var(--ct-visit-pink);
    content: "⌕";
    font-size: 30px;
    transform: translateY(-54%);
}

.ct-faq-filters {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    padding-bottom: 5px;
    scrollbar-width: none;
}

.ct-faq-filters::-webkit-scrollbar {
    display: none;
}

.ct-faq-filters button {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 999px;
    color: var(--ct-visit-ink-soft);
    background: #fff;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.ct-faq-filters button:hover,
.ct-faq-filters button.is-active,
.ct-faq-filters button[aria-pressed="true"] {
    color: #fff;
    border-color: var(--ct-visit-purple);
    background: var(--ct-visit-purple);
}

.ct-faq-list {
    display: grid;
    gap: 12px;
}

.ct-faq-item {
    overflow: hidden;
    border: 1px solid var(--ct-visit-line);
    border-radius: 20px;
    background: #fff;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.ct-faq-item[open] {
    border-color: rgba(223, 92, 155, 0.34);
    box-shadow: 0 16px 40px rgba(35, 24, 63, 0.08);
}

.ct-faq-item summary {
    position: relative;
    padding: 24px 68px 24px 24px;
    color: var(--ct-visit-ink);
    cursor: pointer;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.35;
    list-style: none;
}

.ct-faq-item summary::-webkit-details-marker {
    display: none;
}

.ct-faq-item summary::after {
    position: absolute;
    top: 50%;
    right: 22px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: var(--ct-visit-purple);
    background: rgba(62, 40, 92, 0.07);
    content: "+";
    font-size: 22px;
    transform: translateY(-50%);
}

.ct-faq-item[open] summary::after {
    color: #fff;
    background: var(--ct-visit-pink);
    content: "−";
}

.ct-faq-answer {
    padding: 0 24px 26px;
    color: var(--ct-visit-ink-soft);
    line-height: 1.72;
}

.ct-faq-answer p {
    margin: 0;
}

.ct-faq-answer p + p {
    margin-top: 12px;
}

.ct-faq-empty {
    display: none;
    padding: 40px;
    border: 1px dashed rgba(23, 19, 53, 0.2);
    border-radius: 22px;
    color: var(--ct-visit-ink-soft);
    text-align: center;
}

.ct-faq-empty.is-visible {
    display: block;
}

/* CONTACT INTRO */
.ct-contact-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ct-contact-option {
    padding: 28px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 22px;
    background: #fff;
}

.ct-contact-option strong {
    display: block;
    margin-top: 20px;
    color: var(--ct-visit-ink);
    font-size: 23px;
}

.ct-contact-option p {
    margin: 8px 0 0;
    color: var(--ct-visit-ink-soft);
    line-height: 1.55;
}

/* COMMON CTA */
.ct-visit-cta {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 34px;
    align-items: center;
    padding: 44px;
    border-radius: 30px;
    color: #fff;
    background: linear-gradient(135deg, var(--ct-visit-purple-deep), #56356a);
    box-shadow: var(--ct-visit-shadow);
}

.ct-visit-cta::after {
    position: absolute;
    top: -90px;
    right: -70px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    box-shadow: 0 0 0 35px rgba(255, 255, 255, 0.025), 0 0 0 70px rgba(255, 255, 255, 0.02);
    content: "";
}

.ct-visit-cta > * {
    position: relative;
    z-index: 2;
}

.ct-visit-cta h2 {
    max-width: 780px;
    margin: 0;
    color: #fff;
    font-size: clamp(36px, 4vw, 60px);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.045em;
}

.ct-visit-cta p {
    max-width: 690px;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 17px;
    line-height: 1.6;
}

.ct-visit-cta .ct-visit-button {
    margin-top: 0;
}

/* ANIMATION / ACCESSIBILITY */
.ct-visit-page [data-ct-reveal] {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.ct-visit-page [data-ct-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .ct-visit-page *,
    .ct-visit-page *::before,
    .ct-visit-page *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
    }

    .ct-visit-page [data-ct-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* RESPONSIVE */
@media (max-width: 1100px) {
    .ct-visit-hero__grid,
    .ct-visit-section-head {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .ct-visit-hero__aside {
        max-width: 520px;
    }

    .ct-visit-grid--4,
    .ct-access-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-visit-grid--3,
    .ct-contact-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-faq-tools {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .ct-visit-shell {
        width: min(100% - 30px, var(--ct-visit-shell));
    }

    .ct-visit-hero {
        min-height: 390px;
    }

    .ct-visit-hero__inner {
        padding: 86px 0 66px;
    }

    .ct-visit-hero h1 {
        font-size: clamp(52px, 16vw, 80px);
    }

    .ct-visit-main {
        padding: 70px 0 90px;
    }

    .ct-visit-section + .ct-visit-section {
        margin-top: 72px;
    }

    .ct-visit-grid--2,
    .ct-visit-grid--3,
    .ct-visit-grid--4,
    .ct-route-grid,
    .ct-access-grid,
    .ct-hours-summary,
    .ct-contact-options {
        grid-template-columns: 1fr;
    }

    .ct-access-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ct-hours-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .ct-visit-cta {
        grid-template-columns: 1fr;
        padding: 34px;
    }

    .ct-visit-cta .ct-visit-button {
        justify-self: start;
    }
}

@media (max-width: 560px) {
    .ct-visit-shell {
        width: min(100% - 22px, var(--ct-visit-shell));
    }

    .ct-visit-hero__inner {
        padding: 72px 0 58px;
    }

    .ct-visit-hero h1 {
        font-size: clamp(46px, 16vw, 68px);
        line-height: 0.88;
    }

    .ct-visit-hero__lead {
        font-size: 17px;
    }

    .ct-visit-hero__aside {
        padding: 22px;
    }

    .ct-visit-nav-wrap {
        margin-top: -20px;
    }

    .ct-visit-nav a {
        padding: 12px 15px;
        font-size: 11px;
    }

    .ct-visit-main {
        padding-top: 56px;
    }

    .ct-visit-section-head h2,
    .ct-visit-section-title {
        font-size: 42px;
    }

    .ct-visit-card__body,
    .ct-access-card {
        padding: 23px;
    }

    .ct-venue-card {
        grid-template-rows: 210px auto;
    }

    .ct-route-card {
        grid-template-columns: 1fr;
        padding: 22px;
    }

    .ct-access-card__head {
        flex-direction: column;
    }

    .ct-access-list li {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .ct-access-feature-grid {
        grid-template-columns: 1fr;
    }

    .ct-tablist {
        border-radius: 18px;
    }

    .ct-faq-item summary {
        padding: 20px 58px 20px 19px;
        font-size: 17px;
    }

    .ct-faq-answer {
        padding: 0 19px 22px;
    }

    .ct-visit-cta {
        padding: 28px 24px;
    }
}

/* Small utilities used by the HTML blocks */
.ct-visit-page .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.ct-map-panel > iframe,
.ct-map-panel > img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 480px;
    border: 0;
    object-fit: cover;
}

.ct-visit-page code {
    padding: 0.15em 0.4em;
    border-radius: 6px;
    color: var(--ct-visit-purple);
    background: rgba(62, 40, 92, 0.07);
    font-size: 0.9em;
}
/* ================================================================
   CHANIARTOON — VISIT PAGES V2 CORRECTIONS
   Append AFTER the previous Visit Pages CSS.
   ================================================================ */

/* Full-bleed backgrounds, but safely contained typography/content */
.ct-visit-page {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: clip;
}

.ct-visit-shell {
    width: 100% !important;
    max-width: 1380px !important;
    margin-inline: auto !important;
    padding-inline: clamp(26px, 4.8vw, 74px) !important;
}

.ct-visit-hero__inner {
    padding-top: clamp(96px, 9vw, 142px);
    padding-bottom: clamp(74px, 7vw, 108px);
}

.ct-visit-hero__grid {
    gap: clamp(42px, 6vw, 88px);
}

.ct-visit-hero h1 {
    max-width: 10.5ch;
    font-size: clamp(62px, 7.25vw, 112px);
    line-height: 0.88;
    letter-spacing: -0.058em;
    text-wrap: balance;
}

.ct-visit-hero__lead {
    max-width: 760px;
}

.ct-visit-nav-scroller {
    padding-inline: clamp(26px, 4.8vw, 74px) !important;
}

.ct-visit-nav {
    min-width: max-content;
}

.ct-visit-main {
    padding-top: clamp(76px, 7vw, 104px);
}

.ct-visit-section-head h2,
.ct-visit-section-title,
.ct-visit-cta h2 {
    text-wrap: balance;
}

/* Accessibility editing states */
.ct-status--yes::before,
.ct-status--limited::before,
.ct-status--no::before,
.ct-status--check::before {
    margin-right: 6px;
    font-size: 9px;
}

.ct-status--yes::before { content: "✓"; }
.ct-status--limited::before { content: "!"; }
.ct-status--no::before { content: "×"; }
.ct-status--check::before { content: "…"; }

/* Dynamic Event Booking hours module */
.ct-hours-general-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ct-hours-general-card {
    min-height: 175px;
    padding: 28px;
    border: 1px solid var(--ct-visit-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(35, 24, 63, 0.07);
}

.ct-hours-general-card span {
    display: block;
    color: var(--ct-visit-pink);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ct-hours-general-card strong {
    display: block;
    margin-top: 14px;
    color: var(--ct-visit-ink);
    font-size: clamp(25px, 2.4vw, 34px);
    line-height: 1.05;
}

.ct-hours-general-card p {
    margin: 12px 0 0;
    color: var(--ct-visit-ink-soft);
    line-height: 1.55;
}

.ct-event-hours-day-label {
    display: block;
    font-size: 11px;
    opacity: 0.72;
}

.ct-event-hours-date {
    display: block;
    margin-top: 2px;
    font-size: 13px;
}

.ct-event-hours-list {
    overflow: hidden;
    border: 1px solid var(--ct-visit-line);
    border-radius: 24px;
    background: #fff;
}

.ct-event-hours-item {
    display: grid;
    grid-template-columns: minmax(115px, .34fr) minmax(220px, 1fr) minmax(170px, .65fr);
    gap: 22px;
    align-items: center;
    padding: 21px 24px;
}

.ct-event-hours-item + .ct-event-hours-item {
    border-top: 1px solid var(--ct-visit-line);
}

.ct-event-hours-time {
    color: var(--ct-visit-purple);
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
}

.ct-event-hours-copy strong {
    display: block;
    color: var(--ct-visit-ink);
    font-size: 18px;
    line-height: 1.25;
}

.ct-event-hours-copy span,
.ct-event-hours-meta {
    display: block;
    margin-top: 7px;
    color: var(--ct-visit-ink-soft);
    font-size: 13px;
    line-height: 1.45;
}

.ct-event-hours-link {
    justify-self: end;
    color: var(--ct-visit-pink) !important;
    font-size: 12px;
    font-weight: 900;
}

.ct-event-hours-link:hover {
    color: var(--ct-visit-purple) !important;
}

.ct-event-hours-empty {
    padding: 34px;
    border: 1px dashed rgba(23, 19, 53, .18);
    border-radius: 22px;
    color: var(--ct-visit-ink-soft);
    text-align: center;
}

@media (max-width: 900px) {
    .ct-hours-general-grid {
        grid-template-columns: 1fr;
    }

    .ct-event-hours-item {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .ct-event-hours-link {
        justify-self: start;
        margin-top: 6px;
    }
}

@media (max-width: 820px) {
    .ct-visit-shell,
    .ct-visit-nav-scroller {
        padding-inline: 24px !important;
    }

    .ct-visit-hero h1 {
        max-width: 11ch;
        font-size: clamp(50px, 14vw, 78px);
    }
}

@media (max-width: 560px) {
    .ct-visit-shell,
    .ct-visit-nav-scroller {
        padding-inline: 18px !important;
    }

    .ct-visit-hero__inner {
        padding-top: 76px;
        padding-bottom: 62px;
    }

    .ct-visit-hero h1 {
        font-size: clamp(46px, 15vw, 66px);
        line-height: .9;
    }
}

/* ==========================================================
   CHANIARTOON HISTORY — 2024 PREMIUM EDITORIAL LAYOUT
   Βάλε το στο τέλος του custom.css
   ========================================================== */

.ct-history-2024-feature{
  background:
    radial-gradient(circle at 85% 18%,rgba(178,115,224,.16),transparent 30%),
    radial-gradient(circle at 12% 82%,rgba(255,191,130,.09),transparent 34%),
    linear-gradient(145deg,#111117 0%,#17141c 58%,#101015 100%);
}

.ct-history-2024-feature .ct-history-panel-watermark{
  right:auto;
  left:-.06em;
  bottom:-.18em;
  color:rgba(255,255,255,.022);
}

.ct-history-2024-header{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(180px,.32fr) minmax(0,1.68fr);
  gap:clamp(55px,8vw,150px);
  align-items:end;
  margin-bottom:clamp(70px,8vw,125px);
}

.ct-history-2024-feature .ct-history-year-meta strong{
  color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.82);
  text-stroke:1.5px rgba(255,255,255,.82);
}

.ct-history-2024-heading{
  position:relative;
  max-width:1180px;
}

.ct-history-2024-index{
  position:absolute;
  top:0;
  right:0;
  color:rgba(255,255,255,.34);
  font-size:10px;
  font-weight:800;
  line-height:1.3;
  letter-spacing:.24em;
  text-transform:uppercase;
}

.ct-history-2024-heading h3{
  display:flex;
  flex-direction:column;
  margin:26px 0 0;
  font-family:"Manrope",Arial,sans-serif;
  font-size:clamp(68px,9.2vw,155px);
  font-weight:850;
  line-height:.79;
  letter-spacing:-.082em;
}

.ct-history-2024-heading h3 span:first-child{
  color:#fff;
}

.ct-history-2024-heading h3 span:last-child{
  margin-left:clamp(35px,7vw,135px);
  color:var(--ct-orange);
  font-weight:750;
}

.ct-history-2024-layout{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(470px,1.18fr) minmax(330px,.82fr);
  gap:clamp(45px,6vw,105px);
  align-items:start;
}

.ct-history-2024-poster,
.ct-history-2024-photo{
  margin:0;
}

.ct-history-2024-poster{
  position:relative;
}

.ct-history-2024-poster::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:4% -4% -4% 5%;
  border:1px solid rgba(255,191,130,.3);
  transform:rotate(1.4deg);
}

.ct-history-2024-poster img{
  display:block;
  width:100%;
  max-height:960px;
  object-fit:contain;
  background:#211e26;
  box-shadow:0 58px 120px rgba(0,0,0,.54);
  transform:rotate(-.55deg);
}

.ct-history-2024-side{
  display:flex;
  flex-direction:column;
  gap:clamp(45px,5vw,80px);
  padding-top:clamp(35px,6vw,110px);
}

.ct-history-2024-photo{
  width:min(100%,680px);
  margin-left:auto;
}

.ct-history-2024-photo img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  box-shadow:0 38px 85px rgba(0,0,0,.42);
}

.ct-history-2024-poster figcaption,
.ct-history-2024-photo figcaption{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:start;
  margin-top:22px;
  color:rgba(255,255,255,.5);
}

.ct-history-2024-poster figcaption > span,
.ct-history-2024-photo figcaption > span{
  color:var(--ct-orange);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
}

.ct-history-2024-poster figcaption strong,
.ct-history-2024-photo figcaption strong{
  display:block;
  color:rgba(255,255,255,.84);
  font-size:11px;
  font-weight:800;
  line-height:1.45;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.ct-history-2024-poster figcaption small,
.ct-history-2024-photo figcaption small{
  display:block;
  margin-top:5px;
  color:rgba(255,255,255,.38);
  font-size:9px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.ct-history-2024-story{
  max-width:600px;
  margin-left:auto;
  padding-top:38px;
  border-top:1px solid rgba(255,255,255,.16);
}

.ct-history-2024-story p{
  margin:0;
  color:rgba(255,255,255,.63);
  font-size:16px;
  line-height:1.8;
}

.ct-history-2024-story p + p{
  margin-top:24px;
}

.ct-history-2024-story .ct-history-lead{
  max-width:560px;
  color:#fff;
  font-size:clamp(24px,2.2vw,36px);
  font-weight:600;
  line-height:1.38;
  letter-spacing:-.035em;
}

.ct-history-2024-story .ct-history-highlights{
  margin-top:42px;
}

.ct-history-2024-story .ct-history-highlights li{
  border-color:rgba(255,255,255,.14);
  color:rgba(255,255,255,.78);
}

@media (hover:hover){
  .ct-history-2024-poster img,
  .ct-history-2024-photo img{
    transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s;
  }

  .ct-history-2024-poster:hover img{
    transform:rotate(0) translateY(-7px) scale(1.006);
    box-shadow:0 70px 135px rgba(0,0,0,.62);
  }

  .ct-history-2024-photo:hover img{
    transform:translateY(-7px) scale(1.008);
    box-shadow:0 50px 100px rgba(0,0,0,.5);
  }
}

@media (max-width:900px){
  .ct-history-2024-header,
  .ct-history-2024-layout{
    grid-template-columns:1fr;
  }

  .ct-history-2024-header{
    gap:48px;
  }

  .ct-history-2024-index{
    position:static;
    display:block;
    margin-top:18px;
  }

  .ct-history-2024-heading h3 span:last-child{
    margin-left:0;
  }

  .ct-history-2024-poster{
    width:min(88%,720px);
    margin-inline:auto;
  }

  .ct-history-2024-side{
    padding-top:0;
  }

  .ct-history-2024-photo,
  .ct-history-2024-story{
    width:100%;
    max-width:none;
    margin-left:0;
  }
}

@media (max-width:620px){
  .ct-history-2024-heading h3{
    font-size:clamp(54px,16vw,84px);
    line-height:.84;
  }

  .ct-history-2024-poster{
    width:100%;
  }

  .ct-history-2024-photo img{
    aspect-ratio:4/3;
  }

  .ct-history-2024-poster figcaption,
  .ct-history-2024-photo figcaption{
    gap:12px;
  }
}

/* =========================================================
   PARKING PAGE — FULL WIDTH LIVE MAP
   ========================================================= */

#parking-map .ct-map-panel--parking-live {
  position: relative;
  display: block;
  width: 100%;
  height: clamp(560px, 72vh, 820px);
  min-height: 560px;
  padding: 0 !important;
  margin: 0;
  overflow: hidden;

  background: #dedce3;
  border: 1px solid rgba(19, 15, 55, 0.08);
  border-radius: 30px;
  box-shadow: 0 28px 75px rgba(25, 18, 55, 0.1);
}

#parking-map .ct-parking-map-iframe {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}

/* Καταργεί πιθανό περιορισμό από προηγούμενο CSS */
#parking-map .ct-map-panel--parking-live > iframe {
  position: absolute;
  inset: 0;
}

@media (max-width: 767px) {
  #parking-map .ct-map-panel--parking-live {
    height: 650px;
    min-height: 650px;
    border-radius: 20px;
  }
}

@media (max-width: 480px) {
  #parking-map .ct-map-panel--parking-live {
    height: 600px;
    min-height: 600px;
    border-radius: 16px;
  }
}

/* =========================================================
   PARKING MAP LIGHTBOX
   ========================================================= */

#parking-map {
  scroll-margin-top: 130px;
}

.ct-map-lightbox {
  position: fixed;
  z-index: 999999;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: clamp(12px, 3vw, 40px);

  visibility: hidden;
  opacity: 0;
  pointer-events: none;

  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;
}

.ct-map-lightbox.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.ct-map-lightbox__backdrop {
  position: absolute;
  inset: 0;

  background: rgba(10, 8, 30, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ct-map-lightbox__dialog {
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;

  width: min(1420px, 100%);
  height: min(900px, 90vh);

  overflow: hidden;

  background: #f2f0f5;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 28px;
  box-shadow: 0 45px 140px rgba(0, 0, 0, 0.45);

  transform: translateY(25px) scale(0.98);

  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.ct-map-lightbox.is-open .ct-map-lightbox__dialog {
  transform: translateY(0) scale(1);
}

.ct-map-lightbox__header {
  flex: 0 0 auto;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;

  min-height: 88px;
  padding: 18px 22px 18px clamp(22px, 3vw, 42px);

  background: #17133f;
  color: #ffffff;
}

.ct-map-lightbox__eyebrow {
  display: block;

  margin-bottom: 5px;

  color: #f05d9b;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
}

.ct-map-lightbox__header strong {
  display: block;

  font-size: clamp(18px, 2vw, 28px);
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: -0.035em;
}

.ct-map-lightbox__close {
  flex: 0 0 auto;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 50px;
  height: 50px;

  padding: 0;

  color: #ffffff;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;

  font-family: Arial, sans-serif;
  font-size: 34px;
  font-weight: 300;
  line-height: 1;

  cursor: pointer;

  transition:
    background 0.25s ease,
    transform 0.25s ease;
}

.ct-map-lightbox__close:hover {
  background: #f05d9b;
  transform: rotate(6deg);
}

.ct-map-lightbox__frame {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;

  background: #dedce3;
}

.ct-map-lightbox__frame iframe {
  display: block;

  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;
  border: 0;
}

body.ct-map-lightbox-open {
  overflow: hidden;
}

@media (max-width: 767px) {
  #parking-map {
    scroll-margin-top: 100px;
  }

  .ct-map-lightbox {
    padding: 8px;
  }

  .ct-map-lightbox__dialog {
    height: calc(100dvh - 16px);
    border-radius: 18px;
  }

  .ct-map-lightbox__header {
    min-height: 76px;
    padding: 13px 14px 13px 20px;
  }

  .ct-map-lightbox__header strong {
    font-size: 17px;
  }

  .ct-map-lightbox__close {
    width: 46px;
    height: 46px;
  }
}

CHANIARTOON — PREMIUM EXHIBITIONS LANDING
========================================================= */

.ct-exhibitions-index {
    --ctei-accent:#b273e0;
    --ctei-accent-2:#cfe977;
    --ctei-ink:#17172f;
    --ctei-paper:#f7f4ef;
    --ctei-muted:#6f6c77;
    --ctei-display:Georgia, "Times New Roman", serif;
    position:relative;
    left:50%;
    width:100vw;
    margin-left:-50vw;
    overflow:hidden;
    color:var(--ctei-ink);
    background:var(--ctei-paper);
}

.ct-exhibitions-index *,
.ct-exhibitions-index *::before,
.ct-exhibitions-index *::after {
    box-sizing:border-box;
}

.ct-exhibitions-index a {
    color:inherit;
    text-decoration:none;
}

.ct-exhibitions-index button {
    font:inherit;
}

/* Hero */
.ct-exhibitions-index__hero {
    position:relative;
    isolation:isolate;
    min-height:780px;
    padding:150px max(36px, calc((100vw - 1440px) / 2)) 0;
    color:#fff;
    background:
        radial-gradient(circle at 14% 17%, color-mix(in srgb, var(--ctei-accent) 24%, transparent), transparent 27%),
        radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--ctei-accent-2) 14%, transparent), transparent 30%),
        linear-gradient(145deg, #161326 0%, #28213f 57%, #493b6e 100%);
}

.ct-exhibitions-index__hero::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
}

.ct-exhibitions-index--pattern-grid .ct-exhibitions-index__hero::before {
    opacity:.06;
    background-image:
        linear-gradient(rgba(255,255,255,.55) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.55) 1px, transparent 1px);
    background-size:60px 60px;
}

.ct-exhibitions-index--pattern-dots .ct-exhibitions-index__hero::before {
    opacity:.12;
    background-image:radial-gradient(circle, #fff 1px, transparent 1.5px);
    background-size:25px 25px;
}

.ct-exhibitions-index--pattern-paper .ct-exhibitions-index__hero::before {
    opacity:.08;
    background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.8) 0 1px, transparent 1px 5px);
}

.ct-exhibitions-index__hero-inner {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(430px, .82fr);
    align-items:center;
    gap:clamp(70px, 9vw, 145px);
    width:min(1440px, 100%);
    min-height:570px;
    margin:0 auto;
}

.ct-exhibitions-index__kicker {
    display:inline-flex;
    align-items:center;
    gap:14px;
    color:var(--ctei-accent-2);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.ct-exhibitions-index__kicker::before {
    content:"";
    width:44px;
    height:1px;
    background:currentColor;
}

.ct-exhibitions-index__hero h1 {
    max-width:850px;
    margin:35px 0 35px;
    font-family:var(--ctei-display);
    font-size:clamp(82px, 10vw, 168px);
    font-weight:700;
    line-height:.82;
    letter-spacing:-.075em;
    text-wrap:balance;
}

.ct-exhibitions-index__intro {
    max-width:720px;
    color:rgba(255,255,255,.7);
    font-size:18px;
    line-height:1.8;
}

.ct-exhibitions-index__intro > *:last-child {
    margin-bottom:0;
}

.ct-exhibitions-index__hero-art {
    position:relative;
    min-height:580px;
}

.ct-exhibitions-index__hero-single {
    position:absolute;
    inset:0;
    margin:0;
    overflow:hidden;
    border-radius:34px;
    background:#6b6472;
    box-shadow:0 55px 120px rgba(0,0,0,.35);
    transform:rotate(2.3deg);
}

.ct-exhibitions-index__hero-single::after,
.ct-exhibitions-index__collage::after {
    content:"";
    position:absolute;
    inset:18px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:24px;
    pointer-events:none;
}

.ct-exhibitions-index__hero-single img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-exhibitions-index__collage {
    position:absolute;
    inset:0;
}

.ct-exhibitions-index__collage-item {
    position:absolute;
    margin:0;
    overflow:hidden;
    border-radius:24px;
    background:#4a4650;
    box-shadow:0 35px 80px rgba(0,0,0,.32);
}

.ct-exhibitions-index__collage-item img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.ct-exhibitions-index__collage-item--1 {
    inset:0 14% 8% 4%;
    z-index:2;
    transform:rotate(-3deg);
}

.ct-exhibitions-index__collage-item--2 {
    width:46%;
    height:45%;
    right:-2%;
    top:-3%;
    z-index:3;
    transform:rotate(6deg);
}

.ct-exhibitions-index__collage-item--3 {
    width:44%;
    height:38%;
    right:-5%;
    bottom:0;
    z-index:4;
    transform:rotate(-4deg);
}

.ct-exhibitions-index__hero-abstract {
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:36px;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.17), transparent 25%),
        linear-gradient(135deg, var(--ctei-accent), var(--ctei-accent-2));
    box-shadow:0 55px 120px rgba(0,0,0,.32);
    transform:rotate(2deg);
}

.ct-exhibitions-index__hero-abstract span {
    color:rgba(255,255,255,.78);
    font-family:var(--ctei-display);
    font-size:clamp(170px, 22vw, 360px);
    font-weight:700;
    line-height:1;
    letter-spacing:-.12em;
}

.ct-exhibitions-index__stats {
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    width:min(1440px, 100%);
    margin:70px auto 0;
    border-top:1px solid rgba(255,255,255,.16);
}

.ct-exhibitions-index__stats > div {
    min-height:140px;
    padding:28px 30px;
    border-right:1px solid rgba(255,255,255,.14);
}

.ct-exhibitions-index__stats > div:first-child {
    padding-left:0;
}

.ct-exhibitions-index__stats > div:last-child {
    border-right:0;
}

.ct-exhibitions-index__stats span {
    display:block;
    margin-bottom:14px;
    color:var(--ctei-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
}

.ct-exhibitions-index__stats strong {
    display:block;
    color:#fff;
    font-size:clamp(18px, 2vw, 31px);
    font-weight:750;
    line-height:1.2;
}

/* Sticky filters */
.ct-exhibitions-filter {
    position:sticky;
    z-index:80;
    top:82px;
    border-bottom:1px solid rgba(23,23,47,.1);
    background:rgba(247,244,239,.91);
    backdrop-filter:blur(18px);
}

.ct-exhibitions-filter__inner {
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
    gap:45px;
    width:min(1440px, calc(100% - 72px));
    min-height:96px;
    margin:0 auto;
}

.ct-exhibitions-filter__title {
    color:var(--ctei-muted);
    font-size:9px;
    font-weight:900;
    letter-spacing:.16em;
    white-space:nowrap;
}

.ct-exhibitions-filter__buttons {
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:12px 0;
    scrollbar-width:none;
}

.ct-exhibitions-filter__buttons::-webkit-scrollbar {
    display:none;
}

.ct-exhibitions-filter button {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:10px;
    min-height:43px;
    padding:0 17px;
    border:1px solid rgba(23,23,47,.12);
    border-radius:999px;
    color:var(--ctei-ink);
    background:transparent;
    font-size:10px;
    font-weight:850;
    letter-spacing:.075em;
    cursor:pointer;
    transition:border-color .25s ease, background .25s ease, color .25s ease, transform .25s ease;
}

.ct-exhibitions-filter button:hover {
    transform:translateY(-2px);
    border-color:var(--ctei-accent);
}

.ct-exhibitions-filter button.is-active {
    border-color:var(--ctei-ink);
    color:#fff;
    background:var(--ctei-ink);
}

.ct-exhibitions-filter button small {
    display:grid;
    place-items:center;
    min-width:21px;
    height:21px;
    border-radius:50%;
    color:var(--ctei-ink);
    background:var(--ctei-accent-2);
    font-size:9px;
}

/* Catalogue */
.ct-exhibitions-catalogue {
    width:min(1440px, calc(100% - 72px));
    margin:0 auto;
    padding:130px 0 150px;
}

.ct-exhibitions-catalogue__header {
    display:grid;
    grid-template-columns:180px minmax(0, 1fr) auto;
    align-items:end;
    gap:40px;
    margin-bottom:62px;
    padding-bottom:30px;
    border-bottom:1px solid rgba(23,23,47,.16);
}

.ct-exhibitions-catalogue__header > span {
    color:var(--ctei-accent);
    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
}

.ct-exhibitions-catalogue__header h2 {
    max-width:850px;
    margin:0;
    font-family:var(--ctei-display);
    font-size:clamp(45px, 5.5vw, 86px);
    font-weight:700;
    line-height:.92;
    letter-spacing:-.055em;
}

.ct-exhibitions-catalogue__header p {
    display:flex;
    align-items:baseline;
    gap:9px;
    margin:0;
    color:var(--ctei-muted);
    font-size:12px;
}

.ct-exhibitions-catalogue__header strong {
    color:var(--ctei-ink);
    font-family:var(--ctei-display);
    font-size:46px;
    line-height:1;
}

.ct-exhibitions-grid {
    display:grid;
    grid-template-columns:repeat(12, minmax(0, 1fr));
    grid-auto-flow:dense;
    grid-auto-rows:82px;
    gap:22px;
}

.ct-exhibitions-card {
    position:relative;
    min-height:410px;
    overflow:hidden;
    border-radius:25px;
    background:#292631;
    box-shadow:0 30px 65px rgba(28,23,40,.11);
}

.ct-exhibitions-card--standard {
    grid-column:span 4;
    grid-row:span 5;
}

.ct-exhibitions-card--wide {
    grid-column:span 8;
    grid-row:span 5;
}

.ct-exhibitions-card--tall {
    grid-column:span 4;
    grid-row:span 7;
}

.ct-exhibitions-card--featured {
    grid-column:span 8;
    grid-row:span 7;
}

.ct-exhibitions-card > a {
    position:absolute;
    inset:0;
    display:block;
    overflow:hidden;
    color:#fff;
}

.ct-exhibitions-card__media,
.ct-exhibitions-card__abstract {
    position:absolute;
    inset:0;
}

.ct-exhibitions-card__media img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}

.ct-exhibitions-focus--top img { object-position:center top; }
.ct-exhibitions-focus--bottom img { object-position:center bottom; }
.ct-exhibitions-focus--left img { object-position:left center; }
.ct-exhibitions-focus--right img { object-position:right center; }
.ct-exhibitions-focus--center img { object-position:center; }

.ct-exhibitions-card__abstract {
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.2), transparent 26%),
        linear-gradient(135deg, var(--card-accent), var(--card-accent-2));
}

.ct-exhibitions-card__abstract::before {
    content:"";
    position:absolute;
    inset:0;
    opacity:.15;
    background-image:
        linear-gradient(rgba(255,255,255,.75) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.75) 1px, transparent 1px);
    background-size:42px 42px;
}

.ct-exhibitions-card__abstract span {
    position:relative;
    color:rgba(255,255,255,.72);
    font-family:var(--ctei-display);
    font-size:clamp(130px, 17vw, 260px);
    font-weight:700;
    letter-spacing:-.12em;
}

.ct-exhibitions-card__overlay {
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(10,9,15,.08) 15%, rgba(10,9,15,.18) 43%, rgba(10,9,15,.93) 100%),
        linear-gradient(90deg, rgba(10,9,15,.24), transparent 55%);
    transition:background .45s ease;
}

.ct-exhibitions-card__topline {
    position:absolute;
    z-index:3;
    top:25px;
    left:26px;
    right:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.ct-exhibitions-card__topline > span {
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:50%;
    color:#fff;
    background:rgba(10,9,15,.18);
    backdrop-filter:blur(10px);
    font-family:var(--ctei-display);
    font-size:24px;
    font-weight:700;
}

.ct-exhibitions-card__topline em {
    color:rgba(255,255,255,.84);
    font-size:8px;
    font-style:normal;
    font-weight:900;
    letter-spacing:.14em;
    text-align:right;
}

.ct-exhibitions-card__content {
    position:absolute;
    z-index:3;
    left:30px;
    right:70px;
    bottom:30px;
    transform:translateY(58px);
    transition:transform .5s cubic-bezier(.2,.7,.2,1);
}

.ct-exhibitions-card__artist {
    display:block;
    margin-bottom:12px;
    color:var(--card-accent);
    font-size:9px;
    font-weight:900;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.ct-exhibitions-card h3 {
    max-width:760px;
    margin:0;
    font-family:var(--ctei-display);
    font-size:clamp(32px, 3.45vw, 62px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.055em;
    text-wrap:balance;
}

.ct-exhibitions-card--standard h3,
.ct-exhibitions-card--tall h3 {
    font-size:clamp(30px, 2.8vw, 48px);
}

.ct-exhibitions-card__content > p {
    max-width:660px;
    max-height:0;
    margin:16px 0 0;
    overflow:hidden;
    color:rgba(255,255,255,.72);
    font-size:14px;
    line-height:1.55;
    opacity:0;
    transition:max-height .5s ease, opacity .35s ease;
}

.ct-exhibitions-card__meta {
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    max-height:0;
    margin-top:16px;
    overflow:hidden;
    color:rgba(255,255,255,.58);
    font-size:9px;
    font-weight:800;
    letter-spacing:.08em;
    opacity:0;
    transition:max-height .5s ease, opacity .35s ease;
}

.ct-exhibitions-card__arrow {
    position:absolute;
    z-index:4;
    right:25px;
    bottom:26px;
    display:grid;
    place-items:center;
    width:45px;
    height:45px;
    border-radius:50%;
    color:var(--ctei-ink);
    background:var(--card-accent);
    font-size:18px;
    transition:transform .35s ease, background .35s ease;
}

.ct-exhibitions-card:hover img,
.ct-exhibitions-card:focus-within img {
    transform:scale(1.055);
    filter:saturate(1.08);
}

.ct-exhibitions-card:hover .ct-exhibitions-card__overlay,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__overlay {
    background:
        linear-gradient(180deg, rgba(10,9,15,.12) 8%, rgba(10,9,15,.3) 40%, rgba(10,9,15,.97) 100%);
}

.ct-exhibitions-card:hover .ct-exhibitions-card__content,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__content {
    transform:none;
}

.ct-exhibitions-card:hover .ct-exhibitions-card__content > p,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__content > p {
    max-height:110px;
    opacity:1;
}

.ct-exhibitions-card:hover .ct-exhibitions-card__meta,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__meta {
    max-height:70px;
    opacity:1;
}

.ct-exhibitions-card:hover .ct-exhibitions-card__arrow,
.ct-exhibitions-card:focus-within .ct-exhibitions-card__arrow {
    transform:rotate(45deg);
    background:var(--card-accent-2);
}

.ct-exhibitions-card[hidden] {
    display:none !important;
}

.ct-exhibitions-empty {
    padding:80px 25px;
    border:1px solid rgba(23,23,47,.12);
    border-radius:24px;
    color:var(--ctei-muted);
    text-align:center;
}

/* CTA */
.ct-exhibitions-cta {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:end;
    gap:70px;
    width:min(1440px, calc(100% - 72px));
    margin:0 auto 120px;
    padding:75px 80px;
    border-radius:32px;
    color:#fff;
    background:
        radial-gradient(circle at 10% 20%, color-mix(in srgb, var(--ctei-accent) 24%, transparent), transparent 25%),
        linear-gradient(135deg, #17172f, #30284a);
    box-shadow:0 35px 80px rgba(23,23,47,.14);
}

.ct-exhibitions-cta > div > span {
    display:block;
    margin-bottom:20px;
    color:var(--ctei-accent-2);
    font-size:9px;
    font-weight:900;
    letter-spacing:.17em;
}

.ct-exhibitions-cta h2 {
    max-width:890px;
    margin:0;
    font-family:var(--ctei-display);
    font-size:clamp(46px, 6vw, 92px);
    font-weight:700;
    line-height:.9;
    letter-spacing:-.06em;
}

.ct-exhibitions-cta p {
    max-width:670px;
    margin:28px 0 0;
    color:rgba(255,255,255,.66);
    font-size:16px;
    line-height:1.7;
}

.ct-exhibitions-cta > a {
    display:inline-flex;
    align-items:center;
    gap:25px;
    min-height:64px;
    padding:0 28px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#fff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    white-space:nowrap;
    transition:color .3s ease, background .3s ease, transform .3s ease;
}

.ct-exhibitions-cta > a:hover {
    color:var(--ctei-ink);
    background:var(--ctei-accent-2);
    transform:translateY(-3px);
}

.ct-exhibitions-pagination {
    margin-top:70px;
}

/* Reveal */
.ct-exhibitions-index-js [data-exhibitions-reveal] {
    opacity:0;
    transform:translateY(28px);
    transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1);
}

.ct-exhibitions-index-js [data-exhibitions-reveal].is-visible {
    opacity:1;
    transform:none;
}

/* Responsive */
@media (max-width:1250px) {
    .ct-exhibitions-index__hero {
        padding-inline:42px;
    }

    .ct-exhibitions-index__hero-inner {
        grid-template-columns:minmax(0, 1fr) minmax(360px, .75fr);
        gap:60px;
    }

    .ct-exhibitions-index__stats {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .ct-exhibitions-index__stats > div:nth-child(2) {
        border-right:0;
    }

    .ct-exhibitions-index__stats > div:nth-child(n+3) {
        border-top:1px solid rgba(255,255,255,.14);
    }

    .ct-exhibitions-card--standard,
    .ct-exhibitions-card--tall {
        grid-column:span 6;
    }

    .ct-exhibitions-card--wide,
    .ct-exhibitions-card--featured {
        grid-column:span 12;
    }
}

@media (max-width:900px) {
    .ct-exhibitions-index__hero {
        min-height:auto;
        padding:125px 28px 0;
    }

    .ct-exhibitions-index__hero-inner {
        grid-template-columns:1fr;
        min-height:auto;
    }

    .ct-exhibitions-index__hero h1 {
        font-size:clamp(68px, 16vw, 118px);
    }

    .ct-exhibitions-index__hero-art {
        min-height:520px;
    }

    .ct-exhibitions-index__stats {
        margin-top:65px;
    }

    .ct-exhibitions-filter {
        top:70px;
    }

    .ct-exhibitions-filter__inner {
        grid-template-columns:1fr;
        gap:0;
        width:calc(100% - 40px);
        padding:18px 0 8px;
    }

    .ct-exhibitions-catalogue {
        width:calc(100% - 40px);
        padding:90px 0 110px;
    }

    .ct-exhibitions-catalogue__header {
        grid-template-columns:1fr auto;
    }

    .ct-exhibitions-catalogue__header > span {
        grid-column:1 / -1;
    }

    .ct-exhibitions-grid {
        grid-auto-rows:auto;
    }

    .ct-exhibitions-card,
    .ct-exhibitions-card--standard,
    .ct-exhibitions-card--wide,
    .ct-exhibitions-card--tall,
    .ct-exhibitions-card--featured {
        grid-column:span 6;
        grid-row:auto;
        min-height:520px;
    }

    .ct-exhibitions-card__content {
        transform:none;
    }

    .ct-exhibitions-card__content > p,
    .ct-exhibitions-card__meta {
        max-height:120px;
        opacity:1;
    }

    .ct-exhibitions-cta {
        grid-template-columns:1fr;
        align-items:start;
        width:calc(100% - 40px);
        margin-bottom:80px;
        padding:55px 45px;
    }
}

@media (max-width:620px) {
    .ct-exhibitions-index__hero {
        padding-inline:20px;
    }

    .ct-exhibitions-index__hero-art {
        min-height:410px;
    }

    .ct-exhibitions-index__collage-item--2,
    .ct-exhibitions-index__collage-item--3 {
        display:none;
    }

    .ct-exhibitions-index__collage-item--1 {
        inset:0;
        transform:none;
    }

    .ct-exhibitions-index__stats {
        grid-template-columns:1fr;
    }

    .ct-exhibitions-index__stats > div,
    .ct-exhibitions-index__stats > div:first-child {
        min-height:auto;
        padding:23px 0;
        border-right:0;
        border-top:1px solid rgba(255,255,255,.14);
    }

    .ct-exhibitions-catalogue__header {
        grid-template-columns:1fr;
    }

    .ct-exhibitions-catalogue__header p {
        justify-self:start;
    }

    .ct-exhibitions-card,
    .ct-exhibitions-card--standard,
    .ct-exhibitions-card--wide,
    .ct-exhibitions-card--tall,
    .ct-exhibitions-card--featured {
        grid-column:1 / -1;
        min-height:500px;
    }

    .ct-exhibitions-card__content {
        left:23px;
        right:65px;
        bottom:24px;
    }

    .ct-exhibitions-card h3,
    .ct-exhibitions-card--standard h3,
    .ct-exhibitions-card--tall h3 {
        font-size:39px;
    }

    .ct-exhibitions-cta {
        padding:42px 26px;
        border-radius:24px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .ct-exhibitions-index *,
    .ct-exhibitions-index *::before,
    .ct-exhibitions-index *::after {
        scroll-behavior:auto !important;
        animation-duration:.01ms !important;
        transition-duration:.01ms !important;
    }

    .ct-exhibitions-index-js [data-exhibitions-reveal] {
        opacity:1;
        transform:none;
    }
}



/* =========================================================
   CHANIARTOON — EVENTS BOOKING EXHIBITIONS INDEX
   Equal-weight catalogue cards
   Append to: /templates/shaper_macro/css/custom.css
   ========================================================= */

.ct-exhibitions-index--equal-grid .ct-exhibitions-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-flow: row;
    grid-auto-rows: auto;
    align-items: stretch;
}

.ct-exhibitions-index--equal-grid .ct-exhibitions-card,
.ct-exhibitions-index--equal-grid .ct-exhibitions-card--standard,
.ct-exhibitions-index--equal-grid .ct-exhibitions-card--wide,
.ct-exhibitions-index--equal-grid .ct-exhibitions-card--tall,
.ct-exhibitions-index--equal-grid .ct-exhibitions-card--featured {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
    min-height: 520px;
    aspect-ratio: 4 / 5;
}

.ct-exhibitions-index--equal-grid .ct-exhibitions-card h3,
.ct-exhibitions-index--equal-grid .ct-exhibitions-card--standard h3,
.ct-exhibitions-index--equal-grid .ct-exhibitions-card--tall h3 {
    font-size: clamp(32px, 3vw, 48px);
}

@media (max-width: 1150px) {
    .ct-exhibitions-index--equal-grid .ct-exhibitions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .ct-exhibitions-index--equal-grid .ct-exhibitions-grid {
        grid-template-columns: 1fr;
    }

    .ct-exhibitions-index--equal-grid .ct-exhibitions-card,
    .ct-exhibitions-index--equal-grid .ct-exhibitions-card--standard,
    .ct-exhibitions-index--equal-grid .ct-exhibitions-card--wide,
    .ct-exhibitions-index--equal-grid .ct-exhibitions-card--tall,
    .ct-exhibitions-index--equal-grid .ct-exhibitions-card--featured {
        min-height: 500px;
        aspect-ratio: auto;
    }
}


/* ==========================================================
   CHANIARTOON 2026 — SCIENTIFIC CONFERENCE CONTENT UPDATE
   2026-08-01
   ========================================================== */

/* Ο επίσημος, μεγάλος τίτλος της Ημερίδας */
.ct-conference-hero__official-title {
    max-width: 980px !important;
    margin-bottom: 28px !important;
    font-size: clamp(46px, 5.35vw, 82px) !important;
    line-height: 0.94 !important;
    letter-spacing: -0.052em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.ct-conference-hero__official-title > span {
    display: block;
}

.ct-conference-hero__official-title > span + span {
    max-width: 920px;
    margin-top: 24px;
    font-size: 0.37em;
    font-weight: 850;
    line-height: 1.17;
    letter-spacing: 0.018em;
    text-transform: uppercase;
    color: #d6a2f2;
}

/* Μετά την αφαίρεση του «ΕΙΔΗ», το stat γεμίζει μόνο του τη σειρά. */
.ct-conference-hero__fact-stats--single {
    grid-template-columns: minmax(0, 1fr);
}

.ct-conference-hero__fact-stats--single > div {
    text-align: left;
}

.ct-conference-hero__fact-stats--single > div + div {
    border-left: 0;
}

/* Επίσημο εισαγωγικό κείμενο */
.ct-conference-intro--official {
    max-width: 1040px;
    margin-bottom: 54px;
    padding: clamp(28px, 3.2vw, 44px);
    border-color: rgba(91, 73, 126, 0.13);
    border-radius: 26px;
    background:
        radial-gradient(circle at 100% 0, rgba(178, 115, 224, 0.09), rgba(178, 115, 224, 0) 32%),
        rgba(255, 255, 255, 0.92);
    box-shadow:
        0 20px 54px rgba(40, 34, 46, 0.065),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.ct-conference-intro--official p {
    margin: 0;
    font-size: clamp(16px, 1.35vw, 18px);
    line-height: 1.84;
    color: #554d61;
}

/* Το πρόγραμμα πλέον χρειάζεται μόνο τον επίσημο τίτλο ημερομηνίας. */
.ct-conference-section-head--programme {
    max-width: none;
    margin-bottom: 25px;
    padding-bottom: 17px;
    border-bottom: 1px solid rgba(40, 34, 46, 0.12);
}

.ct-conference-section-head--programme > span {
    margin: 0;
    font-size: clamp(12px, 1.25vw, 15px);
    letter-spacing: 0.12em;
    color: #8f51bd;
}

/* Διάλειμμα / conference-only γραμμή */
.ct-conference-session--break {
    --session-colour: #8a63df;
    background:
        linear-gradient(105deg, rgba(138, 99, 223, 0.10), rgba(255, 255, 255, 0.94) 52%);
    border-style: dashed;
    border-color: rgba(138, 99, 223, 0.28);
    box-shadow: 0 9px 26px rgba(63, 46, 94, 0.055);
}

.ct-conference-session--break::before {
    background: linear-gradient(180deg, #8a63df, #c6a7f0);
}

.ct-conference-session__link--static {
    cursor: default;
    grid-template-columns: 106px minmax(0, 1fr) !important;
}

.ct-conference-session--break .ct-conference-session__time small {
    visibility: hidden;
}

.ct-conference-session--break .ct-conference-session__body h3 {
    margin-top: 0;
    color: #4e3e6f;
}

.ct-conference-session--break .ct-conference-session__body h3::before {
    content: "ΔΙΑΛΕΙΜΜΑ";
    display: block;
    margin-bottom: 8px;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.15em;
    color: #8a63df;
}

@media (hover: hover) {
    .ct-conference-session--break:hover {
        transform: none;
        border-color: rgba(138, 99, 223, 0.34);
        box-shadow: 0 9px 26px rgba(63, 46, 94, 0.055);
    }
}

/* Επιτροπές στο τέλος του προγράμματος */
.ct-conference-committees {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 24px;
    margin-top: clamp(70px, 8vw, 118px);
    padding-top: clamp(42px, 5vw, 70px);
    border-top: 1px solid rgba(40, 34, 46, 0.12);
}

.ct-conference-committee {
    position: relative;
    overflow: hidden;
    padding: clamp(30px, 3.5vw, 45px);
    border: 1px solid rgba(40, 34, 46, 0.10);
    border-radius: 26px;
    background:
        radial-gradient(circle at 100% 0, rgba(178, 115, 224, 0.09), rgba(178, 115, 224, 0) 36%),
        rgba(255, 255, 255, 0.88);
    box-shadow: 0 18px 48px rgba(40, 34, 46, 0.06);
}

.ct-conference-committee__eyebrow {
    display: block;
    margin-bottom: 12px;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.17em;
    text-transform: uppercase;
    color: #a45ed5;
}

.ct-conference-committee h2 {
    margin: 0 0 26px;
    font-family: "Manrope", sans-serif;
    font-size: clamp(30px, 3.1vw, 45px);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -0.045em;
    color: #241f36;
}

.ct-conference-committee ul {
    display: grid;
    gap: 15px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ct-conference-committee li {
    position: relative;
    padding-left: 20px;
    font-size: 15px;
    font-weight: 550;
    line-height: 1.63;
    color: #5f5768;
}

.ct-conference-committee li::before {
    content: "";
    position: absolute;
    top: 0.72em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: linear-gradient(135deg, #b273e0, #ffbf82);
    transform: translateY(-50%);
}

@media (max-width: 991px) {
    .ct-conference-hero__official-title {
        max-width: 930px !important;
    }

    .ct-conference-committees {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    .ct-conference-hero__official-title {
        font-size: clamp(39px, 11.5vw, 58px) !important;
        line-height: 0.98 !important;
    }

    .ct-conference-hero__official-title > span + span {
        margin-top: 18px;
        font-size: 0.42em;
        line-height: 1.25;
    }

    .ct-conference-intro--official {
        padding: 26px 23px;
        border-radius: 21px;
    }

    .ct-conference-section-head--programme > span {
        line-height: 1.55;
    }

    .ct-conference-session__link--static {
        grid-template-columns: 74px minmax(0, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .ct-conference-session__link--static {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .ct-conference-session--break .ct-conference-session__time {
        grid-column: 1;
    }

    .ct-conference-session--break .ct-conference-session__body {
        grid-column: 1;
    }

    .ct-conference-committee {
        padding: 27px 22px;
        border-radius: 21px;
    }
}


/* ==========================================================
   CHANIARTOON — CONFERENCE PROGRAMME CARD BREATHING HOTFIX
   Long titles must never be clipped.
   ========================================================== */

.ct-conference-page .ct-conference-session {
    height: auto !important;
    min-height: 0 !important;
}

.ct-conference-page .ct-conference-session__link,
.ct-conference-page .ct-conference-session__link.ct-conference-session__trigger {
    height: auto !important;
    min-height: 190px !important;
    overflow: visible !important;
    align-items: stretch !important;
    padding-top: 28px !important;
    padding-bottom: 30px !important;
}

/* No empty image column when an action has no image. */
.ct-conference-page
.ct-conference-session__link:not(:has(.ct-conference-session__visual)) {
    grid-template-columns: 104px minmax(0, 1fr) 35px !important;
}

.ct-conference-page .ct-conference-session__time {
    justify-content: space-between;
    padding-top: 7px !important;
    padding-bottom: 9px !important;
}

.ct-conference-page .ct-conference-session__body {
    align-self: center;
    padding-top: 5px;
    padding-bottom: 8px;
    overflow: visible !important;
}

.ct-conference-page .ct-conference-session h3 {
    margin-bottom: 0;
    line-height: 1.12 !important;
    overflow: visible !important;
    text-wrap: pretty;
}

.ct-conference-page .ct-conference-session__body p,
.ct-conference-page .ct-conference-session__location {
    margin-top: 14px;
}

.ct-conference-page .ct-conference-session__arrow {
    align-self: center;
}

@media (max-width: 1199px) and (min-width: 768px) {
    .ct-conference-page
    .ct-conference-session__link:not(:has(.ct-conference-session__visual)) {
        grid-template-columns: 90px minmax(0, 1fr) 34px !important;
    }

    .ct-conference-page .ct-conference-session__link,
    .ct-conference-page .ct-conference-session__link.ct-conference-session__trigger {
        min-height: 184px !important;
        padding-top: 26px !important;
        padding-bottom: 28px !important;
    }

    .ct-conference-page .ct-conference-session h3 {
        font-size: clamp(25px, 2.55vw, 34px);
    }
}

@media (max-width: 767px) {
    .ct-conference-page .ct-conference-session__link,
    .ct-conference-page .ct-conference-session__link.ct-conference-session__trigger {
        min-height: 0 !important;
        padding-top: 24px !important;
        padding-bottom: 26px !important;
    }

    .ct-conference-page
    .ct-conference-session__link:not(:has(.ct-conference-session__visual)) {
        grid-template-columns: 74px minmax(0, 1fr) 31px !important;
    }
}

@media (max-width: 480px) {
    .ct-conference-page
    .ct-conference-session__link:not(:has(.ct-conference-session__visual)) {
        grid-template-columns: minmax(0, 1fr) 31px !important;
    }

    .ct-conference-page .ct-conference-session__body {
        padding-top: 2px;
        padding-bottom: 5px;
    }
}


/* ==========================================================
   CHANIARTOON — DYNAMIC MEGA MENU VISUALS V6
   IFRAME / RENDERED-DOM VERSION
   ========================================================== */

/*
 * V6 does NOT parse fetched HTML for images.
 * It loads the requested Chaniartoon page invisibly as a normal same-origin
 * page, lets Joomla/SP Page Builder/Events Booking render it normally, and
 * then reads the image URL from the rendered DOM.
 *
 * The original menu preview image always remains underneath as fallback.
 */

.ct-mega-visual {
    isolation: isolate;
}

.ct-mega-visual > img {
    z-index: 0;
}

.ct-mega-visual::after {
    z-index: 2 !important;
    pointer-events: none;
}

.ct-mega-visual.has-ct-rendered-visual
> .ct-mega-visual-overlay:not(.ct-rendered-menu-caption) {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* ---------- rendered layer ---------- */

.ct-rendered-menu-visual {
    position: absolute;
    z-index: 3;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    background: #211d28;
    opacity: 0;
    transform: scale(.992);
    transition:
        opacity .22s ease,
        transform .38s cubic-bezier(.22, 1, .36, 1);
    pointer-events: none;
}

.ct-rendered-menu-visual.is-visible {
    opacity: 1;
    transform: scale(1);
}

.ct-rendered-menu-visual::after {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 0;
    background:
        linear-gradient(
            180deg,
            rgba(10,8,13,0) 0%,
            rgba(10,8,13,.03) 43%,
            rgba(10,8,13,.80) 100%
        );
}

/* ---------- single image ---------- */

.ct-rendered-menu-single {
    position: absolute;
    z-index: 1;
    inset: 0;
}

.ct-rendered-menu-single img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: scale(1.012) !important;
    filter: none !important;
    animation: none !important;
}

/* ---------- free collage ---------- */

.ct-rendered-menu-collage {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 16% 14%, rgba(178,115,224,.30), transparent 31%),
        radial-gradient(circle at 88% 88%, rgba(255,191,130,.19), transparent 35%),
        #17141d;
}

.ct-rendered-menu-collage__word {
    position: absolute;
    z-index: 0;
    top: 44%;
    left: -9%;
    color: rgba(255,255,255,.055);
    font-size: clamp(58px, 6.2vw, 104px);
    font-weight: 950;
    line-height: .76;
    letter-spacing: -.075em;
    white-space: nowrap;
    transform: rotate(-9deg);
}

.ct-rendered-menu-piece {
    position: absolute;
    z-index: 1;
    margin: 0;
    overflow: hidden;
    background: #302936;
    box-shadow: 0 24px 58px rgba(0,0,0,.34);
}

.ct-rendered-menu-piece img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

.ct-rendered-menu-piece--1 {
    top: 4%;
    left: 3%;
    width: 49%;
    height: 55%;
    clip-path: polygon(4% 7%,94% 0,100% 87%,10% 100%,0 52%);
    transform: rotate(-4deg);
}

.ct-rendered-menu-piece--2 {
    top: 7%;
    right: 2%;
    width: 43%;
    height: 43%;
    clip-path: polygon(9% 0,100% 11%,91% 100%,0 86%);
    transform: rotate(5deg);
}

.ct-rendered-menu-piece--3 {
    left: 10%;
    bottom: 2%;
    width: 40%;
    height: 40%;
    clip-path: polygon(0 13%,89% 0,100% 94%,8% 100%);
    transform: rotate(6deg);
}

.ct-rendered-menu-piece--4 {
    right: 3%;
    bottom: 3%;
    width: 49%;
    height: 49%;
    clip-path: polygon(6% 0,100% 7%,92% 100%,0 87%);
    transform: rotate(-5deg);
}

.ct-rendered-menu-collage[data-count="1"] .ct-rendered-menu-piece--1 {
    inset: 3%;
    width: auto;
    height: auto;
    transform: rotate(-1.5deg);
}

.ct-rendered-menu-collage[data-count="2"] .ct-rendered-menu-piece--1 {
    width: 62%;
    height: 68%;
}

.ct-rendered-menu-collage[data-count="2"] .ct-rendered-menu-piece--2 {
    top: auto;
    right: 3%;
    bottom: 3%;
    width: 56%;
    height: 58%;
}

/* ---------- typography ---------- */

.ct-rendered-menu-caption {
    position: absolute !important;
    z-index: 5 !important;
    right: 28px !important;
    bottom: 27px !important;
    left: 28px !important;
    display: flex !important;
    flex-direction: column !important;
}

.ct-rendered-menu-caption span {
    display: block !important;
    margin: 0 0 8px !important;
    color: var(--ct-accent,#d6ef76) !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .19em !important;
    text-transform: uppercase !important;
}

.ct-rendered-menu-caption strong {
    max-width: 92% !important;
    color: #fff !important;
    font-size: clamp(24px,2.25vw,36px) !important;
    font-weight: 900 !important;
    line-height: .96 !important;
    letter-spacing: -.045em !important;
}

/* ---------- Artist Alley map ---------- */

.ct-rendered-menu-map {
    position: absolute;
    z-index: 1;
    inset: 0;
    padding: 18px;
    overflow: hidden;
    background: linear-gradient(135deg,#efe9f4,#ddd2e7);
}

.ct-rendered-menu-map svg {
    display: block;
    width: 100%;
    height: 100%;
    background: #f1edf5;
    transform: rotate(-1deg) scale(1.04);
    transform-origin: center;
    box-shadow: 0 24px 70px rgba(36,24,59,.20);
}

.ct-rendered-menu-map__stamp {
    position: absolute;
    z-index: 4;
    top: 24px;
    left: 25px;
    padding: 8px 10px;
    border: 1px solid rgba(36,24,59,.18);
    background: rgba(255,255,255,.86);
    color: #372b4e;
    font-size: 8px;
    font-weight: 950;
    letter-spacing: .15em;
    text-transform: uppercase;
}

/* ---------- invisible same-origin reader frames ---------- */

.ct-menu-reader-frame {
    position: fixed !important;
    z-index: -2147483000 !important;
    top: 0 !important;
    left: -20000px !important;
    display: block !important;
    width: 1440px !important;
    height: 1100px !important;
    border: 0 !important;
    opacity: .001 !important;
    visibility: visible !important;
    pointer-events: none !important;
}

/* Loader appears over the ORIGINAL fallback visual. */
.ct-mega-visual.is-ct-rendered-loading::before {
    content: "LOADING VISUAL";
    position: absolute;
    z-index: 20;
    top: 18px;
    right: 20px;
    padding: 7px 9px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(20,16,27,.44);
    color: rgba(255,255,255,.72);
    backdrop-filter: blur(8px);
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .15em;
    text-transform: uppercase;
    pointer-events: none;
}

/* Old hover transitions may never fade the V6 image. */
.ct-mega-visual.is-changing .ct-rendered-menu-visual img,
.ct-mega-visual:hover .ct-rendered-menu-visual img {
    opacity: 1 !important;
    visibility: visible !important;
}

@media (max-width:1100px) {
    .ct-rendered-menu-visual,
    .ct-menu-reader-frame {
        display: none !important;
    }
}

@media (prefers-reduced-motion:reduce) {
    .ct-rendered-menu-visual {
        transition: none !important;
    }
}

/* =========================================================
   HISTORY 2026 — FINAL DESKTOP SPACING FIX
   Ο τίτλος κρατά ΑΚΡΙΒΩΣ την υπάρχουσα τυπογραφία.
   Αλλάζει μόνο η κατανομή χώρου ανάμεσα σε copy και poster.
========================================================= */

@media (min-width: 1201px) {

    .ct-history-closing-grid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(300px, 360px);
        column-gap: clamp(110px, 8vw, 160px);
    }

    .ct-history-closing-copy {
        min-width: 0;
    }

    .ct-history-closing-copy h3 {
        max-width: none;
    }

    .ct-history-closing-poster {
        width: 100%;
        max-width: 360px;
        margin: 0;
        justify-self: end;
    }
}

/*
 * Σε μικρό desktop / μεγάλο tablet κρατάμε επίσης σαφή
 * διαχωρισμό, αλλά αφήνουμε περισσότερο χώρο διαθέσιμο
 * στο poster πριν το layout γίνει μονόστηλο στα 900px.
 */
@media (min-width: 901px) and (max-width: 1200px) {

    .ct-history-closing-grid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(250px, 300px);
        column-gap: clamp(70px, 7vw, 95px);
    }

    .ct-history-closing-copy {
        min-width: 0;
    }

    .ct-history-closing-poster {
        width: 100%;
        max-width: 300px;
        margin: 0;
        justify-self: end;
    }
}

/* =========================================================
   ORGANIZATION — TEAM
   9 ΦΩΤΟΓΡΑΦΙΕΣ / PHOTO GRID
========================================================= */

.ct-org-team {
    position: relative;
}

.ct-org-team .ct-org-container {
    position: relative;
}


/* =========================================================
   HEADING
========================================================= */

.ct-org-team .ct-org-heading {
    max-width: 820px;
    margin-bottom: clamp(42px, 5vw, 72px);
}

.ct-org-team .ct-org-section-number {
    display: block;

    margin-bottom: 14px;

    font-size: 11px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ct-org-team .ct-org-heading h2 {
    margin: 0 0 18px;

    font-size: clamp(44px, 5.5vw, 78px);
    font-weight: 800;
    line-height: 0.98;

    letter-spacing: -0.05em;
}

.ct-org-team .ct-org-heading p {
    max-width: 700px;

    margin: 0;

    font-size: 18px;
    font-weight: 500;
    line-height: 1.7;
}


/* =========================================================
   GRID — 3 × 3
========================================================= */

.ct-org-team-grid--photos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: clamp(18px, 2vw, 28px);

    width: 100%;
}


/* =========================================================
   PHOTO
========================================================= */

.ct-org-team-photo-only {
    position: relative;

    width: 100%;

    aspect-ratio: 4 / 5;

    overflow: hidden;

    background: #e9e6eb;

    border-radius: 0;

    isolation: isolate;
}

.ct-org-team-photo-only img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    transform: scale(1);

    transition:
        transform 0.5s ease,
        filter 0.5s ease;
}


/* πολύ διακριτικό overlay */

.ct-org-team-photo-only::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(20, 17, 24, 0) 65%,
            rgba(20, 17, 24, 0.08) 100%
        );

    pointer-events: none;
}


/* =========================================================
   HOVER
========================================================= */

@media (hover: hover) {

    .ct-org-team-photo-only:hover img {
        transform: scale(1.035);
        filter: saturate(1.04);
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .ct-org-team .ct-org-heading {
        margin-bottom: 42px;
    }

    .ct-org-team-grid--photos {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 18px;
    }

    .ct-org-team-photo-only {
        aspect-ratio: 4 / 5;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .ct-org-team .ct-org-heading {
        margin-bottom: 34px;
    }

    .ct-org-team .ct-org-heading h2 {
        font-size: clamp(40px, 12vw, 54px);
    }

    .ct-org-team .ct-org-heading p {
        font-size: 16px;
        line-height: 1.65;
    }

    .ct-org-team-grid--photos {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 10px;
    }

    .ct-org-team-photo-only {
        aspect-ratio: 4 / 5;
    }
}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 380px) {

    .ct-org-team-grid--photos {
        grid-template-columns: 1fr;

        gap: 14px;
    }

    .ct-org-team-photo-only {
        aspect-ratio: 4 / 5;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .ct-org-team-photo-only img {
        transition: none !important;
    }

    .ct-org-team-photo-only:hover img {
        transform: none;
    }
}

/* =========================================================
   CHANIARTOON SPONSORS — LOGOS 1000 × 350
   FINAL UNIFIED RATIO
   Όλα τα sponsor images εμφανίζονται στην ίδια αναλογία 20:7.
========================================================= */

.ct-sponsors-page .ct-sponsor-logo,
.ct-sponsors-page .ct-sponsor-logo--large,
.ct-sponsors-page .ct-sponsor-logo--hero,
.ct-sponsors-page .ct-sponsor-logo--compact,
.ct-sponsors-page .ct-sponsor-logo--media,
.ct-sponsors-page .ct-sponsor-logo--ferry {
    width: 100%;
    min-height: 0;
    aspect-ratio: 20 / 7;
    padding: 6px;
    overflow: hidden;
}

/*
 * Τα αρχεία είναι 1000×350, επομένως γεμίζουν το διαθέσιμο
 * πλαίσιο χωρίς παραμόρφωση και χωρίς τεχνητό περιορισμό ύψους.
 */
.ct-sponsors-page .ct-sponsor-logo img,
.ct-sponsors-page .ct-sponsor-logo--large img,
.ct-sponsors-page .ct-sponsor-logo--hero img,
.ct-sponsors-page .ct-sponsor-logo--compact img,
.ct-sponsors-page .ct-sponsor-logo--media img,
.ct-sponsors-page .ct-sponsor-logo--ferry img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    aspect-ratio: 20 / 7;
    object-fit: contain;
    object-position: center;
}

/*
 * Λίγο πιο γεμάτη παρουσία στα μεγάλα λογότυπα,
 * χωρίς να αλλάζει η αναλογία.
 */
.ct-sponsors-page .ct-sponsor-logo--large,
.ct-sponsors-page .ct-sponsor-logo--hero,
.ct-sponsors-page .ct-sponsor-logo--ferry {
    padding: 4px;
}

/*
 * Media logos: κρατούν ακριβώς την ίδια 1000×350 αναλογία.
 * Επειδή είναι περισσότερα ανά σειρά, αφήνουμε ελάχιστο εσωτερικό κενό.
 */
.ct-sponsors-page .ct-sponsor-logo--media {
    padding: 4px;
}

/* Mobile — ίδια αναλογία, καμία αλλαγή σε ύψος */
@media (max-width: 560px) {
    .ct-sponsors-page .ct-sponsor-logo,
    .ct-sponsors-page .ct-sponsor-logo--large,
    .ct-sponsors-page .ct-sponsor-logo--hero,
    .ct-sponsors-page .ct-sponsor-logo--compact,
    .ct-sponsors-page .ct-sponsor-logo--media,
    .ct-sponsors-page .ct-sponsor-logo--ferry {
        min-height: 0;
        aspect-ratio: 20 / 7;
        padding: 5px;
    }

    .ct-sponsors-page .ct-sponsor-logo img,
    .ct-sponsors-page .ct-sponsor-logo--large img,
    .ct-sponsors-page .ct-sponsor-logo--hero img,
    .ct-sponsors-page .ct-sponsor-logo--compact img,
    .ct-sponsors-page .ct-sponsor-logo--media img,
    .ct-sponsors-page .ct-sponsor-logo--ferry img {
        width: 100%;
        height: 100%;
        aspect-ratio: 20 / 7;
        object-fit: contain;
    }
}

/* =========================================================
   CHANIARTOON PARTNERS — LOGOS 1000 × 350
   FINAL UNIFIED RATIO 20:7
========================================================= */

/* FEATURED PARTNERS — μεγαλύτερο logo */
.ct-partners-page .ct-partners-feature-card__logo {
    width: min(100%, 360px);
    min-height: 0;
    aspect-ratio: 20 / 7;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 28px 0 25px;
    padding: 5px;
    overflow: hidden;
    border: 1px solid var(--ct-partners-line);
    background: #fff;
}

.ct-partners-page .ct-partners-feature-card__logo img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: contain;
    object-position: center;
}


/* DIRECTORY CARDS — όλα τα logos στην ίδια αναλογία 1000×350 */
.ct-partners-page .ct-partner-card__logo {
    width: 100%;
    min-height: 0;
    aspect-ratio: 20 / 7;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
    overflow: hidden;
    background:
        linear-gradient(145deg, #fff, #f6f2f9);
    border-bottom: 1px solid var(--ct-partners-line);
}

.ct-partners-page .ct-partner-card__logo img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: contain;
    object-position: center;
}


/* Λίγο περισσότερο πραγματικό πλάτος για το περιεχόμενο των featured logos */
.ct-partners-page .ct-partners-feature-card__content {
    min-width: 0;
}


/* Mobile — κρατάμε ακριβώς την ίδια αναλογία */
@media (max-width: 767px) {
    .ct-partners-page .ct-partners-feature-card__logo {
        width: min(100%, 330px);
        aspect-ratio: 20 / 7;
        padding: 4px;
    }

    .ct-partners-page .ct-partner-card__logo {
        aspect-ratio: 20 / 7;
        padding: 4px;
    }
}

/* =========================================================
   PARTNERS FEATURED — LOGOS INSIDE PURPLE PANEL
   1000 × 350 / RATIO 20:7
========================================================= */

/*
 * Και στα 3 featured cards το αριστερό μωβ panel
 * φιλοξενεί πλέον το μεγάλο λογότυπο.
 */
.ct-partners-page .ct-partners-feature-card__image--logo {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 470px;
    padding: clamp(38px, 4.5vw, 72px);

    background:
        linear-gradient(
            145deg,
            #91899a 0%,
            #696273 48%,
            #3f394c 100%
        ) !important;

    background-image: none !important;
}


/*
 * Τα αρχεία είναι 1000×350, άρα κρατάμε ακριβώς 20:7.
 * Το logo είναι πολύ μεγαλύτερο από πριν και παραμένει
 * οριζόντιο χωρίς καμία παραμόρφωση.
 */
.ct-partners-page .ct-partners-feature-card__main-logo {
    position: relative;
    z-index: 2;

    display: block;

    width: min(82%, 560px);
    height: auto;
    aspect-ratio: 20 / 7;

    max-width: none;
    max-height: none;

    object-fit: contain;
    object-position: center;

    box-shadow:
        0 16px 40px rgba(18, 15, 25, 0.18);
}


/* Ο αριθμός 01 / 02 / 03 παραμένει κάτω αριστερά. */
.ct-partners-page .ct-partners-feature-card__image--logo > span {
    z-index: 3;
}


/* Ασφάλεια: το παλιό μικρό logo πάνω από τον τίτλο δεν εμφανίζεται. */
.ct-partners-page
.ct-partners-feature-card__content
.ct-partners-feature-card__logo {
    display: none !important;
}


/* TABLET */
@media (max-width: 820px) {

    .ct-partners-page .ct-partners-feature-card__image--logo {
        min-height: 360px;
        padding: 36px;
    }

    .ct-partners-page .ct-partners-feature-card__main-logo {
        width: min(84%, 540px);
    }
}


/* MOBILE */
@media (max-width: 560px) {

    .ct-partners-page .ct-partners-feature-card__image--logo {
        min-height: 290px;
        padding: 28px 24px 70px;
    }

    .ct-partners-page .ct-partners-feature-card__main-logo {
        width: 92%;
        max-width: 440px;
        aspect-ratio: 20 / 7;
    }
}

/* =========================================================
   PARTNERS — PREMIUM EDITORIAL TYPOGRAPHY
   Refined hierarchy for featured + directory
========================================================= */

/* ---------------------------------------------------------
   SECTION HEADINGS
--------------------------------------------------------- */

.ct-partners-page .ct-partners-section-head h2,
.ct-partners-page .ct-partners-directory__head h2,
.ct-partners-page .ct-partners-create h2,
.ct-partners-page .ct-partners-network h2,
.ct-partners-page .ct-partners-cta h2 {
    font-family: var(--ct-partners-display);
    font-size: clamp(52px, 5.8vw, 88px);
    font-weight: 680;
    line-height: 0.94;
    letter-spacing: -0.048em;
    text-wrap: balance;
}


/* ---------------------------------------------------------
   FEATURED — LABEL
--------------------------------------------------------- */

.ct-partners-page .ct-partners-feature-card__type {
    display: flex;
    align-items: center;
    gap: 12px;

    margin: 0 0 27px;

    color: var(--ct-partners-violet);

    font-family: var(--ct-partners-sans);
    font-size: 9px;
    font-weight: 800;
    line-height: 1.45;

    letter-spacing: 0.19em;
    text-transform: uppercase;
}

.ct-partners-page .ct-partners-feature-card__type::before {
    content: "";

    flex: 0 0 auto;

    width: 30px;
    height: 1px;

    background: currentColor;
    opacity: 0.72;
}


/* ---------------------------------------------------------
   FEATURED — CONTENT / TITLE
--------------------------------------------------------- */

.ct-partners-page .ct-partners-feature-card__content {
    justify-content: center;

    padding:
        clamp(48px, 5vw, 74px)
        clamp(42px, 5vw, 72px);

    min-width: 0;
}

.ct-partners-page .ct-partners-feature-card h3 {
    max-width: 11.5ch;

    margin: 0 0 22px;

    color: var(--ct-partners-purple-dark);

    font-family: var(--ct-partners-sans);
    font-size: clamp(36px, 3.4vw, 52px);
    font-weight: 720;
    line-height: 1.01;

    letter-spacing: -0.047em;

    text-wrap: balance;
}

.ct-partners-page .ct-partners-feature-card p {
    max-width: 48ch;

    margin: 0;

    color: #726d78;

    font-family: var(--ct-partners-sans);
    font-size: 16px;
    font-weight: 480;
    line-height: 1.72;

    letter-spacing: -0.008em;
}

.ct-partners-page .ct-partners-feature-card__full-name {
    max-width: 46ch !important;

    margin: -6px 0 18px !important;

    color: var(--ct-partners-purple) !important;

    font-size: 12px !important;
    font-weight: 720 !important;
    line-height: 1.45 !important;

    letter-spacing: 0.015em !important;
}


/* ---------------------------------------------------------
   FEATURED — NUMBER
--------------------------------------------------------- */

.ct-partners-page .ct-partners-feature-card__image > span {
    bottom: 27px;
    left: 30px;

    font-family: var(--ct-partners-sans);
    font-size: clamp(56px, 5vw, 72px);
    font-weight: 700;
    line-height: 0.9;

    letter-spacing: -0.06em;
}


/* ---------------------------------------------------------
   FEATURED — LOGOS 1000×350
--------------------------------------------------------- */

.ct-partners-page .ct-partners-feature-card__main-logo {
    width: min(86%, 590px);

    box-shadow: none;

    filter:
        drop-shadow(0 15px 25px rgba(20, 16, 29, 0.12));
}


/* ---------------------------------------------------------
   DIRECTORY — TYPE LABELS
--------------------------------------------------------- */

.ct-partners-page .ct-partner-card__type {
    display: flex;
    align-items: center;
    gap: 9px;

    color: var(--ct-partners-violet);

    font-family: var(--ct-partners-sans);
    font-size: 8.5px;
    font-weight: 800;
    line-height: 1.45;

    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ct-partners-page .ct-partner-card__type::before {
    content: "";

    width: 18px;
    height: 1px;

    flex: 0 0 auto;

    background: currentColor;
    opacity: 0.65;
}


/* ---------------------------------------------------------
   DIRECTORY — CARD TYPOGRAPHY
--------------------------------------------------------- */

.ct-partners-page .ct-partner-card__body {
    padding: 30px 28px 31px;
}

.ct-partners-page .ct-partner-card h3 {
    margin: 18px 0 14px;

    color: var(--ct-partners-purple-dark);

    font-family: var(--ct-partners-sans);
    font-size: clamp(24px, 2vw, 29px);
    font-weight: 710;
    line-height: 1.07;

    letter-spacing: -0.035em;

    text-wrap: balance;
}

.ct-partners-page .ct-partner-card p {
    margin: 0;

    color: #76717c;

    font-family: var(--ct-partners-sans);
    font-size: 14px;
    font-weight: 480;
    line-height: 1.68;

    letter-spacing: -0.005em;
}

.ct-partners-page .ct-partner-card__full-name {
    margin: -4px 0 13px !important;

    color: var(--ct-partners-purple) !important;

    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.48 !important;

    letter-spacing: 0.01em !important;
}


/* ---------------------------------------------------------
   FILTERS — cleaner / more premium
--------------------------------------------------------- */

.ct-partners-page .ct-partners-filter {
    min-height: 46px;
    height: auto;

    padding: 13px 19px;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 0.11em;
}


/* ---------------------------------------------------------
   TABLET
--------------------------------------------------------- */

@media (max-width: 900px) {

    .ct-partners-page .ct-partners-feature-card h3 {
        max-width: 15ch;

        font-size: clamp(34px, 6vw, 48px);
    }

    .ct-partners-page .ct-partners-feature-card p {
        font-size: 15.5px;
    }
}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 560px) {

    .ct-partners-page .ct-partners-feature-card__content {
        padding: 36px 26px 42px;
    }

    .ct-partners-page .ct-partners-feature-card__type {
        margin-bottom: 21px;

        font-size: 8px;
        letter-spacing: 0.16em;
    }

    .ct-partners-page .ct-partners-feature-card h3 {
        max-width: none;

        margin-bottom: 18px;

        font-size: clamp(32px, 10vw, 43px);
        line-height: 1.02;
    }

    .ct-partners-page .ct-partners-feature-card p {
        font-size: 15px;
        line-height: 1.67;
    }

    .ct-partners-page .ct-partner-card h3 {
        font-size: 25px;
    }
}

/* =========================================================
   PARTNERS FEATURED — NO LOGO SHADOW
========================================================= */

.ct-partners-page .ct-partners-feature-card__main-logo {
    box-shadow: none !important;
    filter: none !important;
}

/* ========================================================================
   CHANIARTOON — HOMEPAGE LATEST NEWS FIX 2026-08-12
   - stronger editorial 01 / 02 / 03
   - scoped only to .chaniartoon-latest-news
   ======================================================================== */

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item::before {
    color: rgba(33, 27, 38, 0.035) !important;
    -webkit-text-stroke: 1.25px rgba(33, 27, 38, 0.36) !important;
    text-stroke: 1.25px rgba(33, 27, 38, 0.36) !important;
    opacity: 1 !important;
}

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item[data-ct-news-clickable="1"] {
    cursor: pointer !important;
}

.chaniartoon-latest-news
.sppb-dynamic-content-collection__item[data-ct-news-clickable="1"]:focus-visible {
    outline: 3px solid var(--news-purple, #7339a3) !important;
    outline-offset: 8px !important;
}

