@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&family=DM+Mono:wght@300;400&display=swap');

/* ==========================================================================
   FastReset Trainers & Courses — Frontend
   Scoped under .frtc-wrap for Divi/theme compatibility
   ========================================================================== */

.frtc-wrap {
  --frtc-ink: #0e0e0e;
  --frtc-ink-soft: #3a3a3a;
  --frtc-ink-muted: #888888;
  --frtc-paper: #f5f2ec;
  --frtc-paper-warm: #edeaf4;
  --frtc-accent: #0757F6;
  --frtc-accent-mid: #0648d4;
  --frtc-accent-light: #3d7aff;
  --frtc-accent-pale: #d6e4ff;
  --frtc-gold: #b89a2e;
  --frtc-gold-light: #d4b84a;
  --frtc-gold-pale: #f0e8c8;
  --frtc-gold-mid: #c9a83a;
  --frtc-border: #d4cfc5;
  --frtc-white: #ffffff;
  --frtc-green: #2c7a4e;
  --frtc-green-pale: #d4edde;
  --frtc-red: #9b2c2c;
  --frtc-red-pale: #f5d4d4;
  --frtc-button-radius: 2px;
  --frtc-card-radius: 3px;
  --frtc-max-width: 1200px;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--frtc-paper);
  color: var(--frtc-ink);
  max-width: 100%;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* Shortcode grids embedded in Divi/theme sections: no beige panel */
.frtc-wrap.frtc-course-archive {
  background: transparent;
  overflow-x: visible;
}

.frtc-wrap *,
.frtc-wrap *::before,
.frtc-wrap *::after {
  box-sizing: border-box;
}

.frtc-wrap img {
  max-width: 100%;
  height: auto;
}

.frtc-wrap a {
  color: var(--frtc-accent-light);
  text-decoration: none;
  transition: color 0.2s ease;
}

.frtc-wrap a:hover {
  color: var(--frtc-accent);
  text-decoration: underline;
}

.frtc-wrap .screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

/* Typography helpers */
.frtc-wrap .frtc-label {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
  margin-bottom: 4px;
}

.frtc-section-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--frtc-gold-mid);
}

.frtc-section-label::before {
  content: '';
  display: block;
  width: 20px;
  height: 1px;
  background: var(--frtc-gold-mid);
}

.frtc-section-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--frtc-ink);
  margin: 0 0 24px;
}

.frtc-section-title em {
  font-style: italic;
  color: var(--frtc-accent);
}

.frtc-section-header {
  margin-bottom: 32px;
}

/* Hero */
.frtc-hero {
  padding: 56px 40px;
  background: var(--frtc-accent);
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  min-height: 360px;
}

.frtc-hero::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -60px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.05);
  pointer-events: none;
}

.frtc-hero__inner {
  position: relative;
  z-index: 1;
}

.frtc-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
}

.frtc-breadcrumb a {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
}

.frtc-breadcrumb a:hover {
  color: rgba(255, 255, 255, 0.7);
}

.frtc-breadcrumb span:last-child {
  color: var(--frtc-gold-light);
}

.frtc-hero__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--frtc-white);
  margin: 0 0 16px;
}

.frtc-hero__title em {
  font-style: italic;
  color: var(--frtc-gold-light);
}

.frtc-hero__desc {
  font-size: 0.95rem;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.7);
  max-width: 480px;
  margin: 0;
}

.frtc-hero__eyebrow {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--frtc-gold-light);
  margin-bottom: 16px;
}

.frtc-hero--calendar {
  margin-bottom: 0;
}

.frtc-hero__stats {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.frtc-stat-box {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 2px solid var(--frtc-gold-light);
  border-radius: var(--frtc-card-radius);
  padding: 20px 18px;
  text-align: center;
}

.frtc-stat-box__num {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--frtc-gold-light);
  line-height: 1;
  margin-bottom: 6px;
}

.frtc-stat-box__label {
  font-size: 0.72rem;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.4;
}

/* Filters bar */
.frtc-filters-bar {
  background: var(--frtc-white);
  border-bottom: 1px solid var(--frtc-border);
  padding: 24px 40px;
  position: sticky;
  top: 0;
  z-index: 80;
}

.frtc-filters-form__grid {
  display: grid;
  grid-template-columns: 1.2fr repeat(4, minmax(110px, 1fr)) auto;
  gap: 10px;
  align-items: end;
}

.frtc-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.frtc-field label,
.frtc-field__label {
  font-family: 'DM Mono', monospace;
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
}

.frtc-field input:not([type="checkbox"]):not([type="radio"]),
.frtc-field select,
.frtc-field textarea {
  padding: 11px 14px;
  border: 1px solid var(--frtc-border);
  background: var(--frtc-paper);
  border-radius: var(--frtc-button-radius);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.85rem;
  color: var(--frtc-ink);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
  max-width: 100%;
}

.frtc-field input:not([type="checkbox"]):not([type="radio"]),
.frtc-field select,
.frtc-field textarea {
  appearance: none;
  -webkit-appearance: none;
}

.frtc-radio input[type="radio"],
.frtc-checkbox input[type="checkbox"] {
  appearance: auto;
  -webkit-appearance: auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--frtc-accent);
  cursor: pointer;
  flex-shrink: 0;
}

.frtc-field input:focus,
.frtc-field select:focus,
.frtc-field textarea:focus {
  border-color: var(--frtc-accent-light);
  box-shadow: 0 0 0 2px rgba(74, 111, 165, 0.15);
}

.frtc-field select {
  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 d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
  cursor: pointer;
}

.frtc-field--toggles {
  gap: 8px;
}

.frtc-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  color: var(--frtc-ink-muted);
  cursor: pointer;
  user-select: none;
}

.frtc-toggle input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--frtc-accent-light);
  cursor: pointer;
  flex-shrink: 0;
}

.frtc-filters-form__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.frtc-results-count {
  margin: 12px 0 0;
  font-size: 0.78rem;
  color: var(--frtc-ink-muted);
}

.frtc-results-count strong {
  color: var(--frtc-ink);
}

/* Archive layout */
.frtc-archive-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 0;
  min-height: 50vh;
}

.frtc-sidebar {
  background: var(--frtc-white);
  border-right: 1px solid var(--frtc-border);
  padding: 28px 0;
  position: sticky;
  top: 110px;
  align-self: start;
  max-height: calc(100vh - 110px);
  overflow-y: auto;
}

.frtc-sidebar__title {
  font-family: 'DM Mono', monospace;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
  padding: 0 24px 14px;
  border-bottom: 1px solid var(--frtc-border);
  margin: 0 0 8px;
}

.frtc-sidebar-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 24px;
  background: none;
  border: none;
  border-left: 3px solid transparent;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.85rem;
  color: var(--frtc-ink-soft);
  text-align: left;
  transition: background 0.15s, color 0.15s;
}

.frtc-sidebar-btn:hover {
  background: var(--frtc-paper);
  color: var(--frtc-ink);
}

.frtc-sidebar-btn.is-active {
  background: var(--frtc-paper);
  color: var(--frtc-accent);
  font-weight: 500;
  border-left-color: var(--frtc-gold-mid);
}

.frtc-sidebar-btn__count {
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  color: var(--frtc-ink-muted);
  background: var(--frtc-paper);
  padding: 2px 7px;
  border-radius: 10px;
}

.frtc-sidebar-btn.is-active .frtc-sidebar-btn__count {
  background: var(--frtc-gold-pale);
  color: var(--frtc-gold);
}

.frtc-archive-main {
  padding: 32px 36px;
}

.frtc-loading {
  padding: 40px;
  text-align: center;
  color: var(--frtc-ink-muted);
  font-size: 0.9rem;
}

/* Grid */
.frtc-grid {
  display: grid !important;
  gap: 12px;
  width: 100%;
  align-items: stretch;
}

.frtc-grid--trainers {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
}

.frtc-grid--cols-1 { grid-template-columns: 1fr !important; }
.frtc-grid--cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.frtc-grid--cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.frtc-grid--cols-4 { grid-template-columns: repeat(4, 1fr) !important; }

.frtc-grid--editions {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
}

.frtc-grid--compact {
  grid-template-columns: 1fr !important;
}

.frtc-wrap .frtc-grid > .frtc-card,
.frtc-wrap .frtc-grid > article.frtc-card {
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
}

/* Cards — base */
.frtc-card {
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  border-radius: var(--frtc-card-radius);
  padding: 22px 24px;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  display: flex;
  flex-direction: column;
  height: 100%;
  align-self: stretch;
}

.frtc-card:hover {
  border-color: var(--frtc-accent-light);
  box-shadow: 0 4px 20px rgba(28, 43, 74, 0.08);
  transform: translateY(-2px);
}

.frtc-card.is-founder {
  border-color: var(--frtc-gold);
  border-top: 3px solid var(--frtc-gold-mid);
}

