/* Elevate team marketplace — scoped under #elevate-team-marketplace so the
   WordPress theme keeps its header/footer and this widget keeps its own look. */
#elevate-team-marketplace {
    --etm-brand: #C81A20;
    --etm-brand-hi: #E0312B;
    --etm-accent: #C81A20;
    --etm-grad: linear-gradient(135deg, var(--etm-brand), var(--etm-brand-hi));
    --etm-on-brand: #fff;
    --etm-soft: #3a3f45;
    --etm-ink: #1A1A1A;
    --etm-heading: #111;
    --etm-muted: #5F6A72;
    --etm-line: #e5e7eb;
    --etm-bg: #f6f7f9;
    --etm-card: #fff;
    --etm-field: #fff;
    /* Red for text, and red fills under white text: the accent in the light
       theme (5.8:1); the dark theme has its own of each (below). */
    --etm-accent-text: var(--etm-accent);
    --etm-fill: var(--etm-accent);
    /* A field's edge, 3:1 against the page, so the search box reads as a box. */
    --etm-f-line: #8a929b;
    --etm-display: "Anton", "Teko", "Impact", "Haettenschweiler", "Arial Narrow", sans-serif;
    --etm-radius: 14px;
    --etm-radius-ctl: 10px;
    --etm-shadow: 0 10px 30px rgba(26, 26, 26, .12);
    --etm-chip-track: transparent;
    /* Anton's capital height. Type set in the display face is scaled to it, so
       on a page whose headings are Teko (small letters for its size) or with
       no web font at all, names stay as tall as they are in Anton. */
    --etm-display-cap: cap-height .859;
    container-name: etm;
    container-type: inline-size;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    color: var(--etm-ink);
    color-scheme: light;
    /* The page's font family is the only type setting taken from the host. */
    font-family: inherit;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    line-height: 1.45;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-indent: 0;
    text-shadow: none;
    text-align: start;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: manual;
    overflow-x: clip;
}
/* Host-theme element rules (button, a, p, h3, li, img, input, label ...) stop
   here: whatever the widget does not set itself falls back to the browser's
   default, not to the theme's. Must stay above the box-sizing rule. */
#elevate-team-marketplace :where(:not(svg, svg *)),
#elevate-team-marketplace :where(:not(svg, svg *))::before,
#elevate-team-marketplace :where(:not(svg, svg *))::after,
#elevate-team-marketplace :where(input)::placeholder { all: revert; }
#elevate-team-marketplace :where(svg) {
    max-width: none;
    vertical-align: baseline;
    transition: none;
}
/* Nothing to show until the script has run (delayed, blocked or failed). */
#elevate-team-marketplace[data-theme]:empty {
    padding: 0;
    background: none;
}
#elevate-team-marketplace *,
#elevate-team-marketplace *::before,
#elevate-team-marketplace *::after { box-sizing: border-box; }

#elevate-team-marketplace .etm-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Added by the script when the theme and the host page disagree (see syncFrame). */
#elevate-team-marketplace.etm-framed {
    background: var(--etm-bg);
    padding: 16px;
    border-radius: 16px;
}
/* Flush with the page: no horizontal clip, so the focus ring of a control at
   the widget's edge is drawn whole (the framed panel has its padding for that). */
#elevate-team-marketplace.etm-flush { overflow-x: visible; }

/* The filter row is the host page's own (.tfilter): centred groups of a
   label and pill chips that wrap, then the search and the two menus. */
#elevate-team-marketplace .etm-more {
    text-align: center;
    margin: 20px 0 0;
}
#elevate-team-marketplace .etm-more a {
    color: var(--etm-accent, #EF3B36);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
}
#elevate-team-marketplace .etm-more a:hover { text-decoration: underline; }
#elevate-team-marketplace.etm-home .etm-toolbar,
#elevate-team-marketplace.etm-home .etm-resultbar { display: none; }

/* Rolling coach strip (homepage team section + coach-page "More coaches"). */
#elevate-team-marketplace .etm-roll {
    overflow: hidden;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 4px 0;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}
#elevate-team-marketplace .etm-roll-track {
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    width: max-content;
    animation: etm-roll var(--etm-roll-secs, 48s) linear infinite;
}
#elevate-team-marketplace[dir="rtl"] .etm-roll-track {
    animation-name: etm-roll-rtl;
}
#elevate-team-marketplace .etm-roll:hover .etm-roll-track,
#elevate-team-marketplace .etm-roll:focus-within .etm-roll-track {
    animation-play-state: paused;
}
#elevate-team-marketplace .etm-roll .etm-card {
    flex: 0 0 220px;
    width: 220px;
    max-width: 220px;
}
@keyframes etm-roll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes etm-roll-rtl {
    from { transform: translateX(0); }
    to { transform: translateX(50%); }
}
@media (prefers-reduced-motion: reduce) {
    #elevate-team-marketplace .etm-roll-track {
        animation: none;
        flex-wrap: wrap;
        width: 100%;
        max-width: 100%;
    }
    #elevate-team-marketplace .etm-roll {
        -webkit-mask-image: none;
        mask-image: none;
    }
    #elevate-team-marketplace .etm-roll .etm-card {
        flex: 1 1 180px;
        max-width: none;
    }
}
@media (max-width: 600px) {
    #elevate-team-marketplace .etm-roll .etm-card {
        flex-basis: 170px;
        width: 170px;
        max-width: 170px;
    }
}

#elevate-team-marketplace .etm-layout {
    display: block;
    min-width: 0;
}
#elevate-team-marketplace .etm-results {
    min-width: 0;
    container-name: etm-results;
    container-type: inline-size;
}
#elevate-team-marketplace .etm-toolbar {
    --etm-f-placeholder: #6b6a68;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    /* 30px between groups on one line, 16px between rows when they wrap */
    gap: 16px 30px;
    min-width: 0;
    margin: 0 0 20px;
}
#elevate-team-marketplace .etm-chip-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
@container etm (max-width: 299px) {
    #elevate-team-marketplace .etm-chip-row { column-gap: 6px; }
}
#elevate-team-marketplace .etm-chip-label {
    margin: 0;
    margin-inline-end: 4px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-chip {
    position: relative;
    display: inline-block;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    padding: 8px 16px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 15px;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
    color: var(--etm-soft);
    background: var(--etm-field);
    border: 1px solid var(--etm-line);
    border-radius: 30px;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: background-color .15s, border-color .15s, color .15s;
}
/* Feed text: isolated for mixed Arabic/English, truncated if one name outgrows the row. */
#elevate-team-marketplace .etm-chip bdi {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}
#elevate-team-marketplace .etm-chip:hover { border-color: var(--etm-accent); }
#elevate-team-marketplace .etm-chip[aria-checked="true"] {
    color: var(--etm-on-brand);
    background: var(--etm-fill);
    border-color: var(--etm-fill);
}
/* A choice that, with the other filters, would leave nobody: quieter (muted
   text, 5.5:1 or more, and a dashed edge) but still there to pick; it leads to
   the no-match box and its way out. */
#elevate-team-marketplace .etm-chip.is-empty:not([aria-checked="true"]) {
    color: var(--etm-muted);
    border-style: dashed;
}
/* Mixed vs ladies location chips — same distinction as the locations hub. */
#elevate-team-marketplace .etm-chip--ladies:not([aria-checked="true"]) {
    border-color: rgba(196, 90, 160, .45);
    color: #c45aa0;
}
#elevate-team-marketplace .etm-chip--ladies:hover:not([aria-checked="true"]) {
    border-color: #c45aa0;
    background: rgba(196, 90, 160, .1);
}
#elevate-team-marketplace .etm-chip--ladies[aria-checked="true"] {
    background: #c45aa0;
    border-color: #c45aa0;
    color: #fff;
}
#elevate-team-marketplace .etm-chip--mixed:not([aria-checked="true"]) {
    border-color: rgba(200, 26, 32, .35);
}
#elevate-team-marketplace .etm-role--ladies,
#elevate-team-marketplace .etm-d-studio--ladies {
    color: #c45aa0;
}
#elevate-team-marketplace .etm-role--mixed {
    color: var(--etm-soft);
}

/* The search and the menus share a line of their own under the chips. */
#elevate-team-marketplace .etm-bar {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
#elevate-team-marketplace .etm-search,
#elevate-team-marketplace .etm-filters-select {
    position: relative;
    display: block;
    min-width: 0;
    max-width: 240px;
    margin: 0;
}
#elevate-team-marketplace .etm-search { flex: 1 1 190px; }
/* The menus sit side by side at their own widths; with language and
   nationality there can be three, which wrap rather than cut their words short. */
#elevate-team-marketplace .etm-filters-menus {
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    min-width: 0;
}
#elevate-team-marketplace .etm-filters-select { flex: 0 0 auto; }
/* Phones and small tablets (the coach page's break, 640px): one line for each
   group, which scrolls sideways when it is longer than the screen, faded at the
   end still to come (bindRows sets is-scroll and is-end), so the coaches start
   on the first screen. The search takes the whole line. The 6px padding keeps
   the focus ring and the 44px tap area inside the scrolling box. */
