/* ========================================================================
   2meet InfoCards — 課程公開前台樣式（v2.6.0）
   ======================================================================== */

/* ── 課程列表頁（/courses/）──────────────────────────────────────────── */

.tmeetic-course-listing {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--2meet-space-md, 24px) var(--2meet-space-sm, 16px);
}

.tmeetic-course-listing__header {
  text-align: center;
  margin-bottom: 32px;
}

.tmeetic-course-listing__header h1 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 8px;
}

.tmeetic-course-listing__subtitle {
  color: var(--2meet-muted);
  font-size: 1rem;
}

/* ── 篩選列 ──────────────────────────────────────────────────────────── */

.tmeetic-course-filter {
  margin-bottom: 32px;
}

.tmeetic-course-filter__row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.tmeetic-course-filter__field {
  flex: 1 1 160px;
  min-width: 120px;
}

.tmeetic-input,
.tmeetic-select {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--color-bg-divider);
  border-radius: var(--2meet-radius-btn, 8px);
  font-size: 0.9rem;
  background: var(--color-bg-secondary);
  box-sizing: border-box;
}

.tmeetic-input:focus,
.tmeetic-select:focus {
  outline: none;
  border-color: var(--2meet-primary);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--2meet-primary) 12%, transparent);
}

/* ── 課程卡片格線：桌面固定 3 欄 ─────────────────────────────────────── */

.tmeetic-course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.tmeetic-course-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}

.tmeetic-course-card {
  background: var(--color-bg-secondary);
  border-radius: var(--2meet-radius-card, 16px);
  border: 1px solid var(--2meet-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: box-shadow .2s ease-out, transform .2s ease-out, border-color .2s ease-out;
}

.tmeetic-course-card:hover {
  box-shadow: var(--2meet-shadow-md, 0 4px 16px rgba(43, 29, 18, .10));
  transform: translateY(-2px);
  border-color: transparent;
}

.tmeetic-course-card__thumb {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.tmeetic-course-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease-out;
}

.tmeetic-course-card:hover .tmeetic-course-card__thumb img {
  transform: scale(1.05);
}

.tmeetic-course-card__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.tmeetic-course-card__cat {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--2meet-primary);
  text-transform: uppercase;
  letter-spacing: .05em;
}

.tmeetic-course-card__title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 0;
}

.tmeetic-course-card__title a {
  color: var(--2meet-text);
  text-decoration: none;
}

.tmeetic-course-card__title a:hover {
  color: var(--2meet-primary);
}

.tmeetic-course-card__details {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
}

.tmeetic-course-card__vendor {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: var(--2meet-muted);
  margin: 0;
}

.tmeetic-course-card__cat {
  display: inline-flex;
  align-items: center;
  font-size: 0.82rem;
  color: var(--2meet-muted);
}

.tmeetic-course-card__vendor + .tmeetic-course-card__cat::before {
  content: '·';
  margin-right: 8px;
  color: var(--2meet-border);
}

.tmeetic-course-card__vendor-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.tmeetic-course-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-size: 0.85rem;
}

.tmeetic-course-card__fee {
  font-weight: 700;
  color: var(--2meet-accent);
}

.tmeetic-course-card__next {
  color: var(--2meet-muted);
  display: flex;
  align-items: center;
  gap: 4px;
}

.tmeetic-course-card__cta {
  margin-top: auto;
  text-align: center;
}

/* ── 徽章 ────────────────────────────────────────────────────────────── */

.tmeetic-badge {
  font-size: 0.72rem;
  padding: 2px 7px;
  border-radius: var(--radius-xl);
  font-weight: 600;
}

.tmeetic-badge--warn {
  background: var(--color-apricot-lightest);
  color: var(--color-apricot-dark);
}

.tmeetic-badge--full {
  background: var(--color-pink-lightest);
  color: var(--color-pink-dark);
}

/* ── 課程詳情頁（/courses/{slug}/）──────────────────────────────────── */

.tmeetic-course-single {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--2meet-space-md, 24px) var(--2meet-space-sm, 16px);
}

.tmeetic-course-single__hero {
  position: relative;
  margin-bottom: 32px;
}

