.ksv-bp-course-list,
.ksv-bp-course-archive,
.ksv-bp-course-detail,
.ksv-bp-portal-stats,
.ksv-bp-upcoming-courses,
.ksv-bp-filter-bar,
.ksv-bp-wrap {
--ksv-primary: var(
--ksv-bp-primary-color,
var(--gcid-primary-color, var(--et-global-color-primary, var(--wp--preset--color--primary, #2ea3f2)))
);
--ksv-text: #1f2933;
--ksv-text-soft: #4b5563;
--ksv-muted: #6b7280;
--ksv-border: #e3e8ee;
--ksv-surface: #fff;
--ksv-surface-soft: #f6f8fa;
--ksv-success: #1a7f37;
--ksv-success-bg: #e6f4ea;
--ksv-warning: #9a6700;
--ksv-warning-bg: #fff4d6;
--ksv-danger: #b42318;
--ksv-danger-bg: #fdecea;
--ksv-radius: 14px;
--ksv-radius-sm: 8px;
--ksv-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 4px 16px rgba(15, 23, 42, 0.05);
--ksv-shadow-hover: 0 2px 4px rgba(15, 23, 42, 0.06), 0 12px 28px rgba(15, 23, 42, 0.1);
font-family: inherit;
color: var(--ksv-text);
}
body.ksv-bp-hide-page-title .et_pb_title_container,
body.ksv-bp-hide-page-title .et_post_meta_wrapper,
body.ksv-bp-hide-page-title #left-area > .entry-title,
body.ksv-bp-hide-page-title #left-area > .post-meta {
display: none !important;
} .ksv-bp-filter-bar {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin: 0 0 1rem;
}
.ksv-bp-filter-bar__item {
display: inline-flex;
align-items: center;
gap: 0.45rem;
padding: 0.45rem 0.95rem;
border: 1px solid var(--ksv-border, #e3e8ee);
border-radius: 999px;
background: var(--ksv-surface, #fff);
color: var(--ksv-text, #1f2933);
font-size: 0.9rem;
font-weight: 600;
text-decoration: none !important;
transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ksv-bp-filter-bar__item:hover {
border-color: var(--ksv-primary, #2ea3f2);
color: var(--ksv-primary, #2ea3f2);
}
.ksv-bp-filter-bar__item.is-active {
background: var(--ksv-primary, #2ea3f2);
border-color: var(--ksv-primary, #2ea3f2);
color: #fff;
}
.ksv-bp-filter-bar__count {
display: inline-block;
min-width: 1.4em;
padding: 0 0.4em;
border-radius: 999px;
background: rgba(0, 0, 0, 0.06);
font-size: 0.78rem;
text-align: center;
line-height: 1.6;
}
.ksv-bp-filter-bar__item.is-active .ksv-bp-filter-bar__count {
background: rgba(255, 255, 255, 0.25);
} .ksv-bp-course-list,
.ksv-bp-course-archive {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 1.5rem;
padding: 0.5rem 0 1rem;
width: 100%;
} .ksv-bp-course-list[data-columns="1"],
.ksv-bp-course-archive[data-columns="1"] { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 601px) {
.ksv-bp-course-list[data-columns="2"],
.ksv-bp-course-archive[data-columns="2"],
.ksv-bp-course-list[data-columns="3"],
.ksv-bp-course-archive[data-columns="3"],
.ksv-bp-course-list[data-columns="4"],
.ksv-bp-course-archive[data-columns="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 901px) {
.ksv-bp-course-list[data-columns="3"],
.ksv-bp-course-archive[data-columns="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ksv-bp-course-list[data-columns="4"],
.ksv-bp-course-archive[data-columns="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.ksv-bp-course-list > .ksv-bp-card,
.ksv-bp-course-archive > .ksv-bp-card {
min-width: 0;
}
.ksv-bp-empty-courses {
grid-column: 1 / -1;
display: flex;
align-items: center;
gap: 0.85rem;
padding: 1.25rem 1.5rem;
background: var(--ksv-surface-soft);
border: 1px dashed var(--ksv-border);
border-radius: var(--ksv-radius);
color: var(--ksv-text-soft);
}
.ksv-bp-empty-courses p {
margin: 0;
font-size: 1rem;
font-weight: 500;
line-height: 1.45;
}
.ksv-bp-empty-courses .ksv-bp-icon-warning {
flex-shrink: 0;
width: 1.35rem;
height: 1.35rem;
color: var(--ksv-warning);
} .ksv-bp-card {
position: relative;
display: flex;
flex-direction: column;
border: 1px solid var(--ksv-border);
border-radius: var(--ksv-radius);
background: var(--ksv-surface);
box-shadow: var(--ksv-shadow);
overflow: hidden;
transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.ksv-bp-card:hover,
.ksv-bp-card:focus-within {
transform: translateY(-3px);
box-shadow: var(--ksv-shadow-hover);
border-color: color-mix(in srgb, var(--ksv-primary) 35%, var(--ksv-border));
}
.ksv-bp-card::before {
content: "";
position: absolute;
inset: 0 0 auto 0;
height: 4px;
background: var(--ksv-primary);
}
.ksv-bp-card--archive::before {
background: #9aa3ad;
}
.ksv-bp-card-top {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 0.5rem;
padding: 1.15rem 1.35rem 0;
}
.ksv-bp-card-body {
display: flex;
flex-direction: column;
flex: 1;
padding: 0.85rem 1.35rem 1.1rem;
}
.ksv-bp-card-title {
margin: 0 0 0.35rem;
font-size: 1.2rem;
font-weight: 700;
line-height: 1.3;
letter-spacing: -0.01em;
color: var(--ksv-text);
}
.ksv-bp-card-title a {
color: inherit;
text-decoration: none;
}
.ksv-bp-card-title a:hover,
.ksv-bp-card-title a:focus {
color: var(--ksv-primary);
}
.ksv-bp-card-sub {
display: flex;
flex-wrap: wrap;
gap: 0.35rem 0.75rem;
margin: 0 0 0.9rem;
font-size: 0.82rem;
color: var(--ksv-muted);
}
.ksv-bp-card-number {
font-variant-numeric: tabular-nums;
}
.ksv-bp-card-dates {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.45rem;
margin: 0 0 0.85rem;
padding: 0.6rem 0.8rem;
border-radius: var(--ksv-radius-sm);
background: var(--ksv-surface-soft);
font-size: 0.9rem;
color: var(--ksv-text-soft);
}
.ksv-bp-card-dates strong {
font-weight: 600;
color: var(--ksv-text);
font-variant-numeric: tabular-nums;
}
.ksv-bp-card-dates .ksv-bp-icon {
color: var(--ksv-primary);
}
.ksv-bp-card-dates--tba {
color: var(--ksv-muted);
font-style: italic;
}
.ksv-bp-card-dates--tba .ksv-bp-icon {
color: var(--ksv-muted);
}
.ksv-bp-card-dates-count {
color: var(--ksv-muted);
font-size: 0.85rem;
}
.ksv-bp-card-excerpt {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
margin: 0 0 1rem;
font-size: 0.92rem;
line-height: 1.55;
color: var(--ksv-text-soft);
}
.ksv-bp-card-facts {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
gap: 0.75rem 1rem;
margin: auto 0 0;
padding: 0.9rem 0 0;
border-top: 1px solid var(--ksv-border);
}
.ksv-bp-card-facts > div {
min-width: 0;
}
.ksv-bp-card-facts dt {
margin: 0 0 0.15rem;
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--ksv-muted);
}
.ksv-bp-card-facts dd {
margin: 0;
font-size: 0.95rem;
font-weight: 600;
color: var(--ksv-text);
font-variant-numeric: tabular-nums;
}
.ksv-bp-card .ksv-bp-progress {
margin-top: 0.85rem;
}
.ksv-bp-card-footer {
padding: 0 1.35rem 1.35rem;
}
.ksv-bp-card--archive .ksv-bp-card-excerpt {
margin-bottom: 0;
} .ksv-bp-chip {
display: inline-flex;
align-items: center;
gap: 0.4rem;
padding: 0.22rem 0.7rem;
border-radius: 999px;
font-size: 0.76rem;
font-weight: 600;
letter-spacing: 0.01em;
line-height: 1.5;
white-space: nowrap;
background: var(--ksv-surface-soft);
color: var(--ksv-text-soft);
border: 1px solid transparent;
}
.ksv-bp-chip--category {
background: var(--ksv-primary);
color: #fff;
}
.ksv-bp-chip--fortbildung {
background: color-mix(in srgb, var(--ksv-primary) 14%, #fff);
color: var(--ksv-primary);
border-color: color-mix(in srgb, var(--ksv-primary) 35%, transparent);
}
.ksv-bp-chip--outline {
background: transparent;
border-color: var(--ksv-border);
color: var(--ksv-muted);
font-variant-numeric: tabular-nums;
}
.ksv-bp-chip--success,
.ksv-bp-chip--warning,
.ksv-bp-chip--danger,
.ksv-bp-chip--muted {
padding-left: 0.55rem;
}
.ksv-bp-chip--success::before,
.ksv-bp-chip--warning::before,
.ksv-bp-chip--danger::before,
.ksv-bp-chip--muted::before {
content: "";
width: 0.45rem;
height: 0.45rem;
border-radius: 50%;
background: currentColor;
}
.ksv-bp-chip--success { background: var(--ksv-success-bg); color: var(--ksv-success); }
.ksv-bp-chip--warning { background: var(--ksv-warning-bg); color: var(--ksv-warning); }
.ksv-bp-chip--danger { background: var(--ksv-danger-bg); color: var(--ksv-danger); }
.ksv-bp-chip--muted { background: var(--ksv-surface-soft); color: var(--ksv-muted); } .ksv-bp-icon {
flex-shrink: 0;
color: var(--ksv-muted);
}
.ksv-bp-progress {
height: 6px;
background: #e6eaf0;
border-radius: 999px;
overflow: hidden;
}
.ksv-bp-progress-bar {
height: 100%;
background-color: var(--ksv-primary);
border-radius: 999px;
transition: width 0.4s ease;
}
.ksv-bp-progress-bar-warning { background: #e0a100 !important; }
.ksv-bp-progress-bar-full { background: var(--ksv-danger) !important; }
.ksv-bp-progress--meta {
margin-top: 0.5rem;
} .ksv-bp-button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
background: var(--ksv-primary);
color: #fff !important;
padding: 0.7rem 1.2rem;
border: 1px solid var(--ksv-primary);
border-radius: var(--ksv-radius-sm);
text-decoration: none !important;
cursor: pointer;
font-size: 0.95rem;
font-weight: 600;
line-height: 1.2;
text-align: center;
transition: filter 0.15s ease, background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.ksv-bp-button .ksv-bp-icon {
color: currentColor;
transition: transform 0.15s ease;
}
.ksv-bp-button:hover .ksv-bp-icon-arrow {
transform: translateX(3px);
}
.ksv-bp-button-primary:hover,
.ksv-bp-button-primary:focus,
.ksv-bp-button:not(.ksv-bp-button-outline):hover {
filter: brightness(0.92);
color: #fff !important;
}
.ksv-bp-button-outline {
background: transparent;
color: var(--ksv-primary) !important;
border-color: var(--ksv-primary);
}
.ksv-bp-button-outline:hover,
.ksv-bp-button-outline:focus {
background-color: var(--ksv-primary);
color: #fff !important;
filter: none;
}
.ksv-bp-button-block {
display: flex;
width: 100%;
box-sizing: border-box;
}
.ksv-bp-button-danger {
background: var(--ksv-danger);
border-color: var(--ksv-danger);
} .ksv-bp-stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 1rem;
}
.ksv-bp-stat {
position: relative;
padding: 1.25rem 1.25rem 1.1rem;
background: var(--ksv-surface);
border: 1px solid var(--ksv-border);
border-radius: var(--ksv-radius);
box-shadow: var(--ksv-shadow);
overflow: hidden;
}
.ksv-bp-stat::before {
content: "";
position: absolute;
inset: 0 auto 0 0;
width: 4px;
background: var(--ksv-primary);
}
.ksv-bp-stat-num {
display: block;
font-size: 2.2rem;
font-weight: 700;
line-height: 1.1;
letter-spacing: -0.02em;
color: var(--ksv-primary);
font-variant-numeric: tabular-nums;
}
.ksv-bp-stat-label,
.ksv-bp-stat > span:last-child {
display: block;
margin-top: 0.4rem;
font-size: 0.82rem;
font-weight: 600;
letter-spacing: 0.02em;
color: var(--ksv-muted);
} .ksv-bp-course-detail {
max-width: 1200px;
margin: 0 auto;
scroll-behavior: smooth;
}
.ksv-bp-theme-content .ksv-bp-course-detail {
padding: 2rem 1rem;
}
.ksv-bp-detail-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
column-gap: 2rem;
row-gap: 0;
align-items: start;
}
.ksv-bp-detail-header {
grid-column: 1 / -1;
grid-row: 1;
min-width: 0;
margin-bottom: 1.75rem;
padding-bottom: 1.5rem;
border-bottom: 1px solid var(--ksv-border);
}
.ksv-bp-detail-main {
grid-column: 1;
grid-row: 2;
min-width: 0;
}
.ksv-bp-detail-sidebar {
grid-column: 2;
grid-row: 2;
position: sticky;
top: 1.5rem;
align-self: start;
}
.ksv-bp-detail-chips {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 0.9rem;
}
.ksv-bp-detail-title {
margin: 0 0 0.75rem;
font-size: clamp(1.6rem, 2.6vw, 2.25rem);
font-weight: 700;
line-height: 1.2;
letter-spacing: -0.015em;
color: var(--ksv-text);
}
.ksv-bp-detail-period {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.5rem;
margin: 0;
color: var(--ksv-text-soft);
font-size: 1rem;
}
.ksv-bp-detail-period .ksv-bp-icon-calendar {
flex-shrink: 0;
color: var(--ksv-primary);
}
.ksv-bp-detail-period-count {
color: var(--ksv-muted);
}
.ksv-bp-card-heading {
margin: 0 0 1rem;
font-size: 1.1rem;
font-weight: 700;
letter-spacing: -0.005em;
}
.ksv-bp-card-intro {
margin: -0.5rem 0 1.25rem;
color: var(--ksv-text-soft);
font-size: 0.95rem;
line-height: 1.55;
}
.ksv-bp-description-card,
.ksv-bp-dates-card,
.ksv-bp-enrollment-card,
.ksv-bp-meta-card {
border: 1px solid var(--ksv-border);
border-radius: var(--ksv-radius);
padding: 1.6rem;
background: var(--ksv-surface);
box-shadow: var(--ksv-shadow);
margin-bottom: 1.5rem;
}
.ksv-bp-enrollment-card {
scroll-margin-top: 1.5rem;
}
.ksv-bp-meta-card {
margin-bottom: 0;
}
.ksv-bp-detail-sidebar .ksv-bp-scroll-to-enroll {
margin: 0 0 1rem;
padding: 0.9rem 1.2rem;
font-size: 1rem;
}
.ksv-bp-meta-list {
margin: 0;
}
.ksv-bp-meta-item {
margin: 0;
padding: 0.85rem 0;
border-bottom: 1px solid var(--ksv-border);
}
.ksv-bp-meta-item:first-child {
padding-top: 0;
}
.ksv-bp-meta-item:last-child {
border-bottom: 0;
padding-bottom: 0;
}
.ksv-bp-meta-item dt {
margin: 0 0 0.25rem;
font-size: 0.74rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--ksv-muted);
}
.ksv-bp-meta-item dd {
margin: 0;
font-size: 0.98rem;
font-weight: 500;
color: var(--ksv-text);
line-height: 1.45;
}
.ksv-bp-meta-hint {
display: block;
margin-top: 0.15rem;
font-size: 0.8rem;
font-weight: 400;
color: var(--ksv-muted);
} .ksv-bp-description {
max-width: 78ch;
font-size: 1.02rem;
line-height: 1.7;
color: var(--ksv-text-soft);
}
.ksv-bp-description p,
.ksv-bp-description ul,
.ksv-bp-description ol {
margin: 0 0 1.1rem;
}
.ksv-bp-description ul,
.ksv-bp-description ol {
padding-left: 1.4rem;
}
.ksv-bp-description li {
margin: 0 0 0.4rem;
}
.ksv-bp-description li::marker {
color: var(--ksv-primary);
}
.ksv-bp-description h2,
.ksv-bp-description h3,
.ksv-bp-description h4 {
margin: 1.6rem 0 0.6rem;
font-size: 1.05rem;
font-weight: 700;
color: var(--ksv-text);
}
.ksv-bp-description strong {
color: var(--ksv-text);
}
.ksv-bp-description a {
color: var(--ksv-primary);
text-decoration: underline;
text-underline-offset: 2px;
}
.ksv-bp-description img {
max-width: 100%;
height: auto;
border-radius: var(--ksv-radius-sm);
}
.ksv-bp-description > :first-child {
margin-top: 0;
}
.ksv-bp-description > :last-child {
margin-bottom: 0;
}
.ksv-bp-muted {
color: var(--ksv-muted);
font-style: italic;
} .ksv-bp-dates-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
gap: 0.85rem;
margin: 0;
}
.ksv-bp-date-card {
position: relative;
border: 1px solid var(--ksv-border);
border-left: 4px solid var(--ksv-primary);
border-radius: var(--ksv-radius-sm);
padding: 0.85rem 0.95rem;
background: var(--ksv-surface);
}
.ksv-bp-date-card--past {
border-left-color: #c5ccd4;
opacity: 0.7;
}
.ksv-bp-date-card-weekday {
font-size: 0.74rem;
font-weight: 600;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--ksv-muted);
}
.ksv-bp-date-card-date {
margin: 0.1rem 0 0.4rem;
font-weight: 700;
font-size: 1.05rem;
color: var(--ksv-text);
font-variant-numeric: tabular-nums;
}
.ksv-bp-date-card-time,
.ksv-bp-date-card-location,
.ksv-bp-date-card-desc {
display: flex;
align-items: center;
gap: 0.4rem;
font-size: 0.86rem;
color: var(--ksv-text-soft);
line-height: 1.4;
margin-top: 0.2rem;
}
.ksv-bp-date-card-time {
color: var(--ksv-text);
font-weight: 500;
}
.ksv-bp-date-card-desc {
display: block;
font-style: italic;
color: var(--ksv-muted);
}  .ksv-bp-hp {
position: absolute !important;
left: -10000px !important;
width: 1px;
height: 1px;
overflow: hidden;
}
.ksv-bp-course-detail .ksv-bp-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}
.ksv-bp-enroll-form {
max-width: none;
}
.ksv-bp-field {
margin-bottom: 1rem;
}
.ksv-bp-field label {
display: block;
margin-bottom: 0.4rem;
font-weight: 600;
font-size: 0.88rem;
color: var(--ksv-text);
}
.ksv-bp-enroll-form input:not([type="hidden"]):not([type="checkbox"]),
.ksv-bp-enroll-form select,
.ksv-bp-wrap textarea,
.ksv-bp-wrap select {
width: 100%;
max-width: 100%;
box-sizing: border-box;
min-height: 2.85rem;
border: 1px solid #cfd6de;
border-radius: var(--ksv-radius-sm);
font-size: 1rem;
line-height: 1.25;
font-family: inherit;
color: var(--ksv-text);
background-color: #fff;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ksv-bp-enroll-form input:not([type="hidden"]):not([type="checkbox"]):focus,
.ksv-bp-enroll-form select:focus,
.ksv-bp-wrap textarea:focus,
.ksv-bp-wrap select:focus {
outline: none;
border-color: var(--ksv-primary);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--ksv-primary) 20%, transparent);
}
.ksv-bp-enroll-form input:not([type="hidden"]):not([type="checkbox"]),
.ksv-bp-enroll-form select {
height: 2.85rem;
padding: 0 0.85rem;
}
.ksv-bp-enroll-form select {
appearance: none;
-webkit-appearance: none;
padding-right: 2.25rem;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23495057' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 0.85rem center;
}
.ksv-bp-wrap textarea,
.ksv-bp-wrap select {
padding: 0.65rem 0.85rem;
}
.ksv-bp-form-actions {
margin-top: 1.5rem;
margin-bottom: 0;
}
.ksv-bp-form-actions .ksv-bp-button {
padding: 0.85rem 1.6rem;
font-size: 1rem;
}
.ksv-bp-field-checkbox {
margin-bottom: 0.85rem;
padding: 0.85rem 1rem;
background: var(--ksv-surface-soft);
border-radius: var(--ksv-radius-sm);
}
.ksv-bp-checkbox-label {
display: flex;
align-items: flex-start;
gap: 0.7rem;
margin: 0;
font-size: 0.9rem;
line-height: 1.5;
font-weight: 400;
color: var(--ksv-text-soft);
cursor: pointer;
}
.ksv-bp-checkbox-label input[type="checkbox"] {
width: 1.05rem;
height: 1.05rem;
min-height: 0;
margin: 0.2rem 0 0;
flex-shrink: 0;
accent-color: var(--ksv-primary);
}
.ksv-bp-checkbox-label a {
color: var(--ksv-primary);
text-decoration: underline;
}
.ksv-bp-notice {
padding: 0.9rem 1.1rem;
border-radius: var(--ksv-radius-sm);
margin-bottom: 1.25rem;
border: 1px solid transparent;
background: var(--ksv-surface-soft);
line-height: 1.5;
}
.ksv-bp-notice-success {
background: var(--ksv-success-bg);
border-color: #b7e1c1;
color: #0f5132;
}
.ksv-bp-notice-error {
background: var(--ksv-danger-bg);
border-color: #f3c0bb;
color: #842029;
} .ksv-bp-wrap {
max-width: 720px;
margin: 0 auto;
padding: 1rem;
}
.ksv-bp-wrap h1 {
font-size: clamp(1.5rem, 2.4vw, 2rem);
margin: 0 0 1rem;
}
.ksv-bp-wrap form label {
display: block;
margin-bottom: 1rem;
font-weight: 600;
font-size: 0.9rem;
}
.ksv-bp-wrap form label select,
.ksv-bp-wrap form label textarea {
margin-top: 0.4rem;
font-weight: 400;
}
.ksv-bp-wrap ul {
padding: 1rem 1.25rem;
margin: 0 0 1.25rem;
list-style: none;
background: var(--ksv-surface-soft);
border-radius: var(--ksv-radius-sm);
}
.ksv-bp-wrap ul li {
margin: 0.25rem 0;
} .ksv-bp-upcoming-courses {
margin: 0;
}
.ksv-bp-upcoming-empty {
margin: 0;
font-size: 0.9rem;
color: var(--ksv-muted);
}
.ksv-bp-upcoming-list {
list-style: none;
margin: 0;
padding: 0;
}
.ksv-bp-upcoming-item {
margin: 0;
border-bottom: 1px solid var(--ksv-border);
}
.ksv-bp-upcoming-item:last-child {
border-bottom: none;
}
.ksv-bp-upcoming-link {
display: block;
padding: 0.85rem 0.5rem;
margin: 0 -0.5rem;
border-radius: var(--ksv-radius-sm);
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease;
}
.ksv-bp-upcoming-link:hover,
.ksv-bp-upcoming-link:focus {
background-color: var(--ksv-surface-soft);
color: inherit;
text-decoration: none;
}
.ksv-bp-upcoming-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 0.75rem;
}
.ksv-bp-upcoming-title {
font-size: 0.98rem;
font-weight: 600;
line-height: 1.35;
color: var(--ksv-text);
}
.ksv-bp-upcoming-link:hover .ksv-bp-upcoming-title {
color: var(--ksv-primary);
}
.ksv-bp-upcoming-date {
flex-shrink: 0;
font-size: 0.78rem;
font-weight: 700;
padding: 0.25rem 0.55rem;
border-radius: 6px;
background: color-mix(in srgb, var(--ksv-primary) 12%, #fff);
color: var(--ksv-primary);
white-space: nowrap;
font-variant-numeric: tabular-nums;
}
.ksv-bp-upcoming-type {
margin-top: 0.2rem;
font-size: 0.82rem;
color: var(--ksv-muted);
}
.ksv-bp-upcoming-meta {
margin-top: 0.35rem;
font-size: 0.8rem;
color: var(--ksv-muted);
}
.ksv-bp-upcoming-sep {
margin: 0 0.25rem;
}
.ksv-bp-upcoming-capacity {
margin-top: 0.55rem;
font-size: 0.8rem;
color: var(--ksv-text-soft);
}
.ksv-bp-upcoming-capacity .ksv-bp-progress {
margin-top: 0.35rem;
height: 4px;
}
.ksv-bp-widget-upcoming-courses .widget-title {
margin-bottom: 0.5rem;
} .ksv-bp-block-editor .ksv-bp-block-placeholder,
.ksv-bp-block-editor .ksv-bp-block-preview {
padding: 1rem;
border: 1px dashed #c3c4c7;
border-radius: 4px;
background: #f6f7f7;
} @media (max-width: 900px) {
.ksv-bp-detail-layout {
grid-template-columns: 1fr;
}
.ksv-bp-detail-header,
.ksv-bp-detail-main,
.ksv-bp-detail-sidebar {
grid-column: 1;
grid-row: auto;
}
.ksv-bp-detail-sidebar {
position: static;
}
.ksv-bp-scroll-to-enroll {
display: none;
}
}
@media (max-width: 600px) {
.ksv-bp-course-list,
.ksv-bp-course-archive,
.ksv-bp-course-list[data-columns],
.ksv-bp-course-archive[data-columns] {
grid-template-columns: minmax(0, 1fr);
gap: 1rem;
}
.ksv-bp-card-top {
padding: 1rem 1.1rem 0;
}
.ksv-bp-card-body {
padding: 0.75rem 1.1rem 1rem;
}
.ksv-bp-card-footer {
padding: 0 1.1rem 1.1rem;
}
.ksv-bp-card-title {
font-size: 1.1rem;
}
.ksv-bp-card-facts {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ksv-bp-card:hover,
.ksv-bp-card:focus-within {
transform: none;
} .ksv-bp-stats-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.75rem;
}
.ksv-bp-stat {
padding: 1rem 1rem 0.9rem;
}
.ksv-bp-stat-num {
font-size: 1.7rem;
}
.ksv-bp-stat-label,
.ksv-bp-stat > span:last-child {
font-size: 0.76rem;
}
.ksv-bp-course-detail .ksv-bp-row {
grid-template-columns: 1fr;
}
.ksv-bp-detail-title {
font-size: 1.5rem;
}
.ksv-bp-description-card,
.ksv-bp-dates-card,
.ksv-bp-enrollment-card,
.ksv-bp-meta-card {
padding: 1.2rem;
}
}
@media (min-width: 601px) and (max-width: 900px) {
.ksv-bp-course-list:not([data-columns]),
.ksv-bp-course-archive:not([data-columns]) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (prefers-reduced-motion: reduce) {
.ksv-bp-card,
.ksv-bp-button,
.ksv-bp-progress-bar {
transition: none;
}
.ksv-bp-card:hover {
transform: none;
}
} .ksv-bp-enroll-form .ksv-bp-field-hint {
margin: -0.25rem 0 1rem;
font-size: 0.9rem;
color: var(--ksv-muted);
} .ksv-bp-enroll-form .ksv-bp-qualifications {
margin: 0 0 1.25rem;
padding: 1rem 1.1rem 0.5rem;
border: 1px solid var(--ksv-border);
border-radius: 10px;
background: color-mix(in srgb, var(--ksv-bp-primary-color) 4%, #fff);
}
.ksv-bp-enroll-form .ksv-bp-qualifications__title {
padding: 0 0.35rem;
font-weight: 600;
}
.ksv-bp-enroll-form .ksv-bp-qualifications__intro {
margin: 0 0 0.75rem;
font-size: 0.9rem;
color: var(--ksv-muted);
}
.ksv-bp-enroll-form .ksv-bp-qualification__desc {
display: block;
margin-top: 0.2rem;
font-size: 0.85rem;
color: var(--ksv-muted);
}
.ksv-bp-meta-qualifications {
margin: 0;
padding: 0 0 0 1.1rem;
}
.ksv-bp-meta-qualifications li {
margin: 0 0 0.35rem;
}
.ksv-bp-meta-hint--inline {
display: inline;
margin: 0;
}