/* Small CMS-driven additions. The original public design remains in style.css. */

.event-theme {
    --event-primary: #26225d;
    --event-secondary: #ee336d;
}

.event-theme .banner-section:before {
    background-color: rgba(19, 17, 68, .85);
    background-color: color-mix(in srgb, var(--event-primary) 85%, transparent);
}

.event-theme.event-theme-gradient .banner-section:before {
    background-image: linear-gradient(120deg, color-mix(in srgb, var(--event-primary) 88%, transparent), color-mix(in srgb, var(--event-secondary) 36%, var(--event-primary) 52%, transparent));
}

.event-theme .btn-style-one,
.event-theme .main-header .header-upper .outer-box .btn-box .theme-btn {
    border-color: var(--event-secondary);
    background-color: var(--event-secondary);
}

.event-theme .btn-style-one:hover {
    color: var(--event-secondary);
    background: transparent;
}

.event-theme .program-compact-time,
.event-theme .text-action,
.event-theme .text-action:hover,
.event-theme .text-action:focus {
    color: var(--event-secondary);
}

.banner-section .content-column .inner-column h1 {
    position: relative;
    display: block;
    margin: 0;
    color: #fff;
    font-size: 66px;
    font-weight: 700;
    line-height: 1.1em;
}

.header-action-list {
    display: flex;
    align-items: center;
    gap: 10px;
}

.main-header .header-upper .outer-box .header-action-list .btn-box {
    margin-left: 0;
}

.header-upper .main-menu .mobile-archive-link {
    display: none;
}

.nav-outer button.mobile-nav-toggler {
    border: 0;
    background: transparent;
    appearance: none;
}

.sticky-header .mobile-archive-link,
.mobile-menu .mobile-archive-link {
    display: block;
}

.archive-context {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.archive-context .fa {
    font-size: 13px;
}

.description-content {
    margin: 0 auto;
    max-width: 1040px;
}

.description-content p:last-child,
.secondary-content p:last-child {
    margin-bottom: 0;
}

.secondary-content {
    margin-top: 28px;
}

.description-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 30px;
}

.description-actions .theme-btn {
    margin: 0;
}

.registration-action { margin-top: 14px !important; }

.registration-availability {
    display: inline-block;
    margin-top: 22px;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 4px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
}

.program-compact {
    position: relative;
    z-index: 1;
    max-width: 960px;
    margin: 58px auto 0;
}

.program-compact .sec-title {
    margin-bottom: 28px;
}

.event-page-title {
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.program-compact-card {
    overflow: hidden;
    border: 1px solid rgba(38, 34, 93, 0.1);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(23, 20, 67, 0.08);
    text-align: left;
}

.program-notice {
    margin: 0;
    padding: 28px 30px;
    color: #2d2a55;
    font-size: 19px;
    line-height: 1.6;
    text-align: center;
}

.program-compact-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.program-compact-item {
    padding: 24px 30px;
    border-top: 1px solid #ecebf3;
}

.program-compact-item:first-child {
    border-top: 0;
}

.program-compact-time {
    color: #ee336d;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.program-compact-line {
    margin: 0;
    line-height: 1.55;
}

.program-compact-title {
    color: #24204f;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.45;
}

.program-compact-speaker {
    color: #6a6782;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

.program-compact-details {
    margin-top: 9px;
    color: #77748c;
    line-height: 1.65;
}

.full-program-section .event-block .image-column .image img {
    display: block;
}

.gallery-section {
    padding: 105px 0 92px;
    background: #f7f7fa;
}

.event-gallery-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.event-gallery-item {
    overflow: hidden;
    margin: 0;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(23, 20, 67, .12);
}

.event-gallery-image,
.event-gallery-image img,
.event-gallery-video,
.event-gallery-video iframe {
    display: block;
    width: 100%;
}

.event-gallery-image img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform 220ms ease; }
.event-gallery-image:hover img { transform: scale(1.035); }
.event-gallery-video { aspect-ratio: 16 / 9; background: #111; }
.event-gallery-video iframe { height: 100%; border: 0; }
.event-gallery-item figcaption { padding: 12px 15px; color: #575369; font-size: 15px; line-height: 1.45; }

.full-program-section .event-block .image-column .inner-column.no-program-image {
    padding-left: 0;
}

.btn-style-outline {
    border: 2px solid #fff;
    color: #fff;
    background: transparent;
}

.btn-style-outline:hover {
    border-color: #ee336d;
    color: #fff;
    background: #ee336d;
}

.text-action {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    color: #ee336d;
    font-weight: 700;
}

.text-action:hover,
.text-action:focus {
    color: #9d2ac4;
    text-decoration: underline;
}

.public-alert {
    margin: 24px auto;
    max-width: 960px;
    padding: 14px 18px;
    border-radius: 4px;
    background: #fff5f8;
    color: #7a2442;
    text-align: center;
}

@media only screen and (max-width: 1023px) {
    .banner-section .content-column .inner-column h1 {
        font-size: 58px;
    }
}

@media only screen and (max-width: 767px) {
    .banner-section .content-column .inner-column h1 {
        font-size: 48px;
    }

    .program-compact {
        margin-top: 42px;
    }

    .program-compact-item { padding: 20px; }

    .program-notice {
        padding: 24px 20px;
    }

    .gallery-section { padding: 70px 0 62px; }
    .event-gallery-grid { grid-template-columns: 1fr; }
}

@media only screen and (max-width: 479px) {
    .banner-section .content-column .inner-column h1 {
        font-size: 42px;
    }

    .program-compact-time { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
    .preloader {
        display: none !important;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