.tmeetic-course-single__cover {
  width: 100%;
  max-height: 400px;
  object-fit: cover;
  border-radius: var(--2meet-radius-card, 16px);
  margin-bottom: 20px;
}

.tmeetic-course-single__hero-body h1 {
  font-size: 1.8rem;
  font-weight: 800;
  margin: 8px 0 12px;
}

.tmeetic-course-single__vendor {
  color: var(--2meet-muted);
  font-size: 0.9rem;
  margin: 0 0 12px;
}

.tmeetic-course-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.9rem;
  color: var(--2meet-muted);
  margin-bottom: 16px;
}

.tmeetic-course-single__layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 32px;
  align-items: start;
}

@media (max-width: 768px) {
  .tmeetic-course-single__layout {
    grid-template-columns: 1fr;
  }
}

.tmeetic-course-section {
  margin-bottom: 32px;
}

.tmeetic-course-section h2 {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--2meet-primary);
}

.tmeetic-course-desc {
  line-height: 1.8;
  color: var(--2meet-text);
}

.tmeetic-course-sidebar-card {
  background: var(--2meet-surface);
  border: 1px solid var(--color-bg-divider);
  border-radius: var(--2meet-radius-card, 16px);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tmeetic-course-sidebar-card h3,
.tmeetic-sidebar-heading {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
}

/* ── 時段列表 ────────────────────────────────────────────────────────── */

.tmeetic-session-list,
.tmeetic-schedule-sessions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tmeetic-session-item {
  border: 1px solid var(--color-bg-divider);
  border-radius: var(--2meet-radius-btn, 8px);
  overflow: hidden;
  background: var(--color-bg-secondary);
}

.tmeetic-session-item.is-full {
  background: var(--color-bg-tertiary);
  opacity: .85;
}

.tmeetic-session-item__info {
  padding: 14px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.tmeetic-session-date {
  font-size: 1rem;
  color: var(--2meet-text);
}

.tmeetic-session-location {
  color: var(--2meet-muted);
  font-size: 0.85rem;
}

.tmeetic-session-seats {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--2meet-accent);
}

.is-full .tmeetic-session-seats {
  color: var(--color-pink-dark);
}

.tmeetic-session-deadline {
  font-size: 0.78rem;
  color: var(--color-text-tertiary);
}

.tmeetic-btn--disabled {
  background: var(--color-gray-light);
  color: var(--color-text-tertiary);
  cursor: not-allowed;
  border: none;
  padding: 8px 20px;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
}

.tmeetic-text--danger {
  color: var(--color-error);
}

.tmeetic-session-item__action {
  padding: 0 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}

.tmeetic-session-item__cal-link {
  font-size: 0.82rem;
  color: var(--2meet-muted);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s;
}
.tmeetic-session-item__cal-link:hover {
  color: var(--2meet-primary);
  text-decoration: underline;
}

/* ── Inline 報名表單 ─────────────────────────────────────────────────── */

.tmeetic-enroll-form {
  border-top: 1px solid var(--color-bg-divider);
  background: var(--2meet-surface);
}

.tmeetic-enroll-form__inner {
  padding: 16px;
}

.tmeetic-enroll-form__notice {
  padding: 10px 14px;
  border-radius: var(--2meet-radius-btn, 8px);
  margin-bottom: 12px;
  font-size: 0.88rem;
}

.tmeetic-enroll-form__notice--warn {
  background: color-mix(in oklch, var(--color-warning) 8%, var(--2meet-surface));
  color: var(--color-apricot-dark);
  border: 1px solid color-mix(in oklch, var(--color-warning) 28%, var(--2meet-border));
  border-radius: var(--radius-sm);
}

.tmeetic-form-row {
  margin-bottom: 12px;
}

.tmeetic-form-row label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--2meet-text);
}

.tmeetic-form-row .required {
  color: var(--2meet-accent);
}

.tmeetic-form-row .tmeetic-input {
  font-weight: 400;
}

.tmeetic-form-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.tmeetic-enroll-form__result {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: var(--2meet-radius-btn, 8px);
  font-size: 0.88rem;
}