@container etm (max-width: 639px) {
    #elevate-team-marketplace .etm-toolbar {
        gap: 10px;
        margin-bottom: 16px;
    }
    #elevate-team-marketplace .etm-chip-row,
    #elevate-team-marketplace .etm-filters-menus {
        flex: 1 1 100%;
        flex-wrap: nowrap;
        justify-content: flex-start;
        margin: -6px;
        padding: 6px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        scroll-padding-inline: 8px 40px;
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
    }
    #elevate-team-marketplace[dir="rtl"] .etm-chip-row,
    #elevate-team-marketplace[dir="rtl"] .etm-filters-menus {
        -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent);
        mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent);
    }
    #elevate-team-marketplace .etm-chip-row:not(.is-scroll),
    #elevate-team-marketplace .etm-chip-row.is-end,
    #elevate-team-marketplace .etm-filters-menus:not(.is-scroll),
    #elevate-team-marketplace .etm-filters-menus.is-end {
        -webkit-mask-image: none;
        mask-image: none;
    }
    #elevate-team-marketplace .etm-chip-row::-webkit-scrollbar,
    #elevate-team-marketplace .etm-filters-menus::-webkit-scrollbar { display: none; }
    #elevate-team-marketplace .etm-chip-row > *,
    #elevate-team-marketplace .etm-filters-menus > * {
        flex: 0 0 auto;
        max-width: none;
    }
    #elevate-team-marketplace .etm-filters-menus .etm-filters-select select { max-width: 220px; }
    #elevate-team-marketplace .etm-search,
    #elevate-team-marketplace .etm-skel-search {
        flex: 1 1 100%;
        max-width: none;
    }
}
#elevate-team-marketplace .etm-search input,
#elevate-team-marketplace .etm-filters-select select {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 35px;
    margin: 0;
    padding: 9px 16px;
    font: inherit;
    font-size: 13px;
    font-weight: 400;
    line-height: 15px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--etm-heading);
    background: var(--etm-field);
    border: 1px solid var(--etm-f-line);
    border-radius: 30px;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
}
/* Text starts where it does after the page's magnifier glyph. The height is
   fixed for the text field only: left to itself it comes out a pixel or two
   taller in Safari and Firefox than the menus beside it. */
#elevate-team-marketplace .etm-search input {
    height: 35px;
    padding-inline-start: 39px;
}
#elevate-team-marketplace .etm-search input::placeholder {
    color: var(--etm-f-placeholder);
    opacity: 1;
}
#elevate-team-marketplace .etm-search input::-webkit-search-decoration,
#elevate-team-marketplace .etm-search input::-webkit-search-cancel-button {
    display: none;
    -webkit-appearance: none;
}
#elevate-team-marketplace .etm-search svg,
#elevate-team-marketplace .etm-filters-select svg {
    position: absolute;
    inset-inline-start: 15px;
    top: 50%;
    width: 16px;
    height: 16px;
    margin-top: -8px;
    color: var(--etm-muted);
    fill: none;
    stroke: currentColor;
    pointer-events: none;
}
/* A menu is a chip with a chevron: the chip's type and colours at the
   search field's height. */
#elevate-team-marketplace .etm-filters-select select {
    padding-inline-end: 36px;
    font-weight: 600;
    color: var(--etm-soft);
    text-overflow: ellipsis;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, color .15s;
}
#elevate-team-marketplace .etm-filters-select select:hover { border-color: var(--etm-accent); }
#elevate-team-marketplace .etm-filters-select option,
#elevate-team-marketplace .etm-filters-select optgroup {
    font-weight: 400;
    color: var(--etm-ink);
    background: var(--etm-field);
}
#elevate-team-marketplace .etm-sort select { padding-inline-start: 39px; }
#elevate-team-marketplace .etm-filters-select::after {
    content: "";
    position: absolute;
    inset-inline-end: 16px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -5px;
    border-right: 1.5px solid var(--etm-muted);
    border-bottom: 1.5px solid var(--etm-muted);
    transform: rotate(45deg);
    pointer-events: none;
}
/* A chosen menu reads like an active chip, with the menu's name ("Language: Filipino"). */
#elevate-team-marketplace .etm-filters-select.is-active select {
    color: var(--etm-on-brand);
    background: var(--etm-fill);
    border-color: var(--etm-fill);
}
#elevate-team-marketplace .etm-filters-select.is-active::after { border-color: var(--etm-on-brand); }

/* The line over the grid: how many coaches (and Clear filters) at the start,
   the sort at the end. The sort is lighter than the filters: it orders the
   coaches, it does not choose them. */
#elevate-team-marketplace .etm-resultbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    min-width: 0;
    margin: 0 0 16px;
}
#elevate-team-marketplace .etm-count {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    min-width: 0;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--etm-soft);
}
#elevate-team-marketplace .etm-resultbar .etm-sort {
    flex: 0 0 auto;
    margin-inline-start: auto;
}
#elevate-team-marketplace .etm-resultbar .etm-sort select { background: transparent; }
@container etm (max-width: 543px) {
    #elevate-team-marketplace .etm-resultbar { margin-bottom: 14px; }
}
/* The count takes focus when the control that had it is removed: a ring only
   for the keyboard. With no coaches there is nothing to sort. */
#elevate-team-marketplace .etm-count:focus { outline: 0; }
#elevate-team-marketplace .etm-count:focus-visible {
    border-radius: 4px;
    outline: 2px solid var(--etm-accent) !important;
    outline-offset: 4px;
}
#elevate-team-marketplace .etm-resultbar .etm-sort[hidden] { display: none; }
/* Clear filters: a small pill with a cross, the one way back from every filter at once. */
#elevate-team-marketplace .etm-filters-clear {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    margin: 0;
    padding: 5px 12px;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: none;
    color: var(--etm-heading);
    background: none;
    border: 1px solid var(--etm-line);
    border-radius: 30px;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}
#elevate-team-marketplace .etm-filters-clear span,
#elevate-team-marketplace .etm-chip--drop span {
    font-size: 15px;
    line-height: 1;
    color: var(--etm-accent-text);
}
#elevate-team-marketplace .etm-filters-clear:hover {
    color: var(--etm-heading);
    background: none;
    border-color: var(--etm-accent);
}

#elevate-team-marketplace .etm-chip,
#elevate-team-marketplace .etm-search input,
#elevate-team-marketplace .etm-filters-select select,
#elevate-team-marketplace .etm-filters-clear,
#elevate-team-marketplace .etm-empty-action,
#elevate-team-marketplace .etm-card-open,
#elevate-team-marketplace .etm-card,
#elevate-team-marketplace .etm-count {
    scroll-margin-block: var(--etm-host-top, 88px) var(--etm-host-bottom, 78px);
}
#elevate-team-marketplace .etm-chip:focus-visible,
#elevate-team-marketplace .etm-search input:focus-visible,
#elevate-team-marketplace .etm-filters-select select:focus-visible,
#elevate-team-marketplace .etm-filters-clear:focus-visible,
#elevate-team-marketplace .etm-empty-action:focus-visible {
    outline: 2px solid var(--etm-accent) !important;
    outline-offset: 2px;
}

/* The grid and card are the host page's own .tgrid / .tcard, number for
   number, and the columns change at the page's own viewport breakpoints. A
   results column narrower than the page's is at those breakpoints (1100px and
   900px, less its 48px of gutters and room for a 17px scrollbar) steps down
   by itself, so a narrow column on a wide screen works. The rules are in
   order of column count, so the smaller of the two answers wins. */
#elevate-team-marketplace .etm-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}
@media (max-width: 1100px) {
    #elevate-team-marketplace .etm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container etm-results (max-width: 1035px) {
    #elevate-team-marketplace .etm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    #elevate-team-marketplace .etm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container etm-results (max-width: 835px) {
    #elevate-team-marketplace .etm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* A column of 600–835px (a tablet, or an 800px post column in an older theme)
   takes three across: two would make every card bigger than on a desktop. */
@container etm-results (min-width: 600px) and (max-width: 835px) {
    #elevate-team-marketplace .etm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* One column only where two would not fit a name at all: never on a phone. */
@container etm-results (max-width: 199px) {
    #elevate-team-marketplace .etm-grid { grid-template-columns: minmax(0, 1fr); }
}

#elevate-team-marketplace .etm-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
    padding: 0;
    color: var(--etm-ink);
    background: var(--etm-card);
    border: 1px solid var(--etm-line);
    border-radius: var(--etm-radius);
    box-shadow: none;
    overflow: hidden;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s, transform .2s;
}
@media (hover: hover) {
    #elevate-team-marketplace .etm-card:hover {
        border-color: var(--etm-accent);
        transform: translateY(-4px);
    }
}
/* Keyboard focus is on the name (the card's button); the ring is drawn where
   the page draws it, round the "View profile" link. */
#elevate-team-marketplace .etm-card:has(.etm-card-open:focus-visible) .etm-card-cue span {
    outline: 2px solid var(--etm-accent) !important;
    outline-offset: 2px;
}
@supports not selector(:has(*)) {
    #elevate-team-marketplace .etm-card:focus-within .etm-card-cue span {
        outline: 2px solid var(--etm-accent) !important;
        outline-offset: 2px;
    }
}

/* Placeholder colours are the page's (.tcard .img, .coach .ph). */
#elevate-team-marketplace .etm-photo {
    --etm-ph-bg: linear-gradient(135deg, #eef0f3, #dde1e6);
    --etm-ph-ink: #aab1b9;
    flex: 0 0 auto;
    aspect-ratio: 4 / 5;
    min-width: 0;
    overflow: hidden;
    background: var(--etm-ph-bg);
}
#elevate-team-marketplace .etm-photo img {
    display: block;
    width: 100%;
    max-width: none !important;
    height: 100% !important;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: center top;
}
#elevate-team-marketplace .etm-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 48px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .5px;
    color: var(--etm-ph-ink);
    user-select: none;
    -webkit-user-select: none;
}

/* Text block: the page's .nm, a 16px/1.55 box, so the three rows land on the
   same lines as a native card. */
