.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS *//* Footer links: comfortable tap targets on touch screens */
@media (max-width: 1024px) { .elementor-location-footer p > a { display: inline-block !important; padding-block: 10px !important; } }

/* =====================================================================
   Site-wide overrides (this footer loads on every page). They sit on top of the header CSS (post 82);
   the html prefix makes them win without touching that file.
   ===================================================================== */

/* One typeface everywhere: text without its own font falls back to Inter Tight instead of the system font */
html body { font-family: var(--sd-font-sans), system-ui, sans-serif; }

/* Arrow and play glyphs written as plain characters / pictures (escaped codes can get lost when a page is saved) */
html .sd-arrow-btn > a::after { content: "→"; }
html .sd-vt-thumb::after {
  content: "" !important; padding: 0 !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.6 6.9v10.2c0 .7.8 1.1 1.4.7l7.4-5.1c.5-.4.5-1.1 0-1.4L11 6.2c-.6-.4-1.4 0-1.4.7z' fill='%23fff'/%3E%3C/svg%3E") center / 22px no-repeat, rgba(17,17,17,.55) !important;
}

/* ---------- Header: fully transparent at the top of the page, fades in as you scroll ---------- */
@property --sd-hb { syntax: "<number>"; inherits: true; initial-value: 1; }
html [data-id="4574845d"] {
  --sd-hb: 1;
  background: rgba(17,17,17,calc(.82 * var(--sd-hb))) !important;
  backdrop-filter: blur(calc(18px * var(--sd-hb))) saturate(calc(1 + .5 * var(--sd-hb))) !important;
  -webkit-backdrop-filter: blur(calc(18px * var(--sd-hb))) saturate(calc(1 + .5 * var(--sd-hb))) !important;
  border-bottom-color: rgba(255,255,255,calc(.08 * var(--sd-hb))) !important;
}
@supports (animation-timeline: scroll()) {
  @keyframes sd-head-in { from { --sd-hb: 0; } to { --sd-hb: 1; } }
  html [data-id="4574845d"] { animation: sd-head-in linear both; animation-timeline: scroll(root); animation-range: 0px 160px; }
}
html:has([data-id="37df3e48"][open]) [data-id="4574845d"] { --sd-hb: 1 !important; }