.tmeetic-enroll-form__result.success {
  background: var(--color-green-lightest);
  color: var(--color-green-dark);
}

.tmeetic-enroll-form__result.error {
  background: var(--color-pink-lightest);
  color: var(--color-pink-dark);
}

/* ── Vendor 個人課程時間表（/@slug/courses/）──────────────────────────── */

.tmeetic-vendor-schedule {
  max-width: 860px;
  margin: 0 auto;
  padding: var(--2meet-space-md, 24px) var(--2meet-space-sm, 16px);
}

.tmeetic-vendor-schedule__header {
  margin-bottom: 28px;
}

.tmeetic-vendor-schedule__back {
  display: inline-block;
  color: var(--2meet-primary);
  text-decoration: none;
  font-size: 0.9rem;
  margin-bottom: 8px;
}

.tmeetic-vendor-schedule__header h1 {
  font-size: 1.6rem;
  font-weight: 800;
  margin: 0;
}

.tmeetic-schedule-course {
  border: 1px solid var(--color-bg-divider);
  border-radius: var(--2meet-radius-card, 16px);
  overflow: hidden;
  margin-bottom: 24px;
  background: var(--color-bg-secondary);
}

.tmeetic-schedule-course__header {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: var(--2meet-surface);
  border-bottom: 1px solid var(--color-bg-divider);
  align-items: flex-start;
}

.tmeetic-schedule-course__thumb {
  width: 80px;
  height: 60px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
}

.tmeetic-schedule-course__meta h2 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 4px 0 6px;
}

.tmeetic-schedule-course__meta h2 a {
  color: var(--2meet-text);
  text-decoration: none;
}

.tmeetic-course-fee {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--2meet-accent);
}

.tmeetic-schedule-sessions {
  padding: 12px 16px;
}

/* ── HP Explore 嵌入區塊 ─────────────────────────────────────────────── */

.tmeetic-explore-courses {
  max-width: 1100px;
  margin: 48px auto;
  padding: 0 16px;
}

.tmeetic-explore-courses__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.tmeetic-explore-courses__header h2 {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0;
}

.tmeetic-explore-courses__more {
  font-size: 0.9rem;
  color: var(--2meet-primary);
  text-decoration: none;
  font-weight: 600;
}

.tmeetic-course-card--sm .tmeetic-course-card__title {
  font-size: 0.9rem;
}

/* ── Vendor Profile 課程注入（方案 A）──────────────────────────────── */

.tmeetic-vendor-courses {
  margin-top: 28px;
}

.tmeetic-vendor-courses__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.tmeetic-vendor-courses__header h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0;
}

/* ── 共用按鈕（若主題未定義）──────────────────────────────────────────── */

.tmeetic-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: var(--2meet-radius-btn, 8px);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  border: 2px solid transparent;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}

.tmeetic-btn--primary {
  background: var(--2meet-primary);
  color: var(--color-text-inverse);
  border-color: var(--2meet-primary);
}

.tmeetic-btn--primary:hover {
  background: var(--color-green-dark);
  border-color: var(--color-green-dark);
  color: var(--color-text-inverse);
}

.tmeetic-btn--ghost {
  background: transparent;
  color: var(--2meet-primary);
  border-color: var(--2meet-primary);
}

.tmeetic-btn--ghost:hover {
  background: color-mix(in oklch, var(--2meet-primary) 8%, transparent);
}

.tmeetic-btn--outline {
  background: transparent;
  color: var(--2meet-accent);
  border-color: var(--2meet-accent);
}

.tmeetic-btn--outline:hover {
  background: color-mix(in oklch, var(--2meet-secondary, var(--2meet-primary)) 10%, transparent);
}

.tmeetic-btn--outline.is-subscribed {
  background: var(--2meet-accent);
  color: var(--color-text-inverse);
  cursor: default;
}

.tmeetic-btn--sm {
  padding: 6px 14px;
  font-size: 0.85rem;
}

.tmeetic-btn--xs {
  padding: 3px 10px;
  font-size: 0.8rem;
}

.tmeetic-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
}

/* ── 加購材料 ─────────────────────────────────────────────────────── */

.tmeetic-addons-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tmeetic-addon-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color .15s;
}

