/* Calendar mockup: Bootstrap supplies layout, spacing and control primitives. */
.post-type-archive-cit_event {
    --events-ink: #141827;
    --events-muted: #525665;
    --events-bronze: #ad682e;
    --events-border: #ece9e5;
    background: #faf9f7;
    color: var(--events-ink);
}

.post-type-archive-cit_event .cit-site-header,
.post-type-archive-cit_event .cit-events-page,
.post-type-archive-cit_event .cit-site-footer {
    max-width: 1034px;
    margin-inline: auto;
    background: #fff;
}

.post-type-archive-cit_event .cit-site-header { margin-top: 22px; border-radius: 20px 20px 0 0; border: 0; }
.post-type-archive-cit_event .cit-site-header > .container { max-width: none; padding-inline: 34px; }
.post-type-archive-cit_event .cit-navbar { min-height: 66px; padding-block: 10px; gap: 24px; }
.post-type-archive-cit_event .cit-brand { max-width: 160px; white-space: normal; flex-shrink: 0; }
.post-type-archive-cit_event .cit-brand__name { font: 700 13px/1.05 Georgia, serif; }
.post-type-archive-cit_event .cit-brand img { max-width: 150px; max-height: 48px; width: auto; }
.post-type-archive-cit_event .cit-primary-menu { gap: 20px; }
.post-type-archive-cit_event .cit-primary-menu a { padding: 8px 0; font-size: 11px; color: var(--events-ink); text-decoration: none; }
.post-type-archive-cit_event .cit-primary-menu .current-menu-item > a { color: #9b421a; border-bottom: 1px solid #ad682e; }
.post-type-archive-cit_event .navbar-collapse { gap: 32px; }
.post-type-archive-cit_event .cit-primary-menu { margin-left: 0 !important; }
.cit-events-header-actions a { color: #141827; text-transform: uppercase; font-size: 11px; }
.cit-events-header-actions svg { width: 23px; height: 23px; stroke-width: 1.7; }
.post-type-archive-cit_event .cit-mobile-bottom-nav [aria-current="page"] { color: #a45322; }
.post-type-archive-cit_event .cit-site-footer { color: #876452; border-radius: 0 0 20px 20px; margin-bottom: 22px; }
.post-type-archive-cit_event .cit-site-footer > .container { padding-inline: 24px; }
.post-type-archive-cit_event .cit-site-footer p,
.post-type-archive-cit_event .cit-site-footer a { color: inherit; font-size: 10px; }

.cit-events-page { padding: 0 5px 8px; }
.cit-events-page svg { width: 18px; height: 18px; flex-shrink: 0; stroke-width: 1.7; }
.cit-events-page a { text-decoration: none; }
.cit-events-page .btn {
    --bs-btn-color: var(--events-ink);
    --bs-btn-bg: #fff;
    --bs-btn-border-color: var(--events-border);
    --bs-btn-hover-color: var(--events-ink);
    --bs-btn-hover-bg: #f5f3f0;
    --bs-btn-hover-border-color: #d5cdc4;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--events-bronze);
    --bs-btn-active-border-color: var(--events-bronze);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 34px;
    padding: 6px 20px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}
.cit-events-page :focus-visible { outline: 3px solid #1551d1; outline-offset: 3px; }
.cit-events-page .cit-events-primary {
    --bs-btn-bg: #b47439;
    --bs-btn-color: #fff;
    --bs-btn-border-color: #b47439;
    --bs-btn-hover-bg: #93541f;
    --bs-btn-hover-border-color: #93541f;
    --bs-btn-hover-color: #fff;
    box-shadow: inset 0 1px 2px #ffffff30;
    min-height: 38px;
    font-weight: 500;
}

.cit-events-hero { min-height: 243px; border-radius: 8px; color: #fff; display: flex; align-items: center; }
.cit-events-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.cit-events-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #0007, transparent 75%); pointer-events: none; }
.cit-events-hero__content { z-index: 1; padding: 36px 44px; }
.cit-events-breadcrumbs { font-size: 12px; margin-bottom: 22px; }
.cit-events-breadcrumbs a { color: inherit; }
.cit-events-breadcrumbs svg { width: 13px; height: 13px; }
.cit-events-hero h1 { font: 700 52px/1.05 Georgia, 'Times New Roman', serif; margin: 0 0 6px; color: inherit; }
.cit-events-hero p { font-size: 18px; line-height: 1.3; }
.cit-events-signature { position: absolute; z-index: 1; right: 34px; bottom: 28px; font: italic 28px/1.05 'Segoe Script', cursive; color: white; transform: rotate(-8deg); }
.cit-events-signature svg { width: 20px; height: 20px; }
.cit-events-browser { padding-inline: 30px; }
.cit-events-filter-top { padding-top: 16px; }
.cit-events-page .cit-events-category { min-height: 38px; padding-inline: 18px; box-shadow: 0 3px 10px #25201609; }
.cit-events-category svg { color: var(--category-icon, #1956a3); }
.cit-events-page .cit-events-category.active { --bs-btn-active-bg: #0646d5; --bs-btn-active-border-color: #0646d5; }
.cit-events-category.active svg { color: #fff; }
.cit-event-tone--concert { --category-icon: #1553cc; --category-text: #5124a2; --category-bg: #eee2ff; }
.cit-event-tone--theatre { --category-icon: #d08a19; --category-text: #a52820; --category-bg: #ffe0da; }
.cit-event-tone--sport { --category-icon: #146ad3; --category-text: #086b43; --category-bg: #dbf1e5; }
.cit-event-tone--family { --category-icon: #c92e38; --category-text: #085766; --category-bg: #daedf0; }
.cit-event-tone--exhibition { --category-icon: #079a93; --category-text: #443593; --category-bg: #e9e5fa; }
.cit-event-tone--other { --category-icon: #56647d; --category-text: #3a465f; --category-bg: #e9edf4; }
.cit-events-tools { margin-block: 22px 24px; }
.cit-events-month-nav { width: 306px; border-radius: 30px; background: #faf9f8; font-size: 14px; }
.cit-events-page .cit-events-month-nav .btn { width: 38px; padding: 0; border: 0; }
.cit-events-scopes .btn { min-width: 106px; }
.cit-events-scopes .btn:last-child { min-width: 132px; }
.cit-events-showcase { --bs-gutter-x: 18px; --bs-gutter-y: 18px; align-items: start; }
.cit-events-featured-column { width: 70%; }
.cit-events-calendar-column.col-md-4 { width: 30%; }
.cit-events-featured { min-height: 226px; border-radius: 8px; color: #fff; background: #352736; }
.cit-events-featured__image { position: absolute; inset: 0; }
.cit-events-featured__image img { height: 100%; width: 100%; object-fit: cover; }
.cit-events-featured__image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #000c, #0002 80%); }
.cit-event-date { position: absolute; top: 8px; left: 8px; width: 39px; min-height: 49px; padding: 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fff; color: #10131c; border-radius: 5px; box-shadow: 0 1px 6px #0001; }
.cit-event-date strong { font: 700 23px/1 Georgia, serif; }
.cit-event-date > span { font-size: 10px; font-weight: 800; text-transform: uppercase; line-height: 1.4; }
.cit-events-featured > .cit-event-date { width: 54px; min-height: 65px; top: 20px; left: 20px; }
.cit-events-featured > .cit-event-date strong { font-size: 30px; }
.cit-events-featured > .cit-event-date > span { font-size: 13px; }
.cit-events-featured__content { padding: 26px 20px 20px 30.5%; }
.cit-events-featured__label { background: #ecdcff; color: #602099; text-transform: uppercase; font-size: 10px; padding: 5px 8px; font-weight: 600; }
.cit-events-featured h2 { font: 700 21px/1.15 Georgia, serif; margin: 9px 0 10px; max-width: 310px; }
.cit-events-featured h2 a { color: #fff; }
.cit-events-featured p:not(.cit-events-featured__description) { display: flex; align-items: start; gap: 8px; margin: 0 0 8px; font-size: 12px; line-height: 1.3; }
.cit-events-featured p svg { width: 15px; height: 15px; }
.cit-events-featured__bottom { margin-top: 10px; }
.cit-events-featured__description { font-size: 11px; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.cit-events-featured__bottom .btn { font-size: 12px; padding-inline: 18px; }

.cit-events-calendar { border: 1px solid var(--events-border); border-radius: 8px; padding: 0 10px 10px; background: #fff; box-shadow: 0 4px 18px #33291c08; }
.cit-events-calendar__heading { border-bottom: 1px solid #f0eeeb; min-height: 36px; font-size: 13px; }
.cit-events-page .cit-events-calendar__heading .btn { padding: 4px; border: 0; min-height: 32px; }
.cit-events-calendar__heading svg { width: 15px; height: 15px; }
.cit-events-calendar__weekdays,
.cit-events-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; }
.cit-events-calendar__weekdays { padding-block: 8px 4px; font-size: 11px; }
.cit-calendar-day { min-width: 0; }
.cit-calendar-date { position: relative; display: flex; margin-inline: auto; width: 29px; height: 29px; align-items: center; justify-content: center; border-radius: 50%; color: var(--events-ink); font-size: 11px; border: 1px solid transparent; }
.cit-calendar-date:hover { color: var(--events-bronze); background: #faf3eb; }
.is-outside .cit-calendar-date { color: #a4a6ad; }
.cit-calendar-date.is-today { border-color: #9c481f; }
.cit-calendar-date.is-selected { background: var(--events-bronze); color: #fff; }
.cit-calendar-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #a46023; flex-shrink: 0; }
.cit-calendar-date .cit-calendar-dot { position: absolute; bottom: 1px; left: calc(50% - 2.5px); }
.cit-calendar-dot.is-featured { background: #9e18cf; }
.cit-events-calendar__legend { margin-top: 10px; font-size: 8px; line-height: 1.4; }
.cit-events-calendar__legend > span { display: inline-flex; align-items: center; gap: 5px; }
.cit-events-calendar__legend .cit-calendar-dot { width: 9px; height: 9px; }
.cit-calendar-today { display: inline-block; width: 13px; height: 13px; border: 1px solid #9c481f; border-radius: 50%; }
.is-calendar-view .cit-calendar-day { min-height: 90px; border: 1px solid #f2efeb; padding: 5px; }
.cit-calendar-event { display: block; border-left: 2px solid var(--events-bronze); background: #faf5ee; margin-block: 3px; padding: 4px; text-align: left; font-size: 11px; line-height: 1.3; color: var(--events-ink); overflow-wrap: anywhere; }

.cit-events-heading { margin-block: 16px 12px; }
.cit-events-heading h2 { font: 700 27px/1.2 Georgia, serif; }
.cit-events-count { font-size: 11px; color: var(--events-muted); }
.cit-events-heading .form-select { min-height: 34px; width: 140px; font-size: 11px; border-color: var(--events-border); padding-left: 16px; box-shadow: 0 3px 14px #29251e06; }
.cit-events-grid { --bs-gutter-x: 14px; --bs-gutter-y: 12px; }
.cit-event-card { flex-direction: row; border-color: var(--events-border); border-radius: 8px; box-shadow: 0 4px 16px #30241408; min-height: 104px; }
.cit-event-card__image { position: relative; width: 41.5%; flex-shrink: 0; overflow: hidden; border-radius: 7px; background: #f0f1f3; }
.cit-event-card__image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cit-event-card__fallback { display: grid; place-items: center; width: 100%; height: 100%; min-height: 104px; color: #767b83; }
.cit-event-card__body { padding: 5px 9px 6px 12px; min-width: 0; }
.cit-event-badge { max-width: calc(100% - 19px); white-space: normal; text-align: left; color: var(--category-text, #343f59); background: var(--category-bg, #e9edf4); border-radius: 3px; font-size: 9px; font-weight: 600; text-transform: uppercase; padding: 3px 5px; }
.cit-event-card h3 { font: 700 12px/1.3 Georgia, serif; margin: 5px 0 6px; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.cit-event-card h3 a { color: var(--events-ink); }
.cit-event-card h3 a:hover { color: var(--events-bronze); }
.cit-event-card p { display: flex; align-items: start; gap: 6px; font-size: 10px; line-height: 1.35; margin: 0 0 5px; color: #42495b; }
.cit-event-card p:last-child { margin-bottom: 0; }
.cit-event-card p svg { width: 13px; height: 13px; }
.cit-event-card p span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cit-events-page .cit-event-card__favorite { position: absolute; right: 2px; top: 3px; min-height: 28px; width: 28px; padding: 4px; border: 0; background: transparent; }
.cit-event-card__favorite svg { width: 18px; height: 18px; }
.cit-event-card__favorite.is-active { color: #a14d23; }
.cit-event-card__favorite.is-active svg { fill: currentColor; }
.cit-events-more { margin-top: 14px; }
.cit-events-more .btn { min-width: 230px; }
.cit-events-empty h3 { font-size: 23px; margin-block: 14px; }
.cit-events-results { scroll-margin-top: 20px; }
[data-cit-events-status]:empty { display: none; }

@media (min-width: 768px) and (max-width: 991.98px) {
    .cit-events-browser { padding-inline: 20px; }
    .cit-events-hero h1 { font-size: 44px; }
    .cit-events-featured-column, .cit-events-calendar-column.col-md-4 { width: 50%; }
    .cit-events-featured__content { padding: 95px 20px 20px; }
    .cit-events-featured__bottom { flex-wrap: wrap; }
    .cit-events-filter-top { flex-wrap: wrap; }
    .cit-event-card { min-height: 130px; }
}

@media (max-width: 767.98px) {
    .post-type-archive-cit_event { background: #fff; }
    .post-type-archive-cit_event .cit-site-header { margin: 0; border-radius: 0; }
    .post-type-archive-cit_event .cit-site-header > .container { padding-inline: 18px; }
    .post-type-archive-cit_event .cit-navbar { min-height: 72px; }
    .post-type-archive-cit_event .cit-navbar__mobile-action { display: none; }
    .post-type-archive-cit_event .cit-site-footer { margin: 0; border-radius: 0; }
    .cit-events-page { padding: 0 16px 20px; }
    .cit-events-hero { min-height: 0; display: block; color: var(--events-ink); overflow: visible !important; }
    .cit-events-hero__image, .cit-events-hero::after { display: none; }
    .cit-events-hero__content { padding: 8px 0 0; }
    .cit-events-hero h1 { font-size: 30px; line-height: 1.1; margin-bottom: 5px; overflow-wrap: anywhere; }
    .cit-events-hero p { font-size: 14px; line-height: 1.3; }
    .cit-events-browser { padding: 0; }
    .cit-events-filter-top { padding-top: 16px; }
    .cit-events-categories { width: 100%; }
    .cit-events-page .cit-events-category { min-height: 38px; padding-inline: 23px; font-size: 13px; }
    .cit-events-category svg { display: none; }
    .cit-events-tools { margin-block: 22px; }
    .cit-events-scopes { width: 100%; }
    .cit-events-scopes .btn, .cit-events-scopes .btn:last-child { min-width: 0; flex: 1; min-height: 38px; padding-inline: 8px; font-size: 12px; }
    .cit-events-showcase:not(.is-calendar-view) { display: none; }
    .cit-events-heading { display: none !important; }
    .cit-events-grid { --bs-gutter-y: 18px; }
    .cit-event-card { flex-direction: column; }
    .cit-event-card__image { width: 100%; aspect-ratio: 2.8; }
    .cit-event-card__body { padding: 10px 14px 14px; }
    .cit-event-card h3 { font-size: 17px; margin: 8px 0; display: block; }
    .cit-event-card p span { white-space: normal; overflow-wrap: anywhere; }
    .cit-event-card p { font-size: 13px; margin-bottom: 6px; }
    .cit-event-card p svg { width: 16px; height: 16px; }
    .cit-event-badge { font-size: 11px; padding: 4px 6px; }
    .cit-event-date { width: 53px; min-height: 64px; top: 10px; left: 10px; }
    .cit-event-date strong { font-size: 31px; }
    .cit-event-date > span { font-size: 12px; }
    .cit-events-page .cit-event-card__favorite { width: 40px; height: 40px; top: 7px; right: 7px; color: #fff; background: #0003; border-radius: 50%; }
    .cit-event-card__favorite svg { width: 26px; height: 26px; }
    .cit-events-page .cit-event-card__favorite.is-active { color: #fff; background: #a14d23; }
    .is-calendar-view .cit-calendar-day { min-height: 50px; padding: 2px; }
    .is-calendar-view .cit-calendar-event { display: none; }
}

@media (max-width: 359.98px) {
    .cit-events-hero h1 { font-size: 26px; }
    .cit-events-page .cit-events-category { padding-inline: 16px; }
    .cit-events-scopes .btn { font-size: 11px; }
}