/* ---------- Header links: the word rolls up and a fresh white copy rolls in from below; the other links step back ---------- */
html [data-id="6d29334a"] > * { background: transparent !important; transition: color .3s ease !important; clip-path: inset(9px 0 9px 0); }
html [data-id="6d29334a"] > *:hover { background-color: transparent !important; color: #fff !important; }
html [data-id="6d29334a"]:has(> *:hover) > *:not(:hover) { color: rgba(255,255,255,.42) !important; }
html [data-id="6d29334a"] > * > a.e-paragraph-link-base { display: inline-block !important; text-shadow: 0 1.5em 0 #fff !important; transition: transform .55s cubic-bezier(.7,0,.2,1) !important; }
html [data-id="6d29334a"] > *:hover > a.e-paragraph-link-base { transform: translateY(-1.5em) !important; }
@media (prefers-reduced-motion: reduce) { html [data-id="6d29334a"] > * > a.e-paragraph-link-base { transition: none !important; } }

/* ---------- Social rail: one small, quiet rail parked bottom left ---------- */
html .sd-social-right { display: none !important; }
html .sd-social-tag, html .sd-social-tip { display: none !important; }
html .sd-social-left { top: auto; bottom: 28px; left: 28px; transform: none; gap: 8px; pointer-events: none; }
html .sd-social-line { width: 1.5px; height: 56px; margin-bottom: 4px; border-radius: 2px; background: rgba(255,255,255,.12); }
html .sd-social-line > span { background: #8A8A8A; }
html .sd-social-btn { width: 32px; height: 32px; pointer-events: auto; animation: none; color: #6E6E6E; border-color: rgba(255,255,255,.09); background-color: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
html .sd-social-btn svg { width: 15px; height: 15px; }
html .sd-social-btn:hover, html .sd-social-btn:focus-visible { color: #000; border-color: #fff; }
html .sd-social-btn:hover svg, html .sd-social-btn:focus-visible svg { transform: none; }
html .sd-social-link:hover .sd-social-ico { transform: none; }
html.sd-social-hide .sd-social { opacity: 1; }
html.sd-social-hide .sd-social-btn { opacity: 0; pointer-events: none; transition: opacity .4s ease; }

/* ---------- Cursor: small white dot + ring ----------
   Buttons: the ring grows a little and inverts what is under it. Cards: white disc with an arrow.
   Videos: white disc that says WATCH, with a soft pulse. */
html .sd-cursor-dot { background: #fff; box-shadow: none; width: 6px; height: 6px; margin: -3px 0 0 -3px; }
html .sd-cursor-ring { width: 30px; height: 30px; margin: -15px 0 0 -15px; border: 1px solid rgba(255,255,255,.55); animation: none; box-shadow: none; display: grid; place-items: center;
  transition: opacity .25s ease, scale .45s cubic-bezier(.2,.9,.2,1), background-color .3s ease, border-color .3s ease; }
html .sd-cursor-ring::before { content: ""; width: 11px; height: 11px; opacity: 0; transition: opacity .25s ease; background: no-repeat center / contain; }
html.sd-cursor-hot .sd-cursor-ring { scale: 1.25; background-color: rgba(255,255,255,.06); border-color: rgba(255,255,255,.9); }
html.sd-cursor-hot .sd-cursor-dot { scale: 1; }
/* cards: arrow */
html:has(.sd-card:hover) .sd-cursor-ring { scale: 1.5; background-color: #fff; border-color: #fff; }
html:has(.sd-card:hover) .sd-cursor-ring::before { opacity: 1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E"); }
html:has(.sd-card:hover) .sd-cursor-dot { scale: 0; }
/* videos: WATCH label */
@keyframes sd-play-pulse { 0% { box-shadow: 0 0 0 0 rgba(255,255,255,.35); } 70% { box-shadow: 0 0 0 8px rgba(255,255,255,0); } 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); } }
html:has(:is(.sd-vt, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]):hover) .sd-cursor-ring { scale: 1.9; background-color: #fff; border-color: #fff; animation: sd-play-pulse 1.8s ease-out infinite; }
html:has(:is(.sd-vt, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]):hover) .sd-cursor-ring::before {
  content: "Watch"; width: auto; height: auto; opacity: 1; background: none; color: #000;
  font-family: var(--sd-font-sans), sans-serif; font-size: 5.6px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; line-height: 1; padding-left: .14em; }
html:has(:is(.sd-vt, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]):hover) .sd-cursor-dot { scale: 0; }
/* buttons (also inside cards and video tiles) */
html:has(:is(.e-button-base, .sd-arrow-btn > a, .sd-btn-red, .sd-btn-neutral, .sd-pill, .sd-pill-active, .sd-clear, .sd-rail-btn, .sd-social-btn, summary):hover) .sd-cursor-ring,
html:has(:is(.sd-card, .sd-vt, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]) :is(.e-button-base, .sd-btn-red):hover) .sd-cursor-ring { scale: 1.45; background-color: #fff; border-color: #fff; mix-blend-mode: difference; animation: none; }
html:has(:is(.e-button-base, .sd-arrow-btn > a, .sd-btn-red, .sd-btn-neutral, .sd-pill, .sd-pill-active, .sd-clear, .sd-rail-btn, .sd-social-btn, summary):hover) .sd-cursor-ring::before,
html:has(:is(.sd-card, .sd-vt, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]) :is(.e-button-base, .sd-btn-red):hover) .sd-cursor-ring::before { opacity: 0; }
html:has(:is(.e-button-base, .sd-arrow-btn > a, .sd-btn-red, .sd-btn-neutral, .sd-pill, .sd-pill-active, .sd-clear, .sd-rail-btn, .sd-social-btn, summary):hover) .sd-cursor-dot { scale: 0; }
html.sd-cursor-down .sd-cursor-ring { scale: .85; }

/* ---------- Touch screens: a tapped button shows its full fill before the page changes (the script adds .sd-tap) ---------- */
html :is(.e-button-base, .sd-btn-red, .sd-btn-neutral).sd-tap { background-size: 100% 100% !important; color: #000 !important; border-color: #fff !important; }
html :is([data-id="2d398f46"], [data-id="4f8c292c"], [data-id="611f206f"]).sd-tap { background-size: 0% 100% !important; color: #fff !important; }
html .sd-arrow-btn > a.sd-tap { background-size: 100% 100% !important; color: #000 !important; border-color: #fff !important; }

/* ---------- Whole card is clickable (coaches, courses, products, articles) ----------
   The card's main link stretches over the whole card; the booking button stays its own button on top. */
html :is([data-interaction-id="7e215a6e"], [data-interaction-id="740b05fb"], [data-interaction-id="3b7057e"], [data-interaction-id="745b6d0a"], [data-interaction-id="12e24c3f"], [data-interaction-id="45e45fbe"], [data-interaction-id="1819e4bb"]) { position: static !important; }
html :is([data-interaction-id="61e97ceb"], [data-interaction-id="476d4f34"], [data-interaction-id="5c30d894"], [data-interaction-id="3f3f2b39"]) a::before { content: ""; position: absolute; inset: 0; z-index: 3; border-radius: inherit; }
html :is(.sd-card) { cursor: pointer; }
html [data-interaction-id="2dc04107"] { position: relative !important; z-index: 5 !important; }

/* ---------- Coach cards: the price, profile link and booking button wrap instead of overlapping ---------- */
html [data-interaction-id="740b05fb"] { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: space-between !important; gap: 14px 10px !important; }
html [data-interaction-id="1b9c555d"] { white-space: nowrap; order: 0; }
html [data-interaction-id="61e97ceb"] { order: 1; }
html [data-interaction-id="2dc04107"] { order: 2; flex: 1 1 100% !important; }
/* card grids from posts add a row before the cards get too narrow */
@media (min-width: 768px) {
  html .e-collection-loop-layout-base:is(.sd-grid-4, .sd-grid-3) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)) !important; grid-auto-rows: auto !important; }
}

/* ---------- Badges (Vetted / Affiliate): solid enough to read on bright photos; hidden when the field is empty ---------- */
html :is([data-interaction-id="1cb59253"], [data-interaction-id="2c85e8fa"], [data-interaction-id="418cf032"], [data-id="77c35520"], [data-id="49e06e6b"]) {
  background: rgba(10,10,10,.78) !important; color: #fff !important; border: 1px solid rgba(255,255,255,.22) !important;
  backdrop-filter: blur(10px) !important; -webkit-backdrop-filter: blur(10px) !important; font-weight: 600 !important; box-shadow: 0 4px 14px rgba(0,0,0,.35);
}
html :is([data-interaction-id="1cb59253"], [data-interaction-id="2c85e8fa"], [data-interaction-id="418cf032"], [data-id="77c35520"], [data-id="49e06e6b"]):empty { display: none !important; }

/* ---------- Card outline on hover: starts at the top-right corner as a long faint gradient, then closes fully ---------- */
@property --sd-a1 { syntax: "<number>"; inherits: false; initial-value: 0; }
.sd-card, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"] { --sd-s: 60deg; }
.sd-card[data-interaction-id="7a2073a1"] { --sd-s: 22deg; }
.sd-card[data-interaction-id="32d2359"] { --sd-s: 38deg; }
.sd-card[data-interaction-id="90b8954"] { --sd-s: 65deg; }
@media (max-width: 767px) { .sd-card[data-interaction-id="90b8954"] { --sd-s: 32deg; } }
html :is(.sd-card, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"])::after {
  background: conic-gradient(from var(--sd-s),
    rgba(255,255,255,calc(.9 * var(--sd-a0))) 0deg,
    rgba(255,255,255,calc(.9 * var(--sd-a1))) max(var(--sd-trace) - 170deg, var(--sd-trace) * .45),
    rgba(255,255,255,calc(.9 * var(--sd-a1))) var(--sd-trace),
    transparent var(--sd-trace));
  transition: --sd-trace 1.1s cubic-bezier(.65,0,.35,1), --sd-a0 .45s ease .65s, --sd-a1 .55s ease-in;
}
html :is(.sd-card, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]):hover::after { --sd-a1: 1; }
html :is(.sd-card, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"])::before {
  background: conic-gradient(from var(--sd-s), transparent calc(var(--sd-trace) - 7deg), rgba(255,255,255,.95) var(--sd-trace), transparent var(--sd-trace));
  transition: --sd-trace 1.1s cubic-bezier(.65,0,.35,1);
}
html :is(.sd-card, [data-id="3461001"], [data-id="4c290564"], [data-id="56e91a84"]):hover::before { animation: sd-tip2 1.1s ease forwards; }
@keyframes sd-tip2 { 0% { opacity: 0; } 35% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; } }

/* ---------- Coach cards: every fact is one row (label left, value right) on a shared grid ---------- */
html [data-interaction-id="4bfb3609"] { grid-template-columns: max-content minmax(0, 1fr) !important; gap: 10px 16px !important; }
html [data-interaction-id="4bfb3609"] > :is(:nth-child(1), :nth-child(2), :nth-child(3), :nth-child(4), :nth-child(7)) {
  display: grid !important; grid-template-columns: subgrid !important; grid-column: 1 / -1 !important; gap: 0 16px !important; align-items: baseline !important;
}
html [data-interaction-id="4bfb3609"] > :nth-child(6) { margin-bottom: 4px; }
html [data-interaction-id="4bfb3609"] :is(.sd-fact-k, .sd-fact-v) { margin: 0 !important; }

/* ---------- Offstage tile: label and button sit inside the tile with even margins (no overflow on phones) ---------- */
@media (max-width: 767px) {
  html [data-id="586d43db"] { left: 0 !important; right: 0 !important; width: auto !important; padding: 0 18px !important; bottom: 18px !important; }
}

/* ---------- Home products row: the cards come from product posts; the loop wrappers step aside so the row lays out the cards ---------- */
html [data-id="7a9c651"] > .e-collection-loop-base, html [data-id="7a9c651"] .e-collection-loop-layout-base { display: contents !important; }
@media (max-width: 767px) {
  html [data-id="7a9c651"] .e-collection-loop-item-base { flex: 0 0 78% !important; max-width: 78% !important; scroll-snap-align: start; scroll-snap-stop: always; }
}

/* ---------- Swipe rows ----------
   Phones: sideways only and every swipe lands on a card. Desktop (mouse / trackpad): no snapping at all, so the row glides freely. */
html .sd-rail { overflow-y: hidden !important; overscroll-behavior-x: none; scroll-snap-type: x mandatory !important; }
html .sd-rail > * { scroll-snap-align: start; scroll-snap-stop: always; }
@media (max-width: 767px) {
  html :is([data-id="2ffa543d"], [data-id="4628655f"], [data-id="7a9c651"]) { overflow-y: hidden !important; overscroll-behavior-x: none; scroll-snap-type: x mandatory !important; }
  html :is([data-id="2ffa543d"], [data-id="4628655f"], [data-id="7a9c651"]) > * { scroll-snap-align: start; scroll-snap-stop: always; }
}
@media (hover: hover) and (pointer: fine) {
  html .sd-rail { scroll-snap-type: none !important; scroll-behavior: auto !important; }
  html .sd-rail > * { scroll-snap-stop: normal; scroll-snap-align: none; }
}

/* ---------- Phones: swipe rows get their arrows right below the row, next to a small position bar ---------- */
@media (max-width: 767px) {
  @supports (top: anchor(--a bottom)) {
    html .sd-rail-on > :is([data-id="2ffa543d"], [data-id="4628655f"], [data-id="7a9c651"], .sd-rail) { anchor-name: --sd-rowa; margin-bottom: 52px !important; }
    html .sd-rail-on > .sd-rail-btn { top: calc(anchor(--sd-rowa bottom) + 8px) !important; margin-top: 0; width: 36px; height: 36px; box-shadow: none; background: transparent; border-color: rgba(255,255,255,.22); transform: none; }
    html .sd-rail-on > .sd-rail-prev { left: auto; right: 68px; }
    html .sd-rail-on > .sd-rail-next { right: 24px; }
    html .sd-rail-on > .sd-rail-btn:disabled { opacity: .3; pointer-events: none; }
    html .sd-rail-on::after {
      content: ""; position: absolute; left: 24px; top: calc(anchor(--sd-rowa bottom) + 25px); width: 72px; height: 2px; border-radius: 2px; pointer-events: none;
      background: linear-gradient(#fff, #fff) no-repeat 0% 50% / 26px 100%, rgba(255,255,255,.16);
    }
  }
  @supports (top: anchor(--a bottom)) and (animation-timeline: scroll()) {
    html .sd-rail-on { timeline-scope: --sd-row; }
    html .sd-rail-on > :is([data-id="2ffa543d"], [data-id="4628655f"], [data-id="7a9c651"], .sd-rail) { scroll-timeline: --sd-row inline; }
    html .sd-rail-on::after { animation: sd-row-pos linear both; animation-timeline: --sd-row; }
    @keyframes sd-row-pos { from { background-position: 0% 50%, 0 0; } to { background-position: 100% 50%, 0 0; } }
  }
}

/* ---------- Content page: videos rise in the same way the text does ---------- */
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    @keyframes sd-vt-in {
      from { opacity: 0; translate: 0 24px; filter: blur(10px); }
      to   { opacity: 1; translate: 0 0;    filter: none; }
    }
    html .sd-rail { view-timeline: --sd-vin block; }
    html .sd-rail > .sd-vt { animation: sd-vt-in linear both; animation-timeline: --sd-vin; animation-range: entry calc(var(--sd-n, 0) * 9%) entry calc(100% + var(--sd-n, 0) * 9%); }
    html .sd-rail > .sd-vt:nth-child(2) { --sd-n: 1; }
    html .sd-rail > .sd-vt:nth-child(3) { --sd-n: 2; }
    html .sd-rail > .sd-vt:nth-child(4) { --sd-n: 3; }
    html .sd-rail > .sd-vt:nth-child(n+5) { --sd-n: 4; }
  }
}