.frtc-card.is-founder:hover {
  border-color: var(--frtc-gold);
  box-shadow: 0 4px 24px rgba(184, 154, 46, 0.12);
}

.frtc-card.is-featured {
  border-top: 2px solid var(--frtc-accent-light);
}

.frtc-card.is-cancelled {
  opacity: 0.75;
}

/* Badges */
.frtc-badge {
  font-family: 'DM Mono', monospace;
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: 2px;
  white-space: nowrap;
  display: inline-block;
}

.frtc-badge--founder {
  background: var(--frtc-gold-pale);
  color: var(--frtc-gold);
  border: 1px solid var(--frtc-gold);
}

.frtc-badge--featured {
  background: var(--frtc-accent-pale);
  color: var(--frtc-accent);
}

.frtc-badge--label {
  background: var(--frtc-paper);
  color: var(--frtc-ink-muted);
  border: 1px solid var(--frtc-border);
}

.frtc-badge--cancelled {
  background: var(--frtc-red-pale);
  color: var(--frtc-red);
}

.frtc-badge--waiting {
  background: var(--frtc-gold-pale);
  color: var(--frtc-gold);
}

.frtc-badge--full {
  background: var(--frtc-paper);
  color: var(--frtc-ink-muted);
  border: 1px solid var(--frtc-border);
}

/* Trainer card — layout prototipo HTML */
.frtc-trainer-card.frtc-card {
  padding: 0;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(28, 43, 74, 0.05);
}

.frtc-trainer-card__media {
  width: 100%;
  aspect-ratio: var(--frtc-photo-aspect, 4 / 5);
  position: relative;
  background: linear-gradient(135deg, #d9dfe9, #f1ede4);
  overflow: hidden;
}

.frtc-trainer-card__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: var(--frtc-photo-aspect, 4 / 5);
  object-fit: cover;
  object-position: center top;
  display: block;
}

.frtc-trainer-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #d9dfe9 0%, #eef2f8 45%, #f1ede4 100%);
}

.frtc-trainer-card__placeholder-initials {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 3.5rem;
  font-weight: 600;
  color: rgba(28, 43, 74, 0.35);
  letter-spacing: 0.08em;
}

.frtc-card.is-founder .frtc-trainer-card__placeholder {
  background: linear-gradient(135deg, #e8dcc0 0%, #f5efe0 50%, #f1ede4 100%);
}

.frtc-trainer-card__body {
  padding: 26px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0;
}

.frtc-trainer-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

.frtc-badge--authorized {
  background: var(--frtc-accent-pale);
  color: var(--frtc-accent);
  border: 1px solid var(--frtc-accent-light);
}

.frtc-trainer-card__name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.55rem;
  font-weight: 600;
  color: var(--frtc-accent);
  line-height: 1.15;
  margin: 0 0 2px;
}

.frtc-trainer-card__name a {
  color: inherit;
  text-decoration: none;
}

.frtc-trainer-card__name a:hover {
  color: var(--frtc-accent-light);
}

.frtc-trainer-card__title {
  font-size: 0.8rem;
  color: var(--frtc-ink-muted);
  margin-bottom: 12px;
}

.frtc-trainer-card__bio {
  font-size: 0.86rem;
  color: var(--frtc-ink-soft);
  line-height: 1.65;
  min-height: 78px;
  margin: 0 0 12px;
}

.frtc-trainer-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}

.frtc-chip {
  background: var(--frtc-paper);
  border: 1px solid var(--frtc-border);
  padding: 5px 8px;
  font-size: 0.68rem;
  color: var(--frtc-ink-soft);
  border-radius: 2px;
}

.frtc-trainer-card__upcoming {
  background: var(--frtc-paper-warm);
  padding: 13px;
  margin-top: 18px;
  border-left: 2px solid var(--frtc-gold-mid);
}

.frtc-trainer-card__upcoming small {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 0.56rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--frtc-gold-mid);
  margin-bottom: 4px;
}

.frtc-trainer-card__upcoming strong {
  font-size: 0.79rem;
  color: var(--frtc-accent);
  font-weight: 600;
}

.frtc-trainer-card__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 18px;
}

.frtc-archive-layout--full {
  grid-template-columns: minmax(0, 1fr) !important;
}

.frtc-archive-layout--full .frtc-archive-main {
  padding: 32px 0 48px;
  max-width: none;
  margin: 0 auto;
  width: 95%;
}

.frtc-trainer-archive .frtc-archive-layout--full .frtc-archive-main {
  width: 95%;
  max-width: none;
}

.frtc-trainer-archive--grid-only {
  width: 100%;
}

.frtc-trainer-archive--grid-only .frtc-archive-main {
  width: 95%;
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

.frtc-grid--trainers {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px !important;
}

.frtc-grid--trainers.frtc-grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.frtc-grid--trainers.frtc-grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Divi / theme builder compatibility */
.et_pb_module .frtc-wrap,
.et_pb_code_inner .frtc-wrap,
#main-content .frtc-wrap,
#left-area .frtc-wrap,
.entry-content .frtc-wrap,
.frtc-course-detail {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: both !important;
  display: block !important;
  box-sizing: border-box !important;
}

.et_pb_row .frtc-wrap .frtc-grid,
.frtc-wrap .frtc-grid {
  display: grid !important;
  width: 100% !important;
}

.frtc-wrap .frtc-grid > .frtc-trainer-card,
.frtc-wrap .frtc-grid > article.frtc-trainer-card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: none !important;
  float: none !important;
  margin: 0 !important;
}