.tmeetic-addon-item:hover {
  border-color: var(--2meet-accent);
}

.tmeetic-addon-item input[type="checkbox"] {
  flex-shrink: 0;
}

.tmeetic-addon-item__name {
  flex: 1;
}

.tmeetic-addon-item__price {
  font-weight: 600;
  color: var(--2meet-accent);
  white-space: nowrap;
}

.tmeetic-materials-list--addon li {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tmeetic-muted {
  color: var(--2meet-muted);
  font-size: 0.9rem;
}

.tmeetic-empty-state {
  text-align: center;
  padding: 48px 16px;
  color: var(--2meet-muted);
}

/* ── 課程卡片視覺徽章（v2.5.1）──────────────────────────────── */
.tmeetic-course-card__thumb {
  position: relative;
  display: block;
}

.tmeetic-course-card__badges {
  position: absolute;
  bottom: 8px;
  left: 8px;
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.tmeetic-course-card__badges--inline {
  position: static;
  padding: 8px 12px 0;
}

.tmeetic-course-card__badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.4;
}

.tmeetic-course-card__badge--free {
  background: var(--color-green-primary);
  color: var(--color-text-inverse);
}

.tmeetic-course-card__badge--online {
  background: var(--color-green-primary);
  color: var(--color-text-inverse);
}

.tmeetic-course-card__badge--hot {
  background: var(--color-terra-primary);
  color: var(--color-text-inverse);
}

/* ── 課程評分 / 留言（v3.1.0）──────────────────────────────────────────── */

/* 平均星評摘要（header 下方） */
.tmeetic-review-summary {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .875rem;
  color: var(--2meet-muted);
  margin-top: 6px;
  margin-bottom: var(--2meet-space-xs);
}

.tmeetic-review-summary__stars {
  color: var(--color-apricot-medium);
  font-size: 1rem;
  letter-spacing: 1px;
}

.tmeetic-review-summary__score {
  font-weight: 700;
  color: var(--2meet-text);
}

/* 評分列表 */
.tmeetic-review-list {
  list-style: none;
  margin: var(--2meet-space-sm) 0 0;
  padding: 0;
}

.tmeetic-review-item {
  padding: var(--2meet-space-sm) 0;
  border-bottom: 1px solid var(--2meet-border);
}

.tmeetic-review-item:last-child {
  border-bottom: none;
}

.tmeetic-review-item__stars {
  color: var(--color-apricot-medium);
  font-size: 1.1rem;
  letter-spacing: 1px;
}

.tmeetic-review-item__text {
  font-size: .9375rem;
  margin: 6px 0 4px;
  line-height: 1.6;
  color: var(--2meet-text);
}

.tmeetic-review-item__meta {
  font-size: .8125rem;
  color: var(--2meet-muted);
}

.tmeetic-review-empty {
  color: var(--2meet-muted);
  font-size: .875rem;
  margin-top: var(--2meet-space-xs);
}

/* 平均星評摘要（課程 hero） */
.tmeetic-review-summary {
  font-size: .9375rem;
  color: var(--color-apricot-medium);
  margin-top: var(--2meet-space-xs);
}
.tmeetic-review-summary__count {
  color: var(--2meet-muted);
  font-size: .875rem;
}

/* Vendor 回覆區塊 */
.tmeetic-review-item__reply {
  margin-top: 8px;
  padding: 10px 14px;
  background: color-mix(in oklch, var(--2meet-primary) 6%, var(--2meet-surface));
  border: 1px solid color-mix(in oklch, var(--2meet-primary) 18%, var(--2meet-border));
  border-radius: var(--radius-sm);
  font-size: .875rem;
  color: var(--2meet-text);
}
.tmeetic-review-item__reply::before {
  content: '↳ ';
  color: var(--2meet-primary);
  font-weight: 600;
}

/* 評分表單 */
.tmeetic-review-form {
  margin-top: var(--2meet-space-sm);
}

/* 星評 radio — 右到左排列，讓 CSS ~ 選擇器正確高亮 */
.tmeetic-star-input {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 4px;
  margin-bottom: var(--2meet-space-sm);
}

.tmeetic-star-input input[type="radio"] {
  display: none;
}

.tmeetic-star-input label {
  cursor: pointer;
  font-size: 2rem;
  color: var(--color-bg-divider);
  transition: color .1s;
}

/* 選中及其後面所有 label 高亮（因 flex-direction: row-reverse，~ 選到更低分） */
.tmeetic-star-input input[type="radio"]:checked ~ label,
.tmeetic-star-input label:hover,
.tmeetic-star-input label:hover ~ label {
  color: var(--color-apricot-medium);
}

/* ── v3.3.0：市集排序工具列 ──────────────────────────────────────────── */

.tmeetic-market-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 16px 0;
}