/* ---------- Content hero (OFFSTAGE) ----------
   Desktop: tall enough for the picture without taking over the screen; the picture fades softly into the page.
   Phones: the separate 4:5 picture sits on top, the text starts over its faded lower part, the rows start below the button. */
html [data-id="da1402f"] { min-height: max(86svh, 48vw) !important; }
html [data-id="3f368cef"] { -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 62%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0%, #000 62%, transparent 100%); }
@media (max-width: 767px) {
  html [data-id="da1402f"] { min-height: 0 !important; display: block !important; }
  html [data-id="3f368cef"], html [data-id="4f693e74"] { display: none !important; }
  html [data-id="57e50e51"] { display: block !important; filter: brightness(.85);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 50%, rgba(0,0,0,.5) 75%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 50%, rgba(0,0,0,.5) 75%, transparent 100%); }
  html [data-id="5a8ffa8a"] { padding-top: 92vw !important; padding-bottom: 48px !important; max-width: none !important; }
  html [data-id="480f814"] { margin-top: 0 !important; }
}

/* ---------- Phone hero (Home): never squeezed so far that the headline climbs onto the faces ---------- */
@media (max-width: 767px) {
  html [data-id="7a87991"] { height: max(min(128vw, 680px), 64%) !important; filter: brightness(.82);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 50%, rgba(0,0,0,.55) 75%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 50%, rgba(0,0,0,.55) 75%, transparent 100%); }
  html [data-id="3dca08ca"] { padding-top: min(96vw, 510px) !important; }
}