.frtc-wrap .frtc-trainer-card__body,
.frtc-wrap .frtc-trainer-card__media,
.frtc-wrap .frtc-trainer-card__name,
.frtc-wrap .frtc-trainer-card__bio {
  width: auto !important;
  max-width: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

@media (max-width: 980px) {
  .frtc-grid--trainers {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .frtc-grid--trainers,
  .frtc-grid--trainers.frtc-grid--cols-2,
  .frtc-grid--trainers.frtc-grid--cols-3,
  .frtc-grid--trainers.frtc-grid--cols-4 {
    grid-template-columns: 1fr !important;
  }

  .frtc-archive-layout--full .frtc-archive-main {
    padding: 24px 0 40px;
    width: 95%;
  }
}

.frtc-trainer-card__actions .frtc-btn {
  flex: 1;
}

.frtc-lang-tag {
  font-size: 0.62rem;
  padding: 2px 6px;
  background: var(--frtc-paper);
  border: 1px solid var(--frtc-border);
  border-radius: 2px;
  color: var(--frtc-ink-muted);
  font-family: 'DM Mono', monospace;
  letter-spacing: 0.05em;
}

.frtc-trainer-card__langs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

/* Edition card */
.frtc-edition-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.frtc-edition-card__country {
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
}

.frtc-edition-card__badges {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.frtc-edition-card__eyebrow {
  font-family: 'DM Mono', monospace;
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--frtc-gold-mid);
  margin: 0 0 6px;
}

.frtc-edition-card__course {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--frtc-accent, #0757F6);
  margin: 0 0 6px;
  line-height: 1.2;
}

.frtc-edition-card__edition-label {
  font-size: 0.82rem;
  color: var(--frtc-ink-muted, #6b7280);
  margin: 0 0 12px;
}

.frtc-edition-card__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--frtc-ink);
  margin: 0 0 10px;
  line-height: 1.25;
}

.frtc-edition-card__dates,
.frtc-edition-card__location {
  font-size: 0.92rem;
  color: var(--frtc-ink);
  margin: 0 0 6px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-weight: 500;
}

.frtc-edition-card__address {
  margin: 0 0 10px;
  font-size: 0.8rem;
  color: var(--frtc-ink-muted, #6b7280);
}

.frtc-edition-card__map {
  height: 160px;
  margin: 12px 0 4px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--frtc-border, #e5e7eb);
}

.frtc-edition-card__icon {
  flex-shrink: 0;
  font-size: 0.75rem;
}

.frtc-edition-card__trainers {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--frtc-border);
}

.frtc-edition-card__trainers-label {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
  margin-bottom: 6px;
}

.frtc-edition-card__trainer-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.frtc-edition-card__trainer {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
}

.frtc-edition-card__trainer-photo {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}

.frtc-edition-card__trainer-role {
  color: var(--frtc-ink-muted);
  font-size: 0.72rem;
}

.frtc-edition-card__footer {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.frtc-edition-card__meta {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.frtc-edition-card__price-label,
.frtc-edition-card__places-label {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
}

.frtc-edition-card__price strong,
.frtc-edition-card__places strong {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1rem;
  color: var(--frtc-accent);
}

/* Buttons */
.frtc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: var(--frtc-button-radius);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  border: 1px solid transparent;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
  line-height: 1.2;
  white-space: nowrap;
}

.frtc-btn:hover {
  text-decoration: none;
  transform: translateY(-1px);
}

.frtc-btn--primary {
  background: var(--frtc-accent);
  color: var(--frtc-white);
  border-color: var(--frtc-accent);
}

.frtc-btn--primary:hover {
  background: var(--frtc-accent-mid);
  border-color: var(--frtc-accent-mid);
  color: var(--frtc-white);
}

/* Beat .frtc-wrap a { color: accent } — white label on blue */
.frtc-wrap a.frtc-btn--primary,
.frtc-wrap a.frtc-btn--primary:visited,
.frtc-wrap button.frtc-btn--primary,
.frtc-catalog-card a.frtc-btn--primary,
.frtc-catalog-card a.frtc-btn--primary:visited {
  color: #ffffff;
  background: var(--frtc-accent);
  border-color: var(--frtc-accent);
  text-decoration: none;
}

.frtc-wrap a.frtc-btn--primary:hover,
.frtc-wrap a.frtc-btn--primary:focus-visible,
.frtc-wrap button.frtc-btn--primary:hover,
.frtc-wrap button.frtc-btn--primary:focus-visible,
.frtc-catalog-card a.frtc-btn--primary:hover,
.frtc-catalog-card a.frtc-btn--primary:focus-visible {
  color: #ffffff;
  background: var(--frtc-accent-mid);
  border-color: var(--frtc-accent-mid);
  text-decoration: none;
}

.frtc-btn--gold {
  background: #f0c14b;
  border-color: #f0c14b;
  color: #0e0e0e;
  font-weight: 700;
}

.frtc-btn--gold:hover {
  background: #ffd666;
  border-color: #ffd666;
  color: #0e0e0e;
}

.frtc-wrap button.frtc-btn--gold,
.frtc-wrap a.frtc-btn--gold,
.frtc-modal button.frtc-btn--gold,
.frtc-event-row__side .frtc-btn--gold,
.frtc-sidebar-card .frtc-btn--gold {
  background: #f0c14b !important;
  border-color: #f0c14b !important;
  color: #0e0e0e !important;
}

.frtc-wrap button.frtc-btn--gold:hover,
.frtc-wrap a.frtc-btn--gold:hover,
.frtc-modal button.frtc-btn--gold:hover,
.frtc-event-row__side .frtc-btn--gold:hover,
.frtc-sidebar-card .frtc-btn--gold:hover {
  background: #ffd666 !important;
  border-color: #ffd666 !important;
  color: #0e0e0e !important;
}

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

.frtc-btn--outline:hover {
  border-color: var(--frtc-accent-light);
  color: var(--frtc-accent);
}

.frtc-btn--ghost {
  background: none;
  border: 1px solid var(--frtc-border);
  color: var(--frtc-ink-muted);
  padding: 11px 20px;
}

.frtc-btn--ghost:hover {
  border-color: var(--frtc-ink);
  color: var(--frtc-ink);
}

.frtc-btn--sm {
  padding: 9px 16px;
  font-size: 0.72rem;
}

.frtc-btn:disabled,
.frtc-btn.is-loading {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* No results */
.frtc-no-results {
  padding: 60px 32px;
  text-align: center;
}

.frtc-no-results h2,
.frtc-no-results h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.4rem;
  color: var(--frtc-ink);
  margin: 0 0 12px;
}

.frtc-no-results p {
  font-size: 0.88rem;
  color: var(--frtc-ink-muted);
  margin: 0;
}

/* Country groups */
.frtc-country-group {
  margin-bottom: 40px;
}

.frtc-country-group__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--frtc-border);
}

.frtc-country-group__name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--frtc-ink);
  margin: 0;
}

.frtc-country-group__count {
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  color: var(--frtc-ink-muted);
  background: var(--frtc-paper);
  padding: 3px 9px;
  border-radius: 10px;
}

/* Single trainer profile — layout docente.html */
.frtc-single-trainer.frtc-wrap {
  background: var(--frtc-paper);
  max-width: 100%;
  width: 100%;
}

.frtc-profile-hero {
  padding: 58px 0;
  background: var(--frtc-accent);
  color: #ffffff;
  width: 100%;
}

.frtc-profile-hero--founder {
  border-bottom: 4px solid var(--frtc-gold-mid);
}

.frtc-profile-hero__container,
.frtc-profile-body__container {
  width: 100%;
  max-width: var(--frtc-max-width, 1200px);
  margin: 0 auto;
  padding-left: 48px;
  padding-right: 48px;
  box-sizing: border-box;
}

.frtc-profile-hero .frtc-breadcrumb {
  margin-bottom: 18px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.frtc-profile-hero .frtc-breadcrumb a {
  color: #ffffff;
  text-decoration: none;
  opacity: 0.9;
}

.frtc-profile-hero .frtc-breadcrumb a:hover {
  opacity: 1;
  text-decoration: underline;
}

.frtc-profile-hero .frtc-breadcrumb span:last-child {
  color: #ffd666;
  font-weight: 600;
}

.frtc-profile-hero__grid {
  display: grid;
  grid-template-columns: 330px 1fr;
  gap: 50px;
  align-items: center;
}

.frtc-profile-hero__portrait {
  width: 100%;
  max-width: 330px;
}

.frtc-profile-hero__photo {
  width: 100%;
  aspect-ratio: var(--frtc-photo-aspect, 4 / 5);
  object-fit: cover;
  object-position: center top;
  display: block;
  border: 8px solid rgba(255, 255, 255, 0.09);
  background: #d7dce6;
}

.frtc-profile-hero__photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #d9dfe9 0%, #eef2f8 45%, #f1ede4 100%);
}

.frtc-profile-hero--founder .frtc-profile-hero__photo {
  border-color: rgba(212, 184, 74, 0.35);
}

.frtc-profile-hero__initials {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 3.5rem;
  font-weight: 600;
  color: rgba(28, 43, 74, 0.35);
  letter-spacing: 0.08em;
}

.frtc-profile-hero__badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.frtc-profile-hero__name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 600;
  line-height: 1.05;
  margin: 12px 0 8px;
  color: var(--frtc-white);
}

.frtc-profile-hero__title {
  font-size: 1rem;
  color: var(--frtc-gold-light);
  margin: 0 0 16px;
}

.frtc-profile-hero__lead {
  font-size: 0.95rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.72);
  max-width: 720px;
  margin: 0 0 18px;
}

.frtc-profile-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.frtc-profile-hero__chips .frtc-chip {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.85);
}

.frtc-profile-body {
  background: var(--frtc-white);
  padding: 72px 0;
}

.frtc-profile-layout {
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 38px;
  align-items: start;
}

.frtc-profile-main {
  min-width: 0;
}

.frtc-profile-main.frtc-prose h2 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 2rem;
  color: var(--frtc-accent);
  margin: 0 0 18px;
}

.frtc-profile-section {
  margin-bottom: 42px;
}

.frtc-profile-section__content {
  font-size: 0.92rem;
  line-height: 1.75;
  color: #424242;
}

.frtc-profile-section__content p {
  margin: 0 0 1em;
}

.frtc-check-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.frtc-check-list li {
  position: relative;
  padding: 10px 0 10px 24px;
  border-bottom: 1px solid var(--frtc-border);
  font-size: 0.88rem;
  color: var(--frtc-ink-soft);
}

.frtc-check-list li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--frtc-gold);
  font-weight: 700;
}

.frtc-event-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.frtc-event-row {
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  padding: 24px;
  align-items: center;
}

.frtc-event-row.is-full {
  opacity: 0.85;
}

.frtc-event-row__date {
  text-align: center;
  border-right: 1px solid var(--frtc-border);
  padding-right: 24px;
}

.frtc-event-row__date strong {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 2.3rem;
  font-weight: 600;
  color: var(--frtc-accent);
  line-height: 1;
}

.frtc-event-row__date span {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--frtc-ink, #0e0e0e);
  margin-top: 4px;
}

.frtc-event-row__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--frtc-accent);
  margin: 0 0 4px;
}

.frtc-event-row__meta {
  margin: 2px 0 8px;
  font-size: 0.8rem;
  color: var(--frtc-ink-muted);
}

.frtc-event-row__side {
  text-align: right;
  min-width: 155px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
}

.frtc-badge--available {
  background: var(--frtc-green-pale);
  color: var(--frtc-green);
  border: 1px solid #a8d8ba;
}

.frtc-profile-sidebar {
  min-width: 0;
}

.frtc-sidebar-card {
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  padding: 24px;
  margin-bottom: 18px;
}

.frtc-sidebar-card__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--frtc-accent);
  margin: 0 0 16px;
}

.frtc-sidebar-card__desc {
  font-size: 0.82rem;
  color: var(--frtc-ink-muted);
  margin: 0 0 16px;
  line-height: 1.6;
}

.frtc-contact-row {
  display: flex;
  gap: 10px;
  padding: 4px 0;
  border-bottom: 1px solid #ece8df;
  font-size: 0.82rem;
  word-break: break-word;
  line-height: 1.35;
}