.tmeetic-market-toolbar__label {
  font-size: .875rem;
  color: var(--2meet-muted);
  white-space: nowrap;
}

.tmeetic-market-sort {
  padding: 8px 12px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-btn, 999px);
  background: var(--color-bg-secondary);
  font-size: .875rem;
  cursor: pointer;
  transition: border-color .15s ease-out;
}

.tmeetic-market-sort:hover {
  border-color: color-mix(in oklch, var(--2meet-primary) 50%, var(--2meet-border));
}

.tmeetic-market-sort:focus {
  outline: 2px solid var(--2meet-primary);
  outline-offset: 2px;
}

/* ── 課程卡片評分徽章 ─────────────────────────────────────────────────── */

.tmeetic-course-card__rating {
  font-size: .8125rem;
  color: var(--color-apricot-medium);
  margin-top: 4px;
}

/* ── v3.3.0：學員報名記錄頁 ──────────────────────────────────────────── */

.tmeetic-my-enrollments .tmeetic-review-done {
  color: var(--color-apricot-medium);
  font-size: .875rem;
}

.tmeetic-my-enrollments .tmeetic-muted {
  color: var(--2meet-muted);
  font-size: .875rem;
}

/* ── v3.4.0：市集搜尋框 ──────────────────────────────────────────────── */

.tmeetic-market-search {
  position: relative;
  margin-top: 12px;
  max-width: 480px;
}

.tmeetic-market-search__input {
  width: 100%;
  padding: 10px 40px 10px 16px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-btn, 999px);
  background: var(--color-bg-secondary);
  font-size: .9375rem;
  color: var(--2meet-text);
  box-sizing: border-box;
  transition: border-color .2s;
}

.tmeetic-market-search__input:hover {
  border-color: color-mix(in oklch, var(--2meet-primary) 50%, var(--2meet-border));
}

.tmeetic-market-search__input:focus {
  outline: none;
  border-color: var(--2meet-primary);
}

.tmeetic-market-search__input::placeholder {
  color: var(--2meet-muted);
}

.tmeetic-market-search__clear {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--2meet-muted);
  font-size: .875rem;
  text-decoration: none;
  line-height: 1;
}

.tmeetic-market-search__clear:hover {
  color: var(--2meet-text);
}

/* -----------------------------------------------------------------------
   分頁導航
   ----------------------------------------------------------------------- */
.tmeetic-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 32px 0 8px;
  flex-wrap: wrap;
}

.tmeetic-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 10px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-pill, 999px);
  color: var(--2meet-text);
  font-size: .875rem;
  text-decoration: none;
  transition: background .15s, border-color .15s;
}

.tmeetic-pagination__btn:hover {
  background: var(--2meet-surface);
  border-color: var(--2meet-primary);
  color: var(--2meet-primary);
}

.tmeetic-pagination__btn.is-active {
  background: var(--2meet-primary);
  border-color: var(--2meet-primary);
  color: var(--color-text-inverse);
  font-weight: 600;
  pointer-events: none;
}

/* ── v1.3.0：難度 badge ─────────────────────────────────────────────── */

.tmeetic-course-card__difficulty,
.tmeetic-difficulty-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--2meet-radius-pill, 999px);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.6;
  white-space: nowrap;
}