#elevate-team-marketplace .etm-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 14px 12px;
    font-size: 16px;
    line-height: 1.55;
}
#elevate-team-marketplace .etm-name {
    margin: 0 0 2px;
    padding: 0;
    border: 0;
    background: none;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.06;
    letter-spacing: .5px;
    text-transform: uppercase;
    text-shadow: none;
    text-wrap: balance;
    color: var(--etm-heading);
}
#elevate-team-marketplace .etm-name::before,
#elevate-team-marketplace .etm-name::after { content: none; }
/* Names in a script the display face has no glyphs for (Arabic): the page
   font, in a line as tall as the display line plus its margin, so the row
   keeps its height. */
#elevate-team-marketplace .etm-name--plain {
    margin-bottom: 0;
    font-family: inherit;
    font-size-adjust: none;
    font-size: 15px;
    font-weight: 700;
    line-height: 17.9px;
    letter-spacing: 0;
    text-transform: none;
}
/* A wide grid (the live page's 1180px column, the new site's 1132px): names at
   the size of the site's own card titles. The plain line is 19 × 1.06 + 2px,
   so its row keeps its height. */
@container etm (min-width: 836px) {
    #elevate-team-marketplace .etm-name { font-size: 19px; }
    #elevate-team-marketplace .etm-name--plain {
        font-size: 16px;
        line-height: 22.1px;
    }
}
#elevate-team-marketplace .etm-card-open {
    display: block;
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    text-align: inherit;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
}
/* The button's hit area is the whole card. */
#elevate-team-marketplace .etm-card-open::after {
    content: "";
    position: absolute;
    inset: 0;
}
#elevate-team-marketplace .etm-role {
    margin: 0 0 8px;
    padding: 0;
    font-size: 12px;
    color: var(--etm-muted);
    overflow-wrap: anywhere;
}
#elevate-team-marketplace .etm-role--clamp {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* An inline label in the 16px line, as the page's .vp link is; pinned to the
   bottom so every link in a row sits on one line whatever is above it. It
   never wraps: on the narrowest phones it runs into the card's side padding. */
#elevate-team-marketplace .etm-card-cue {
    margin: auto -12px 0;
    white-space: nowrap;
}
/* No role line (no studio, no tagline): its 18.6px + 8px stay reserved, so
   the card is as tall as any other. */
#elevate-team-marketplace .etm-name + .etm-card-cue { padding-top: 26.6px; }
#elevate-team-marketplace .etm-card-cue span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--etm-accent-text);
}
/* The languages, which visitors now choose by: one line, two named at most. */
#elevate-team-marketplace .etm-card-langs {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 0;
    margin: 0 0 8px;
    padding: 0;
    font-size: 12px;
    line-height: 1.55;
    color: var(--etm-muted);
    white-space: nowrap;
}
#elevate-team-marketplace .etm-role + .etm-card-langs { margin-top: -6px; }
#elevate-team-marketplace .etm-card-langs svg {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    opacity: .8;
}
/* the names give way (…) before the count of the others does */
#elevate-team-marketplace .etm-card-langs-names {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
#elevate-team-marketplace .etm-card-langs-more { flex: 0 0 auto; }
/* Two narrow columns (phones of 320–360px): tighter cards, so a name keeps to two lines. */
@container etm-results (max-width: 340px) {
    #elevate-team-marketplace .etm-grid { gap: 10px; }
    #elevate-team-marketplace .etm-body { padding: 12px 8px; }
    #elevate-team-marketplace .etm-card-cue { margin-inline: -8px; }
    #elevate-team-marketplace .etm-card-cue span {
        font-size: 11px;
        letter-spacing: 0;
    }
}
#elevate-team-marketplace[dir="rtl"] .etm-card-cue span { letter-spacing: 0; }
/* Arabic falls back to a system face that reads small at the page's 12px. */
#elevate-team-marketplace[dir="rtl"] .etm-card-cue span,
#elevate-team-marketplace[dir="rtl"] .etm-card-langs { font-size: 13px; }
#elevate-team-marketplace[dir="rtl"] .etm-count,
#elevate-team-marketplace[dir="rtl"] .etm-status-caption { font-size: 14px; }

/* Rating: the page's photo label (.tag) on the surface of its floating menu
   button (.navtoggle), with the page's star colour (.stars). The border is
   inside the .tag box, so both labels are the same height. It sits on the
   photo, so its colours are the same in both themes. */
#elevate-team-marketplace .etm-card-rating {
    position: absolute;
    top: 12px;
    inset-inline-start: 12px;
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 3px 9px;
    border: 1px solid #39322f;
    border-radius: 20px;
    background: rgba(14, 12, 11, .92);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: 1px;
    white-space: nowrap;
    pointer-events: none;
}
#elevate-team-marketplace .etm-card-rating span { line-height: inherit; }
#elevate-team-marketplace .etm-card-rating svg {
    flex: 0 0 auto;
    display: block;
    width: 10px;
    max-width: none;
    height: 10px;
    fill: #f5b301;
    stroke: none;
}
#elevate-team-marketplace .etm-card-rating-count { color: #9aa0aa; }
/* "Limited spots": the page's own photo label (.tag), at the foot of the photo
   so it never competes with the rating or sits on a face. The profile repeats
   it under the name. The red is the darker brand one so white text passes AA. */
#elevate-team-marketplace .etm-photo { position: relative; }
#elevate-team-marketplace .etm-card-limited,
#elevate-team-marketplace .etm-d-limited {
    margin: 0;
    padding: 4px 10px;
    border-radius: 20px;
    background: rgba(214, 47, 42, .94);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: 1px;
    text-transform: uppercase;
    white-space: nowrap;
}
#elevate-team-marketplace .etm-card-limited {
    position: absolute;
    bottom: 12px;
    inset-inline-start: 12px;
    pointer-events: none;
}
#elevate-team-marketplace .etm-d-limited {
    display: table;
    margin-top: 12px;
}
#elevate-team-marketplace[dir="rtl"] .etm-card-limited,
#elevate-team-marketplace[dir="rtl"] .etm-d-limited {
    font-size: 12px;
    letter-spacing: 0;
}
/* Phone-size cards: a label in the top corner lands on the coach's head, so
   the score (alone) moves to the foot of the photo and "Limited spots" stacks
   on top of it. */
@container etm-results (max-width: 479px) {
    #elevate-team-marketplace .etm-card-rating {
        top: auto;
        bottom: 8px;
        inset-inline-start: 8px;
        padding: 2px 7px;
    }
    #elevate-team-marketplace .etm-card-rating-count { display: none; }
    #elevate-team-marketplace .etm-card-limited {
        bottom: 8px;
        inset-inline-start: 8px;
        padding: 3px 8px;
    }
    #elevate-team-marketplace .etm-card-rating + .etm-card-limited { bottom: 34px; }
    #elevate-team-marketplace .etm-initials { font-size: 34px; }
}

/* No match, no coaches yet and the feed error: the page's .ctabox. */
#elevate-team-marketplace .etm-empty {
    margin: 0;
    padding: 28px 20px;
    text-align: center;
    background: var(--etm-card);
    border: 1px solid var(--etm-line);
    border-radius: var(--etm-radius);
}
#elevate-team-marketplace .etm-status {
    background: var(--etm-card);
    border: 1px solid var(--etm-line);
    border-radius: var(--etm-radius);
    padding: 26px;
    text-align: center;
    margin: 0;
}
#elevate-team-marketplace .etm-empty-title {
    margin: 0 0 8px;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.06;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--etm-heading);
}
#elevate-team-marketplace .etm-empty-copy {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-empty > .etm-empty-copy {
    max-width: 46ch;
    margin-inline: auto;
}
/* A chip for each filter in use, to take it off. */
#elevate-team-marketplace .etm-none-drops {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0 0 20px;
}
#elevate-team-marketplace .etm-chip--drop {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
/* The page's .btn. */
#elevate-team-marketplace .etm-empty-action {
    display: inline-block;
    min-height: 0;
    margin: 0;
    padding: 14px 28px;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .4px;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--etm-on-brand) !important;
    background: var(--etm-grad);
    border: 0;
    border-radius: 40px;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: transform .15s;
}
#elevate-team-marketplace .etm-empty-action:hover { transform: translateY(-2px); }
/* Arabic: no tracking, and the display face has no Arabic glyphs. */
#elevate-team-marketplace[dir="rtl"] .etm-chip-label,
#elevate-team-marketplace[dir="rtl"] .etm-empty-action,
#elevate-team-marketplace[dir="rtl"] .etm-empty-title {
    letter-spacing: 0;
}
#elevate-team-marketplace[dir="rtl"] .etm-chip-label { font-size: 12px; }
/* Arabic letters come from a system face (Geeza Pro, Segoe UI, Noto Naskh)
   that needs a taller line than 15px; the boxes stay as tall as in English. */
#elevate-team-marketplace[dir="rtl"] .etm-chip {
    padding-block: 6px;
    line-height: 19px;
}
#elevate-team-marketplace[dir="rtl"] .etm-search input,
#elevate-team-marketplace[dir="rtl"] .etm-filters-select select {
    padding-block: 7px;
    line-height: 19px;
}
#elevate-team-marketplace[dir="rtl"] .etm-empty-title {
    font-family: inherit;
    font-size-adjust: none;
    font-weight: 700;
    line-height: 1.4;
}
/* Loading state: stands in for the grid, so it borrows the results container
   name and the column rules above apply to it too. */
#elevate-team-marketplace .etm-status--loading {
    --etm-skel-lo: #eceef2;
    --etm-skel-hi: #e1e5ea;
    container-name: etm-results;
    container-type: inline-size;
    border: 0;
    background: transparent;
    padding: 0;
}
/* Stand-ins for the filter pills, in the toolbar's own layout, and the caption
   where the count line will be, so the cards do not jump when the feed lands. */