.frtc-contact-row:last-of-type {
  border-bottom: 0;
}

.frtc-contact-row__icon {
  flex: 0 0 auto;
  line-height: 1.35;
}

.frtc-contact-row__text strong {
  display: block;
  color: var(--frtc-accent);
  margin-bottom: 0;
  line-height: 1.25;
}

.frtc-contact-row__text a {
  color: var(--frtc-accent-light);
  text-decoration: none;
}

.frtc-contact-row__text a:hover {
  text-decoration: underline;
}

.frtc-download-link {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  background: var(--frtc-paper);
  border: 1px solid var(--frtc-border);
  margin-bottom: 8px;
  text-decoration: none;
  font-size: 0.8rem;
  color: var(--frtc-ink);
}

.frtc-download-link:hover {
  border-color: var(--frtc-accent-light);
}

.frtc-download-link strong {
  color: var(--frtc-accent);
  white-space: nowrap;
}

.frtc-btn--block {
  width: 100%;
  margin-top: 16px;
}

.frtc-wrap.is-founder-profile .frtc-profile-hero__name {
  color: var(--frtc-gold-light);
}

.et_pb_module .frtc-single-trainer,
#main-content .frtc-single-trainer,
.entry-content .frtc-single-trainer {
  width: 100% !important;
  max-width: 100% !important;
}

.frtc-single-trainer .frtc-profile-layout,
.frtc-single-trainer .frtc-profile-hero__grid,
.frtc-single-trainer .frtc-event-row {
  width: 100% !important;
  max-width: 100% !important;
}

/* Trainer full-width — body only, never header/menu */
body.frtc-trainer-fullwidth,
body.single-frtc_trainer {
  overflow-x: hidden;
}

body.frtc-trainer-fullwidth #sidebar,
body.frtc-trainer-fullwidth #sidebar .widget,
body.frtc-trainer-fullwidth aside#sidebar,
body.frtc-trainer-fullwidth #main-sidebar,
body.frtc-trainer-fullwidth .et_pb_widget_area,
body.frtc-trainer-fullwidth .et_pb_widget_area_right,
body.frtc-trainer-fullwidth .et_pb_widget_area_left,
body.frtc-trainer-fullwidth.et_right_sidebar #sidebar,
body.frtc-trainer-fullwidth.et_left_sidebar #sidebar,
body.frtc-trainer-fullwidth #main-content .container > #sidebar,
body.frtc-trainer-fullwidth #main-content .container > aside,
body.single-frtc_trainer #sidebar,
body.single-frtc_trainer aside#sidebar,
body.single-frtc_trainer #main-sidebar,
body.single-frtc_trainer .et_pb_widget_area,
body.single-frtc_trainer.et_right_sidebar #sidebar {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  visibility: hidden !important;
}

body.frtc-trainer-fullwidth #main-content,
body.frtc-trainer-fullwidth #et-main-area,
body.frtc-trainer-fullwidth .et-l--body,
body.frtc-trainer-fullwidth #main-content .container,
body.frtc-trainer-fullwidth #left-area,
body.frtc-trainer-fullwidth.et_right_sidebar #left-area,
body.frtc-trainer-fullwidth.et_left_sidebar #left-area,
body.frtc-trainer-fullwidth #content-area,
body.frtc-trainer-fullwidth .et_pb_post_content,
body.frtc-trainer-fullwidth .et_pb_column_4_4,
body.frtc-trainer-fullwidth .et_pb_column_3_4,
body.single-frtc_trainer #main-content,
body.single-frtc_trainer #et-main-area,
body.single-frtc_trainer #main-content .container,
body.single-frtc_trainer #left-area,
body.single-frtc_trainer.et_right_sidebar #left-area,
body.single-frtc_trainer #content-area {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.frtc-trainer-fullwidth #main-content .container:before,
body.frtc-trainer-fullwidth #main-content .container:after,
body.single-frtc_trainer #main-content .container:before,
body.single-frtc_trainer #main-content .container:after {
  display: none !important;
}

body.frtc-trainer-fullwidth .et-l--body .et_pb_row,
body.frtc-trainer-fullwidth .et-l--body .et_pb_column,
body.frtc-trainer-fullwidth .et-l--body .et_pb_module,
body.frtc-trainer-fullwidth .et-l--body .et_pb_post_content,
body.frtc-trainer-fullwidth .et-l--body .et_pb_code,
body.frtc-trainer-fullwidth .et-l--body .et_pb_code_inner {
  width: 100% !important;
  max-width: 100% !important;
}

body.frtc-trainer-fullwidth .frtc-single-trainer,
body.frtc-trainer-fullwidth #frtc-trainer-page,
body.frtc-trainer-fullwidth .frtc-profile-hero,
body.frtc-trainer-page .frtc-single-trainer,
body.single-frtc_trainer .frtc-single-trainer,
body.single-frtc_trainer #frtc-trainer-page,
body.single-frtc_trainer .frtc-profile-hero {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

body.frtc-trainer-page,
#frtc-trainer-page {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* Divi — course scheda full-width WITHOUT breaking header/menu/footer */
body.frtc-course-fullwidth,
body.single-frtc_course {
  overflow-x: hidden;
}

body.frtc-course-fullwidth #sidebar,
body.frtc-course-fullwidth #sidebar .widget,
body.frtc-course-fullwidth aside#sidebar,
body.frtc-course-fullwidth #main-sidebar,
body.frtc-course-fullwidth .et_pb_widget_area,
body.frtc-course-fullwidth .et_pb_widget_area_right,
body.frtc-course-fullwidth .et_pb_widget_area_left,
body.frtc-course-fullwidth.et_right_sidebar #sidebar,
body.frtc-course-fullwidth.et_left_sidebar #sidebar,
body.frtc-course-fullwidth #main-content .container > #sidebar,
body.frtc-course-fullwidth #main-content .container > aside,
body.frtc-course-fullwidth .widget_search,
body.frtc-course-fullwidth .widget_recent_entries,
body.frtc-course-fullwidth .widget_recent_comments,
body.frtc-course-fullwidth .et_pb_column_1_4.et_pb_widget_area,
body.frtc-course-fullwidth .et_pb_column_1_3.et_pb_widget_area,
body.single-frtc_course #sidebar,
body.single-frtc_course #sidebar .widget,
body.single-frtc_course aside#sidebar,
body.single-frtc_course #main-sidebar,
body.single-frtc_course .et_pb_widget_area,
body.single-frtc_course.et_right_sidebar #sidebar,
body.single-frtc_course.et_left_sidebar #sidebar {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  visibility: hidden !important;
}

body.frtc-course-fullwidth #main-content,
body.frtc-course-fullwidth #et-main-area,
body.frtc-course-fullwidth .et-l--body,
body.frtc-course-fullwidth #main-content .container,
body.frtc-course-fullwidth #left-area,
body.frtc-course-fullwidth.et_right_sidebar #left-area,
body.frtc-course-fullwidth.et_left_sidebar #left-area,
body.frtc-course-fullwidth #content-area,
body.frtc-course-fullwidth .et_pb_post_content,
body.frtc-course-fullwidth .et_pb_column_4_4,
body.frtc-course-fullwidth .et_pb_column_3_4,
body.single-frtc_course #main-content,
body.single-frtc_course #et-main-area,
body.single-frtc_course #main-content .container,
body.single-frtc_course #left-area,
body.single-frtc_course.et_right_sidebar #left-area,
body.single-frtc_course #content-area {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.frtc-course-fullwidth #main-content .container:before,
body.frtc-course-fullwidth #main-content .container:after,
body.single-frtc_course #main-content .container:before,
body.single-frtc_course #main-content .container:after {
  display: none !important;
}

body.frtc-course-fullwidth .et-l--body .et_pb_row,
body.frtc-course-fullwidth .et-l--body .et_pb_column,
body.frtc-course-fullwidth .et-l--body .et_pb_module,
body.frtc-course-fullwidth .et-l--body .et_pb_post_content,
body.frtc-course-fullwidth .et-l--body .et_pb_code,
body.frtc-course-fullwidth .et-l--body .et_pb_code_inner,
body.frtc-course-fullwidth .et-l--body .et_pb_text {
  width: 100% !important;
  max-width: 100% !important;
}

body.frtc-course-fullwidth .frtc-course-detail,
body.frtc-course-page .frtc-course-detail,
body.frtc-course-fullwidth #frtc-course-page,
body.single-frtc_course .frtc-course-detail,
body.single-frtc_course #frtc-course-page {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

body.frtc-course-fullwidth .frtc-course-detail__hero,
body.single-frtc_course .frtc-course-detail__hero {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.single-frtc_course #main-content .et_post_meta_wrapper,
body.frtc-course-page #main-content .et_post_meta_wrapper {
  display: none !important;
}