.tmeetic-difficulty--all_levels   { background: var(--color-blue-lightest); color: var(--color-blue-dark); }
.tmeetic-difficulty--beginner     { background: var(--color-green-lightest); color: var(--color-green-dark); }
.tmeetic-difficulty--intermediate { background: var(--color-apricot-lightest); color: var(--color-apricot-dark); }
.tmeetic-difficulty--advanced     { background: var(--color-pink-lightest); color: var(--color-pink-dark); }

/* ── v2.0.0：上課形式 badge ─────────────────────────────────────────── */

.tmeetic-course-card__location-type,
.tmeetic-location-type-badge {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.tmeetic-location-type--offline { background: var(--color-green-lightest); color: var(--color-green-dark); }
.tmeetic-location-type--online  { background: var(--color-blue-lightest); color: var(--color-blue-dark); }
.tmeetic-location-type--hybrid  { background: var(--color-purple-lightest); color: var(--color-purple-dark); }

/* ── v1.3.0：標籤 chips ─────────────────────────────────────────────── */

.tmeetic-course-card__tags,
.tmeetic-tag-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.tmeetic-tag-chip {
  display: inline-block;
  padding: 4px 8px;
  border-radius: var(--2meet-radius-pill, 999px);
  background: var(--2meet-surface);
  border: 1px solid var(--2meet-border);
  font-size: 0.75rem;
  color: var(--2meet-muted);
  white-space: nowrap;
  transition: border-color .15s ease-out, color .15s ease-out;
}

.tmeetic-tag-chip:hover {
  border-color: var(--2meet-primary);
  color: var(--2meet-primary);
}

/* ── v1.3.0：難度篩選列 ─────────────────────────────────────────────── */

.tmeetic-difficulty-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 4px;
}

.tmeetic-difficulty-filter__label {
  font-size: .875rem;
  color: var(--2meet-muted);
  white-space: nowrap;
}

.tmeetic-market-difficulty {
  padding: 6px 10px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-btn, 999px);
  background: var(--color-bg-secondary);
  font-size: .875rem;
  cursor: pointer;
}

.tmeetic-market-difficulty:focus {
  outline: 2px solid var(--2meet-primary);
  outline-offset: 2px;
}

/* ── v1.3.0：課程詳情頁標籤區塊 ─────────────────────────────────────── */

.tmeetic-course-tags-section .tmeetic-tag-chips {
  margin-top: 0;
}

/* =======================================================
   v1.4.0 — 材料清單 / 年齡 badge / 試堂
   ======================================================= */

/* 年齡 badge */
.tmeetic-age-badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: var(--radius-md);
	font-size: .75rem;
	font-weight: 600;
	background: var(--color-blue-lightest);
	color: var(--color-blue-dark);
}

/* 材料清單 */
.tmeetic-materials-label {
	font-weight: 600;
	margin: 8px 0 4px;
}
.tmeetic-materials-list {
	margin: 0 0 8px 1.2em;
	padding: 0;
}
.tmeetic-materials-list li {
	margin-bottom: 2px;
}
.tmeetic-materials-fee {
	font-size: .85em;
	color: var(--color-text-tertiary);
	margin-left: 4px;
}

/* 試堂資訊卡 */
.tmeetic-trial-card {
	background: color-mix(in oklch, var(--color-apricot-medium) 10%, var(--2meet-surface));
	border: 1px solid color-mix(in oklch, var(--color-apricot-medium) 28%, var(--2meet-border));
	border-radius: var(--radius-sm);
	padding: var(--2meet-space-sm);
}
.tmeetic-trial-card h2 {
	font-size: 1rem;
	margin: 0 0 6px;
	color: var(--color-apricot-dark);
}

/* 試堂 radio 切換 */
.tmeetic-trial-toggle__label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}
.tmeetic-radio-group {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}
.tmeetic-radio-label {
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}

/* ── WCAG 2.1 AA 無障礙修補（v2.6.1）─────────────────────────────────────
   1. 鍵盤焦點可見性（:focus-visible）
   2. 觸控目標最小尺寸 44×44 px
   3. touch-action: manipulation（消除 300 ms 延遲）
   4. prefers-reduced-motion（尊重系統動態縮減設定）
   ─────────────────────────────────────────────────────────────────────── */