#elevate-team-marketplace .etm-skel-pill {
    display: block;
    flex: 0 1 auto;
    max-width: 100%;
    height: 33px;
    border-radius: 30px;
    background: var(--etm-skel-lo);
}
#elevate-team-marketplace .etm-skel-field { height: 35px; }
#elevate-team-marketplace .etm-skel-search {
    flex: 1 1 190px;
    max-width: 240px;
}
#elevate-team-marketplace .etm-skel-label {
    height: 9px;
    margin-inline-end: 4px;
    border-radius: 4px;
}
/* Where the count will be, in its type, on one line as the count is. */
#elevate-team-marketplace .etm-status-caption {
    flex: 1 1 0px;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-skel-card {
    min-width: 0;
    border: 1px solid var(--etm-line);
    border-radius: var(--etm-radius);
    overflow: hidden;
    background: var(--etm-card);
}
#elevate-team-marketplace .etm-skel-photo {
    aspect-ratio: 4 / 5;
    background: linear-gradient(90deg, var(--etm-skel-lo) 0%, var(--etm-skel-hi) 45%, var(--etm-skel-lo) 90%) 0 0 / 200% 100%;
    animation: etm-shimmer 1.4s ease-in-out infinite;
}
/* Three bars where the name, studio and "View profile" lines will be; the box
   is the height of a loaded card's text block (with its languages line): a
   bigger name on a wide grid, two lines of it on a phone. */
#elevate-team-marketplace .etm-skel-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 117.9px;
    padding: 16px 12px 0;
}
@container etm (min-width: 836px) {
    #elevate-team-marketplace .etm-skel-body { height: 122.1px; }
}
@container etm-results (max-width: 479px) {
    #elevate-team-marketplace .etm-skel-body { height: 133.8px; }
}
@container etm-results (max-width: 340px) {
    #elevate-team-marketplace .etm-skel-body { height: 148.4px; }
}
#elevate-team-marketplace .etm-skel-body span {
    display: block;
    width: 46%;
    height: 8px;
    margin-top: 22px;
    border-radius: 999px;
    background: var(--etm-line);
}
#elevate-team-marketplace .etm-skel-body span:first-child { width: 58%; height: 12px; margin-top: 0; }
#elevate-team-marketplace .etm-skel-body span:nth-child(2) { margin-top: 9px; }
/* Whole rows only: three rows of two or two of three, then two of four. */
#elevate-team-marketplace .etm-skel-card:nth-child(n+7) { display: none; }
@media (min-width: 1101px) {
    @container etm-results (min-width: 1036px) {
        #elevate-team-marketplace .etm-skel-card:nth-child(n) { display: block; }
    }
}
@keyframes etm-shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

/* Profile dialog: the site's coach page (.crumb bar over the .two photo/about
   split) in a modal. It opens in the top layer, so it is sized against the
   viewport (media queries) rather than the widget's container. */
#elevate-team-marketplace .etm-dialog {
    --etm-d-pad: 28px;
    --etm-d-gap: 36px;
    --etm-d-text: var(--etm-soft);
    --etm-d-faint: #b3b8bf;
    --etm-d-ph: linear-gradient(135deg, #eceef1, #dde0e5);
    --etm-d-bar: rgba(255, 255, 255, .97);
    --etm-d-ctl: rgba(255, 255, 255, .92);
    --etm-d-tick: #1f8f63;
    --etm-d-star: #b87d00;
    position: fixed;
    inset: 0;
    border: 1px solid var(--etm-line);
    padding: 0;
    margin: auto;
    width: min(1132px, calc(100% - 32px));
    max-width: none;
    height: min(724px, calc(100vh - 32px));
    height: min(724px, calc(100dvh - 32px));
    max-height: none;
    border-radius: 18px;
    background: var(--etm-bg);
    color: var(--etm-ink);
    color-scheme: inherit;
    box-shadow: var(--etm-shadow);
    overflow: hidden;
    font-size: 15px;
    line-height: 1.55;
    text-align: start;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .2s ease, transform .25s ease,
        overlay .25s allow-discrete, display .25s allow-discrete;
}
#elevate-team-marketplace .etm-dialog:not([open]) { display: none; }
#elevate-team-marketplace .etm-dialog[open] {
    opacity: 1;
    transform: none;
}
#elevate-team-marketplace .etm-dialog::backdrop {
    background: rgba(0, 0, 0, 0);
    transition: background-color .25s ease, overlay .25s allow-discrete, display .25s allow-discrete;
}
#elevate-team-marketplace .etm-dialog[open]::backdrop {
    background: rgba(0, 0, 0, .55);
}
@starting-style {
    #elevate-team-marketplace .etm-dialog[open] {
        opacity: 0;
        transform: translateY(16px);
    }
    #elevate-team-marketplace .etm-dialog[open]::backdrop {
        background: rgba(0, 0, 0, 0);
    }
}
/* No showModal(): no top layer or ::backdrop, so fake both. */
#elevate-team-marketplace .etm-dialog.etm-dialog--fallback {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1000000;
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .55);
}
/* The about column is as wide as the two buttons side by side; the photo takes the rest. */
#elevate-team-marketplace .etm-dialog-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 604px;
    grid-template-rows: auto minmax(0, 1fr);
    height: 100%;
}

#elevate-team-marketplace .etm-d-crumb {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    /* The site's .crumb: 10px above and below one line, and the rule. */
    min-height: calc(20px + 1.55em + 1px);
    padding-inline: var(--etm-d-pad) 6px;
    background: var(--etm-field);
    border-bottom: 1px solid var(--etm-line);
    font-size: 12.5px;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-d-back,
#elevate-team-marketplace .etm-d-up,
#elevate-team-marketplace .etm-close {
    flex: 0 0 auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 6px;
    background: none;
    box-shadow: none;
    font: inherit;
    letter-spacing: 0;
    text-transform: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}
#elevate-team-marketplace .etm-d-back,
#elevate-team-marketplace .etm-d-up {
    padding: 0;
    color: inherit;
}
#elevate-team-marketplace .etm-d-back:hover,
#elevate-team-marketplace .etm-d-up:hover {
    background: none;
    color: var(--etm-heading);
}
#elevate-team-marketplace .etm-d-sep {
    margin: 0 8px;
    color: var(--etm-d-faint);
}
#elevate-team-marketplace .etm-d-here,
#elevate-team-marketplace .etm-d-up {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
#elevate-team-marketplace .etm-d-here,
#elevate-team-marketplace .etm-d-count {
    color: var(--etm-heading);
    white-space: nowrap;
}
/* An enlarged gallery photo is one step further along the crumb. */
#elevate-team-marketplace .etm-d-up,
#elevate-team-marketplace .etm-d-vsep,
#elevate-team-marketplace .etm-d-count,
#elevate-team-marketplace .is-viewing .etm-d-here { display: none; }
#elevate-team-marketplace .is-viewing .etm-d-up,
#elevate-team-marketplace .is-viewing .etm-d-vsep,
#elevate-team-marketplace .is-viewing .etm-d-count { display: block; }
#elevate-team-marketplace .etm-close {
    width: 44px;
    height: 38px;
    margin-inline-start: auto;
    padding: 0 0 4px;
    color: var(--etm-heading);
    font-size: 32px;
    line-height: 1;
}
#elevate-team-marketplace .etm-close:hover {
    background: none;
    color: var(--etm-accent);
}
#elevate-team-marketplace .etm-d-back:focus-visible,
#elevate-team-marketplace .etm-d-up:focus-visible,
#elevate-team-marketplace .etm-d-shot:focus-visible,
#elevate-team-marketplace .etm-d-nav:focus-visible,
#elevate-team-marketplace .etm-close:focus-visible,
#elevate-team-marketplace .etm-d-social:focus-visible,
#elevate-team-marketplace .etm-signin a:focus-visible,
#elevate-team-marketplace .etm-p-all:focus-visible,
#elevate-team-marketplace .etm-btn:focus-visible {
    outline: 2px solid var(--etm-accent) !important;
    outline-offset: 2px;
}
#elevate-team-marketplace .etm-close:focus-visible { outline-offset: -4px; }

#elevate-team-marketplace .etm-d-media {
    position: relative;
    min-width: 0;
    min-height: 0;
    margin: var(--etm-d-pad);
    margin-inline-end: 0;
    border: 1px solid var(--etm-line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--etm-d-ph);
}
#elevate-team-marketplace .etm-d-photo {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100% !important;
    max-width: none !important;
    margin: 0;
    border: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: center top;
}
#elevate-team-marketplace .etm-d-initials {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 72px;
    line-height: 1;
    color: var(--etm-d-faint);
}

/* A short profile sits centred beside the photo (.two{align-items:center});
   a long one scrolls under the buttons, which stay pinned. */
