/* Training & Education (#297): course listing, filters, calendar and course facts. Scoped to .wr-training. */
.wr-training { --wr-red: #aa2525; --wr-steel: #758fa9; --wr-line: #dfe4ea; --wr-soft: #f5f7f9; margin: 0 0 40px; }
.wr-training *, .wr-training *::before, .wr-training *::after { box-sizing: border-box; }

.wr-training-filters { background: var(--wr-soft); border-top: 3px solid var(--wr-red); padding: 20px 24px; margin: 0 0 28px; }
.wr-training-filters-title { font-size: 22px; margin: 0 0 14px; color: #222; }
.wr-training-filters-row { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: flex-end; }
.wr-training .wr-field { display: flex; flex-direction: column; flex: 1 1 200px; margin: 0; font-weight: 400; }
.wr-training .wr-field span { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--wr-steel); margin-bottom: 6px; font-weight: 600; }
.wr-training .wr-field input, .wr-training .wr-field select { margin: 0; height: 42px; border: 1px solid var(--wr-line); background: #fff; width: 100%; }
.wr-training .wr-clear { margin: 0; height: 42px; background: transparent; color: var(--wr-red); border: 1px solid var(--wr-red); padding: 0 18px; text-transform: uppercase; font-size: 13px; cursor: pointer; }
.wr-training .wr-clear:hover { background: var(--wr-red); color: #fff; }
.wr-training-count { margin: 12px 0 0; font-size: 14px; color: #555; }

.wr-training-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; }
.wr-course { display: flex; flex-direction: column; border: 1px solid var(--wr-line); background: #fff; transition: box-shadow .2s ease; }
.wr-course:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.wr-course[hidden] { display: none; }
.wr-course-head { padding: 18px 20px 12px; border-bottom: 1px solid var(--wr-line); }
.wr-course-type { display: inline-block; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #fff; background: var(--wr-steel); padding: 3px 9px; margin-bottom: 10px; }
.wr-course-title { font-size: 18px; line-height: 1.35; margin: 0 0 6px; }
.wr-course-title a { color: #222; }
.wr-course-title a:hover { color: var(--wr-red); }
.wr-course-meta { margin: 0; font-size: 14px; color: #666; }
.wr-course-body { padding: 14px 20px 18px; margin-top: auto; }
.wr-course-note { font-size: 14px; color: #666; margin: 0 0 10px; }

.wr-sessions { list-style: none; margin: 0 0 10px; padding: 0; }
.wr-session { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 0; border-bottom: 1px dashed var(--wr-line); margin: 0; }
.wr-session:last-child { border-bottom: 0; }
.wr-session-when { flex: 1 1 100%; font-size: 14px; color: #333; }
.wr-session-price { font-weight: 700; color: #222; }
.wr-course-buy { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.wr-training .wr-btn, .wr-btn { margin: 0; background: var(--wr-red, #aa2525); border: 1px solid var(--wr-red, #aa2525); color: #fff; font-size: 13px; padding: 0 16px; min-height: 36px; line-height: 34px; }
.wr-training .wr-btn:hover, .wr-btn:hover { background: #8d1d1d; border-color: #8d1d1d; color: #fff; }
.wr-training .wr-btn--ghost { background: transparent; color: var(--wr-red); }
.wr-training .wr-btn--ghost:hover { background: var(--wr-red); color: #fff; }
.wr-session .wr-btn { margin-left: auto; }
.wr-training-empty { grid-column: 1 / -1; text-align: center; padding: 30px; background: var(--wr-soft); margin: 0; }

.wr-training-calendar .wr-cal-month { margin: 0 0 24px; }
.wr-cal-title { font-size: 20px; margin: 0 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--wr-red); }
.wr-cal-list { list-style: none; margin: 0; padding: 0; }
.wr-cal-item { display: grid; grid-template-columns: 70px 1fr auto; gap: 12px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--wr-line); margin: 0; }
.wr-cal-day { font-weight: 700; color: var(--wr-red); }
.wr-cal-where { color: #666; font-size: 14px; }

/* Training landing pages: class-type cards */
.wr-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; margin: 10px 0 40px; }
.wr-type-card { border: 1px solid #dfe4ea; border-top: 3px solid #aa2525; padding: 22px 22px 20px; background: #fff; display: flex; flex-direction: column; }
.wr-type-card h3 { font-size: 20px; margin: 0 0 8px; }
.wr-type-card p { font-size: 15px; color: #555; flex: 1; }
.wr-type-card .wr-btn { align-self: flex-start; }

/* Class pages: links between the class types */
.wr-type-nav { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 26px; padding: 0; }
.wr-type-nav li { margin: 0; }
.wr-type-nav a { display: block; padding: 8px 14px; border: 1px solid #dfe4ea; color: #333; font-size: 14px; }
.wr-type-nav a:hover, .wr-type-nav .is-current a { border-color: #aa2525; background: #aa2525; color: #fff; }

/* Single course page */
.wr-course-facts { list-style: none; margin: 0 0 16px; padding: 12px 16px; background: #f5f7f9; border-left: 3px solid #aa2525; }
.wr-course-facts li { margin: 0 0 4px; font-size: 15px; }

@media (max-width: 549px) {
    .wr-training-filters { padding: 16px; }
    .wr-training-list { grid-template-columns: 1fr; }
    .wr-cal-item { grid-template-columns: 60px 1fr; }
    .wr-cal-where { grid-column: 2; }
    .wr-session .wr-btn { margin-left: 0; }
}

/* Round 2: course description shown open, related courses */
.wr-course-description { margin: 0 0 18px; }
.wr-related { margin: 30px 0 40px; }
.wr-related-title { font-size: 22px; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid #aa2525; }