/* 1. 鍵盤焦點環（覆蓋 outline: none，僅對鍵盤觸發） */
.tmeetic-btn:focus-visible,
.tmeetic-pagination__btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
  outline: 2px solid var(--2meet-primary) !important;
  outline-offset: 2px !important;
}

/* 滑鼠點擊時不顯示焦點環 */
.tmeetic-btn:focus:not(:focus-visible),
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible) {
  outline: none;
}

/* 搜尋框焦點補 box-shadow（原只有 border，對比不足） */
.tmeetic-market-search__input:focus {
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--2meet-primary) 18%, transparent);
}

/* 2. 觸控目標：主要按鈕與分頁 ≥ 44px */
.tmeetic-btn {
  min-height: 44px;
}

.tmeetic-pagination__btn {
  min-height: 44px;
  min-width: 44px;
}

@media (max-width: 768px) {
  .tmeetic-btn--sm,
  .tmeetic-btn--xs {
    min-height: 44px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  /* 手機端輸入框高度 */
  .tmeetic-input,
  .tmeetic-select,
  .tmeetic-market-search__input,
  .tmeetic-market-sort,
  .tmeetic-market-difficulty {
    min-height: 44px;
  }
}

/* 3. 觸控最佳化（消除 300 ms 延遲） */
button,
a,
label,
input,
select,
textarea,
[role="button"] {
  touch-action: manipulation;
}

/* 4. 尊重使用者動態縮減偏好 */
@media (prefers-reduced-motion: reduce) {
  *,
  ::before,
  ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── v2.15：課程市集頁（/course/）─────────────────────────────────────── */

.tmeetic-course-market {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--2meet-space-md, 24px) var(--2meet-space-sm, 16px);
}

/* 頁面標頭 */
.tmeetic-market-header {
  text-align: center;
  margin-bottom: 32px;
}

.tmeetic-market-title {
  font-size: 2rem;
  font-weight: 700;
  margin: 0 0 8px;
}

.tmeetic-market-subtitle {
  color: var(--2meet-muted);
  font-size: 1rem;
  margin: 0;
}

/* 篩選列 */
.tmeetic-course-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 20px;
}

.tmeetic-course-filter-bar .tmeetic-market-search__input {
  flex: 1 1 200px;
  width: auto !important;
  min-width: 0;
  height: 44px;
  min-height: 44px;
  max-width: none;
  padding: 0 16px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-btn, 999px);
  font-size: .9375rem;
  background: var(--color-bg-secondary);
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}

.tmeetic-course-filter-bar .tmeetic-market-search__input:focus {
  outline: none;
  border-color: var(--2meet-primary);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--2meet-primary) 18%, transparent);
}

.tmeetic-course-filter-bar .tmeetic-market-sort,
.tmeetic-course-filter-bar .tmeetic-market-difficulty {
  flex: 0 0 auto;
  width: auto !important;
  min-width: 110px;
  max-width: 180px;
  height: 44px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-btn, 999px);
  background: var(--color-bg-secondary);
  font-size: .875rem;
  cursor: pointer;
  transition: border-color .2s;
}

.tmeetic-course-filter-bar .tmeetic-market-sort:focus,
.tmeetic-course-filter-bar .tmeetic-market-difficulty:focus {
  outline: none;
  border-color: var(--2meet-primary);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--2meet-primary) 14%, transparent);
}

.tmeetic-course-filter-submit {
  flex: 0 0 auto;
  height: 44px;
  padding: 0 20px;
  background: var(--2meet-primary);
  color: var(--color-text-inverse);
  border: none;
  border-radius: var(--2meet-radius-btn, 999px);
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, transform .1s;
  white-space: nowrap;
}

.tmeetic-course-filter-submit:hover {
  background: var(--color-green-dark);
  transform: translateY(-1px);
}

/* 分類 Tabs */
.tmeetic-category-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}

.tmeetic-category-btn {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: var(--2meet-radius-btn, 999px);
  border: 1px solid var(--2meet-border);
  background: var(--color-bg-secondary);
  color: var(--2meet-text);
  font-size: .875rem;
  text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}

.tmeetic-category-btn:hover {
  border-color: var(--2meet-primary);
  color: var(--2meet-primary);
  background: color-mix(in oklch, var(--2meet-primary) 5%, transparent);
}