#elevate-team-marketplace .etm-d-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    padding: var(--etm-d-pad) var(--etm-d-pad) 0 var(--etm-d-gap);
    padding-inline: var(--etm-d-gap) var(--etm-d-pad);
    overflow-y: auto;
    overscroll-behavior: contain;
    /* Keeps a focused control clear of the pinned button and sign-in line. */
    scroll-padding: 12px 0 148px;
    scrollbar-width: thin;
    scrollbar-color: var(--etm-line) transparent;
}
#elevate-team-marketplace .etm-d-main::before,
#elevate-team-marketplace .etm-d-main::after {
    content: "";
    flex: 1 0 0px;
}
#elevate-team-marketplace .etm-d-main::after { order: 3; }
#elevate-team-marketplace .etm-d-head > :last-child { margin-bottom: 22px; }
/* What and where in one line: the coach's title and studio. */
#elevate-team-marketplace .etm-d-eyebrow {
    margin: 0 0 14px;
    padding: 0;
    color: var(--etm-accent-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 3px;
    text-transform: uppercase;
}
#elevate-team-marketplace .etm-d-name {
    margin: 0;
    padding: 0;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 38px;
    font-weight: 400;
    line-height: 1.06;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--etm-heading);
    overflow-wrap: anywhere;
    text-wrap: balance;
    outline: none;
}
/* Anton/Teko have no Arabic glyphs: set Arabic names in the page font instead. */
#elevate-team-marketplace .etm-d-name--ar {
    font-family: inherit;
    font-size-adjust: none;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0;
}
/* A coach page from plugin 1.4.0 (the title now sits in the eyebrow line). */
#elevate-team-marketplace .etm-d-tagline {
    margin: 10px 0 0;
    padding: 0;
    font-size: 15px;
    color: var(--etm-muted);
}
/* a studio's name stays on one line: the line breaks after the dot */
#elevate-team-marketplace .etm-d-eyebrow .etm-d-studio { white-space: nowrap; }
@container etm (max-width: 543px) {
    #elevate-team-marketplace .etm-d-eyebrow { letter-spacing: 2px; }
}
/* Experience, languages and nationality, each under its label. */
#elevate-team-marketplace .etm-d-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 32px;
    margin: 18px 0 0;
    padding: 0;
}
#elevate-team-marketplace .etm-d-facts > div {
    min-width: 0;
    margin: 0;
}
#elevate-team-marketplace .etm-d-facts dt {
    margin: 0 0 2px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-d-facts dd {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--etm-heading);
}
/* the three facts on one line on a phone */
@container etm (max-width: 543px) {
    #elevate-team-marketplace .etm-d-facts { column-gap: 20px; }
}
/* Specialties in the site's neutral pills (.pillrow): red is kept for the
   title line, Limited spots and the booking button. */
#elevate-team-marketplace .etm-d-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}
#elevate-team-marketplace .etm-d-badges li {
    margin: 0;
    padding: 6px 14px;
    list-style: none;
    border: 1px solid var(--etm-line);
    border-radius: 30px;
    background: transparent;
    color: var(--etm-soft);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}
#elevate-team-marketplace .etm-d-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 16px 0 0;
    padding: 0;
    font-size: 13px;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-d-meta > span + span::before {
    content: "\00b7";
    margin: 0 8px;
}
#elevate-team-marketplace .etm-d-score {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
#elevate-team-marketplace .etm-d-score b {
    font-size: 14px;
    font-weight: 700;
    color: var(--etm-heading);
}
#elevate-team-marketplace .etm-d-ico {
    flex: 0 0 auto;
    display: block;
    width: 16px;
    height: 16px;
}
#elevate-team-marketplace .etm-d-score .etm-d-ico {
    width: 14px;
    height: 14px;
    color: var(--etm-d-star);
}
/* A 24px target round the 16px icon (44px on a phone, below). */
#elevate-team-marketplace .etm-d-social {
    display: inline-flex;
    align-items: center;
    margin-block: -4px;
    margin-inline-start: 10px;
    padding: 4px;
    border-radius: 4px;
    color: var(--etm-muted) !important;
    text-decoration: none;
}
#elevate-team-marketplace .etm-d-social:first-child { margin-inline-start: -4px; }
#elevate-team-marketplace .etm-d-social:hover { color: var(--etm-accent) !important; }

/* About 64 characters a line. */
#elevate-team-marketplace .etm-bio { max-width: 64ch; }
#elevate-team-marketplace .etm-bio p {
    margin: 0 0 14px;
    padding: 0;
    font-size: 15px;
    color: var(--etm-d-text);
    white-space: pre-line;
}
#elevate-team-marketplace .etm-bio p:last-child { margin-bottom: 0; }

#elevate-team-marketplace .etm-section {
    order: 1;
    margin: 26px 0 0;
    padding: 0;
}
#elevate-team-marketplace .etm-section h3 {
    margin: 0 0 8px;
    padding: 0;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    color: var(--etm-accent-text);
}
#elevate-team-marketplace .etm-certs {
    margin: 0;
    padding: 0;
    list-style: none;
}
#elevate-team-marketplace .etm-certs li {
    position: relative;
    margin: 0 0 6px;
    padding: 0;
    padding-inline-start: 20px;
    list-style: none;
    font-size: 14px;
    line-height: 1.5;
    color: var(--etm-ink);
}
#elevate-team-marketplace .etm-certs li::before {
    content: "\2713";
    position: absolute;
    inset-inline-start: 0;
    color: var(--etm-d-tick);
    font-weight: 800;
}
#elevate-team-marketplace .etm-d-reviews {
    display: grid;
    gap: 22px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}
#elevate-team-marketplace .etm-review {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 26px;
    list-style: none;
    background: var(--etm-card);
    border: 1px solid var(--etm-line);
    border-radius: 16px;
}
#elevate-team-marketplace .etm-review-q {
    position: absolute;
    top: 24px;
    inset-inline-end: 24px;
    font-family: Georgia, serif;
    font-size: 46px;
    line-height: .5;
    color: var(--etm-accent);
    opacity: .45;
}
/* Physical padding: it clears the quote mark, which sits on the widget's end
   side even when a review is in the other script (dir="auto"). */
#elevate-team-marketplace .etm-review-text {
    margin: 0;
    padding: 0 30px 0 0;
    font-size: 15px;
    font-style: italic;
    color: var(--etm-ink);
}
#elevate-team-marketplace[dir="rtl"] .etm-review-text { padding: 0 0 0 30px; }
/* Arabic has no italic. :dir() follows the text of each review (dir="auto");
   the first rule covers browsers without it. */
#elevate-team-marketplace[dir="rtl"] .etm-review-text { font-style: normal; }
#elevate-team-marketplace .etm-review-text:dir(rtl) { font-style: normal; }
#elevate-team-marketplace[dir="rtl"] .etm-review-text:dir(ltr) { font-style: italic; }
#elevate-team-marketplace .etm-review-who {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 18px;
    font-size: 16px;
}
#elevate-team-marketplace .etm-review-who > div { min-width: 0; }
#elevate-team-marketplace .etm-review-av {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--etm-grad);
    color: var(--etm-on-brand);
    font-weight: 800;
}
#elevate-team-marketplace .etm-review-who b {
    font-size: 14px;
    font-weight: 700;
    color: var(--etm-heading);
}
/* The site's .stars: a line of text stars under the name. */
#elevate-team-marketplace .etm-d-stars {
    display: block;
    font-size: 13px;
    font-style: normal;
    letter-spacing: 0;
    color: var(--etm-d-faint);
    white-space: nowrap;
}
#elevate-team-marketplace .etm-d-star.is-on { color: var(--etm-d-star); }

/* Gallery: the site's .gallery grid of .gtile blocks. One photo gets the row to itself. */
#elevate-team-marketplace .etm-d-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}
#elevate-team-marketplace .etm-d-gallery[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#elevate-team-marketplace .etm-d-gallery[data-count="1"] { grid-template-columns: minmax(0, 1fr); }
#elevate-team-marketplace .etm-d-gallery li {
    margin: 0;
    padding: 0;
    list-style: none;
}
#elevate-team-marketplace .etm-d-shot {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 4 / 3;
    margin: 0;
    padding: 0;
    border: 1px solid var(--etm-line);
    border-radius: 12px;
    overflow: hidden;
    background: var(--etm-d-ph);
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color .2s, transform .2s;
}
#elevate-team-marketplace .etm-d-gallery[data-count="1"] .etm-d-shot { aspect-ratio: 16 / 9; }
#elevate-team-marketplace .etm-d-shot:hover {
    border-color: var(--etm-accent);
    background: var(--etm-d-ph);
    transform: translateY(-3px);
}
#elevate-team-marketplace .etm-d-shot img {
    display: block;
    width: 100%;
    height: 100% !important;
    max-width: none !important;
    margin: 0;
    border: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: center 30%;
}
#elevate-team-marketplace .etm-d-more {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(14, 12, 11, .66);
    color: #fff;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 24px;
    line-height: 1;
}
#elevate-team-marketplace .etm-d-more--sm { display: none; }

/* An enlarged photo takes the place of the photo and about columns; the
   crumb bar above it and the booking bar below it stay. */
#elevate-team-marketplace .etm-d-view {
    position: relative;
    grid-column: 1 / -1;
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 0;
    padding: var(--etm-d-pad) calc(var(--etm-d-pad) + 60px);
    outline: none;
}
#elevate-team-marketplace .is-viewing .etm-d-view { display: flex; }
#elevate-team-marketplace .is-viewing .etm-d-media,
#elevate-team-marketplace .is-viewing .etm-d-main { display: none; }
/* Sized by its own shape, so the site's photo frame hugs any aspect ratio. */
#elevate-team-marketplace .etm-d-view-img {
    display: block;
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    border: 1px solid var(--etm-line);
    border-radius: 16px;
    background: var(--etm-d-ph);
    transition: opacity .2s;
}
#elevate-team-marketplace .etm-d-view.is-loading .etm-d-view-img {
    opacity: 0;
    transition: none;
}
#elevate-team-marketplace .etm-d-nav {
    position: absolute;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 0;
    height: 44px;
    min-height: 0;
    margin: -22px 0 0;
    padding: 0;
    border: 1px solid var(--etm-line);
    border-radius: 10px;
    background: var(--etm-d-ctl);
    color: var(--etm-heading);
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color .15s;
}
#elevate-team-marketplace .etm-d-nav:hover {
    border-color: var(--etm-accent);
    background: var(--etm-d-ctl);
    color: var(--etm-heading);
}
#elevate-team-marketplace .etm-d-nav .etm-d-ico {
    width: 22px;
    height: 22px;
}
#elevate-team-marketplace .etm-d-nav--prev { inset-inline-start: var(--etm-d-pad); }
#elevate-team-marketplace .etm-d-nav--next { inset-inline-end: var(--etm-d-pad); }
#elevate-team-marketplace[dir="ltr"] .etm-d-nav--prev .etm-d-ico,
#elevate-team-marketplace[dir="rtl"] .etm-d-nav--next .etm-d-ico { transform: scaleX(-1); }
#elevate-team-marketplace .etm-d-view.is-single .etm-d-nav { display: none; }