/* Never touch Divi header / menu / footer — leave theme Builder widths alone */

body.frtc-course-page {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* Calendar */
.frtc-calendar__header {
  padding: 32px 40px 24px;
  background: var(--frtc-white);
  border-bottom: 1px solid var(--frtc-border);
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.frtc-calendar__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.frtc-layout-switcher {
  display: inline-flex;
  border: 1px solid var(--frtc-border);
  border-radius: var(--frtc-button-radius);
  overflow: hidden;
}

.frtc-layout-btn {
  padding: 8px 14px;
  background: var(--frtc-paper);
  border: none;
  border-right: 1px solid var(--frtc-border);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.75rem;
  color: var(--frtc-ink-muted);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.frtc-layout-btn:last-child {
  border-right: none;
}

.frtc-layout-btn.is-active,
.frtc-layout-btn:hover {
  background: var(--frtc-accent);
  color: var(--frtc-white);
}

.frtc-calendar__body {
  padding: 32px 40px;
}

/* Compact list */
.frtc-compact-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.frtc-compact-item {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) 2fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 20px;
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  border-radius: var(--frtc-card-radius);
  transition: border-color 0.2s;
}

.frtc-compact-item:hover {
  border-color: var(--frtc-accent-light);
}

.frtc-compact-item__date {
  font-size: 0.82rem;
  color: var(--frtc-ink-soft);
}

.frtc-compact-item__course {
  display: block;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--frtc-accent, #0757F6);
  letter-spacing: 0;
  text-transform: none;
  margin: 0 0 4px;
}

.frtc-compact-item__course a {
  color: inherit;
  text-decoration: none;
}

.frtc-compact-item__course a:hover,
.frtc-compact-item__course a:focus-visible {
  text-decoration: underline;
}

.frtc-compact-item__title {
  display: block;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--frtc-ink-muted, #6b7280);
  margin: 0 0 6px;
}

.frtc-compact-item__meta,
.frtc-compact-item__location {
  font-size: 0.86rem;
  color: var(--frtc-ink, #1c2b4a);
}

/* Course catalog list reuses compact rows (2 columns: info + actions) */
.frtc-course-catalog--list .frtc-catalog-compact-item,
.frtc-course-catalog--list .frtc-compact-item {
  grid-template-columns: 1fr auto;
}

.frtc-course-catalog--list .frtc-compact-item__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}

.frtc-catalog-compact-item__price {
  display: block;
  margin-top: 4px;
}

.frtc-calendar-group {
  margin-bottom: 36px;
}

.frtc-calendar-group__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  margin: 0 0 16px;
  color: var(--frtc-ink, #1c2b4a);
}

.frtc-calendar-group--past {
  opacity: 0.92;
  padding-top: 8px;
  border-top: 1px solid var(--frtc-border, #e5e7eb);
}

.frtc-calendar-group__archive {
  margin: 20px 0 0;
  text-align: center;
}

.frtc-calendar-group__archive .frtc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.frtc-past-extra {
  margin-top: 16px;
}

.frtc-past-extra[hidden] {
  display: none !important;
}

.frtc-calendar-group__archive--missing {
  text-align: left;
  font-size: 0.9rem;
  color: var(--frtc-ink-muted, #6b7280);
}

.frtc-btn--sm {
  min-height: 40px;
  padding: 0.45rem 0.95rem;
  font-size: 0.85rem;
}

.frtc-edition-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
}

.frtc-edition-actions .frtc-btn {
  text-decoration: none;
}

.frtc-edition-ctas {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  width: 100%;
}

.frtc-edition-ctas .frtc-btn {
  width: 100%;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}

/* Timeline */
.frtc-timeline {
  position: relative;
  padding-left: 28px;
}

.frtc-timeline::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--frtc-border);
}

.frtc-timeline__month {
  margin: 24px 0 16px;
}

.frtc-timeline__month-label {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0;
  color: var(--frtc-accent);
}

.frtc-timeline__item {
  position: relative;
  margin-bottom: 20px;
}

.frtc-timeline__marker {
  position: absolute;
  left: -24px;
  top: 24px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--frtc-gold-mid);
  border: 2px solid var(--frtc-white);
  box-shadow: 0 0 0 2px var(--frtc-gold-pale);
}

.frtc-timeline__content .frtc-card:hover {
  transform: none;
}

/* Forms (inline) */
.frtc-form {
  width: 100%;
}

.frtc-form__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.3rem;
  margin: 0 0 20px;
}

.frtc-form__context {
  padding: 14px 16px;
  background: var(--frtc-paper);
  border: 1px solid var(--frtc-border);
  border-left: 3px solid var(--frtc-gold-mid);
  border-radius: var(--frtc-card-radius);
  margin-bottom: 20px;
  font-size: 0.85rem;
}

.frtc-form__context p {
  margin: 0 0 6px;
}

.frtc-form__context p:last-child {
  margin-bottom: 0;
}

.frtc-form__fieldset {
  border: none;
  margin: 0 0 24px;
  padding: 0;
}

.frtc-form__legend {
  font-family: 'DM Mono', monospace;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--frtc-ink-muted);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--frtc-border);
  width: 100%;
}

.frtc-form__grid {
  display: grid;
  gap: 12px;
}

.frtc-form__grid--2 {
  grid-template-columns: 1fr 1fr;
}

.frtc-field--required > label::after,
.frtc-field--required > .frtc-field__label::after {
  content: ' *';
  color: var(--frtc-gold);
}

.frtc-field.has-error input,
.frtc-field.has-error select,
.frtc-field.has-error textarea {
  border-color: var(--frtc-red);
}

.frtc-field__error {
  font-size: 0.75rem;
  color: var(--frtc-red);
  margin-top: 4px;
}

.frtc-radio-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.frtc-radio,
.frtc-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.85rem;
  cursor: pointer;
}

.frtc-radio input,
.frtc-checkbox input {
  width: auto;
  margin-top: 3px;
  accent-color: var(--frtc-accent-light);
  flex-shrink: 0;
}

.frtc-form__disclaimer {
  font-size: 0.78rem;
  color: var(--frtc-ink-muted);
  font-style: italic;
  margin: 0 0 16px;
}

.frtc-form__status {
  font-size: 0.92rem;
  line-height: 1.45;
  margin-bottom: 12px;
  font-weight: 500;
}

.frtc-form__status:empty,
.frtc-form__status[hidden] {
  display: none;
}

.frtc-form__status.is-success {
  color: #1f5c38;
  padding: 14px 16px;
  background: var(--frtc-green-pale);
  border: 1px solid var(--frtc-green);
  border-radius: var(--frtc-card-radius);
}

.frtc-form__status.is-error {
  color: var(--frtc-red);
  padding: 14px 16px;
  background: var(--frtc-red-pale);
  border: 1px solid var(--frtc-red);
  border-radius: var(--frtc-card-radius);
}

.frtc-form__success {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0 0 0.5rem;
  padding: 1.25rem 1.35rem;
  background: var(--frtc-green-pale);
  border: 1px solid var(--frtc-green);
  border-radius: var(--frtc-card-radius);
  outline: none;
}

.frtc-form__success[hidden] {
  display: none !important;
}

.frtc-form__success-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: var(--frtc-green);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
}

.frtc-form__success-title {
  margin: 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 600;
  color: #1f5c38;
  line-height: 1.2;
}

.frtc-form__success-text,
.frtc-form__success-ref {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--frtc-ink-soft);
}

.frtc-form__success-ref {
  font-family: 'DM Mono', ui-monospace, monospace;
  font-size: 0.85rem;
  color: #1f5c38;
}

.frtc-form__success-again {
  margin-top: 0.35rem;
}

.frtc-form.is-sent > :not(.frtc-form__success):not(.frtc-honeypot) {
  display: none !important;
}

.frtc-form.is-sent .frtc-form__success {
  display: flex;
}

.frtc-form__errors {
  padding: 12px 16px;
  background: var(--frtc-red-pale);
  border: 1px solid var(--frtc-red);
  border-radius: var(--frtc-card-radius);
  color: var(--frtc-red);
  font-size: 0.85rem;
  margin-bottom: 16px;
}

.frtc-form__errors ul {
  margin: 0;
  padding-left: 18px;
}

.frtc-form__submit-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: var(--frtc-white);
  border-radius: 50%;
  animation: frtc-spin 0.7s linear infinite;
}

@keyframes frtc-spin {
  to { transform: rotate(360deg); }
}

.frtc-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.frtc-form__noscript {
  font-size: 0.8rem;
  color: var(--frtc-ink-muted);
  margin-top: 12px;
}

/* Founder profile page accent — see profile section above */

