/* Training & Events Pro — theme-first public interface, v1.0.2.
 * WordPress Global Styles (theme.json) provide the default palette.
 * Classic themes inherit type and colours, with neutral system-colour fallbacks.
 * No remote fonts, background images or externally loaded textures.
 */
.tep-wrap {
  --tep-accent: var(--wp--preset--color--primary, var(--wp--preset--color--accent, var(--wp--preset--color--contrast, currentColor)));
  --tep-surface: var(--wp--preset--color--base, var(--wp--preset--color--background, Canvas));
  --tep-contrast: var(--wp--preset--color--contrast, CanvasText);
  --tep-on-accent: var(--wp--preset--color--base, Canvas);
  --tep-border: color-mix(in srgb, var(--tep-contrast) 19%, transparent);
  --tep-subtle: color-mix(in srgb, var(--tep-contrast) 65%, var(--tep-surface));
  --tep-muted-surface: color-mix(in srgb, var(--tep-contrast) 4%, var(--tep-surface));
  --tep-soft-accent: color-mix(in srgb, var(--tep-accent) 8%, var(--tep-surface));
  --tep-focus: color-mix(in srgb, var(--tep-accent) 55%, transparent);
  --tep-radius: 13px;
  color: inherit;
  background: transparent;
  font-family: inherit;
  font-size: inherit;
  line-height: 1.6;
  width: 100%;
  max-width: 1120px;
  margin: 2rem auto 3.25rem;
  overflow-wrap: break-word;
}
.tep-wrap *, .tep-wrap *::before, .tep-wrap *::after { box-sizing: border-box; }
.tep-wrap :where(h2, h3, h4) { font-family: inherit; color: inherit; letter-spacing: -.012em; line-height: 1.3; }
.tep-wrap h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin: .4rem 0 .75rem; }
.tep-wrap h3 { font-size: clamp(1.18rem, 2vw, 1.4rem); margin: .8rem 0; }
.tep-wrap :where(p, li) { max-width: none; }
.tep-wrap :where(a) { color: var(--tep-accent); text-underline-offset: .17em; }
.tep-wrap :where(a:hover) { text-decoration: underline; }
.tep-wrap :where(a, input, select, textarea, button):focus-visible {
  outline: 3px solid var(--tep-focus);
  outline-offset: 3px;
}
.tep-eyebrow { font-size: .77rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; color: var(--tep-accent); }
.tep-hero {
  padding: clamp(1.3rem, 4vw, 2.5rem);
  background: var(--tep-soft-accent);
  border: 1px solid var(--tep-border);
  border-radius: calc(var(--tep-radius) + 5px);
  margin-bottom: 1.5rem;
}
.tep-hero p { margin: 0; color: inherit; opacity: .83; font-size: 1.06em; }
.tep-toolbar { display:flex; flex-wrap:wrap; align-items: stretch; gap:.75rem; margin-bottom:1.5rem; }
.tep-toolbar input { flex: 2 1 230px; }
.tep-toolbar select { flex: 1 1 160px; }
.tep-wrap :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font: inherit;
  font-size: 1rem;
  line-height: 1.45;
  min-height: 46px;
  padding: .65rem .85rem;
  width: 100%;
  max-width: 100%;
  border: 1px solid var(--tep-border);
  border-radius: 9px;
  background: var(--tep-surface);
  color: var(--tep-contrast);
  box-shadow: none;
}
.tep-wrap textarea { min-height: 90px; }
.tep-wrap input::placeholder, .tep-wrap textarea::placeholder { color: var(--tep-subtle); opacity: 1; }
.tep-wrap :where(input:not([type="checkbox"]), select, textarea):focus { border-color: var(--tep-accent); }
.tep-wrap .tep-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: .5rem;
  min-height: 46px;
  padding: .7rem 1.25rem;
  border-radius: 9px;
  border: 1px solid var(--tep-accent);
  background: var(--tep-accent);
  color: var(--tep-on-accent);
  font: inherit;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .16s, transform .16s;
}
.tep-wrap .tep-btn:hover { opacity: .86; text-decoration:none; }
.tep-wrap .tep-btn:active { transform:translateY(1px); }
.tep-wrap .tep-btn-outline { background: transparent; color: var(--tep-accent); }
.tep-wrap .tep-btn-danger { background: transparent; color: #ab263a; border-color: #ab263a; }
.tep-btn-wide { width:100%; }
.tep-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%,280px), 1fr)); gap:1.25rem; }
.tep-card {
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border: 1px solid var(--tep-border);
  border-radius: var(--tep-radius);
  background: var(--tep-surface);
  color: var(--tep-contrast);
  box-shadow:0 2px 9px color-mix(in srgb, var(--tep-contrast) 5%, transparent);
  transition: box-shadow .16s, transform .16s;
}
.tep-card:hover { box-shadow:0 7px 22px color-mix(in srgb, var(--tep-contrast) 11%, transparent); transform:translateY(-2px); }
.tep-card-image { display:block; aspect-ratio:16/9; overflow:hidden; background:var(--tep-muted-surface); }
.tep-card-image img { width:100%; height:100%; display:block; object-fit:cover; }
.tep-card-body { padding: clamp(1rem, 2vw, 1.4rem); flex:1; display:flex; flex-direction:column; }
.tep-card-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem; }
.tep-tag, .tep-pill { display:inline-block; font-size:.76rem; font-weight:700; border-radius:999px; padding:.27rem .72rem; background:var(--tep-soft-accent); color:var(--tep-contrast); border:1px solid var(--tep-border); }
.tep-warning { border-color:#a8791e; }
.tep-price { color:var(--tep-contrast); font-size:.9rem; font-weight:750; }
.tep-card h3 { margin: 1rem 0 .2rem; }
.tep-card h3 a { color: inherit; }
.tep-muted { opacity:.76; font-size:.93rem; margin:.45rem 0; }
.tep-link { display:inline-block; font-weight:700; margin-top:auto; padding-top:1rem; }
.tep-form-card {
  max-width: 790px;
  padding: clamp(1.1rem, 4vw, 2.5rem);
  margin:auto;
  border:1px solid var(--tep-border);
  border-radius: calc(var(--tep-radius) + 5px);
  background:var(--tep-surface);
  color:var(--tep-contrast);
  box-shadow:0 4px 18px color-mix(in srgb, var(--tep-contrast) 6%, transparent);
}
.tep-form-header { border-bottom:1px solid var(--tep-border); margin-bottom:1.5rem; padding-bottom:1.4rem; }
.tep-form-header > p { font-size:1.07em; }
.tep-detail-line { display:flex; flex-wrap:wrap; gap:.45rem 1.25rem; font-weight:650; }
.tep-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.05rem 1.25rem; }
.tep-fields label { display:flex; flex-direction:column; gap:.45rem; font-size:.95rem; font-weight:650; }
.tep-fields label:has(textarea) { grid-column:1/-1; }
.tep-fields .tep-check { display:flex; gap:.6rem; align-items:center; padding-top:.5rem; }
.tep-consent { display:flex; gap:.75rem; align-items:flex-start; margin:1.5rem 0 1rem; font-size:.93rem; }
.tep-consent input, .tep-check input { width:20px; height:20px; flex:0 0 20px; accent-color:var(--tep-accent); }
.tep-footnote { text-align:center; font-size:.82rem; margin:.9rem 0 0; }
.tep-honeypot { position:absolute; left:-10000px; opacity:0; pointer-events:none; }
.tep-alert { border:1px solid var(--tep-border); border-inline-start:4px solid var(--tep-accent); padding:.9rem 1.05rem; border-radius:9px; margin:1rem 0; background:var(--tep-muted-surface); color:var(--tep-contrast); }
.tep-alert-error { border-inline-start-color:#ae3441; }
.tep-free-notice { background:var(--tep-soft-accent); padding:.85rem 1rem; border:1px solid var(--tep-border); border-radius:9px; color:inherit; font-weight:700; }
.tep-empty { grid-column:1/-1; padding:2.2rem; background:var(--tep-muted-surface); border:1px dashed var(--tep-border); border-radius:var(--tep-radius); text-align:center; }
.tep-ticket { max-width:760px; margin:auto; background:var(--tep-surface); color:var(--tep-contrast); border:1px solid var(--tep-border); border-radius:var(--tep-radius); overflow:hidden; box-shadow:0 4px 16px color-mix(in srgb, var(--tep-contrast) 8%, transparent); }
.tep-ticket-head { padding:1.8rem 2.1rem; background:var(--tep-soft-accent); border-bottom:1px solid var(--tep-border); }
.tep-ticket-head h2 { font-size:clamp(1.5rem,4vw,1.9rem); }
.tep-ticket-content { display:grid; grid-template-columns:minmax(0,1fr) 190px; align-items:center; gap:1.5rem; padding:1.65rem 2.1rem; }
.tep-ticket-content h3 { font-size:1.5rem; }
.tep-ticket-label { margin:0; font-size:.75rem; letter-spacing:.1em; font-weight:700; text-transform:uppercase; }
.tep-qr { display:grid; place-items:center; min-width:152px; min-height:152px; background:#fff; color:#222; border:1px solid #ccc; padding:12px; border-radius:9px; }
.tep-qr svg { width:100%; height:auto; display:block; }
.tep-qr span { font-size:.75rem; color:#333; }
.tep-qr-box { display:grid; justify-items:center; gap:.5rem; max-width:210px; }
.tep-qr-box .tep-qr { width:180px; height:180px; }
.tep-ticket-token { background:var(--tep-muted-surface); color:var(--tep-contrast); font-size:.67rem; line-height:1.4; overflow-wrap:anywhere; word-break:break-all; text-align:center; user-select:all; padding:.3rem; border-radius:5px; }
.tep-ticket > .tep-muted, .tep-ticket > .tep-alert { margin:.5rem 2.1rem; }
.tep-actions { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; padding:1.1rem 2.1rem 1.8rem; }
.tep-actions form { margin:0; }
.tep-status-confirmed, .tep-status-completed { border-color:#35825b; }
.tep-status-cancelled { border-color:#ae3441; }
.tep-list { display:grid; gap:.8rem; }
.tep-list-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.3rem; border:1px solid var(--tep-border); border-radius:var(--tep-radius); background:var(--tep-surface); }
.tep-certificate { max-width:920px; padding:.7rem; border:10px solid var(--tep-border); background:var(--tep-surface); color:var(--tep-contrast); }
.tep-certificate-border { text-align:center; padding:clamp(2rem,7vw,4rem) 1.5rem; border:2px solid var(--tep-accent); }
.tep-certificate h2 { font-size:clamp(1.7rem,4vw,2.7rem); font-family:inherit; }
.tep-certificate h3 { font-size:1.45rem; }
.tep-certificate-kicker { color:var(--tep-accent); font-size:1.3rem; }
.tep-certificate-code { margin-top:2.8rem; font-size:.85rem; }
.tep-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:640px) {
  .tep-wrap { margin:1.1rem auto 2rem; }
  .tep-hero { padding:1.25rem; }
  .tep-fields, .tep-ticket-content { grid-template-columns:1fr; }
  .tep-form-card { padding:1.2rem; }
  .tep-toolbar > * { flex:1 1 100%; }
  .tep-ticket-head, .tep-ticket-content { padding:1.25rem; }
  .tep-ticket > .tep-muted, .tep-ticket > .tep-alert { margin:.5rem 1.25rem; }
  .tep-actions { padding:1.2rem; }
  .tep-list-row { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  .tep-wrap *, .tep-wrap *::before, .tep-wrap *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}
@media print {
  body * { visibility:hidden !important; }
  .tep-ticket-section, .tep-ticket-section *, .tep-certificate, .tep-certificate * { visibility:visible !important; }
  .tep-ticket-section, .tep-certificate { position:absolute; top:0; left:0; width:100%; box-shadow:none; }
  .tep-actions, .tep-print-hide { display:none !important; }
  .tep-ticket, .tep-certificate { box-shadow:none !important; break-inside:avoid; }
  .tep-wrap { margin:0; }
}
/* v1.1.0 native theme-aware ticket and certificate details */
.tep-ticket-logo {padding:1rem 2rem 0;background:var(--tep-surface)}
.tep-ticket-logo img {display:block;max-width:190px;max-height:72px;width:auto;height:auto;object-fit:contain}
.tep-qr-image {display:block;width:265px;max-width:100%;height:auto;margin:auto;background:white;border-radius:10px;padding:5px}
.tep-qr-box small {display:block;text-align:center;margin-top:5px;color:var(--tep-muted)}
.tep-certificate-logo {display:block;max-width:210px;max-height:90px;margin:0 auto 1.3rem;object-fit:contain}
.tep-cert-modern {border:0;border-top:14px solid var(--tep-accent);box-shadow:0 9px 26px rgba(0,0,0,.06)}
.tep-cert-modern .tep-certificate-border {border:0;text-align:left;padding:4rem clamp(2rem,8vw,6rem)}
.tep-cert-modern .tep-certificate-logo {margin:0 0 1.5rem}
.tep-cert-elegant {border:double 11px var(--tep-accent);box-shadow:inset 0 0 0 16px var(--tep-surface)}
.tep-cert-elegant .tep-certificate-border {border:1px solid var(--tep-accent);margin:12px}
.tep-cert-elegant .tep-certificate-kicker {font-family:Georgia,serif;letter-spacing:.08em;text-transform:uppercase}
.tep-cert-elegant h2 {font-family:Georgia,serif}
/* v1.1.2 public verification and branded certificate preview inherit active theme palette */
.tep-verify .tep-panel{padding:clamp(18px,3vw,30px);border:1px solid var(--tep-border,#d6dbe2);border-radius:14px;background:var(--tep-surface,#fff)}
.tep-verify form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0}
.tep-verify form label{width:100%;font-weight:650}
.tep-verify input{min-width:min(100%,280px);flex:1 1 280px;padding:12px;border:1px solid var(--tep-border,#bac5d1);border-radius:8px;font:inherit}
.tep-verify-result{margin-top:16px;padding:16px;border:1px solid var(--tep-border,#c8d4df);border-radius:10px}
.tep-verify-result dl{display:grid;gap:12px}
.tep-verify-result dl>div{display:grid;grid-template-columns:minmax(130px,0.55fr) 1fr;gap:12px}
.tep-verify-result dt{font-weight:650}.tep-verify-result dd{margin:0;overflow-wrap:anywhere}
.tep-cert-uploaded{border:0;background-color:#fff;background-repeat:no-repeat}
.tep-cert-uploaded .tep-certificate-border{border:0;background:transparent}
@media(max-width:600px){.tep-verify-result dl>div{display:block}}
.tep-multi-options{border:1px solid var(--tep-border,#d8dee6);padding:16px;border-radius:10px;margin:12px 0 20px}.tep-multi-option{display:flex;align-items:flex-start;gap:12px;padding:12px 4px;border-bottom:1px solid var(--tep-border,#d8dee6)}.tep-multi-option:last-child{border-bottom:0}.tep-multi-option input{width:auto;margin-top:4px;flex:0 0 auto}.tep-multi-option span{display:flex;flex-direction:column;gap:4px}.tep-multi-option small{font-size:.85em;opacity:.8}.tep-batch-results li{padding:12px 0;border-bottom:1px solid var(--tep-border,#ddd)}

/* v1.3.0: group booking and self-service. Uses the parent theme's colours and fonts. */
.tep-portal-card{background:var(--tep-surface);border:1px solid var(--tep-border);border-radius:var(--tep-radius);padding:clamp(1rem,3vw,1.5rem);margin:1rem 0;box-shadow:0 4px 18px color-mix(in srgb,var(--tep-contrast) 5%,transparent)}
.tep-portal-card h3{margin:.3rem 0 .6rem}
.tep-portal-links{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}
.tep-portal-edit{border-top:1px solid var(--tep-border);margin-top:1.2rem;padding-top:.8rem}
.tep-portal-edit summary{cursor:pointer;font-weight:650;padding:.35rem 0}
.tep-portal-edit form{padding:.6rem 0}
.tep-group-members{min-width:0;border:1px solid var(--tep-border);border-radius:var(--tep-radius);padding:1rem;margin:1rem 0}
.tep-group-member{border:1px solid var(--tep-border);border-radius:10px;background:var(--tep-muted-surface);padding:1rem;margin:.7rem 0}
.tep-group-member>.tep-fields{margin:.7rem 0 0}
@media(max-width:600px){.tep-portal-links .tep-btn{width:100%;text-align:center}.tep-group-members{padding:.6rem}.tep-group-member{padding:.8rem}}

/* v1.3.1 portal: native website palette, larger controls and accessible pagination. */
.tep-portal-filters,.tep-portal-pagination{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:1.1rem 0}
.tep-portal-filters label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.tep-portal-filters select{font:inherit;border:1px solid var(--tep-border);border-radius:8px;padding:10px 12px;background:var(--tep-surface);color:var(--tep-contrast);min-width:190px}
.tep-portal-pagination{justify-content:space-between;align-items:center;border-top:1px solid var(--tep-border);padding-top:1rem}
.tep-portal-pagination span{font-size:.95rem;color:var(--tep-muted)}
.tep-portal a:focus-visible,.tep-portal button:focus-visible,.tep-portal select:focus-visible{outline:3px solid var(--tep-accent);outline-offset:3px}
@media(max-width:600px){.tep-portal-pagination>.tep-btn{flex:1;text-align:center}.tep-portal-filters>*{width:100%}}

/* v1.3.4 — theme-first flyer cards and accessible, responsive venue maps. */
.tep-wrap .tep-card{transition:transform .18s ease,box-shadow .18s ease;overflow:hidden}
.tep-wrap .tep-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px color-mix(in srgb,var(--tep-contrast) 13%,transparent)}
.tep-wrap .tep-card-image{position:relative}
.tep-wrap .tep-card-image img{transition:transform .22s ease}
.tep-wrap .tep-card:hover .tep-card-image img{transform:scale(1.025)}
.tep-card-address{font-size:.85rem;line-height:1.5;color:var(--tep-subtle);overflow-wrap:anywhere}
.tep-card-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:13px}
.tep-card-map-link{font-size:.84rem;font-weight:650;white-space:nowrap}
.tep-venue-map{width:100%;margin:1.8rem auto;border-radius:calc(var(--tep-radius) + 3px);overflow:hidden;border:1px solid var(--tep-border);background:var(--tep-surface);box-shadow:0 3px 20px color-mix(in srgb,var(--tep-contrast) 6%,transparent)}
.tep-map-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:clamp(16px,3vw,24px)}
.tep-map-heading h3{margin:3px 0 5px;font-size:clamp(1.12rem,2vw,1.35rem);font-weight:720}
.tep-map-heading p{margin:0;color:var(--tep-subtle);font-size:.92rem;line-height:1.5}
.tep-map-kicker{font-size:.72rem;letter-spacing:.1em;font-weight:760;opacity:.75}
.tep-map-directions{display:inline-flex;align-items:center;min-height:42px;padding:9px 15px;border:1px solid var(--tep-border);border-radius:9px;text-decoration:none;font-size:.86rem;font-weight:700;white-space:nowrap;background:var(--tep-muted-surface)}
.tep-map-frame{height:clamp(240px,34vw,365px);background:var(--tep-muted-surface)}
.tep-map-frame iframe{display:block;border:0;width:100%;height:100%}
.tep-single-flyer{border:1px solid var(--tep-border);border-radius:calc(var(--tep-radius) + 4px);overflow:hidden;background:var(--tep-muted-surface);max-width:100%;margin:0 0 1.5rem}
.tep-single-flyer img{width:100%;height:auto;display:block;max-height:550px;object-fit:contain}
@media(max-width:640px){.tep-wrap .tep-card:hover{transform:none}.tep-wrap .tep-card-image img{transition:none}.tep-map-heading{align-items:flex-start}.tep-map-directions{width:100%;justify-content:center}.tep-map-frame{height:265px}}
@media(prefers-reduced-motion:reduce){.tep-wrap .tep-card,.tep-wrap .tep-card-image img{transition:none!important}}

/* v1.3.5 — accessible, theme-adaptive discovery catalogue and programme details. */
.tep-catalog .tep-hero{position:relative;overflow:hidden;padding:clamp(24px,4vw,43px);background:var(--tep-soft-accent)}
.tep-catalog .tep-hero h2{max-width:30ch;font-size:clamp(1.85rem,3.4vw,2.65rem);line-height:1.16}
.tep-catalog .tep-hero p{max-width:68ch}
.tep-hero-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}
.tep-hero-links a{display:inline-flex;align-items:center;font-size:.92rem;font-weight:700;padding:7px 12px;border-radius:8px;background:var(--tep-surface);border:1px solid var(--tep-border);text-decoration:none}
.tep-catalog-filter{display:grid;grid-template-columns:minmax(220px,2fr) minmax(140px,1fr) minmax(130px,1fr) minmax(130px,1fr);gap:12px;align-items:end;border:1px solid var(--tep-border);background:var(--tep-surface);border-radius:calc(var(--tep-radius) + 3px);padding:clamp(14px,2vw,22px);margin:18px 0}
.tep-filter-field{min-width:0}
.tep-filter-field label{display:block;font-weight:700;font-size:.88rem;line-height:1.4;margin:0 0 6px}
.tep-filter-field :is(input,select){width:100%;margin:0}
.tep-filter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;grid-column:1/-1}
.tep-clear-filters{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.tep-catalog-results{display:flex;align-items:center;gap:.35em;color:var(--tep-subtle);font-size:.94rem;margin:0 0 14px}
.tep-catalog-results strong{color:var(--tep-contrast);font-size:1.09em}
.tep-catalog .tep-card{height:100%;border-radius:calc(var(--tep-radius) + 2px)}
.tep-card-placeholder{display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:200px;aspect-ratio:16/9;padding:24px;background:var(--tep-soft-accent);border-bottom:1px solid var(--tep-border);text-decoration:none}
.tep-card-placeholder span{text-transform:uppercase;font-weight:750;letter-spacing:.08em;font-size:.76rem}
.tep-card-placeholder strong{font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.4}
.tep-card-excerpt{font-size:.91rem;line-height:1.65;color:var(--tep-subtle);margin:8px 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tep-date-end{display:block;font-size:.87em;padding-left:1.25em}
.tep-catalog .tep-card-venue{margin-bottom:4px}
.tep-catalog .tep-card-actions{border-top:1px solid var(--tep-border);margin-top:auto;padding-top:16px}
.tep-pagination{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;margin:30px 0 8px}
.tep-pagination>span{font-size:.92rem;font-weight:700;min-width:95px;text-align:center}
.tep-empty strong{font-size:1.12rem}
.tep-empty .tep-btn{margin-top:10px}
.tep-event-summary{border:1px solid var(--tep-border);border-radius:calc(var(--tep-radius) + 4px);background:var(--tep-surface);padding:clamp(20px,3vw,30px);box-shadow:0 6px 22px color-mix(in srgb,var(--tep-contrast) 6%,transparent)}
.tep-event-summary-head{display:flex;align-items:start;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--tep-border);padding-bottom:14px;margin-bottom:18px}
.tep-event-summary-head h2{margin:6px 0 0;font-size:clamp(1.3rem,2.5vw,1.65rem)}
.tep-event-summary-head .tep-price{font-size:.98rem;font-weight:750}
.tep-event-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;margin:0;padding:0}
.tep-event-facts>div{padding:0;margin:0;min-width:0}
.tep-event-facts dt{color:var(--tep-subtle);font-size:.79rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.tep-event-facts dd{margin:3px 0 0;font-weight:650;line-height:1.5;overflow-wrap:anywhere}
.tep-event-summary-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.tep-registration-anchor{scroll-margin-top:105px}
@media(max-width:900px){.tep-catalog-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.tep-filter-search{grid-column:1/-1}}
@media(max-width:600px){.tep-catalog-filter{grid-template-columns:1fr}.tep-filter-search{grid-column:auto}.tep-filter-actions .tep-btn{width:100%}.tep-event-facts{grid-template-columns:1fr}.tep-event-summary-actions .tep-btn{width:100%}.tep-hero-links{align-items:stretch;flex-direction:column}.tep-hero-links a{justify-content:center}}
@media(prefers-reduced-motion:reduce){.tep-catalog .tep-card:hover{transform:none}}

/* v1.3.7: shared compulsory participant fields */
.tep-default-profile { border: 1px solid var(--tep-border); border-radius: var(--tep-radius); margin: 1.25rem 0; padding: clamp(1rem,2vw,1.5rem); min-width:0; background:var(--tep-muted-surface); }
.tep-default-profile legend { font-size:1.15rem; font-weight:750; padding:0 .6rem; color:inherit; }
.tep-profile-required { font-weight:500; font-size:.8rem; opacity:.8; margin-left:.35rem; }
.tep-profile-intro { font-size:.94rem; margin-bottom:1rem; opacity:.8; }
.tep-profile-fields label { display:flex; flex-direction:column; min-width:0; gap:.3rem; }
.tep-profile-fields .tep-field-wide { grid-column:1/-1; }
.tep-profile-fields small { font-size:.8rem; opacity:.75; }
.tep-required { color:var(--tep-accent); font-weight:700; }
.tep-group-member .tep-default-profile { margin: .75rem 0; }
@media (max-width:650px) { .tep-default-profile { padding: .95rem; } .tep-profile-required { display:block; margin-left:0; } }

/* v1.3.8: reusable template questions within each group's participant card. */
.tep-wrap .tep-template-questions{border:1px solid var(--tep-border,#d8e0ea);border-radius:10px;padding:16px;margin:17px 0;background:var(--tep-surface,#fff)}
.tep-wrap .tep-template-questions legend{font-weight:700;padding:0 8px}
@media(max-width:620px){.tep-wrap .tep-template-questions{padding:12px}}

/* v1.3.9 conditional fields respect the website's native theme. */
.tep-wrap .tep-conditional-field[hidden]{display:none!important}
.tep-wrap .tep-template-questions{border:1px solid var(--tep-border, #d8dce2);border-radius:12px;padding:16px;margin:16px 0}
.tep-wrap .tep-template-questions legend{font-weight:700;padding:0 8px}