/* Last in the column on desktop (order) so it can stay pinned; the gradient
   lets a long profile fade out above the buttons. */
#elevate-team-marketplace .etm-actions {
    order: 2;
    position: sticky;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    padding: 22px 0 var(--etm-d-pad);
    background: linear-gradient(to bottom, transparent, var(--etm-bg) 22px);
}
#elevate-team-marketplace .etm-btn {
    display: inline-block;
    margin: 0;
    padding: 14px 28px;
    border: 0;
    border-radius: 40px;
    background: var(--etm-grad);
    color: var(--etm-on-brand) !important;
    box-shadow: none;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: .4px;
    text-transform: uppercase;
    text-decoration: none !important;
    text-align: center;
    cursor: pointer;
    transition: transform .15s;
}
#elevate-team-marketplace .etm-btn:hover { transform: translateY(-2px); }
#elevate-team-marketplace .etm-actions .etm-btn {
    padding: 15px 34px;
    font-size: 15px;
}
/* Under the one red button: the way in for a client who already trains here. */
#elevate-team-marketplace .etm-signin {
    flex-basis: 100%;
    margin: 2px 0 0;
    padding: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--etm-muted);
}
#elevate-team-marketplace .etm-signin a {
    border-radius: 2px;
    color: var(--etm-heading);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--etm-accent);
    text-underline-offset: 3px;
}
/* An outlined button: Back to profile, under an enlarged photo. */
#elevate-team-marketplace .etm-btn--ghost {
    border: 1.5px solid var(--etm-accent);
    background: transparent;
    color: var(--etm-heading) !important;
}
#elevate-team-marketplace .etm-d-bar { display: none; }
/* The about column's buttons are out of sight behind an enlarged photo. */
#elevate-team-marketplace .is-viewing .etm-d-bar {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 12px;
    padding: 14px var(--etm-d-pad);
    border-top: 1px solid var(--etm-line);
}
#elevate-team-marketplace .etm-d-return {
    appearance: none;
    -webkit-appearance: none;
}
#elevate-team-marketplace .etm-d-return:hover { background: transparent; }

/* Feed text can be in the other script from the UI: dir="auto" orders it,
   match-parent keeps it on the same edge as everything around it. */
#elevate-team-marketplace .etm-dialog [dir="auto"] {
    text-align: -webkit-match-parent;
    text-align: match-parent;
}
#elevate-team-marketplace[dir="rtl"] .etm-d-eyebrow,
#elevate-team-marketplace[dir="rtl"] .etm-d-name,
#elevate-team-marketplace[dir="rtl"] .etm-d-facts dt,
#elevate-team-marketplace[dir="rtl"] .etm-btn { letter-spacing: 0; }
/* Arabic reads small at the Latin sizes: every text size goes up a step. */
#elevate-team-marketplace[dir="rtl"] .etm-d-eyebrow,
#elevate-team-marketplace[dir="rtl"] .etm-d-meta,
#elevate-team-marketplace[dir="rtl"] .etm-section h3 { font-size: 14px; }
#elevate-team-marketplace[dir="rtl"] .etm-d-facts dt { font-size: 13px; }
#elevate-team-marketplace[dir="rtl"] .etm-certs li,
#elevate-team-marketplace[dir="rtl"] .etm-signin { font-size: 15px; }
#elevate-team-marketplace[dir="rtl"] .etm-btn,
#elevate-team-marketplace[dir="rtl"] .etm-bio p,
#elevate-team-marketplace[dir="rtl"] .etm-d-tagline,
#elevate-team-marketplace[dir="rtl"] .etm-d-facts dd,
#elevate-team-marketplace[dir="rtl"] .etm-review-text { font-size: 16px; }
#elevate-team-marketplace[dir="rtl"] .etm-d-crumb { font-size: 13.5px; }
/* Clear of the dots under Arabic letters. */
#elevate-team-marketplace[dir="rtl"] .etm-signin a { text-underline-offset: 5px; }

@media (max-width: 1163px) {
    #elevate-team-marketplace .etm-dialog {
        --etm-d-pad: 24px;
        --etm-d-gap: 28px;
        height: min(640px, calc(100vh - 32px));
        height: min(640px, calc(100dvh - 32px));
    }
    #elevate-team-marketplace .etm-dialog-inner { grid-template-columns: minmax(0, 1fr) min(604px, 66%); }
}

/* The site's own breakpoint: its coach page stacks (.two) and its fixed
   booking bar (.mobile-cta) appears. The profile becomes a full-screen sheet
   that scrolls as one page, with that bar pinned along the bottom. */
@media (max-width: 900px) {
    #elevate-team-marketplace .etm-dialog,
    #elevate-team-marketplace .etm-dialog.etm-dialog--fallback {
        inset: 0;
        width: 100%;
        height: 100%;
        max-height: 100dvh;
        margin: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }
    #elevate-team-marketplace .etm-dialog-inner {
        display: flex;
        flex-direction: column;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        /* Keeps a focused control clear of the pinned crumb and booking bars. */
        scroll-padding: 56px 0 82px;
    }
    #elevate-team-marketplace .etm-d-crumb {
        position: sticky;
        top: 0;
        z-index: 2;
        flex: 0 0 auto;
        min-height: 44px;
        padding-top: env(safe-area-inset-top, 0px);
        padding-inline-end: 0;
    }
    #elevate-team-marketplace .etm-d-back,
    #elevate-team-marketplace .etm-d-up {
        min-width: 44px;
        min-height: 44px;
        padding: 12px 0;
        text-align: center;
    }
    #elevate-team-marketplace .etm-close { height: 44px; }
    /* The portrait is never cropped: on a short screen it narrows instead,
       and stays on the text column's edge. */
    #elevate-team-marketplace .etm-d-media {
        flex: 0 0 auto;
        width: min(560px, calc(100% - 2 * var(--etm-d-pad)), 62.4vh);
        width: min(560px, calc(100% - 2 * var(--etm-d-pad)), 62.4dvh);
        margin: var(--etm-d-pad) auto 0;
        margin-inline-start: max(var(--etm-d-pad), calc((100% - 560px) / 2));
        aspect-ratio: 4 / 5;
    }
    #elevate-team-marketplace .etm-d-main {
        flex: 0 0 auto;
        width: min(560px + 2 * var(--etm-d-pad), 100%);
        margin-inline: auto;
        padding: 36px var(--etm-d-pad) 32px;
        overflow: visible;
    }
    #elevate-team-marketplace .etm-d-main::before,
    #elevate-team-marketplace .etm-d-main::after { content: none; }
    #elevate-team-marketplace .etm-section,
    #elevate-team-marketplace .etm-actions { order: 0; }
    #elevate-team-marketplace .etm-actions {
        position: static;
        padding: 22px 0 0;
        background: none;
    }
    /* The pinned bar carries the booking button here; the sign-in line stays. */
    #elevate-team-marketplace .etm-actions .etm-btn,
    #elevate-team-marketplace .etm-actions--solo { display: none; }
    #elevate-team-marketplace .etm-d-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #elevate-team-marketplace .etm-d-gallery li:nth-child(n+5),
    #elevate-team-marketplace .etm-d-more--lg { display: none; }
    #elevate-team-marketplace .etm-d-more--sm { display: flex; }
    #elevate-team-marketplace .etm-d-view {
        flex: 1 1 0px;
        padding: 16px;
    }
    #elevate-team-marketplace .etm-d-nav--prev { inset-inline-start: 8px; }
    #elevate-team-marketplace .etm-d-nav--next { inset-inline-end: 8px; }
    #elevate-team-marketplace .etm-d-social {
        margin-block: -14px;
        padding: 14px;
    }
    #elevate-team-marketplace .etm-d-social:first-child { margin-inline-start: -14px; }
    #elevate-team-marketplace .etm-d-bar {
        position: sticky;
        bottom: 0;
        z-index: 2;
        flex: 0 0 auto;
        display: block;
        margin-top: auto;
        padding: 9px 14px calc(9px + env(safe-area-inset-bottom, 0px));
        background: var(--etm-d-bar);
        border-top: 1px solid var(--etm-line);
    }
    /* Book + WhatsApp side-by-side (match coach page .etm-p-bar) */
    #elevate-team-marketplace .etm-d-bar {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
    #elevate-team-marketplace .etm-d-bar .etm-btn {
        display: block;
        flex: 1 1 8rem;
        width: auto;
        line-height: 22px;
        text-align: center;
    }
    #elevate-team-marketplace .etm-d-bar .etm-d-return {
        flex: 1 0 100%;
    }
    /* One button, as the page's bar has: the × and the crumb lead back from a photo. */
    #elevate-team-marketplace .etm-d-bar .etm-d-return { display: none; }
    #elevate-team-marketplace .is-viewing .etm-d-bar {
        display: block;
        padding: 9px 14px calc(9px + env(safe-area-inset-bottom, 0px));
    }
}