/* Reveal animation */
.frtc-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.frtc-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive — tablet */
@media (max-width: 1100px) {
  .frtc-archive-layout {
    grid-template-columns: 220px 1fr;
  }

  .frtc-profile-layout {
    grid-template-columns: 1fr 300px;
  }

  .frtc-filters-form__grid {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .frtc-grid--cols-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 960px) {
  .frtc-hero,
  .frtc-profile-hero__grid {
    grid-template-columns: 1fr;
  }

  .frtc-hero {
    padding: 40px 24px;
    gap: 28px;
    min-height: auto;
  }

  .frtc-filters-bar,
  .frtc-archive-main,
  .frtc-calendar__header,
  .frtc-calendar__body,
  .frtc-profile-main {
    padding-left: 24px;
    padding-right: 24px;
  }

  .frtc-archive-layout,
  .frtc-profile-layout {
    grid-template-columns: 1fr;
  }

  .frtc-sidebar {
    position: static;
    max-height: none;
    border-right: none;
    border-bottom: 1px solid var(--frtc-border);
    padding: 12px 0;
  }

  .frtc-sidebar__title {
    display: none;
  }

  .frtc-sidebar__list {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0;
    padding: 0 12px;
  }

  .frtc-sidebar-btn {
    white-space: nowrap;
    flex-shrink: 0;
    border-left: none;
    border-bottom: 3px solid transparent;
    padding: 10px 16px;
  }

  .frtc-sidebar-btn.is-active {
    border-left: none;
    border-bottom-color: var(--frtc-gold-mid);
  }

  .frtc-profile-sidebar {
    border-left: none;
    border-top: 1px solid var(--frtc-border);
  }

  .frtc-profile-hero {
    padding: 40px 0;
  }

  .frtc-profile-hero__portrait {
    max-width: 300px;
  }

  .frtc-profile-body {
    padding: 52px 0;
  }

  .frtc-event-row {
    grid-template-columns: 120px 1fr;
  }

  .frtc-event-row__side {
    grid-column: 2;
    text-align: left;
    min-width: 0;
  }

  .frtc-grid--trainers,
  .frtc-grid--editions,
  .frtc-grid--cols-2,
  .frtc-grid--cols-3,
  .frtc-grid--cols-4 {
    grid-template-columns: 1fr !important;
  }

  .frtc-compact-item {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .frtc-form__grid--2 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .frtc-filters-form__grid {
    grid-template-columns: 1fr;
  }

  .frtc-filters-form__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .frtc-calendar__controls {
    flex-direction: column;
    align-items: stretch;
  }

  .frtc-layout-switcher {
    width: 100%;
  }

  .frtc-layout-btn {
    flex: 1;
    text-align: center;
  }
}

@media (max-width: 640px) {
  .frtc-profile-hero__container,
  .frtc-profile-body__container {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }

  .frtc-event-row {
    grid-template-columns: 1fr;
    padding: 19px;
  }

  .frtc-event-row__date {
    text-align: left;
    border-right: 0;
    border-bottom: 1px solid var(--frtc-border);
    padding: 0 0 14px;
    display: flex;
    align-items: flex-end;
    gap: 8px;
  }

  .frtc-event-row__date strong {
    font-size: 1.8rem;
  }

  .frtc-event-row__side {
    grid-column: auto;
    text-align: left;
  }
}

/* 320px — no horizontal scroll */
@media (max-width: 360px) {
  .frtc-wrap {
    overflow-x: hidden;
  }

  .frtc-hero,
  .frtc-profile-hero,
  .frtc-filters-bar,
  .frtc-archive-main,
  .frtc-calendar__header,
  .frtc-calendar__body,
  .frtc-profile-main,
  .frtc-profile-sidebar {
    padding-left: 16px;
    padding-right: 16px;
  }

  .frtc-card {
    padding: 18px 16px;
  }

  .frtc-btn {
    padding: 11px 18px;
    font-size: 0.72rem;
  }

  .frtc-edition-card__footer {
    flex-direction: column;
    align-items: stretch;
  }

  .frtc-edition-card__info-btn {
    width: 100%;
  }
}

/* —— Course types catalog [fastreset_corsi] —— */
.frtc-course-catalog .frtc-grid--catalog {
  display: grid;
  gap: 1.5rem;
  align-items: stretch;
}

.frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-1 {
  grid-template-columns: minmax(0, 1fr) !important;
}

.frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.frtc-catalog-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
  height: 100%;
  padding: 1.35rem 1.4rem 1.25rem;
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  border-radius: var(--frtc-card-radius);
  box-shadow: none;
}

.frtc-catalog-card__eyebrow {
  margin: 0;
  font-family: 'DM Mono', ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: var(--frtc-accent);
}

.frtc-catalog-card__title {
  margin: 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--frtc-ink);
}

.frtc-catalog-card__title a {
  color: inherit;
  text-decoration: none;
}

.frtc-catalog-card__title a:hover,
.frtc-catalog-card__title a:focus-visible {
  color: var(--frtc-accent);
  text-decoration: underline;
}

.frtc-catalog-card__abstract {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--frtc-ink-soft);
}

.frtc-catalog-card__facts {
  list-style: none;
  margin: 0.15rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.frtc-catalog-card__fact {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--frtc-ink-soft);
}

.frtc-catalog-card__fact-icon {
  flex: 0 0 auto;
  width: 1.1em;
  text-align: center;
  opacity: 0.85;
  line-height: 1.4;
}

.frtc-catalog-card__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 0.85rem;
  border-top: 1px solid var(--frtc-border);
}

.frtc-catalog-card__price {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.frtc-catalog-card__price-main {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.55rem;
  font-weight: 600;
  line-height: 1.1;
  color: var(--frtc-ink);
}

.frtc-catalog-card__price-tax {
  font-size: 0.78rem;
  color: var(--frtc-ink-muted);
}

.frtc-catalog-card__price-spacer {
  flex: 1;
}

.frtc-catalog-card__cta {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .frtc-course-catalog--list .frtc-compact-item {
    grid-template-columns: 1fr;
  }

  .frtc-course-catalog--list .frtc-compact-item__actions {
    justify-content: flex-start;
  }
}

/* —— Editions archive filter [fastreset_edizioni] —— */
.frtc-editions-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin: 0 0 1.35rem;
  padding: 0.9rem 1rem;
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  border-radius: var(--frtc-card-radius);
}

.frtc-editions-filter__label {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--frtc-ink-soft);
}

.frtc-editions-filter__select {
  min-width: min(100%, 280px);
  max-width: 100%;
  padding: 0.55rem 2.2rem 0.55rem 0.75rem;
  font: inherit;
  font-size: 0.92rem;
  color: var(--frtc-ink);
  background: var(--frtc-white);
  border: 1px solid var(--frtc-border);
  border-radius: var(--frtc-button-radius);
  appearance: none;
  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='%230757F6' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.7rem center;
  cursor: pointer;
}

.frtc-editions-filter__select:focus {
  outline: 2px solid var(--frtc-accent-pale);
  outline-offset: 1px;
  border-color: var(--frtc-accent);
}