/* ---------- Long-form text: blog articles and the story part of product pages (same feel as the About page) ---------- */
html :is(.sd-blog-body, .sd-gallery) :is(h2, h3) { font-family: var(--sd-font-sans), sans-serif; color: #fff; font-weight: 600; letter-spacing: -.015em; text-wrap: balance; margin: 48px 0 14px; }
html :is(.sd-blog-body, .sd-gallery) h2 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.15; }
html :is(.sd-blog-body, .sd-gallery) h3 { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.25; margin-top: 36px; }
html :is(.sd-blog-body, .sd-gallery) :is(p, li) { font-size: 17px; line-height: 1.7; color: #BDBDBD; text-wrap: pretty; }
html :is(.sd-blog-body, .sd-gallery) p { margin: 0 0 18px; max-width: 64ch; }
html :is(.sd-blog-body, .sd-gallery) :is(ul, ol) { margin: 0 0 22px; padding-left: 1.2em; }
html :is(.sd-blog-body, .sd-gallery) li { margin-bottom: 8px; }
html :is(.sd-blog-body, .sd-gallery) li::marker { color: #848484; }
html :is(.sd-blog-body, .sd-gallery) a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.35); text-underline-offset: 4px; transition: text-decoration-color .25s ease; }
html :is(.sd-blog-body, .sd-gallery) a:hover { text-decoration-color: #fff; }
html :is(.sd-blog-body, .sd-gallery) strong { color: #fff; }
html .sd-blog-body blockquote { margin: 36px 0; padding: 4px 0 4px 24px; border-left: 2px solid #fff; }
html .sd-blog-body blockquote p { font-size: clamp(20px, 2vw, 26px); line-height: 1.35; color: #fff; font-weight: 600; letter-spacing: -.01em; margin-bottom: 10px; }
html .sd-blog-body blockquote cite { font-style: normal; font-size: 14px; color: #848484; }
html .sd-blog-body figure { margin: 36px 0; }
html .sd-blog-body figure img { width: 100%; height: auto; border-radius: 16px; display: block; }
html .sd-blog-body figcaption { font-size: 13px; color: #848484; margin-top: 10px; text-align: left; }
html .sd-blog-body .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #1A1A1A; }
html .sd-blog-body .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
html .sd-blog-body > :first-child :first-child p:first-child { font-size: 19px; color: #DADADA; }

/* ---------- Product page pictures ----------
   First gallery: one main picture with up to three small ones underneath (same on phones). Later galleries: an even row of pictures. */
html .sd-gallery .wp-block-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; margin: 0 0 8px !important; }
html .sd-gallery .wp-block-gallery > figure { width: auto !important; margin: 0 !important; aspect-ratio: 1 / 1; border-radius: 14px; overflow: hidden; background: #1A1A1A; border: 1px solid rgba(255,255,255,.08); }
html .sd-gallery .wp-block-gallery > figure img { width: 100% !important; height: 100% !important; object-fit: cover !important; transition: transform 1s cubic-bezier(.2,.8,.2,1); }
html .sd-gallery .wp-block-gallery > figure:hover img { transform: scale(1.04); }
html .sd-gallery .wp-block-gallery figcaption { display: none; }
html .sd-gallery .wp-block-gallery:first-of-type > figure:first-child { grid-column: 1 / -1; aspect-ratio: 3 / 2; border-radius: 16px; }
html .sd-gallery .wp-block-gallery:not(:first-of-type) { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important; margin: 32px 0 !important; }
html .sd-gallery .wp-block-gallery:not(:first-of-type) > figure { aspect-ratio: 4 / 3; }
html .sd-gallery .wp-block-gallery:first-of-type + :is(h2, h3) { margin-top: 56px; }
html [data-id="33749619"] { font-size: clamp(36px, 4.2vw, 64px) !important; line-height: 1.02 !important; }

/* ---------- Blog article cards and hero ---------- */
html [data-interaction-id="605044c4"] { display: block; }
html [data-id="2bd337a9"] { box-shadow: 0 40px 80px -40px rgba(0,0,0,.9); }

/* ---------- Mobile menu: slides down, big links rise in one after the other; slides back up to close ---------- */
@media (max-width: 1024px) {
  @keyframes sd-menu-in2 {
    from { clip-path: inset(0 0 100% 0); transform: translateY(-14px); }
    to   { clip-path: inset(0 0 -40px 0); transform: none; }
  }
  @keyframes sd-menu-out2 {
    from { clip-path: inset(0 0 -40px 0); transform: none; }
    to   { clip-path: inset(0 0 100% 0); transform: translateY(-14px); }
  }
  @keyframes sd-menu-item2 {
    from { opacity: 0; transform: translateY(22px); filter: blur(8px); }
    to   { opacity: 1; transform: none; filter: blur(0); }
  }
  @keyframes sd-menu-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  html [data-id="45aa71c2"] { padding: 12px 24px 28px !important; gap: 0 !important; }
  html [data-id="45aa71c2"] > p { position: relative; margin: 0 !important; padding: 16px 0 !important; font-size: 26px !important; font-weight: 600 !important; letter-spacing: -.02em !important; line-height: 1.1 !important; }
  html [data-id="45aa71c2"] > p a { color: #fff !important; }
  html [data-id="45aa71c2"] > p::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(255,255,255,.1); transform-origin: 0 50%; }
  html [data-id="45aa71c2"] > a { margin-top: 22px !important; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] { animation: sd-menu-in2 .6s cubic-bezier(.22,1,.36,1) both; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > * { animation: sd-menu-item2 .65s cubic-bezier(.2,.9,.2,1) both; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > p::after { animation: sd-menu-line .8s cubic-bezier(.7,0,.2,1) both; animation-delay: inherit; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(1) { animation-delay: .10s; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(2) { animation-delay: .16s; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(3) { animation-delay: .22s; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(4) { animation-delay: .28s; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(5) { animation-delay: .34s; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(6) { animation-delay: .42s; }
  html [data-id="37df3e48"].sd-closing > [data-id="45aa71c2"] { animation: sd-menu-out2 .4s cubic-bezier(.65,0,.35,1) both !important; }
  html [data-id="37df3e48"].sd-closing > [data-id="45aa71c2"] > * { animation: sd-menu-item-out .2s ease both !important; animation-delay: 0s !important; }
}
@media (max-width: 1024px) and (prefers-reduced-motion: reduce) {
  html [data-id="37df3e48"] > [data-id="45aa71c2"], html [data-id="37df3e48"] > [data-id="45aa71c2"] > *, html [data-id="37df3e48"] > [data-id="45aa71c2"] > p::after { animation: none !important; }
}

/* ===== Patch B: fixes from the 22 Oct review ===== */

/* Header links stay clickable while the word rolls: the link keeps covering the spot where it was */
html [data-id="6d29334a"] > * > a.e-paragraph-link-base { position: relative !important; }
html [data-id="6d29334a"] > * > a.e-paragraph-link-base::before { content: ""; position: absolute; left: -14px; right: -14px; top: -9px; bottom: calc(-9px - 1.5em); }

/* Phones: a taller header so the logo always has room */
@media (max-width: 767px) {
  html [data-id="3985cb4c"] { height: 72px !important; }
  html [data-id="45aa71c2"] { inset-block-start: 72px !important; }
  html [data-id="c73fcf5"] { height: 52px !important; width: auto !important; }
}

/* Coach cards: price and profile link side by side, Book now a normal full-width button below */
html [data-interaction-id="740b05fb"] { flex-direction: row !important; }
html [data-interaction-id="2dc04107"] { height: auto !important; min-height: 44px !important; max-height: 52px; align-self: auto !important; }

/* Home products row on phones: a swipe row like the others */
@media (max-width: 767px) {
  html [data-id="7a9c651"] .e-collection-loop-layout-base > * { flex: 0 0 78% !important; max-width: 78% !important; scroll-snap-align: start; scroll-snap-stop: always; }
}

/* "More coaches / products / articles" at the bottom of detail pages: side scrollers */
html .e-collection-loop-layout-base.sd-rail { display: flex !important; grid-template-columns: none !important; grid-auto-rows: auto !important; overflow-x: auto !important; overflow-y: hidden !important; gap: 20px !important; padding: 8px 0 !important; scrollbar-width: none; }
html .e-collection-loop-layout-base.sd-rail::-webkit-scrollbar { display: none; }
html .e-collection-loop-layout-base.sd-rail > * { flex: 0 0 clamp(260px, 24vw, 330px) !important; max-width: none !important; height: auto !important; }
@media (max-width: 767px) {
  html .e-collection-loop-layout-base.sd-rail { margin-inline: -24px !important; padding-inline: 24px !important; scroll-padding-inline: 24px; }
  html .e-collection-loop-layout-base.sd-rail > * { flex-basis: 78% !important; }
}

/* Article cards (blog page and blog template): the whole card opens the article */
html .sd-blog-card .e-con { position: static !important; }
html .sd-blog-card .sd-arrow-btn a::before { content: ""; position: absolute; inset: 0; z-index: 3; }

/* Product pages: smaller 16:9 pictures under the main picture */
html .sd-gallery .wp-block-gallery:first-of-type { gap: 8px !important; }
html .sd-gallery .wp-block-gallery:first-of-type > figure:not(:first-child) { aspect-ratio: 16 / 9; border-radius: 10px; }

/* Content page: everything rises in, not just headlines and videos */
@keyframes sd-rise { from { opacity: 0; translate: 0 24px; filter: blur(10px); } to { opacity: 1; translate: 0 0; filter: none; } }
@media (prefers-reduced-motion: no-preference) {
  html :is([data-id="7095f800"], [data-id="57a65e87"], [data-id="5af545ed"], [data-id="551eda80"]) { animation: sd-rise 1.1s cubic-bezier(.2,.8,.2,1) both; }
  html [data-id="7095f800"] { animation-delay: .1s; }
  html [data-id="57a65e87"] { animation-delay: .9s; }
  html [data-id="5af545ed"] { animation-delay: 1.05s; }
  html [data-id="551eda80"] { animation-delay: 1.2s; }
  @supports (animation-timeline: view()) {
    html :is([data-id="5699edff"], [data-id="3e519785"], [data-id="4b3218e7"], [data-id="397d432a"]) { animation: sd-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
  }
}

/* ===== Patch C: fixes from the second 22 Oct review ===== */

/* Card grids fill the full width (columns stretch instead of leaving empty slots) */
@media (min-width: 768px) {
  html .e-collection-loop-layout-base:is(.sd-grid-4, .sd-grid-3):not(.sd-rail) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) !important; }
}

/* Phone menu button: no circle, three thin grey lines */
html [data-id="7ca0d147"] { border: 0 !important; background: transparent !important; }
html [data-id="7ca0d147"]:hover { background: transparent !important; }
html [data-id="7ca0d147"]::before, html [data-id="7ca0d147"]::after, html [data-id="7ca0d147"] > [data-id="790cb46"] { background: #8A8A8A !important; height: 1px !important; }
html [data-id="37df3e48"][open] > [data-id="7ca0d147"]::before, html [data-id="37df3e48"][open] > [data-id="7ca0d147"]::after { background: #fff !important; }
@media (max-width: 1024px) {
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(7) { animation-delay: .5s; }
  html [data-id="37df3e48"][open] > [data-id="45aa71c2"] > :nth-child(6) { animation-delay: .46s; }
}

/* Coach filters: Clear filters looks like the other pills */
html .sd-clear { appearance: none; background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.22) !important; border-radius: 999px !important; padding: 8px 16px !important; font: 600 13px/1 var(--sd-font-sans), sans-serif !important; box-shadow: none !important; cursor: pointer; transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
html .sd-clear:hover, html .sd-clear:focus-visible { background: #fff !important; color: #000 !important; border-color: #fff !important; }

/* Phone hero (Home): a dark fade drawn over the lower part of the photo, so there is never a hard edge (works on iPhone too) */
@media (max-width: 767px) {
  html [data-id="732afc09"] { --sd-ih: max(min(128vw, 680px), 64%); background: linear-gradient(to bottom, rgba(17,17,17,0) 0, rgba(17,17,17,0) calc(var(--sd-ih) * .42), rgba(17,17,17,.7) calc(var(--sd-ih) * .78), #111111 calc(var(--sd-ih) - 2px)) !important; }
}

/* Content page: videos now rise in through the site script in every browser (the scroll-based version only worked in some) */
html .sd-rail > .sd-vt { animation: none !important; }

/* OFFSTAGE hero picture: blurs in after the page loads instead of sitting there sharp first */
@keyframes sd-img-in { from { opacity: 0; filter: blur(24px); scale: 1.06; } to { opacity: 1; filter: blur(0); scale: 1; } }
@media (prefers-reduced-motion: no-preference) {
  html [data-id="3f368cef"] { animation: sd-img-in 1.4s cubic-bezier(.2,.8,.2,1) .05s both; }
  html [data-id="57e50e51"] { animation: sd-img-in 1.4s cubic-bezier(.2,.8,.2,1) .05s both; }
}

/* ===== Patch D: forms (Contact, Become a listed coach) and legal pages ===== */
html .sd-form .sd-field { display: flex !important; flex-direction: column; gap: 8px; padding: 0 !important; }
html .sd-form label { font: 500 13px/1.4 var(--sd-font-sans), sans-serif !important; color: #AAAAAA !important; letter-spacing: .01em; }
html .sd-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], textarea) {
  width: 100% !important; height: auto !important; box-sizing: border-box; margin: 0;
  background: #141414 !important; color: #fff !important; border: 1px solid rgba(255,255,255,.12) !important; border-radius: 12px !important;
  padding: 13px 16px !important; font: 400 16px/1.4 var(--sd-font-sans), sans-serif !important; transition: border-color .25s ease, background-color .25s ease; }
html .sd-form textarea { min-height: 150px; resize: vertical; }
html .sd-form :is(input, textarea)::placeholder { color: #6E6E6E !important; }
html .sd-form :is(input, textarea):focus { outline: none !important; border-color: rgba(255,255,255,.6) !important; background: #181818 !important; }
html .sd-form input[type="checkbox"] { accent-color: #fff; width: 18px; height: 18px; margin: 1px 0 0; flex: 0 0 18px; }
html .sd-form .e-con:has(> input[type="checkbox"]) label { font-size: 13px !important; line-height: 1.5 !important; color: #8A8A8A !important; }
html .sd-form button[type="submit"] { background-color: #fff !important; color: #000 !important; border: 1.5px solid #fff !important; border-radius: 999px !important; min-height: 48px; padding: 0 28px !important; font: 600 15px/1 var(--sd-font-sans), sans-serif !important; cursor: pointer;
  background-image: linear-gradient(#111, #111) !important; background-repeat: no-repeat !important; background-position: 100% 50% !important; background-size: 0% 100% !important; transition: background-size .5s cubic-bezier(.7,0,.2,1), color .35s ease !important; }
html .sd-form button[type="submit"]:hover { background-size: 100% 100% !important; color: #fff !important; }
html .sd-form :is(.e-form-success-message-base, .e-form-error-message-base) p { font-size: 15px; color: #fff; }
html :is(.sd-body, .sd-legal) a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.35); text-underline-offset: 4px; }
html :is(.sd-body, .sd-legal) a:hover { text-decoration-color: #fff; }
html .sd-legal h2 { font: 600 clamp(19px, 1.6vw, 22px)/1.25 var(--sd-font-sans), sans-serif; color: #fff; letter-spacing: -.01em; margin: 26px 0 0; }
html .sd-legal h2:first-child { margin-top: 0; }
html .sd-legal p { font-size: 16px; line-height: 1.7; color: #BDBDBD; margin: 0; }/* End custom CSS */