@media (prefers-reduced-motion: reduce) {
    #elevate-team-marketplace .etm-dialog,
    #elevate-team-marketplace .etm-dialog::backdrop,
    #elevate-team-marketplace .etm-btn,
    #elevate-team-marketplace .etm-d-shot,
    #elevate-team-marketplace .etm-d-view-img,
    #elevate-team-marketplace .etm-d-nav { transition: none; }
    #elevate-team-marketplace .etm-dialog,
    #elevate-team-marketplace .etm-btn:hover,
    #elevate-team-marketplace .etm-d-shot:hover { transform: none; }
}

/* Touch: controls keep the page's size and the tap area grows to 44px. A
   chip takes an invisible overlay; the fields take padding on their label.
   Wrapped rows sit 3px (fields 1px) further apart than the page's 8px, so
   that the areas of two rows do not share the gap. */
@container etm (max-width: 639px) {
    #elevate-team-marketplace .etm-chip-row { row-gap: 11px; }
    #elevate-team-marketplace .etm-bar,
    #elevate-team-marketplace .etm-filters-menus { row-gap: 9px; }
    #elevate-team-marketplace .etm-chip::after {
        content: "";
        position: absolute;
        inset: -6px -1px;
    }
    #elevate-team-marketplace .etm-filters-clear::after {
        content: "";
        position: absolute;
        inset: -7px -1px;
    }
    #elevate-team-marketplace .etm-search,
    #elevate-team-marketplace .etm-filters-select {
        margin-block: -5px;
        padding-block: 5px;
    }
}
@media (pointer: coarse) {
    #elevate-team-marketplace .etm-chip-row { row-gap: 11px; }
    #elevate-team-marketplace .etm-bar,
    #elevate-team-marketplace .etm-filters-menus { row-gap: 9px; }
    #elevate-team-marketplace .etm-chip::after {
        content: "";
        position: absolute;
        inset: -6px -1px;
    }
    #elevate-team-marketplace .etm-filters-clear::after {
        content: "";
        position: absolute;
        inset: -7px -1px;
    }
    #elevate-team-marketplace .etm-search,
    #elevate-team-marketplace .etm-filters-select {
        margin-block: -5px;
        padding-block: 5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #elevate-team-marketplace .etm-chip,
    #elevate-team-marketplace .etm-filters-select select,
    #elevate-team-marketplace .etm-empty-action { transition: none; }
    #elevate-team-marketplace .etm-empty-action:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    #elevate-team-marketplace .etm-card { transition: none; }
    #elevate-team-marketplace .etm-skel-photo { animation: none; }
}

/* Dark theme — matches the elevatewebsite1.netlify.app storefront */
#elevate-team-marketplace[data-theme="dark"] {
    --etm-brand: #D62F2A;
    /* the buttons' gradient ends where white text still reads at 4.5:1 */
    --etm-brand-hi: #E0312B;
    /* borders, hover, focus rings */
    --etm-accent: #EF3B36;
    /* red text, a step brighter: 5.1:1 on a card, 5.9:1 on the page */
    --etm-accent-text: #FF5A55;
    /* red under white text (an active chip, a chosen menu): 4.9:1 */
    --etm-fill: #D62F2A;
    --etm-f-line: #6b625c;
    --etm-soft: #cfd3d9;
    --etm-ink: #e7e9ec;
    --etm-heading: #fff;
    --etm-muted: #9aa0aa;
    --etm-line: #39322f;
    --etm-bg: #181513;
    --etm-card: #272220;
    --etm-field: #0e0c0b;
    --etm-shadow: 0 16px 40px rgba(0, 0, 0, .5);
    color-scheme: dark;
    background: var(--etm-bg);
}
/* On a host page that is already dark a band would only inset the widget
   from the page's own column, so the script drops it (see syncFrame). */
#elevate-team-marketplace[data-theme="dark"].etm-flush {
    background: transparent;
    padding: 0;
    border-radius: 0;
}
/* Dark on a light page (the live site): a band as wide as the window, as the
   site's own dark sections are, not a panel. The border image paints it out
   to the window's edges without widening anything; the side padding keeps the
   content 18px from the edge of a page with a narrower margin. The band's
   edge is page margin, so nothing at the content's edge is clipped. */
#elevate-team-marketplace[data-theme="dark"].etm-framed {
    padding: 56px max(0px, calc(18px - (100vw - 100%) / 2)) 64px;
    border-radius: 0;
    border-image: linear-gradient(var(--etm-bg), var(--etm-bg)) fill 0 / 0 / 0 100vmax;
    overflow-x: visible;
}
@media (max-width: 480px) {
    #elevate-team-marketplace[data-theme="dark"].etm-framed {
        padding-top: 40px;
        padding-bottom: 48px;
    }
    #elevate-team-marketplace.etm-framed:not([data-theme="dark"]) { padding: 12px; }
}
#elevate-team-marketplace[data-theme="dark"] .etm-toolbar { --etm-f-placeholder: #8f8b87; }
#elevate-team-marketplace[data-theme="dark"] .etm-status:not(.etm-status--loading) {
    background: var(--etm-card);
}
#elevate-team-marketplace[data-theme="dark"] .etm-status--loading {
    --etm-skel-lo: #221d1b;
    --etm-skel-hi: #2e2825;
}
#elevate-team-marketplace[data-theme="dark"] .etm-photo {
    --etm-ph-bg: linear-gradient(135deg, #2a2421, #15120f);
    --etm-ph-ink: #4a4540;
}
#elevate-team-marketplace[data-theme="dark"] .etm-dialog {
    --etm-d-text: #c9ccd2;
    --etm-d-faint: #4a4540;
    --etm-d-ph: linear-gradient(135deg, #2a2421, #15120f);
    --etm-d-bar: rgba(14, 12, 11, .97);
    --etm-d-ctl: rgba(14, 12, 11, .92);
    --etm-d-tick: #36c08a;
    --etm-d-star: #f5b301;
}

/* ---- A coach's own page (plugin 1.4.0: <Coaches page>/<slug>/) ----
   Written on the server; the profile keeps the dialog's type, badges, sections
   and buttons, laid out as a page: the photo beside the profile on a desktop,
   above it on a phone, and the page scrolls as a whole. */
/* The plugin's wrapper: full width in a theme whose content box is a flex row. */
.elevate-coach-main {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
}
#elevate-team-marketplace.etm-page {
    --etm-d-pad: 28px;
    --etm-d-text: var(--etm-soft);
    --etm-d-faint: #b3b8bf;
    --etm-d-ph: linear-gradient(135deg, #eceef1, #dde0e5);
    --etm-d-bar: rgba(255, 255, 255, .97);
    --etm-d-ctl: rgba(255, 255, 255, .92);
    --etm-d-tick: #1f8f63;
    --etm-d-star: #b87d00;
    margin: 24px 0 56px;
    font-size: 15px;
    line-height: 1.55;
}
#elevate-team-marketplace[data-theme="dark"].etm-page {
    --etm-d-text: #c9ccd2;
    --etm-d-faint: #4a4540;
    --etm-d-ph: linear-gradient(135deg, #2a2421, #15120f);
    --etm-d-bar: rgba(14, 12, 11, .97);
    --etm-d-ctl: rgba(14, 12, 11, .92);
    --etm-d-tick: #36c08a;
    --etm-d-star: #f5b301;
}
/* Flush with the page: at least 18px from a phone's edge, as in the band below. */
#elevate-team-marketplace.etm-page.etm-flush,
#elevate-team-marketplace[data-theme="dark"].etm-page.etm-flush { padding: 0 max(0px, calc(18px - (100vw - 100%) / 2)); }
/* The script not run (blocked, failed): the page is still written, in a panel. */
#elevate-team-marketplace[data-theme="dark"].etm-page:not(.etm-flush):not(.etm-framed) {
    padding: 28px;
    border-radius: 16px;
}
/* Dark on a light page: one dark band from the site's header to its footer
   (the band is the .etm-framed rule above), 18px from a phone's edge. */
#elevate-team-marketplace[data-theme="dark"].etm-page.etm-framed {
    margin: 0;
    padding: 32px max(0px, calc(18px - (100vw - 100%) / 2)) 72px;
}
@media (max-width: 480px) {
    #elevate-team-marketplace[data-theme="dark"].etm-page.etm-framed {
        padding-top: 20px;
        padding-bottom: 48px;
    }
}
#elevate-team-marketplace .etm-p-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 0;
    margin: 0 0 22px;
    padding: 0;
    font-size: 13px;
    color: var(--etm-muted);
}
/* 44px tall to tap, the line as tall as it was */
#elevate-team-marketplace .etm-p-crumb a {
    display: inline-block;
    margin: -12px 0;
    padding: 12px 0;
    color: var(--etm-muted);
    text-decoration: none;
    border-radius: 4px;
}
#elevate-team-marketplace .etm-p-crumb a:hover { color: var(--etm-accent); }
#elevate-team-marketplace .etm-p-crumb [aria-current] { color: var(--etm-heading); font-weight: 600; }
#elevate-team-marketplace .etm-p {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 48px;
    align-items: start;
    margin: 0;
    padding: 0;
}
/* Sticks clear of the site's fixed header (--etm-host-top, see hostBars). */
#elevate-team-marketplace .etm-p-media {
    position: sticky;
    top: var(--etm-host-top, 24px);
    aspect-ratio: 4 / 5;
    margin: 0;
    border: 1px solid var(--etm-line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--etm-d-ph);
}
#elevate-team-marketplace .etm-p-photo {
    display: block;
    width: 100%;
    height: 100% !important;
    max-width: none !important;
    margin: 0;
    border: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: center top;
}
#elevate-team-marketplace .etm-p-main { min-width: 0; }
#elevate-team-marketplace.etm-page .etm-d-name { font-size: clamp(34px, 4.4vw, 52px); }
#elevate-team-marketplace.etm-page .etm-d-head > :last-child { margin-bottom: 22px; }
#elevate-team-marketplace.etm-page .etm-actions {
    position: static;
    padding: 24px 0 0;
    background: none;
}
/* The booking button right under the profile's head, before the bio: on a
   laptop's first screen. */