.frtc-editions-archive.is-filtering .frtc-editions-archive__body {
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.frtc-editions-archive__body {
  min-height: 2rem;
}

@media (max-width: 1024px) {
  .frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-3,
  .frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  .frtc-course-catalog .frtc-grid--catalog,
  .frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-2,
  .frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-3,
  .frtc-course-catalog .frtc-grid--catalog.frtc-grid--cols-4 {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .frtc-editions-filter {
    flex-direction: column;
    align-items: stretch;
  }

  .frtc-editions-filter__select {
    min-width: 0;
    width: 100%;
  }

  .frtc-catalog-card__footer {
    flex-wrap: wrap;
  }
}

/* Legacy course-card / edition-in-grid helpers */
.frtc-course-archive .frtc-grid--courses.frtc-grid--cols-1 {
  grid-template-columns: minmax(0, 1fr) !important;
}

.frtc-course-archive .frtc-grid--courses.frtc-grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.frtc-course-archive .frtc-grid--courses.frtc-grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.frtc-course-archive .frtc-grid--courses.frtc-grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.frtc-course-card.frtc-edition-card {
  min-width: 0;
}

.frtc-course-card .frtc-edition-card__course a {
  color: inherit;
  text-decoration: none;
}

.frtc-course-card .frtc-edition-card__course a:hover,
.frtc-course-card .frtc-edition-card__course a:focus-visible {
  text-decoration: underline;
}

.frtc-course-card__media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  margin: -22px -24px 14px;
}

.frtc-course-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.frtc-course-card__excerpt,
.frtc-course-card__status {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--frtc-ink-muted, #6b7280);
}

.frtc-course-card__status--expired {
  color: #8a4b08;
}

.frtc-course-detail__event-map {
  margin: 10px 0 12px;
  min-height: 140px;
  border-radius: 6px;
  overflow: hidden;
}

@media (max-width: 1024px) {
  .frtc-course-archive .frtc-grid--courses.frtc-grid--cols-3,
  .frtc-course-archive .frtc-grid--courses.frtc-grid--cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  .frtc-course-archive .frtc-grid--courses,
  .frtc-course-archive .frtc-grid--courses.frtc-grid--cols-2,
  .frtc-course-archive .frtc-grid--courses.frtc-grid--cols-3,
  .frtc-course-archive .frtc-grid--courses.frtc-grid--cols-4 {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

.frtc-edition-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.frtc-edition-card__actions .frtc-btn {
  min-height: 44px;
}

.frtc-edition-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.45rem;
  white-space: nowrap;
}

.frtc-edition-actions__link {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--frtc-accent, #0757F6);
  text-decoration: none;
  cursor: pointer;
  line-height: 1.3;
}

.frtc-edition-actions__link:hover,
.frtc-edition-actions__link:focus-visible {
  text-decoration: underline;
  outline: none;
}

.frtc-edition-actions__sep {
  color: var(--frtc-muted, #6b7280);
  font-weight: 500;
  user-select: none;
}

.frtc-edition-card.is-past,
.frtc-compact-item.is-past {
  opacity: 0.78;
}

.frtc-badge--past {
  background: rgba(107, 114, 128, 0.14);
  color: #4b5563;
}

.frtc-trainer-card__courses,
.frtc-profile-hero__authorizations {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.frtc-trainer-card__courses-label,
.frtc-profile-hero__authorizations-label {
  display: block;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--frtc-muted, #5a6475);
}

.frtc-trainer-card__courses-label {
  font-size: inherit;
}

.frtc-trainer-card__chips .frtc-chip {
  font-size: var(--frtc-trainer-auth-chip-size, 9pt);
}

.frtc-profile-hero__authorizations-label {
  font-size: 0.78rem;
}

.frtc-profile-hero .frtc-profile-hero__authorizations-label {
  color: #ffffff;
}

.frtc-trainer-card__chips,
.frtc-profile-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.frtc-filters-form__grid--simplified {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto auto;
}

.frtc-filters-form__grid--search-only {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}

.frtc-filters-form__actions--inline {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.frtc-download-link span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.frtc-download-link__desc {
  display: block;
  font-size: 0.75rem;
  color: var(--frtc-ink-muted);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.frtc-privacy-details {
  margin: 8px 0 14px;
  font-size: 0.8rem;
}

.frtc-privacy-details summary {
  cursor: pointer;
  color: var(--frtc-accent);
  font-weight: 600;
}

.frtc-privacy-details__body {
  margin-top: 8px;
  padding: 12px;
  background: var(--frtc-paper);
  border: 1px solid var(--frtc-border);
  color: var(--frtc-ink);
  line-height: 1.45;
  white-space: normal;
}

.frtc-field--full {
  grid-column: 1 / -1;
}

@media (max-width: 720px) {
  .frtc-form__grid--2 {
    grid-template-columns: 1fr;
  }

  .frtc-filters-form__grid--search-only {
    grid-template-columns: 1fr;
  }

  .frtc-filters-form__actions--inline {
    width: 100%;
  }

  .frtc-filters-form__actions--inline .frtc-btn {
    flex: 1 1 auto;
    text-align: center;
  }

  .frtc-event-row__side {
    align-items: stretch;
  }
}

@media (max-width: 1024px) {
  .frtc-filters-form__grid--simplified {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .frtc-edition-card__actions:not(.frtc-edition-actions) {
    flex-direction: column;
    align-items: stretch;
  }

  .frtc-edition-card__actions:not(.frtc-edition-actions) .frtc-btn {
    width: 100%;
    justify-content: center;
  }

  .frtc-edition-actions {
    flex-wrap: nowrap;
  }

  .frtc-filters-form__grid--simplified {
    grid-template-columns: minmax(0, 1fr);
  }
}

.frtc-edition-sessions {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}

.frtc-edition-session {
  margin: 0 0 6px;
  font-size: 0.9rem;
  line-height: 1.35;
}

.frtc-edition-session:last-child {
  margin-bottom: 0;
}

.frtc-edition-session__when {
  display: block;
  font-weight: 600;
}

.frtc-edition-session__title {
  display: block;
  font-size: 0.84rem;
  color: var(--frtc-muted, #6b7280);
}

.frtc-edition-session__note {
  font-size: 0.82rem;
  color: var(--frtc-muted, #6b7280);
}

.frtc-edition-session__note p {
  margin: 2px 0 0;
}

.frtc-edition-status {
  margin: 8px 0 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.frtc-edition-regwindow,
.frtc-edition-box-message,
.frtc-edition-public-note {
  margin: 6px 0 0;
  font-size: 0.88rem;
}

.frtc-edition-box-message p,
.frtc-edition-public-note p {
  margin: 0;
}

.frtc-edition-cancel-notice {
  margin: 8px 0 0;
  padding: 8px 10px;
  font-size: 0.88rem;
  background: #fff5f5;
  border-left: 3px solid #c53030;
}

.frtc-edition-card__dates .frtc-edition-sessions {
  display: inline-block;
  vertical-align: top;
}



/* External organizer CTA: keep the label readable on blue buttons in every theme/context. */
a.frtc-external-info-link,
a.frtc-external-info-link:visited,
.frtc-course-detail a.frtc-external-info-link,
.frtc-course-detail a.frtc-external-info-link:visited,
.frtc-wrap a.frtc-external-info-link,
.frtc-wrap a.frtc-external-info-link:visited {
  color: #ffffff !important;
  text-decoration: none;
}

a.frtc-external-info-link:hover,
a.frtc-external-info-link:focus-visible,
.frtc-course-detail a.frtc-external-info-link:hover,
.frtc-course-detail a.frtc-external-info-link:focus-visible,
.frtc-wrap a.frtc-external-info-link:hover,
.frtc-wrap a.frtc-external-info-link:focus-visible {
  color: #ffffff !important;
}

/* Waiting-list popup is intentionally form-only: no duplicated course information. */
.frtc-waiting-list-panel {
  margin: 0;
  padding: 0;
}

/* Public Date Corso notes: render heading only for populated fields. */
.frtc-edition-public-note__title { display:block; margin:0 0 .2rem; font-weight:700; }
.frtc-edition-public-note__text > :first-child { margin-top:0; }
.frtc-edition-public-note__text > :last-child { margin-bottom:0; }


/* =========================================================
   Course Date vertical grid cards — v1.5.55
   Same visual hierarchy as the detail card, adapted to 3-col grids.
   ========================================================= */
.frtc-edition-grid-card{
  --fr-grid-blue:var(--frtc-accent,#0757F6);
  --fr-grid-gold:var(--frtc-gold,#b8954a);
  --fr-grid-cream:#f4ebc6;
  --fr-grid-ivory:var(--frtc-paper,#f7f4ef);
  --fr-grid-border:var(--frtc-border,#d9d2c5);
  --fr-grid-black:var(--frtc-ink,#111);
  --fr-grid-text:var(--frtc-text,#66645f);
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  padding:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--fr-grid-border);
  border-radius:0;
}
.frtc-edition-grid-card__titlebar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  min-height:72px;
  padding:16px 18px;
  background:var(--fr-grid-blue);
}
.frtc-edition-grid-card__titlebar h3{
  margin:0!important;
  padding:0!important;
  color:#fff!important;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.18rem;
  line-height:1.22;
  font-weight:700;
}
.frtc-edition-grid-card__featured{
  flex:0 0 auto;
  white-space:nowrap;
  padding:5px 8px;
  background:var(--fr-grid-gold);
  color:var(--fr-grid-blue);
  font-size:.58rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.frtc-edition-grid-card__featured--past{background:#fff;color:var(--fr-grid-text)}
.frtc-edition-grid-card__content{flex:1;padding:18px}
.frtc-edition-grid-card__country{
  display:flex;
  align-items:center;
  gap:7px;
  margin-bottom:12px;
  color:var(--fr-grid-gold);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.frtc-edition-grid-card__date{
  margin-bottom:10px;
  color:var(--fr-grid-blue);
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.05rem;
  line-height:1.25;
  font-weight:700;
}
.frtc-edition-grid-card__city{
  margin:0 0 3px;
  color:var(--fr-grid-black);
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.45rem;
  font-weight:700;
  line-height:1.1;
}
.frtc-edition-grid-card__venue{
  margin:0 0 16px;
  color:var(--fr-grid-text);
  font-size:.77rem;
  line-height:1.45;
}
.frtc-edition-grid-card__venue strong{color:var(--fr-grid-black)}
.frtc-edition-grid-card__sessions{border-top:1px solid var(--fr-grid-border)}
.frtc-edition-grid-card__session{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--fr-grid-border);
}
.frtc-edition-grid-card__session-day{
  color:var(--fr-grid-gold);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.frtc-edition-grid-card__session strong{
  display:block;
  color:var(--fr-grid-black);
  font-size:.75rem;
  line-height:1.3;
}
.frtc-edition-grid-card__session div>span{
  display:block;
  margin-top:2px;
  color:var(--fr-grid-blue);
  font-size:.72rem;
  font-weight:700;
}
.frtc-edition-grid-card__meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:15px;
}
.frtc-edition-grid-card__meta small,
.frtc-edition-grid-card__commercial small{
  display:block;
  margin-bottom:3px;
  color:#918e88;
  font-size:.55rem;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.frtc-edition-grid-card__meta strong{
  display:block;
  color:var(--fr-grid-black);
  font-size:.67rem;
  line-height:1.3;
}
.frtc-edition-grid-card__trainers{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:15px;
}
.frtc-edition-grid-card__trainer{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--fr-grid-blue);
  font-size:.7rem;
  font-weight:700;
}
.frtc-edition-grid-card__trainer img{width:32px;height:32px;border-radius:50%;object-fit:cover}
.frtc-edition-grid-card__notice{
  margin-top:12px;
  padding:10px 11px;
  border-left:3px solid var(--fr-grid-gold);
  background:var(--fr-grid-cream);
  color:#625c47;
  font-size:.7rem;
  line-height:1.4;
}
.frtc-edition-grid-card__notice strong{display:block;margin-bottom:3px;color:var(--fr-grid-blue);font-size:.6rem;text-transform:uppercase}
.frtc-edition-grid-card__footer{
  margin-top:auto;
  padding:16px 18px;
  border-top:1px solid var(--fr-grid-border);
  background:var(--fr-grid-ivory);
}
.frtc-edition-grid-card__commercial{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
}
.frtc-edition-grid-card__commercial>div{min-width:0}
.frtc-edition-grid-card__commercial strong{display:block;color:var(--fr-grid-black);font-size:.75rem;line-height:1.3}
.frtc-edition-grid-card__commercial span{display:block;margin-top:2px;color:var(--fr-grid-text);font-size:.62rem}
.frtc-edition-grid-card__price{
  color:var(--fr-grid-blue)!important;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.45rem!important;
  line-height:1!important;
}
.frtc-edition-grid-card__actions{display:grid;grid-template-columns:auto 1fr;gap:7px}
.frtc-edition-grid-card__primary,
.frtc-edition-grid-card__secondary{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 12px;
  text-decoration:none!important;
  font-size:.7rem;
  font-weight:800;
}
.frtc-edition-grid-card__primary{background:var(--fr-grid-blue);border:1px solid var(--fr-grid-blue);color:#fff!important}
.frtc-edition-grid-card__secondary{background:#fff;border:1px solid var(--fr-grid-border);color:var(--fr-grid-blue)!important}
.frtc-edition-grid-card__box-message{
  margin-top:10px;
  padding:10px 11px;
  border-left:3px solid var(--fr-grid-gold);
  background:var(--fr-grid-cream);
  color:#625c47;
  font-size:.7rem;
  line-height:1.4;
}
.frtc-edition-grid-card__map{
  border-top:1px solid var(--fr-grid-border);
  background:var(--fr-grid-cream);
}
.frtc-edition-grid-card__map summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 18px;
  cursor:pointer;
  color:var(--fr-grid-blue);
  list-style:none;
  font-size:.62rem;
  font-weight:800;
  text-transform:uppercase;
}
.frtc-edition-grid-card__map summary::-webkit-details-marker{display:none}
.frtc-edition-grid-card__map[open] summary span:last-child{transform:rotate(45deg)}
.frtc-edition-grid-card__map-panel{padding:0 12px 12px}
.frtc-edition-grid-card__map-panel .frtc-map{height:190px}
.frtc-trainer-profile-map{margin:14px 0 18px}
.frtc-trainer-profile-map .frtc-map{height:210px;border:1px solid var(--frtc-border,#d9d2c5)}

@media(max-width:760px){
  .frtc-edition-grid-card__meta{grid-template-columns:1fr;gap:7px}
  .frtc-edition-grid-card__commercial{flex-direction:column}
  .frtc-edition-grid-card__actions{grid-template-columns:1fr}
}


/* v1.5.56 — grid layout refinements */
.frtc-edition-grid-card__titlebar{
  display:block;
  min-height:0;
  padding:14px 17px 16px;
}
.frtc-edition-grid-card__topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:24px;
  margin-bottom:11px;
}
.frtc-edition-grid-card__country--header{
  margin:0;
  color:#fff !important;
  font-size:.68rem;
  line-height:1;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.frtc-edition-grid-card__country--header .frtc-edition-grid-card__flag{
  font-size:.88rem;
  line-height:1;
}
.frtc-edition-grid-card__featured{
  color:#fff !important;
  background:var(--fr-grid-gold);
  white-space:nowrap;
}
.frtc-edition-grid-card__titlebar h3{
  width:100%;
  max-width:none;
  margin:0!important;
}
.frtc-edition-grid-card__content > .frtc-edition-grid-card__date{
  display:none !important;
}
.frtc-edition-grid-card__actions{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
}
.frtc-edition-grid-card__primary,
.frtc-edition-grid-card__secondary{
  width:100%;
  min-width:0;
  min-height:42px;
  padding:10px 8px;
  font-family:inherit;
  font-size:.72rem;
  line-height:1.15;
  font-weight:700;
  text-align:center;
}
.frtc-edition-grid-card__secondary{
  background:#fff;
  border:1px solid var(--fr-grid-blue);
  color:var(--fr-grid-blue)!important;
}
.frtc-edition-grid-card__primary{
  background:var(--fr-grid-blue);
  border:1px solid var(--fr-grid-blue);
  color:#fff!important;
}
/* Map is intentionally not part of the course grid. */
.frtc-edition-grid-card__map{display:none!important}

/* Trainer profile contact CTA: make the existing button visibly styled. */
.frtc-single-trainer .frtc-profile-sidebar .frtc-btn--primary.frtc-btn--block,
.frtc-single-trainer .frtc-profile-sidebar .frtc-btn--gold.frtc-btn--block{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:46px;
  margin-top:18px;
  padding:11px 16px;
  border:1px solid var(--frtc-accent,#0757F6);
  border-radius:var(--frtc-button-radius,4px);
  background:var(--frtc-accent,#0757F6);
  color:#fff!important;
  text-decoration:none!important;
  font-family:inherit;
  font-size:.82rem;
  line-height:1.2;
  font-weight:700;
  cursor:pointer;
}
.frtc-single-trainer .frtc-profile-sidebar .frtc-btn--primary.frtc-btn--block:hover,
.frtc-single-trainer .frtc-profile-sidebar .frtc-btn--gold.frtc-btn--block:hover{
  background:#0648d4;
  border-color:#0648d4;
  color:#fff!important;
}


/* v1.5.57 — trainer address visibility */
.frtc-single-trainer .frtc-contact-row--address{
  align-items:flex-start;
}
.frtc-single-trainer .frtc-contact-row--address .frtc-contact-row__text{
  line-height:1.45;
}

/* v1.5.59 — trainer contact box spacing */
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  column-gap:8px;
  align-items:start;
  padding:12px 0;
  border-bottom:1px solid #d9d3c8;
  line-height:1.25;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row:last-of-type{
  border-bottom:0;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__icon{
  width:22px;
  margin-top:1px;
  color:var(--frtc-accent,#0757F6);
  font-size:15px;
  line-height:1.2;
  text-align:left;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text{
  display:block;
  min-width:0;
  color:var(--frtc-ink,#111);
  line-height:1.3;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text strong{
  display:block;
  margin:0 0 2px;
  color:var(--frtc-ink,#111);
  font-size:.76rem;
  line-height:1.15;
  font-weight:700;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text a{
  display:block;
  margin:0;
  color:var(--frtc-accent,#0757F6);
  font-size:.78rem;
  line-height:1.25;
  text-decoration:none;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row--address .frtc-contact-row__text{
  font-size:.78rem;
  line-height:1.35;
}

/* v1.5.60 — tighter trainer contact label/value spacing */
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text strong{
  margin-bottom:0 !important;
  line-height:1.05;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text a,
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text > span:not(.screen-reader-text){
  margin-top:1px;
  font-size:calc(.78rem + 1.5px);
  line-height:1.18;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row--address .frtc-contact-row__text{
  font-size:calc(.78rem + 1.5px);
  line-height:1.22;
}

/* v1.5.61 — exact trainer contact label/value spacing */
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text strong{
  margin:0 0 7px 0 !important;
  line-height:1.05;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text br{
  display:none;
}
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text a,
.frtc-single-trainer .frtc-sidebar-card#frtc-profile-contacts .frtc-contact-row__text{
  margin-top:0 !important;
}

/* v1.5.64 — multiple trainer offices */
.frtc-single-trainer #frtc-profile-contacts .frtc-contact-row--address{
  display:grid !important;
}
.frtc-single-trainer #frtc-profile-contacts .frtc-contact-row--address + .frtc-contact-row--address{
  border-top:0;
}
