/* CC Training – element styles. Colours come from these variables; override them in
   Impreza's Theme Options > Custom CSS if the brand values change. */
:root {
	--cc-navy: #08293e;
	--cc-navy-2: #0f3550;
	--cc-navy-line: #2c5068;
	--cc-lime: #8cc63f;
	--cc-lime-tint: #eef6e2;
	--cc-ink: #151a12;
	--cc-body: #454c41;
	--cc-label: #3b6a12;
	--cc-off: #f1f1e9;
	--cc-line: #dcdcd2;
	--cc-muted-dark: #aeb7a1;
	--cc-radius: 6px;
	--cc-acc-hesa: #5b8fd6;
	--cc-acc-eusr: #c98a5a;
	--cc-acc-futurequals: #a57ad9;
	--cc-acc-jointing-school: #3fb3a3;
}

.cc-ico { width: 1em; height: 1em; flex-shrink: 0; vertical-align: -0.125em; }
.cc-label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Buttons used inside plugin elements (match your Impreza button styles) */
.cc-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 44px; padding: 10px 18px;
	border-radius: var(--cc-radius); font-weight: 700; font-size: 15px; line-height: 1.2; text-decoration: none !important; transition: background .15s, color .15s; }
.cc-btn--primary { background: var(--cc-lime); color: #fff !important; }
.cc-btn--primary:hover { background: #7db533; }
.cc-btn--outline { border: 2px solid var(--cc-lime); color: inherit !important; }
.cc-btn--outline:hover { background: var(--cc-lime); color: var(--cc-ink) !important; }
.cc-btn--outline-navy { border: 2px solid var(--cc-navy); color: var(--cc-navy) !important; background: transparent; }
.cc-btn--outline-navy:hover, .cc-btn--outline-navy:focus-visible { background: var(--cc-navy); color: #fff !important; }
.cc-btn--block { display: flex; width: 100%; padding: 16px; font-size: 17px; }

/* Accreditation dot + name */
.cc-acc { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; }
.cc-acc::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cc-acc-hesa); }
.cc-acc--eusr::before { background: var(--cc-acc-eusr); }
.cc-acc--futurequals::before { background: var(--cc-acc-futurequals); }
.cc-acc--jointing-school::before { background: var(--cc-acc-jointing-school); }

/* Calendar block */
.cc-cal { display: flex; flex-direction: column; align-items: center; line-height: 1; min-width: 56px; }
.cc-cal__dow, .cc-cal__mon { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cc-cal__dow { color: var(--cc-muted-dark); }
.cc-cal__mon { color: var(--cc-lime); }
.cc-cal__day { font-family: var(--h1-font-family, inherit); font-weight: 800; font-size: 44px; margin: 4px 0; }

/* ---------- Upcoming dates ---------- */
.cc-dates { --row-bg: var(--cc-navy-2); --row-line: var(--cc-navy-line); --muted: var(--cc-muted-dark); color: #fff; }
.cc-dates--light { --row-bg: #fff; --row-line: var(--cc-line); --muted: var(--cc-body); color: var(--cc-ink); }
.cc-dates--light .cc-cal__dow { color: var(--cc-body); }
.cc-dates--light .cc-cal__mon { color: var(--cc-label); }
/* Mixed: the list sits on a white row, but each date keeps its navy bar */
.cc-dates--mixed .cc-date { --row-line: var(--cc-navy-line); --muted: var(--cc-muted-dark); background: var(--cc-navy); border: 0; color: #fff; }
.cc-dates--mixed .cc-date .cc-cal__dow { color: #c8d3da; }
.cc-dates--mixed .cc-date .cc-cal__mon { color: var(--cc-lime); }
.cc-dates--mixed .cc-date .cc-acc { color: #dfe7ec; }
.cc-dates--mixed .cc-date__btn.cc-btn--outline { color: #fff !important; }
.cc-dates--mixed .cc-date__btn.cc-btn--outline:hover, .cc-dates--mixed .cc-date__btn.cc-btn--outline:focus-visible { color: var(--cc-ink) !important; }
.cc-dates--mixed .cc-search { border-color: var(--cc-line); }

.cc-dates__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding-bottom: 20px; border-bottom: 1px solid var(--row-line); margin-bottom: 8px; }
.cc-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cc-chip { min-height: 44px; padding: 0 18px; border-radius: var(--cc-radius); border: 1.5px solid var(--row-line); background: transparent;
	color: inherit; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.cc-chip[aria-pressed="true"] { background: var(--cc-lime); border-color: var(--cc-lime); color: var(--cc-ink); font-weight: 700; }
.cc-chip:focus-visible, .cc-search input:focus-visible, .cc-option input:focus-visible { outline: 2px solid var(--cc-lime); outline-offset: 2px; }
.cc-chip__n { font-weight: 500; }
.cc-search { display: flex; align-items: center; gap: 10px; flex: 1 1 280px; max-width: 420px; margin-left: auto; height: 50px; padding: 0 16px;
	background: #fff; border-radius: var(--cc-radius); color: var(--cc-body); border: 1px solid var(--cc-line); }
.cc-search input { flex: 1; min-width: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; height: auto !important; font-size: 15px; color: var(--cc-ink); }
.cc-dates__count { margin-left: auto; font-size: 14px; color: var(--muted); }
.cc-search + .cc-dates__count { margin-left: 0; }
.cc-dates--dark .cc-chip { color: #fff; border-color: #4c6b80; }
.cc-dates--dark .cc-chip[aria-pressed="true"] { color: var(--cc-ink); border-color: var(--cc-lime); }
.cc-dates--list .cc-dates__bar { padding-bottom: 28px; margin-bottom: 0; }
.cc-dates--list .cc-dates__month { padding-top: 28px; }
/* Separate search box ([cc_dates_search]) */
.cc-search--standalone { flex: 0 1 400px; width: 400px; max-width: 100%; height: 54px; margin-left: 0; padding: 0 18px; gap: 12px; border: 0; }
.cc-search--standalone .cc-ico { width: 20px; height: 20px; }

.cc-dates__month { padding: 26px 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cc-lime); }
.cc-dates--light .cc-dates__month { color: var(--cc-label); }

.cc-date { display: grid; grid-template-columns: 84px minmax(0, 1fr) 170px 150px 170px; gap: 24px; align-items: center;
	padding: 18px 24px; background: var(--row-bg); border-radius: var(--cc-radius); margin-bottom: 10px; }
.cc-dates--light .cc-date { border: 1px solid var(--row-line); }
.cc-date[hidden] { display: none; }
.cc-date .cc-cal { border-right: 1px solid var(--row-line); padding-right: 20px; }
.cc-date__title { font-size: 19px; font-weight: 700; line-height: 1.3; color: inherit !important; text-decoration: none; }
.cc-date__title:hover { text-decoration: underline; }
.cc-date__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: 13px; color: var(--muted); }
.cc-dates--dark .cc-acc { color: #dfe7ec; }
.cc-meta, .cc-date__venue { display: inline-flex; align-items: center; gap: 6px; }
.cc-date__venue { font-size: 14px; }
.cc-date__venue .cc-ico { color: var(--cc-lime); }
.cc-date__price { display: flex; flex-direction: column; gap: 4px; }
.cc-date__amount { font-weight: 700; font-size: 15px; }
.cc-date__amount small { font-weight: 500; font-size: 12px; color: var(--muted); }
.cc-date__places { font-size: 13px; color: var(--muted); }
.cc-date__btn { justify-self: end; white-space: nowrap; }
.cc-date.is-full .cc-date__places { color: #f3b26b; }

/* Compact (home page) */
.cc-dates--compact .cc-date { grid-template-columns: 70px minmax(0, 1fr) auto; background: transparent; border-radius: 0; margin: 0;
	padding: 18px 0; border-bottom: 1px solid var(--row-line); border-top: 0; border-left: 0; border-right: 0; }
.cc-dates--compact .cc-date .cc-cal { border-right: 0; padding-right: 0; }
.cc-dates--compact .cc-cal__day { font-size: 36px; }
.cc-dates--compact .cc-date__title { font-size: 17px; }

.cc-dates__empty { margin-top: 24px; padding: 32px; border: 1px dashed var(--row-line); border-radius: var(--cc-radius);
	display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; }
.cc-dates__empty[hidden] { display: none; }
.cc-dates__empty p { margin: 0; max-width: 560px; }

/* Next course card (hero) */
.cc-dates--next { display: inline-flex; gap: 20px; align-items: center; max-width: 380px; padding: 22px 26px;
	background: var(--cc-navy); color: #fff !important; border-radius: var(--cc-radius); text-decoration: none !important; }
.cc-next__text { display: flex; flex-direction: column; gap: 6px; }
.cc-next__label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cc-lime); }
.cc-next__title { font-size: 17px; font-weight: 700; line-height: 1.3; }

/* ---------- Course booking card ---------- */
.cc-booking { border: 1px solid var(--cc-line); border-radius: var(--cc-radius); background: #fff; box-shadow: 0 12px 32px rgba(8, 41, 62, .08); color: var(--cc-ink); }
.cc-booking__price { display: flex; align-items: baseline; gap: 8px; padding: 26px 26px 20px; border-bottom: 1px solid var(--cc-line); }
.cc-booking__amount { font-family: 'Archivo', var(--h1-font-family, sans-serif); font-stretch: 77%; font-weight: 800; font-size: 48px; line-height: 1; }
.cc-booking__pnote { font-size: 14px; color: var(--cc-body); }
.cc-booking__body { padding: 22px 26px 26px; }
.cc-booking__dates { border: 0; margin: 0; padding: 0; min-width: 0; }
.cc-booking__dates legend { float: left; width: 100%; margin: 0 0 14px; padding: 0; color: var(--cc-body); }
.cc-booking__dates legend + * { clear: both; }
.cc-option { display: flex; align-items: center; gap: 14px; padding: 16px; margin: 0 0 10px; border: 1px solid var(--cc-line); border-radius: var(--cc-radius); background: #fff; cursor: pointer; font-weight: 400; }
.cc-option:has(input:checked) { border: 2px solid var(--cc-lime); background: #f4f9ec; padding: 15px; }
.cc-option.is-full .cc-option__date { color: var(--cc-body); }
.cc-option.is-full .cc-option__places { color: #b2641c; }
.cc-option input { -webkit-appearance: none; appearance: none; display: grid; place-content: center; width: 20px; height: 20px; margin: 0; padding: 0; border: 2px solid #9aa093; border-radius: 50%; background: #fff; flex-shrink: 0; cursor: inherit; }
.cc-option input::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--cc-label); transform: scale(0); transition: transform .12s; }
.cc-option input:checked { border-color: var(--cc-label); }
.cc-option input:checked::before { transform: scale(1); }
.cc-option__text { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.cc-option__date { font-weight: 700; font-size: 16px; color: var(--cc-ink); }
.cc-option__sub { font-size: 13px; color: var(--cc-body); }
.cc-option__places { font-size: 12px; font-weight: 700; color: var(--cc-label); white-space: nowrap; }
.cc-booking .cc-btn--block { margin-top: 8px; gap: 10px; padding: 17px; font-size: 17px; }
.cc-booking .cc-btn--block .cc-ico { width: 18px; height: 18px; }
.cc-btn--primary:hover, .cc-btn--primary:focus-visible { color: #fff !important; }
.cc-booking [data-cc-book-label] { margin-left: -.25em; font-weight: 500; }
.cc-booking__sep { margin: 0 -.15em; opacity: .6; }
.cc-booking__note { margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: var(--cc-body); text-align: center; }
.cc-booking__alt { display: flex; flex-direction: column; gap: 6px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--cc-line); font-size: 15px; }
.cc-booking__alt a { font-weight: 700; color: var(--cc-label); }
.cc-booking__none { display: flex; align-items: flex-start; gap: 14px; padding: 18px; margin-bottom: 18px; border-radius: var(--cc-radius); background: var(--cc-off); }
.cc-booking__none .cc-ico { width: 22px; height: 22px; margin-top: 2px; color: var(--cc-label); }
.cc-booking__none strong { font-size: 16px; }
.cc-booking__none p { margin: 4px 0 0; font-size: 14px; line-height: 1.5; color: var(--cc-body); }

/* ---------- Course list field ---------- */
.cc-list { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 14px 32px; }
.cc-list--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cc-list--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cc-list li { margin: 0 !important; display: flex; gap: 12px; align-items: flex-start; line-height: 1.5; }
.cc-list__tick { width: 22px; height: 22px; margin-top: 2px; border-radius: 50%; background: var(--cc-lime-tint); color: var(--cc-label); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 13px; }
.cc-list--chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cc-list--chips li { padding: 10px 14px; background: var(--cc-off); border-radius: var(--cc-radius); font-weight: 500; }
.cc-list--bullets li::before { content: ""; width: 6px; height: 6px; margin-top: 9px; border-radius: 50%; background: var(--cc-lime); flex-shrink: 0; }

/* ---------- Booking summary ---------- */
.cc-summary { border: 1px solid var(--cc-line); border-radius: var(--cc-radius); overflow: hidden; background: #fff; }
.cc-summary__img img { display: block; width: 100%; height: 190px; object-fit: cover; }
.cc-summary__body { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.cc-summary .cc-label { color: var(--cc-label); }
.cc-summary__title { font-size: 20px; font-weight: 700; line-height: 1.3; }
.cc-summary__meta { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 8px; color: var(--cc-body); }
.cc-summary__meta li { margin: 0 !important; display: flex; gap: 10px; align-items: center; }
.cc-summary__meta .cc-ico { color: var(--cc-label); }
.cc-summary__foot { display: flex; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--cc-line); font-size: 14px; color: var(--cc-body); }
.cc-summary__foot a { font-weight: 700; color: var(--cc-label); }

/* ---------- Menu badge ---------- */
.cc-menu-badge { display: inline-block; margin-left: 8px; padding: 3px 7px; border-radius: 4px; background: var(--cc-lime-tint); color: var(--cc-label);
	font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; vertical-align: middle; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.cc-date { grid-template-columns: 70px minmax(0, 1fr) auto; }
	.cc-date__venue, .cc-date__price { grid-column: 2; }
	.cc-date__btn { grid-column: 3; grid-row: 1; }
}
@media (max-width: 600px) {
	.cc-date, .cc-dates--compact .cc-date { grid-template-columns: 56px minmax(0, 1fr); gap: 12px 16px; padding: 16px; }
	.cc-dates--compact .cc-date { padding: 16px 0; }
	.cc-date .cc-cal { padding-right: 12px; }
	.cc-cal__day { font-size: 34px; }
	.cc-date__venue, .cc-date__price, .cc-date__btn { grid-column: 2; grid-row: auto; justify-self: start; }
	.cc-search { max-width: none; margin-left: 0; }
	.cc-list--cols-2, .cc-list--cols-3 { grid-template-columns: 1fr; }
}

/* =====================================================================
   Compact list (home page) – measured from the design
   ===================================================================== */
.cc-dates--compact .cc-dates__bar { padding: 0; border: 0; margin: 0 0 37.5px; gap: 16px; }
.cc-dates--compact .cc-chips { gap: 16px; }
.cc-dates--compact .cc-chip { box-sizing: border-box; height: 44px; min-height: 44px; padding: 0 20px; border: 1.5px solid rgba(255, 255, 255, .3);
	border-radius: 6px; font-family: 'Public Sans', sans-serif; font-size: 15px; font-weight: 700; line-height: 1; color: #fff; }
.cc-dates--compact .cc-chip[aria-pressed="true"] { background: #8cc63f; border-color: #8cc63f; color: #18210f; }
.cc-dates--compact .cc-chip__n { font-weight: 700; }
.cc-dates--compact .cc-dates__list { border-top: 1px solid rgba(255, 255, 255, .3); }
.cc-dates--compact .cc-date { box-sizing: border-box; min-height: 0; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 26px; align-items: center;
	padding: 17px 0; margin: 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .3); border-radius: 0; background: transparent; }
.cc-dates--compact .cc-cal { min-width: 0; width: 70px; }
.cc-dates--compact .cc-cal__dow, .cc-dates--compact .cc-cal__mon { font-family: 'Public Sans', sans-serif; font-size: 13px; line-height: 16px; font-weight: 700; letter-spacing: .05em; }
.cc-dates--compact .cc-cal__dow { color: #aeb7a1; }
.cc-dates--compact .cc-cal__mon { color: #8cc63f; margin-top: 4px; }
.cc-dates--compact .cc-cal__day { font-family: 'Archivo', sans-serif; font-stretch: 78%; font-weight: 800; font-size: 43px; line-height: 38px; letter-spacing: -0.01em; margin: -2px 0 0; color: #fff; }
.cc-dates--compact .cc-date__title { font-family: 'Public Sans', sans-serif; font-size: 19px; line-height: 25px; font-weight: 600; letter-spacing: 0; color: #fff !important; }
.cc-dates--compact .cc-date__meta { margin-top: 3.5px; gap: 0 18px; font-size: 13px; line-height: 20px; color: #aeb7a1; }
.cc-dates--compact .cc-date__meta .cc-ico { display: none; }
.cc-dates--compact .cc-acc { gap: 9px; font-size: 13px; font-weight: 400; color: #aeb7a1 !important; }
.cc-dates--compact .cc-date__btn { box-sizing: border-box; width: 136px; height: 48px; min-height: 0; padding: 0; border: 2px solid #8cc63f; border-radius: 6px;
	font-family: 'Public Sans', sans-serif; font-size: 14px; font-weight: 700; color: #fff !important; }

/* ---------- Carousel (strip) ---------- */
.cc-carousel { position: relative; height: var(--cc-h, auto); display: flex; align-items: center; }
.cc-carousel__track { display: flex; align-items: center; gap: var(--cc-gap, 52px); overflow-x: auto; scroll-snap-type: x proximity; scroll-behavior: smooth;
	scrollbar-width: none; width: 100%; height: 100%; padding: 0 var(--cc-pad-r, 64px) 0 var(--cc-pad-l, 64px); box-sizing: border-box; }
.cc-carousel__track::-webkit-scrollbar { display: none; }
.cc-carousel__track > * { flex: 0 0 auto; scroll-snap-align: start; margin-top: 0 !important; margin-bottom: 0 !important; }
.cc-carousel__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; padding: 0; border: 0; background: transparent;
	color: var(--cc-arrow, #1e1e1e); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cc-carousel__arrow--prev { left: 2px; }
.cc-carousel__arrow--next { right: 2px; }
.cc-carousel__arrow:focus-visible, .cc-carousel__track:focus-visible { outline: 2px solid #8cc63f; outline-offset: -2px; }

/* ---------- Course Grid (tabs) ---------- */
.cc-tabs { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--cc-line); margin-bottom: 32px; }
.cc-tabs__tab { display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 22px; margin-bottom: -1px; background: none; border: 0;
	border-bottom: 3px solid transparent; font-family: 'Public Sans', sans-serif; font-size: 16px; font-weight: 600; color: var(--cc-body); cursor: pointer; }
.cc-tabs__tab[aria-selected="true"] { color: var(--cc-ink); font-weight: 700; border-bottom-color: var(--cc-lime); }
.cc-tabs__tab:focus-visible { outline: 2px solid var(--cc-lime); outline-offset: 2px; }
.cc-tabs__n { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 10px; background: #e8e9e0; color: var(--cc-body); }
.cc-tabs__tab[aria-selected="true"] .cc-tabs__n { background: var(--cc-navy); color: #fff; }
.cc-grid__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin: 0 0 28px; }
.cc-grid__intro { flex: 1 1 420px; max-width: 760px; margin: 0; font-size: 16px; line-height: 1.6; color: var(--cc-body); }
.cc-grid__search { flex: 0 1 340px; margin-left: auto; }
.cc-card.is-hidden { display: none !important; }
.cc-grid__noresults { margin: 0; padding: 28px; border: 1px dashed var(--cc-line); border-radius: var(--cc-radius); text-align: center; color: var(--cc-body); }
.cc-grid__noresults[hidden] { display: none; }
.cc-on-dark .cc-grid__noresults { border-color: rgba(140, 198, 63, .6); color: #c8d3da; }
.cc-grid__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.cc-grid__more { display: inline-flex !important; width: auto !important; gap: 10px; margin-top: 28px; padding: 13px 22px; font-size: 15px; font: inherit; font-weight: 700; cursor: pointer; }
.cc-grid__more[aria-expanded="true"] .cc-ico { transform: rotate(-90deg); }
/* Desktop shows every course; smaller screens show a few per tab with "Show all" */
@media (min-width: 1440px) { .cc-grid__more { display: none !important; } }
@media (max-width: 1439px) { .cc-grid__panel:not(.is-expanded):not(.is-searching) .cc-card--extra { display: none; } }

/* Course grid on a navy row (the row has the class cc-on-dark) */
.cc-on-dark .cc-tabs { border-bottom-color: rgba(255, 255, 255, .18); }
.cc-on-dark .cc-tabs__tab { color: #c8d3da; }
.cc-on-dark .cc-tabs__tab:hover { color: #fff; }
.cc-on-dark .cc-tabs__tab[aria-selected="true"] { color: #fff; }
.cc-on-dark .cc-tabs__n { background: rgba(255, 255, 255, .14); color: #fff; }
.cc-on-dark .cc-tabs__tab[aria-selected="true"] .cc-tabs__n { background: var(--cc-lime); color: var(--cc-ink); }
.cc-on-dark .cc-grid__intro, .cc-on-dark .cc-grid__empty { color: #c8d3da; }
.cc-on-dark .cc-grid__more { border-color: #fff; color: #fff !important; }
.cc-on-dark .cc-grid__more:hover, .cc-on-dark .cc-grid__more:focus-visible { background: #fff; color: var(--cc-navy) !important; }
.cc-on-dark .cc-select { color: #fff; }
.cc-on-dark .cc-select select { background: transparent; border-color: rgba(255, 255, 255, .45); color: #fff; }
.cc-on-dark .cc-select select option { color: #151a12; }
.cc-on-dark .cc-note { color: #c8d3da; }
.cc-grid__more .cc-ico { width: 18px; height: 18px; }
.cc-grid__empty { color: var(--cc-body); }
.cc-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cc-line); border-radius: var(--cc-radius); overflow: hidden;
	color: var(--cc-ink) !important; text-decoration: none !important; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.cc-card:hover, .cc-card:focus-visible { border-color: var(--cc-lime); box-shadow: 0 12px 32px rgba(8, 41, 62, .12); transform: translateY(-3px); }
.cc-card:focus-visible { outline: 2px solid var(--cc-lime); outline-offset: 2px; }
/* Every card image is the same 3:2 box, whatever size or shape was uploaded; the
   picture is absolutely positioned so no theme rule can change the box's height. */
.cc-card__img { position: relative !important; display: block !important; flex: none !important; width: 100% !important; height: 0 !important; padding: 66.667% 0 0 !important; margin: 0 !important;
	overflow: hidden !important; background: linear-gradient(160deg, #eef0e6, #e2e6d8); }
.cc-card__img::before { content: ""; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); opacity: .55;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238cc63f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 9 10-5 10 5-10 5z'/%3E%3Cpath d='M6 11v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E") center / contain no-repeat; }
.cc-card__img img { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important;
	object-fit: cover !important; object-position: center !important; transition: transform .5s ease; }
.cc-card:hover .cc-card__img img { transform: scale(1.04); }
.cc-card__body { display: flex; flex-direction: column; gap: 10px; flex-grow: 1; padding: 18px 20px 20px; }
.cc-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cc-card__meta .cc-acc { color: var(--cc-body); }
.cc-card__ref { font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--cc-body); }
.cc-card__title { flex-grow: 1; font-size: 17px; line-height: 1.3; font-weight: 700; letter-spacing: -0.005em; }
.cc-card__foot { display: flex; align-items: center; justify-content: space-between; padding-top: 12px; border-top: 1px solid #ecece4; color: var(--cc-label); }
.cc-card__next { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 4px; background: var(--cc-lime-tint);
	font-size: 13px; font-weight: 700; color: var(--cc-label); }
.cc-card__next.is-none { padding: 0; background: none; font-weight: 600; color: var(--cc-body); }
@media (max-width: 1024px) { .cc-grid__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cc-grid__cards { grid-template-columns: 1fr; } .cc-tabs__tab { padding: 0 14px; } .cc-grid__search { flex-basis: 100%; } }

/* Upcoming dates, full list: dashed "no results" box on navy uses lime */
.cc-dates--list.cc-dates--dark .cc-dates__empty { border-color: rgba(140, 198, 63, .6); }

/* ---------- Course page elements ---------- */
.cc-crumbs ol { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 !important; padding: 0 !important; list-style: none; font-size: 14px; color: var(--cc-body); }
.cc-crumbs li { display: flex; gap: 10px; margin: 0 !important; }
.cc-crumbs li + li::before { content: "/"; }
.cc-crumbs a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.cc-crumbs a:hover { color: var(--cc-label); }
.cc-crumbs [aria-current] { color: var(--cc-ink); }

.cc-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.cc-badges__ref { padding: 6px 10px; border-radius: 4px; background: var(--cc-navy); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .04em; line-height: 1.2; }
.cc-badges .cc-acc { color: var(--cc-body); }

.cc-next-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 20px; border-radius: var(--cc-radius); background: var(--cc-navy); color: #fff !important;
	font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none !important; transition: background .15s; }
.cc-next-btn:hover { background: #1d5478; }
.cc-next-btn .cc-ico { width: 17px; height: 17px; color: var(--cc-lime); }

.cc-facts-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.cc-fact { display: flex; align-items: center; gap: 14px; }
.cc-fact__icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--cc-radius); background: var(--cc-navy); color: var(--cc-lime); flex-shrink: 0; }
.cc-fact__icon .cc-ico { width: 20px; height: 20px; }
.cc-fact__text { display: flex; flex-direction: column; gap: 2px; }
.cc-fact__label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cc-body); }
.cc-fact__value { font-size: 16px; font-weight: 700; color: var(--cc-ink); }
@media (max-width: 1024px) { .cc-facts-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cc-facts-row { grid-template-columns: 1fr; } }

.cc-list--checks li { font-size: 16px; }
.cc-list--chips li { font-size: 15px; }
.cc-list__tick .cc-ico { width: 14px; height: 14px; stroke-width: 3; }

/* ---------- Accreditation page elements ---------- */
.cc-tabs--links .cc-tabs__tab { text-decoration: none !important; }
.cc-tabs--links .cc-tabs__tab:hover { color: var(--cc-ink); }
.cc-tabs__tab[aria-current="page"] { color: var(--cc-ink); font-weight: 700; border-bottom-color: var(--cc-lime); }
.cc-tabs__tab[aria-current="page"] .cc-tabs__n { background: var(--cc-navy); color: #fff; }

.cc-term-stats { padding: 28px; border-radius: var(--cc-radius); background: var(--cc-navy); color: #fff; }
.cc-term-stats__row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-bottom: 22px; border-bottom: 1px solid #23445a; }
.cc-term-stats__item { display: flex; flex-direction: column; gap: 6px; }
.cc-term-stats__num { font-family: 'Archivo', var(--h1-font-family, sans-serif); font-stretch: 77%; font-weight: 800; font-size: 56px; line-height: 1; color: var(--cc-lime); }
.cc-term-stats__label { font-size: 14px; font-weight: 600; color: #c8d3da; }
.cc-term-stats__next { display: flex; align-items: center; gap: 10px; padding-top: 18px; font-size: 15px; color: #dfe7ec; }
.cc-term-stats__next .cc-ico { width: 18px; height: 18px; color: var(--cc-lime); }
.cc-term-stats__next strong { color: #fff; }

.cc-term-courses__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 28px; }
.cc-term-courses .cc-search--standalone { flex: 0 1 400px; height: 50px; border: 1px solid var(--cc-line); }
.cc-term-courses__toggle { color: var(--cc-body); border-color: var(--cc-line); }
.cc-term-courses__toggle[aria-pressed="true"] { color: var(--cc-ink); }
.cc-term-courses__count { margin-left: auto; font-size: 14px; color: var(--cc-body); }
.cc-term-courses__item { display: flex; }
.cc-term-courses__item[hidden] { display: none; }
.cc-term-courses__item > .cc-card { flex: 1; }
.cc-term-courses__empty { margin: 0; color: var(--cc-body); }

/* ---------- Dropdown versions of the filters and tabs ----------
   Hidden by default; Impreza custom CSS shows them on small screens. */
.cc-select { display: none; position: relative; width: 100%; }
.cc-select::after { content: ""; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; margin-top: -7px; border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor; transform: rotate(45deg); pointer-events: none; }
.cc-select select { -webkit-appearance: none; appearance: none; width: 100%; height: 50px; margin: 0; padding: 0 48px 0 16px; border: 1.5px solid var(--cc-line);
	border-radius: var(--cc-radius); background: #fff; color: var(--cc-ink); font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; box-shadow: none; }
.cc-select select:focus-visible { outline: 2px solid var(--cc-lime); outline-offset: 2px; }
.cc-select { color: var(--cc-ink); }
.cc-dates--dark .cc-select { color: #fff; }
.cc-dates--dark .cc-select select { background: transparent; border-color: rgba(255, 255, 255, .45); color: #fff; }
.cc-dates--dark .cc-select select option { color: #151a12; }

/* ---------- Projects / News card grid [cc_posts layout="grid"] ---------- */
.cc-posts--grid { --row-line: var(--cc-line, #dcdcd2); }
.cc-posts--grid .cc-posts__filters { margin-bottom: 32px; }
.cc-posts--grid .cc-posts__select { margin-bottom: 24px; }
.cc-posts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cc-posts--cols-2 .cc-posts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cc-posts--cols-4 .cc-posts__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cc-card-post { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--cc-line, #dcdcd2); border-radius: var(--cc-radius, 6px);
	background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.cc-card-post[hidden] { display: none; }
.cc-card-post:hover { border-color: var(--cc-lime, #8cc63f); box-shadow: 0 10px 28px rgba(8, 41, 62, .08); }
.cc-card-post__img { display: block; overflow: hidden; background: var(--cc-off, #f1f1e9); }
.cc-card-post__img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.cc-card-post:hover .cc-card-post__img img { transform: scale(1.03); }
.cc-card-post__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 20px 22px 22px; }
.cc-card-post__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 13px; color: var(--cc-body, #454c41); }
.cc-card-post__cat { padding: 4px 9px; border-radius: 4px; background: var(--cc-lime-tint, #eef6e2); font-size: 11px; font-weight: 700; letter-spacing: .08em;
	line-height: 1.3; text-transform: uppercase; color: var(--cc-label, #3b6a12); }
.cc-card-post__title { margin: 0 !important; padding: 0 !important; font-size: 18px !important; font-weight: 700 !important; line-height: 1.35 !important;
	letter-spacing: -0.005em; color: var(--cc-heading, #18210f); }
.cc-card-post__title a { color: inherit !important; text-decoration: none !important; }
.cc-card-post__title a::after { content: ""; position: absolute; inset: 0; }
.cc-card-post__excerpt { margin: 0 !important; font-size: 15px; line-height: 1.55; color: var(--cc-body, #454c41); }
.cc-card-post__more { margin-top: auto; padding-top: 6px; font-size: 14px; font-weight: 700; color: var(--cc-label, #3b6a12); }
.cc-card-post:hover .cc-card-post__more { text-decoration: underline; text-underline-offset: 3px; }

/* large first card (news) */
.cc-card-post--lead { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.cc-card-post--lead .cc-card-post__img img { height: 100%; min-height: 360px; aspect-ratio: auto; }
.cc-card-post--lead .cc-card-post__body { justify-content: center; gap: 14px; padding: 48px; }
.cc-card-post--lead .cc-card-post__title { font-family: 'Archivo', sans-serif; font-size: 34px !important; font-weight: 800 !important; font-stretch: 77%;
	line-height: 1.08 !important; letter-spacing: -0.01em; }
.cc-card-post--lead .cc-card-post__excerpt { font-size: 16px; }
.cc-card-post--lead .cc-card-post__more { margin-top: 8px; }

/* Show more */
.cc-posts__more { display: flex; justify-content: center; margin-top: 40px; }
.cc-posts__more[hidden] { display: none; }
.cc-posts__more-btn { height: 50px; padding: 0 28px; border: 1.5px solid var(--cc-navy, #08293e); border-radius: 4px; background: transparent;
	font: inherit; font-size: 15px; font-weight: 700; color: var(--cc-navy, #08293e); cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.cc-posts__more-btn:hover, .cc-posts__more-btn:focus-visible { background: var(--cc-navy, #08293e); color: #fff; }

@media (max-width: 1024px) {
	.cc-posts__grid, .cc-posts--cols-4 .cc-posts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.cc-card-post--lead .cc-card-post__body { padding: 32px; }
	.cc-card-post--lead .cc-card-post__title { font-size: 28px !important; }
	.cc-card-post--lead .cc-card-post__img img { min-height: 300px; }
}
@media (max-width: 860px) {
	.cc-card-post--lead { display: flex; }
	.cc-card-post--lead .cc-card-post__img img { min-height: 0; aspect-ratio: 16 / 9; }
	.cc-card-post--lead .cc-card-post__body { padding: 24px 22px 26px; }
}
@media (max-width: 767px) {
	.cc-posts__grid, .cc-posts--cols-2 .cc-posts__grid, .cc-posts--cols-4 .cc-posts__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.cc-posts--grid .cc-posts__filters { display: none; }
	.cc-posts--grid .cc-posts__select { display: block; }
	.cc-card-post--lead .cc-card-post__title { font-size: 26px !important; }
	.cc-card-post:not(.cc-card-post--lead) .cc-card-post__img img { aspect-ratio: 16 / 9; }
	.cc-posts__more { margin-top: 28px; }
	.cc-posts__more-btn { width: 100%; }
}

/* ---------- Project photos [cc_project_gallery] ---------- */
.cc-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cc-gallery--n1 { grid-template-columns: minmax(0, 1fr); }
.cc-gallery--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cc-gallery--n3, .cc-gallery--n5, .cc-gallery--n6, .cc-gallery--n9 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cc-gallery__item { position: relative; display: block; overflow: hidden; border-radius: var(--cc-radius, 6px); background: var(--cc-off, #f1f1e9); cursor: zoom-in; }
.cc-gallery__item img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.cc-gallery--n1 .cc-gallery__item img { aspect-ratio: 16 / 9; }
.cc-gallery__item:hover img { transform: scale(1.04); }
.cc-gallery__item:focus-visible { outline: 2px solid var(--cc-lime, #8cc63f); outline-offset: 2px; }
@media (max-width: 1024px) { .cc-gallery, .cc-gallery--n5, .cc-gallery--n6, .cc-gallery--n9 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
	.cc-gallery--n2, .cc-gallery--n4, .cc-gallery--n7, .cc-gallery--n8 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .cc-gallery, .cc-gallery--n3, .cc-gallery--n5, .cc-gallery--n6, .cc-gallery--n9 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.cc-gallery--n1 { grid-template-columns: minmax(0, 1fr); } }

/* photo viewer */
.cc-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 56px 16px; background: rgba(5, 22, 33, .94); }
.cc-lightbox[hidden] { display: none; }
.cc-lightbox__img { display: block; max-width: 100%; max-height: 100%; border-radius: 4px; object-fit: contain; }
.cc-lightbox__btn { position: absolute; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 50%; background: rgba(8, 41, 62, .7); font-size: 22px; line-height: 1; color: #fff; cursor: pointer; }
.cc-lightbox__btn:hover, .cc-lightbox__btn:focus-visible { border-color: var(--cc-lime, #8cc63f); background: var(--cc-lime, #8cc63f); color: var(--cc-navy, #08293e); outline: none; }
.cc-lightbox__close { top: 12px; right: 12px; }
.cc-lightbox__prev { left: 12px; top: 50%; margin-top: -24px; }
.cc-lightbox__next { right: 12px; top: 50%; margin-top: -24px; }
.cc-lightbox__count { position: absolute; left: 0; right: 0; bottom: 16px; font-size: 14px; text-align: center; color: #c8d3da; }
@media (max-width: 767px) { .cc-lightbox__prev, .cc-lightbox__next { top: auto; bottom: 8px; margin-top: 0; } .cc-lightbox__count { bottom: 22px; } }

/* Notes only logged-in editors see (missing settings, empty tabs) */
.cc-note { margin: 12px 0 0; padding: 10px 14px; border: 1px dashed var(--cc-lime, #8cc63f); border-radius: var(--cc-radius, 6px); font-size: 14px; line-height: 1.5; color: var(--cc-body, #454c41); }