#elevate-team-marketplace.etm-page .etm-d-head + .etm-actions { padding: 4px 0 26px; }
#elevate-team-marketplace.etm-page .etm-bio p {
    font-size: 16px;
    line-height: 1.65;
}
#elevate-team-marketplace[dir="rtl"].etm-page .etm-bio p { font-size: 17px; }
#elevate-team-marketplace.etm-page .etm-section { margin-top: 30px; }
/* The page's section headings are h2 (the coach's name is the h1); they read as the dialog's h3. */
#elevate-team-marketplace .etm-section h2,
#elevate-team-marketplace .etm-p-more h2 {
    margin: 0 0 8px;
    padding: 0;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    color: var(--etm-accent-text);
}
#elevate-team-marketplace .etm-p-more {
    margin: 64px 0 0;
    padding: 0;
}
#elevate-team-marketplace .etm-p-more h2 {
    margin-bottom: 18px;
    font-family: var(--etm-display);
    font-size-adjust: var(--etm-display-cap);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--etm-heading);
}
/* the display face has no Arabic */
#elevate-team-marketplace[dir="rtl"] .etm-p-more h2 {
    font-family: inherit;
    font-size-adjust: none;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0;
}
/* After More coaches: the way back to the whole list (44px tall to tap). */
#elevate-team-marketplace .etm-p-all {
    display: inline-block;
    margin: 6px 0 -12px;
    padding: 12px 0;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--etm-accent-text);
}
#elevate-team-marketplace[dir="rtl"] .etm-p-all {
    font-size: 14px;
    letter-spacing: 0;
}
/* Phones: the booking button pinned along the bottom, out of the way while
   the page's own button is on screen (initCoachPage), and not added where the
   site has a booking bar of its own. */
#elevate-team-marketplace .etm-p-bar { display: none; }
#elevate-team-marketplace .etm-p-down {
    margin: 0;
    padding: 40px 0;
    text-align: center;
    color: var(--etm-muted);
}
/* Enlarged gallery photo. */
#elevate-team-marketplace .etm-p-viewer {
    --etm-d-pad: 20px;
    position: fixed;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
    padding: 56px 76px;
    border: 0;
    background: rgba(10, 8, 7, .92);
    color: #fff;
}
#elevate-team-marketplace .etm-p-viewer[open] {
    display: flex;
    align-items: center;
    justify-content: center;
}
#elevate-team-marketplace .etm-p-viewer::backdrop { background: transparent; }
#elevate-team-marketplace .etm-p-viewer-img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    border-radius: 12px;
}
#elevate-team-marketplace .etm-p-viewer-count {
    position: absolute;
    top: 16px;
    inset-inline-start: 20px;
    margin: 0;
    font-size: 13px;
    color: #cfd3d9;
}
#elevate-team-marketplace .etm-p-viewer .etm-close {
    position: absolute;
    top: 8px;
    inset-inline-end: 12px;
    color: #fff;
}
/* A tablet: the photo still beside the profile, narrower. */
@container etm (max-width: 900px) {
    #elevate-team-marketplace .etm-p {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
        gap: 28px;
    }
}
/* A phone: the photo above the profile. */
@container etm (max-width: 639px) {
    #elevate-team-marketplace .etm-p { grid-template-columns: minmax(0, 1fr); }
    #elevate-team-marketplace .etm-p-media {
        position: relative;
        top: 0;
        width: min(560px, 100%);
    }
}
@media (max-width: 900px) {
    /* The dialog moves these into its bottom bar on a phone; a page keeps them here. */
    #elevate-team-marketplace.etm-page .etm-actions--solo { display: flex; }
    #elevate-team-marketplace.etm-page .etm-actions .etm-btn { display: inline-block; }
    #elevate-team-marketplace.etm-page .etm-d-gallery li:nth-child(n+5) { display: list-item; }
    #elevate-team-marketplace .etm-p-viewer { padding: 56px 12px; }
    #elevate-team-marketplace .etm-p-bar {
        position: fixed;
        inset-inline: 0;
        bottom: 0;
        z-index: 9990;
        display: block;
        padding: 9px 14px calc(9px + env(safe-area-inset-bottom, 0px));
        background: var(--etm-d-bar);
        border-top: 1px solid var(--etm-line);
        transition: transform .2s ease;
    }
    #elevate-team-marketplace .etm-p-bar.is-off { transform: translateY(110%); }
    /* Book + WhatsApp in the phone bar */
    #elevate-team-marketplace .etm-p-bar {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
    #elevate-team-marketplace .etm-p-bar .etm-btn {
        display: block;
        flex: 1 1 8rem;
        line-height: 22px;
        text-align: center;
    }
    /* Whatever has keyboard focus stays clear of the bar. */
    #elevate-team-marketplace.etm-page :is(a, button, .etm-card) { scroll-margin-bottom: calc(var(--etm-host-bottom, 16px) + 69px); }
    /* Room under the site's footer for the bar, and the WhatsApp button lifted above it. */
    body.elevate-coach-page:has(.etm-p-bar) { padding-bottom: calc(69px + env(safe-area-inset-bottom, 0px)); }
    body.elevate-coach-page:has(.etm-p-bar) #ht-ctc-chat { bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important; }
}
@media (max-width: 480px) {
    #elevate-team-marketplace.etm-page .etm-actions .etm-btn { display: block; width: 100%; }
}
/* after the bar's own rules, so it wins */
@media (prefers-reduced-motion: reduce) {
    #elevate-team-marketplace.etm-page .etm-p-bar { transition: none; }
}

/* WhatsApp lead intake modal (appended to body; uses marketplace tokens when available) */
.etm-wa-modal {
    --etm-brand: #C81A20;
    --etm-accent: #C81A20;
    --etm-ink: #1A1A1A;
    --etm-muted: #5F6A72;
    --etm-line: #e5e7eb;
    --etm-card: #fff;
    --etm-field: #fff;
    --etm-f-line: #8a929b;
    --etm-radius: 14px;
    --etm-radius-ctl: 10px;
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
}
.etm-wa-modal[hidden] { display: none !important; }
.etm-wa-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 10, .55);
}
.etm-wa-modal__panel {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    max-height: min(92vh, 640px);
    overflow: auto;
    background: var(--etm-card);
    color: var(--etm-ink);
    border-radius: var(--etm-radius);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .28);
    padding: 22px 20px 18px;
    box-sizing: border-box;
}
.etm-wa-modal__x {
    position: absolute;
    top: 8px;
    inset-inline-end: 10px;
    border: 0;
    background: transparent;
    color: var(--etm-muted);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
}
.etm-wa-modal__title {
    margin: 0 28px 8px 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
}
[dir="rtl"] .etm-wa-modal__title { margin: 0 0 8px 28px; }
.etm-wa-modal__lead {
    margin: 0 0 16px;
    color: var(--etm-muted);
    font-size: .95rem;
    line-height: 1.45;
}
.etm-wa-modal__form { display: grid; gap: 12px; }
.etm-wa-field {
    display: grid;
    gap: 6px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--etm-ink);
}
.etm-wa-field input,
.etm-wa-field select {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--etm-f-line);
    border-radius: var(--etm-radius-ctl);
    background: var(--etm-field);
    color: var(--etm-ink);
    padding: 10px 12px;
    font: inherit;
    font-weight: 400;
}
.etm-wa-phone {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--etm-f-line);
    border-radius: var(--etm-radius-ctl);
    background: var(--etm-field);
    overflow: hidden;
}
.etm-wa-dial {
    display: flex;
    align-items: center;
    padding: 0 10px;
    background: #f3f4f6;
    color: var(--etm-muted);
    font-weight: 600;
    border-inline-end: 1px solid var(--etm-line);
    white-space: nowrap;
}
.etm-wa-phone input {
    border: 0;
    border-radius: 0;
    flex: 1;
    min-width: 0;
}
.etm-wa-modal__err {
    margin: 0;
    color: #b42318;
    font-size: .9rem;
    font-weight: 500;
}
.etm-wa-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 4px;
}
.etm-wa-modal__actions .etm-btn {
    display: inline-block;
    border: 0;
    border-radius: var(--etm-radius-ctl);
    padding: 10px 16px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    background: var(--etm-accent);
    color: #fff;
    text-decoration: none;
}
.etm-wa-modal__actions .etm-btn--ghost {
    background: transparent;
    color: var(--etm-ink);
    border: 1px solid var(--etm-line);
}
.etm-wa-modal__actions .etm-btn:disabled {
    opacity: .7;
    cursor: wait;
}
body.etm-wa-modal-open { overflow: hidden; }
#elevate-team-marketplace[data-theme="dark"] ~ .etm-wa-modal,
body:has(#elevate-team-marketplace[data-theme="dark"]) .etm-wa-modal {
    --etm-ink: #f3f4f6;
    --etm-muted: #a1a8b0;
    --etm-line: #33383f;
    --etm-card: #1c1f24;
    --etm-field: #121418;
    --etm-f-line: #4a515a;
}
body:has(#elevate-team-marketplace[data-theme="dark"]) .etm-wa-dial {
    background: #2a2f36;
}