.tmeetic-category-btn.is-active {
  background: var(--2meet-primary);
  border-color: var(--2meet-primary);
  color: var(--color-text-inverse);
  font-weight: 600;
  pointer-events: none;
}

/* 圖片容器（course-market.php 使用 __cover，__thumb 為舊版） */
.tmeetic-course-card__cover {
  display: block;
  height: 180px;
  overflow: hidden;
}

.tmeetic-course-card__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s;
}

.tmeetic-course-card:hover .tmeetic-course-card__cover img {
  transform: scale(1.04);
}

.tmeetic-course-card__image-link {
  display: block;
  overflow: hidden;
  border-radius: var(--2meet-radius-card, 16px) var(--2meet-radius-card, 16px) 0 0;
}

/* 課程市集卡片的 footer 區域 */
.tmeetic-course-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
}

.tmeetic-course-card__fee {
  font-weight: 700;
  font-size: 1rem;
  color: var(--2meet-accent);
}

.tmeetic-course-card__status {
  font-size: .75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--2meet-radius-pill, 999px);
}

.status-open      { background: var(--color-green-lightest); color: var(--color-green-dark); }
.status-few       { background: var(--color-apricot-lightest); color: var(--color-apricot-dark); }
.status-full      { background: var(--color-pink-lightest); color: var(--color-pink-dark); }
.status-no-session{ background: var(--color-bg-tertiary); color: var(--color-text-tertiary); }

.tmeetic-course-card__next-date {
  font-size: .78rem;
  color: var(--2meet-muted);
  margin: 2px 0 0;
}

/* 訂閱分類按鈕 */
.tmeetic-subscribe-category {
  margin-bottom: 16px;
}

/* ── RWD：≤900px → 2欄 ──────────────────────────────────────────────── */
@media (max-width: 900px) {
  .tmeetic-course-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* ── RWD：≤768px ──────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .tmeetic-market-title {
    font-size: 1.5rem;
  }

  .tmeetic-course-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .tmeetic-course-filter-bar .tmeetic-market-search__input,
  .tmeetic-course-filter-bar .tmeetic-market-sort,
  .tmeetic-course-filter-bar .tmeetic-market-difficulty,
  .tmeetic-course-filter-submit {
    width: 100%;
    flex-basis: auto;
  }

  .tmeetic-course-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

@media (max-width: 600px) {
  .tmeetic-course-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 480px) {
  .tmeetic-course-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Inline subscribe form（取代 prompt()）────────────────────────────── */
.tmc-subscribe-inline {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 8px;
}

.tmc-subscribe-email {
  flex: 1;
  min-width: 180px;
  padding: 8px 12px;
  border: 1px solid var(--2meet-border);
  border-radius: var(--2meet-radius-btn, 999px);
  background: var(--2meet-surface, #FAF9F6);
  font-size: .875rem;
  color: var(--2meet-text);
  transition: border-color .15s ease-out;
}

.tmc-subscribe-email:hover {
  border-color: color-mix(in oklch, var(--2meet-primary) 50%, var(--2meet-border));
}

.tmc-subscribe-email:focus {
  outline: none;
  border-color: var(--2meet-primary);
}

.tmc-subscribe-inline .tmeetic-btn {
  min-height: 44px;
  white-space: nowrap;
}

/* ── Accessible toast notification ───────────────────────────────────── */
.tmc-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  max-width: min(480px, 90vw);
  padding: 12px 20px;
  border-radius: var(--2meet-radius-sm, 8px);
  font-size: 14px;
  line-height: 1.5;
  pointer-events: none;
  animation: tmc-toast-in 0.2s ease-out;
}
.tmc-toast--error {
  background: color-mix(in oklch, var(--color-error, #C4897A) 12%, var(--2meet-surface, #FAF9F6));
  border: 1px solid color-mix(in oklch, var(--color-error, #C4897A) 35%, transparent);
  color: var(--color-error, #C4897A);
}
@keyframes tmc-toast-in {
  from { opacity: 0; transform: translateX(-50%) translateY(8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .tmc-toast { animation: none; }
}
