/*
 * VIS design system: the one look every page shares.
 *
 * Loaded after global.css. Each component is defined once here so pages
 * built from blocks, legacy Divi content and plugin output all match:
 *   1. Tokens          5. Media and two-column sections
 *   2. Page hero title 6. Stats, quotes, logos, blurbs
 *   3. Sections        7. Filters and pills
 *   4. Cards           8. Detail pages (news and content types)
 * Everything sits on the dark navy page; white text, gold accents.
 */

/* 1. Tokens and colour schemes ------------------------------------------------
   Every component takes its colours from these tokens, so one class switches
   a whole section between dark and light:
     --vis-ink         text and the base for every tint (lines, glass, muted)
     --vis-accent-ink  accent text: gold on dark, VIS blue (#002c76) on light
     --vis-btn-*       button colours;  --vis-link*  inline links
   Dark is the default. Light: reading sections (page content, articles,
   news lists, the home news/athletes/Instagram/partners bands). Anything set
   over a photo, plus banners, newsletter and footer, stays dark wherever it
   sits. Editors can force either: section style "Navy"/"Deep navy" (dark) or
   the class vis-scheme-light. */
:root {
	--vis-ease: var(--wp--custom--motion--ease); /* one curve site-wide (theme.json) */
	--vis-surface-line-hover: rgba(248, 152, 29, .55);
	--vis-gap: clamp(1.25rem, 2vw, 2rem);
	--vis-block-space: clamp(4rem, 3rem + 5vw, 8rem);
	--vis-paper: #f3f4f6;
	/* Type scale (one value per role; see section 24). */
	--vis-title-size: clamp(2.75rem, 1.5rem + 5vw, 6rem);      /* page titles */
	--vis-opener-size: clamp(2.75rem, 1.5rem + 4.2vw, 5.5rem); /* the h2 that opens a band */
	--vis-h3-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem);     /* headings inside content */
	--vis-card-title-size: clamp(1.125rem, 1rem + .4vw, 1.375rem);
	--vis-lead-size: clamp(1.25rem, 1.05rem + .7vw, 1.625rem);
	--vis-title-size-long: clamp(2.25rem, 1.25rem + 3.5vw, 4.5rem); /* detail titles that run to several lines */
	--vis-label-size: .75rem; --vis-label-tracking: var(--wp--custom--tracking--eyebrow);
}
/* Dark (default) and the always-dark islands. */
:root, :where(.vis-scheme-dark, .is-style-section-navy, .is-style-section-deep, .vis-banner, .vis-detail__head, .vis-slider, .vis-header, .vis-footer, .vis-countdown,
	.vis-newsletter, .vis-marquee, .vis-champions, .wp-block-cover, .vis-card--athlete, .vis-card--person, .vis-ig__item, .vis-section--news li:first-child .vis-card, .vis-opportunities__dialog, .vis-page-head, .vis-legacy__title, .vis-rc__expert) {
	--vis-ink: var(--wp--preset--color--white);
	--vis-accent-ink: var(--wp--preset--color--gold-500);
	--vis-link: var(--wp--preset--color--gold-500); --vis-link-hover: var(--wp--preset--color--white);
	--vis-btn-bg: var(--wp--preset--color--white); --vis-btn-fg: var(--wp--preset--color--navy-950);
	--vis-shadow: 0 30px 60px -24px rgba(0, 0, 0, .6);
	--vis-card-bg: var(--wp--preset--color--navy-800);
}
/* Light. */
:where(.vis-scheme-light, .vis-detail, .vis-hub-item__body, .vis-content:not(:has(.vis-directory--athletes, .vis-timeline), .is-style-section-navy, .is-style-section-deep, .vis-scheme-dark, .vis-history *), main:has(.vis-directory:not(.vis-directory--athletes)),
	.vis-home > :is(.vis-section--news, .vis-section--athletes, .vis-section--social, .vis-section--partners), .ur-form-cta.is-open .ur-form-cta__form) {
	--vis-ink: var(--wp--preset--color--navy-900);
	--vis-accent-ink: var(--wp--preset--color--blue-700);
	--vis-link: var(--wp--preset--color--navy-900); --vis-link-hover: var(--wp--preset--color--blue-700);
	--vis-btn-bg: var(--wp--preset--color--navy-900); --vis-btn-fg: var(--wp--preset--color--white);
	--vis-shadow: 0 24px 48px -28px rgba(11, 35, 63, .35);
	--vis-card-bg: var(--wp--preset--color--white);
	color: var(--vis-ink);
}
/* Light bands are paper, unless the editor gave the band a colour or a section style of its own. */
:where(.vis-scheme-light, .vis-detail, .vis-hub-item__body, .vis-content:not(:has(.vis-directory--athletes, .vis-timeline), .is-style-section-navy, .is-style-section-deep, .vis-scheme-dark, .vis-history *), main:has(.vis-directory:not(.vis-directory--athletes)),
	.vis-home > :is(.vis-section--news, .vis-section--athletes, .vis-section--social, .vis-section--partners), .ur-form-cta.is-open .ur-form-cta__form):not(.has-background, [class*="is-style-section-"]) {
	background-color: var(--vis-paper) !important;
}
/* Tokens derived from the ink, recomputed at every scheme root. */
:root, :where(.vis-scheme-dark, .is-style-section-navy, .is-style-section-deep, .vis-banner, .vis-detail__head, .vis-slider, .vis-header, .vis-footer, .vis-countdown,
	.vis-newsletter, .vis-marquee, .vis-champions, .wp-block-cover, .vis-card--athlete, .vis-card--person, .vis-ig__item, .vis-section--news li:first-child .vis-card, .vis-opportunities__dialog, .vis-page-head, .vis-legacy__title, .vis-rc__expert,
	.vis-scheme-light, .vis-detail, .vis-hub-item__body, .vis-content:not(:has(.vis-directory--athletes, .vis-timeline), .is-style-section-navy, .is-style-section-deep, .vis-scheme-dark, .vis-history *), main:has(.vis-directory:not(.vis-directory--athletes)),
	.vis-home > :is(.vis-section--news, .vis-section--athletes, .vis-section--social, .vis-section--partners), .ur-form-cta.is-open .ur-form-cta__form) {
	--vis-muted: color-mix(in srgb, var(--vis-ink) 72%, transparent);
	--vis-line: color-mix(in srgb, var(--vis-ink) 14%, transparent);
	--vis-surface-line: color-mix(in srgb, var(--vis-ink) 10%, transparent);
	--vis-surface: linear-gradient(160deg, color-mix(in srgb, var(--vis-ink) 7.5%, transparent), color-mix(in srgb, var(--vis-ink) 2%, transparent));
}
/* Orange picked in the editor (e.g. a highlighted word in a heading) follows
   the accent too: gold on dark, VIS blue on light. */
.has-gold-500-color { color: var(--vis-accent-ink) !important; }
/* Islands keep their own (dark) text colour inside a light section. */
:where(.vis-card--athlete, .vis-card--person, .vis-ig__item, .vis-section--news li:first-child .vis-card, .vis-opportunities__dialog, .wp-block-cover, .is-style-section-navy, .is-style-section-deep) { color: var(--vis-ink); }
/* On paper, content cards are white with a soft shadow instead of glass. */
:where(.vis-scheme-light, .vis-detail, .vis-hub-item__body, .vis-content:not(:has(.vis-directory--athletes, .vis-timeline), .is-style-section-navy, .is-style-section-deep, .vis-scheme-dark, .vis-history *), main:has(.vis-directory:not(.vis-directory--athletes)),
	.vis-home > :is(.vis-section--news, .vis-section--athletes, .vis-section--social, .vis-section--partners)) { --vis-surface: var(--wp--preset--color--white); }

/* 2. Page hero title: centred in the banner on every page ------------------ */
:is(.vis-legacy, .vis-detail) .vis-legacy__title,
.vis-detail__title {
	position: relative; z-index: 3; text-align: center; text-wrap: balance;
	max-width: 18ch; margin: calc(-1 * clamp(170px, 18vw, 250px)) auto clamp(4rem, 8vw, 7rem);
	font-size: var(--vis-title-size); line-height: .9;
}
/* The legacy first section only held the title; don't let it add space. */
.vis-legacy .legacy-section:first-child:has(> .legacy-row > .legacy-col > .legacy-text > .vis-legacy__title:only-child) { margin: 0; }

/* 3. Sections ---------------------------------------------------------------- */
.vis-legacy .legacy-section + .legacy-section { margin-block-start: var(--vis-block-space); }
.vis-legacy .legacy-row { gap: clamp(1.5rem, 4vw, 4.5rem); align-items: center; }
.vis-legacy .legacy-row + .legacy-row { margin-block-start: clamp(2rem, 4vw, 3.5rem); }
.vis-legacy .legacy-col > * + * { margin-block-start: 1.25rem; }
.vis-legacy :is(.legacy-text, .legacy-heading) :is(h2, h3) { margin: 0 0 .5em; text-wrap: balance; }
.vis-legacy .legacy-text h2, .vis-legacy-heading { font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem); line-height: .95; }
.vis-legacy .legacy-text p { color: var(--vis-muted); line-height: 1.7; max-width: 62ch; }
.vis-legacy .legacy-text strong, .vis-legacy .legacy-text a { color: var(--vis-ink); }
.vis-legacy .legacy-text a:not(.wp-block-button__link) { text-decoration-color: var(--wp--preset--color--gold-500); text-underline-offset: .2em; text-decoration-thickness: 2px; }
.vis-legacy .legacy-text ul { padding: 0; list-style: none; display: grid; gap: .6rem; color: var(--vis-muted); }
.vis-legacy .legacy-text ul li { position: relative; padding-left: 1.25rem; }
.vis-legacy .legacy-text ul li::before { content: ""; position: absolute; left: 0; top: .75em; width: .55rem; height: 2px; background: var(--wp--preset--color--gold-500); }
.vis-legacy .legacy-button { margin-top: 2rem !important; }
.vis-section__head h2 { font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem); line-height: .95; }

/* 4. Cards: one card language -------------------------------------------------
   Content cards (news, programs, services, publications, people, items) are
   dark glass with a flush photo. Athlete cards and the home news feature
   keep their full-bleed photo treatment (global.css). */
.vis-card:not(.vis-card--athlete) {
	background: var(--vis-surface) !important; color: var(--vis-ink) !important;
	border: 1px solid var(--vis-surface-line); border-radius: var(--wp--custom--radius--lg); padding: 0 !important; overflow: hidden;
	transition: transform .6s var(--vis-ease), border-color .4s, box-shadow .6s var(--vis-ease);
}
.vis-section--news .vis-card { border: 0; background: var(--wp--preset--color--navy-800) !important; }
.vis-card:not(.vis-card--athlete):hover { border-color: var(--vis-surface-line-hover); }
.vis-card:not(.vis-card--athlete) > :is(.wp-block-post-featured-image, .wp-block-image, figure) { margin: 0 !important; border-radius: 0 !important; overflow: hidden; }
.vis-card:not(.vis-card--athlete) > :is(.wp-block-post-featured-image, .wp-block-image, figure) img { border-radius: 0 !important; width: 100%; }
.vis-card:not(.vis-card--athlete) .vis-card__body { padding: clamp(1.25rem, 2vw, 1.75rem) !important; gap: .7rem !important; }
.vis-card__title, .vis-card .wp-block-post-title.vis-card__title, .vis-card__title a { color: var(--vis-ink) !important; font-size: var(--vis-card-title-size); }
.vis-card__excerpt, .vis-card__excerpt p { color: var(--vis-muted); }
.vis-card :is(.wp-block-post-date, .vis-card__eyebrow, .vis-card__sport) { color: var(--vis-accent-ink) !important; font-family: var(--wp--preset--font-family--body); font-style: normal; text-transform: uppercase; }
.vis-card__name, .vis-card__name a, .vis-card .vis-card__name a { color: var(--vis-ink) !important; font-size: clamp(1.375rem, 1.1rem + .6vw, 1.75rem); line-height: 1; }
.vis-card--program .vis-card__title, .vis-card--program .vis-card__title a { font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; text-transform: uppercase; font-size: clamp(1.5rem, 1.2rem + .8vw, 2rem); line-height: 1; }
.vis-card__more summary { color: var(--vis-accent-ink) !important; font-size: .875rem; letter-spacing: .04em; }
.vis-card__more-body { color: var(--vis-muted); }
.vis-card__facts { border-top-color: var(--vis-surface-line) !important; color: var(--vis-muted); }
.vis-card__facts img { filter: brightness(0) invert(1); opacity: .85; }
.vis-card__download { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; font-size: .8125rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; min-height: 48px; padding: 0 1.5rem; }
.vis-card__download:hover { background: var(--wp--preset--color--white) !important; }
/* People: portrait photo, name over a soft fade. */
.vis-card--person > :is(.wp-block-post-featured-image, figure) img { aspect-ratio: 3 / 4 !important; object-fit: cover; object-position: center 20%; height: auto; }
.vis-card--person .vis-card__body { margin-top: -4.5rem; padding-top: 4.5rem !important; }
/* Equal heights in every grid row. */
:is(.vis-legacy-grid, .vis-directory__grid, .wp-block-post-template) > li { display: flex; }
:is(.vis-legacy-grid, .vis-directory__grid, .wp-block-post-template) > li > .vis-card { flex: 1; }

/* 5. Media and two-column sections ------------------------------------------- */
.vis-legacy .legacy-image figure, .vis-legacy .legacy-blurb__image { border-radius: var(--wp--custom--radius--lg); overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-legacy .legacy-image img { width: 100%; display: block; aspect-ratio: 4 / 3; object-fit: cover; transition: scale .6s var(--vis-ease); }
.vis-legacy .legacy-video { border-radius: var(--wp--custom--radius--lg); overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-legacy .legacy-video :is(iframe, video) { display: block; width: 100%; }

/* 6. Stats, quotes, logos, blurbs ---------------------------------------------- */
/* "431 athletes / 46 sports / 35 years" rows. */
.vis-legacy #inline-row { gap: 1rem; align-items: start; border-top: 1px solid var(--vis-surface-line); padding-top: 1.75rem; }
.vis-legacy #inline-row .legacy-text p { margin: 0; text-transform: uppercase; color: var(--vis-muted); }
.vis-legacy #inline-row .legacy-text p > span:first-child { display: block; margin-bottom: .35rem; font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; font-size: clamp(3rem, 2rem + 3vw, 5rem); line-height: .85; letter-spacing: 0; color: var(--vis-accent-ink); }
.vis-legacy #inline-row .legacy-text br { display: none; }
.vis-quote figure { background: var(--vis-surface) !important; border: 1px solid var(--vis-surface-line); color: var(--vis-ink) !important; }
.vis-quote blockquote p { font-size: 1.0625rem !important; line-height: 1.65; color: color-mix(in srgb, var(--vis-ink) 88%, transparent); }
.vis-quote__name { color: var(--vis-ink) !important; }
.vis-quote__role { color: var(--vis-accent-ink) !important; text-transform: uppercase; }
.legacy-blurb { padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--vis-surface); border: 1px solid var(--vis-surface-line); border-radius: var(--wp--custom--radius--lg); }
.legacy-blurb__title { margin-top: 0; font-size: 1.375rem; }
.legacy-blurb a { color: var(--vis-ink); text-decoration-color: var(--wp--preset--color--gold-500); text-underline-offset: .2em; overflow-wrap: anywhere; }
.legacy-toggle { border-top: 1px solid var(--vis-surface-line); padding-block: 1.1rem; }
.legacy-toggle summary { list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-weight: 700; font-size: 1.125rem; min-height: 44px; align-items: center; }
.legacy-toggle summary::-webkit-details-marker { display: none; }
.legacy-toggle summary::after { content: ""; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1v10M1 6h10' stroke='%230b233f' stroke-width='2'/%3E%3C/svg%3E") center / 12px no-repeat; transition: transform .3s; }
.legacy-toggle[open] summary::after { transform: rotate(45deg); }

/* 7. Filters and pills: one control style ------------------------------------ */
.vis-filters :is(select, input[type="search"], input[type="text"]),
.vis-legacy-search :is(select, input) {
	font: inherit; font-size: .9375rem; min-height: 48px; padding: .75rem 1.25rem; color: var(--vis-ink) !important;
	background-color: color-mix(in srgb, var(--vis-ink) 6%, transparent) !important; border: 1px solid color-mix(in srgb, var(--vis-ink) 22%, transparent) !important; border-radius: var(--wp--custom--radius--pill) !important;
}
.vis-filters input::placeholder { color: color-mix(in srgb, var(--vis-ink) 60%, transparent); }
.vis-filters select option { color: var(--wp--preset--color--navy-900); }
.vis-legacy-tabs a, .vis-pills a, .vis-legacy-tags a { border: 1px solid color-mix(in srgb, var(--vis-ink) 30%, transparent) !important; color: var(--vis-ink) !important; font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; font-size: .8125rem !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background .3s, border-color .3s, color .3s; }
.vis-legacy-tabs a:hover, .vis-legacy-tabs a[aria-current], .vis-pills a:hover, .vis-legacy-tags a:hover { background: var(--wp--preset--color--gold-500); border-color: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
/* Tag pills: orange with navy text (the base rule's blue fill made dark text unreadable). */
.vis-pills a { background: var(--wp--preset--color--gold-500); border-color: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
.vis-pills a:hover { background: var(--wp--preset--color--navy-900); border-color: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important; }

/* 8. Detail pages: news articles and every content type ---------------------- */
/* The detail header is itself the banner, so it grows with long titles. */
.vis-detail__head {
	--vis-curve-h: clamp(48px, 9vw, 130px);
	position: relative; isolation: isolate; display: grid; justify-items: center; align-content: end; gap: 1.25rem; text-align: center;
	min-height: clamp(320px, 34vw, 520px); box-sizing: border-box; margin: 0 0 clamp(3rem, 6vw, 5rem);
	padding: clamp(9rem, 7rem + 6vw, 13rem) var(--vis-gutter) calc(var(--vis-curve-h) + clamp(1.5rem, 3vw, 3rem));
	background: radial-gradient(120% 90% at 50% 0%, var(--wp--preset--color--blue-700) 0%, var(--wp--preset--color--navy-950) 60%);
}
.vis-detail__head .vis-detail__title { margin: 0; max-width: 22ch; font-size: var(--vis-title-size-long); }
.vis-detail__eyebrow, .vis-detail__eyebrow a { margin: 0; color: var(--vis-accent-ink); text-transform: uppercase; text-decoration: none; }
.vis-detail__meta { margin: 0; color: var(--vis-muted); font-size: .9375rem; }
.vis-detail__media { max-width: min(1200px, calc(100% - 2 * var(--vis-gutter))); margin: 0 auto clamp(3rem, 6vw, 5rem) !important; border-radius: var(--wp--custom--radius--lg); overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-detail__media img { width: 100%; max-height: 80vh; object-fit: cover; display: block; }
.vis-detail__body { max-width: 760px; margin: 0 auto; padding-inline: var(--vis-gutter); box-sizing: content-box; font-size: clamp(1.0625rem, 1rem + .2vw, 1.1875rem); line-height: 1.75; color: color-mix(in srgb, var(--vis-ink) 86%, transparent); }
.vis-detail__body > p:first-of-type { font-size: 1.25em; line-height: 1.55; color: var(--vis-ink); }
.vis-detail__body :is(h2, h3) { margin: 2.5rem 0 1rem; color: var(--vis-ink); line-height: 1; }
.vis-detail__body a { color: var(--vis-ink); text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.vis-detail__body :is(img, .wp-block-image, figure) { border-radius: var(--wp--custom--radius--md); max-width: 100%; height: auto; }
.vis-detail__body :is(.wp-block-image, figure) { margin-block: 2.5rem; }
.vis-detail__body .alignwide, .vis-detail__body .alignfull { max-width: min(1200px, 100vw - 2 * var(--vis-gutter)); margin-inline: calc((min(1200px, 100vw - 2 * var(--vis-gutter)) - 100%) / -2); }
.vis-detail__body blockquote { margin: 2.5rem 0; padding: .25rem 0 .25rem 1.5rem; border-left: 3px solid var(--wp--preset--color--gold-500); font-size: 1.25em; color: var(--vis-ink); }
.vis-detail__body figcaption { font-size: .8125rem; color: var(--vis-muted); margin-top: .6rem; }
.vis-detail__body ul li::marker { color: var(--vis-accent-ink); }
.vis-detail__foot { max-width: 760px; margin: clamp(2.5rem, 5vw, 4rem) auto 0; padding: 1.75rem var(--vis-gutter) 0; box-sizing: content-box; border-top: 1px solid var(--vis-surface-line); display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; }
.vis-detail__foot .vis-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.vis-detail__foot .vis-pills a { display: inline-block; padding: .4rem .9rem; border-radius: var(--wp--custom--radius--pill); text-decoration: none; }
.vis-detail__foot .wp-block-post-terms__separator { display: none; }
/* Legacy Divi content inside a detail page uses the same reading column. */
.vis-detail__body .legacy-section + .legacy-section { margin-top: 2.5rem; }
.vis-detail__body .legacy-row { gap: 2rem; }
@media (max-width: 781px) {
	.vis-legacy .legacy-row { gap: 1.5rem; }
}
/* Buttons inside cards keep the site's button colours (cards set white text). */
.vis-card .wp-block-button__link, .vis-card .wp-block-button__link:visited { color: var(--wp--preset--color--navy-900) !important; }

/* 9. Mega menu (desktop) -------------------------------------------------------
   Dropdowns open on hover/focus as one deep-navy panel the width of the
   header bar: the section's intro on the left, its pages in a grid, each with
   a one-line summary. The panel is positioned against the bar, not the item. */
@media (min-width: 600px) {
	.vis-header__bar { position: relative; }
	.vis-nav, .vis-nav .wp-block-navigation__responsive-container:not(.is-menu-open),
	.vis-nav .wp-block-navigation__responsive-container:not(.is-menu-open) :is(.wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content, .wp-block-navigation__container, li.has-child) { position: static !important; }
	.vis-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .vis-mega { display: grid !important; grid-auto-flow: row dense; align-content: start; top: calc(100% + .75rem) !important; left: 0 !important; right: 0 !important; width: auto !important; height: auto !important; min-width: 0 !important; padding: clamp(1.5rem, 2.5vw, 2.25rem) !important; overflow: visible !important; background: linear-gradient(180deg, var(--wp--preset--color--navy-800), var(--wp--preset--color--navy-950)) !important; color: var(--wp--preset--color--white) !important; border-radius: var(--wp--custom--radius--lg) !important; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--vis-ink) 8%, transparent), 0 40px 80px -30px rgba(0, 0, 0, .75) !important; opacity: 0; visibility: hidden; transform: translateY(10px); transform-origin: top center; transition: opacity .25s ease, transform .5s var(--vis-ease), visibility 0s linear .4s; }
	/* Bridge the gap so the pointer can travel from the label to the panel. */
	.vis-nav .vis-mega::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: calc(.75rem + 2px); }
	.vis-nav li.has-child:is(:hover, :focus-within) > .vis-mega,
	.vis-nav li.has-child__toggle[aria-expanded="true"] ~ .vis-mega { opacity: 1 !important; visibility: visible !important; transform: none; transition: opacity .25s ease, transform .5s var(--vis-ease), visibility 0s; }
	.vis-mega > li { opacity: 0; transform: translateY(6px); transition: opacity .35s ease, transform .5s var(--vis-ease); }
	.vis-nav li.has-child:is(:hover, :focus-within) > .vis-mega > li { opacity: 1; transform: none; transition-delay: calc(.04s + var(--i, 0) * .03s); }
	.vis-mega__intro { grid-column: 1; grid-row: 1 / span var(--rows, 2); align-self: stretch; display: flex; flex-direction: column; gap: .75rem; padding: .7rem 2rem .7rem 0; border-right: 1px solid color-mix(in srgb, var(--vis-ink) 10%, transparent); }
	.vis-mega__title { margin: 0; font-family: var(--wp--preset--font-family--display); font-style: italic; text-transform: uppercase; font-size: 2rem; line-height: .95; }
	.vis-mega__text { margin: 0; font-family: var(--wp--preset--font-family--body); font-style: normal; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .9375rem; line-height: 1.5; color: color-mix(in srgb, var(--vis-ink) 70%, transparent); max-width: 32ch; }
	.vis-mega__more { margin-top: auto; font-family: var(--wp--preset--font-family--body); font-style: normal; align-self: start; font-size: .75rem; font-weight: 700; letter-spacing: var(--wp--custom--tracking--eyebrow); text-transform: uppercase; color: var(--vis-ink); text-decoration: none; padding-bottom: .2rem; border-bottom: 2px solid var(--wp--preset--color--gold-500); }
	.vis-mega__more:hover { color: var(--vis-accent-ink); }
	.vis-mega .wp-block-navigation-item__content { display: grid !important; align-content: start; position: relative; color: var(--vis-ink) !important; background: none !important; text-decoration: none; }
	
	.vis-mega__desc { font-family: var(--wp--preset--font-family--body); line-height: 1.45; color: color-mix(in srgb, var(--vis-ink) 65%, transparent); text-transform: none; font-style: normal; text-wrap: pretty; }
	.vis-mega .wp-block-navigation-item__content::after { content: ""; position: absolute; width: 22px; height: 22px; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 9l6-6M4 3h5v5' stroke='%230b233f' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") center / 10px no-repeat; opacity: 0; transform: translateX(-6px) scale(.6); transition: opacity .3s, transform .4s var(--vis-ease); }
	.vis-mega > li:is(.is-current, :hover, :focus-within) > .wp-block-navigation-item__content { background-color: color-mix(in srgb, var(--vis-ink) 7%, transparent) !important; }
	.vis-mega > li:is(.is-current, :hover, :focus-within) > .wp-block-navigation-item__content::after { opacity: 1; transform: none; }
}

/* 10. Phone menu: full-screen, big type, staggered in ---------------------------- */
.wp-block-navigation__responsive-container.is-menu-open { background: radial-gradient(120% 70% at 100% 0%, var(--wp--preset--color--blue-700), var(--wp--preset--color--navy-950) 65%) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display); font-style: italic; text-transform: uppercase; font-size: clamp(2rem, 9vw, 3rem) !important; line-height: 1;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { animation: vis-menu-in .7s var(--vis-ease) both; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(2) { animation-delay: .05s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(3) { animation-delay: .1s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(4) { animation-delay: .15s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(5) { animation-delay: .2s; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(n+6) { animation-delay: .25s; }
.wp-block-navigation__responsive-container.is-menu-open :is(.vis-mega__desc, .vis-mega__intro) { display: none; }
@keyframes vis-menu-in { from { opacity: 0; transform: translateY(24px); } }
@media (prefers-reduced-motion: reduce) {
	.vis-mega, .vis-mega > li { transition: none !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { animation: none !important; }
}

/* 11. Pointer details (motion.js, mouse only) ------------------------------------ */
.vis-carousel .wp-block-post-template { cursor: grab; }
.vis-carousel .wp-block-post-template.is-dragging { cursor: grabbing; scroll-snap-type: none !important; user-select: none; }
.vis-carousel .wp-block-post-template.is-dragging * { pointer-events: none; }

/* Italic display type leans past its box; give masked words and lines room
   so the last letter is never clipped while it animates in. */
:is(.vis-word-mask, .vis-line-mask) { padding: 0 .2em .1em 0 !important; margin: 0 -.2em -.1em 0 !important; }

/* 12. Countdown strip ---------------------------------------------------------------
   Dark, slim and part of the hero: same navy as the top of the video, a live
   gold dot, display-type digits and small gold units. */
.vis-countdown {
	min-height: 0; height: var(--vis-bar-h, 60px); box-sizing: border-box; padding-block: 0; gap: 0 clamp(1rem, 2.5vw, 2rem);
	background: var(--wp--preset--color--navy-800); color: var(--wp--preset--color--white);
	border-bottom: 1px solid color-mix(in srgb, var(--vis-ink) 8%, transparent);
}
.vis-countdown__label { display: flex; align-items: center; gap: .65rem; font-style: italic; font-size: clamp(1rem, .9rem + .4vw, 1.25rem); letter-spacing: .02em; }
.vis-countdown__label::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--gold-500); box-shadow: 0 0 0 0 rgba(248, 152, 29, .6); animation: vis-live 2s ease-out 3; }
@keyframes vis-live { 70%, 100% { box-shadow: 0 0 0 10px rgba(248, 152, 29, 0); } }
.vis-countdown__clock { align-items: center; gap: .5rem; }
.vis-countdown__unit { display: flex; align-items: baseline; gap: .3rem; }
.vis-countdown__unit b { font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; font-size: clamp(1.125rem, 1rem + .5vw, 1.5rem); line-height: 1; min-width: 0; letter-spacing: .02em; }
.vis-countdown__unit small { font-size: .625rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--vis-accent-ink); }
.vis-countdown__sep { color: color-mix(in srgb, var(--vis-ink) 25%, transparent); font-weight: 400; }
@media (max-width: 599px) {
	.vis-countdown { gap: 0 .9rem; }
	.vis-countdown__label { font-size: .875rem; }
	.vis-countdown__unit b { font-size: 1.0625rem; }
	.vis-countdown__unit small { font-size: .5625rem; letter-spacing: .06em; }
	.vis-countdown__clock { gap: .3rem; }
}
@media (prefers-reduced-motion: reduce) { .vis-countdown__label::before { animation: none; } }

/* 13. People without a photo: initials on the brand gradient -------------------- */
.vis-initials {
	position: relative; display: grid; place-items: center; width: 100%; height: 100%; min-height: 100%; aspect-ratio: 3 / 4; overflow: hidden;
	background: radial-gradient(90% 70% at 70% 15%, var(--wp--preset--color--blue-700), var(--wp--preset--color--navy-900) 70%);
}
.vis-initials span { position: relative; margin-top: -12%; font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; letter-spacing: .02em; color: var(--wp--preset--color--gold-500); opacity: .9; padding-right: .1em; } /* solid, modest initials: a quiet placeholder, not an empty tile */
.vis-card--athlete .vis-initials { aspect-ratio: auto; }

/* 14. Directory filter bar: one glass bar, all controls the same height -------- */

.vis-filters {
	gap: .6rem !important; padding: .5rem; margin-bottom: 1rem !important;
	background: rgba(9, 41, 80, .62); border: 1px solid var(--vis-surface-line); border-radius: calc(var(--wp--custom--radius--pill)); /* navy glass: reads on a banner photo and on paper */
}
.vis-filters__select { min-height: 48px !important; padding: 0 2.75rem 0 1.25rem !important; appearance: none; text-transform: none !important; font-family: var(--wp--preset--font-family--body) !important; font-size: .9375rem !important;
	background: color-mix(in srgb, var(--vis-ink) 6%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23f8981d' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 1.1rem center / 12px !important; }
.vis-filters__toggle { padding: 0 1rem 0 .5rem; min-height: 48px; border-radius: var(--wp--custom--radius--pill); font-family: var(--wp--preset--font-family--body) !important; text-transform: none !important; font-size: .9375rem; font-weight: 600; }
.vis-filters__toggle input { background: color-mix(in srgb, var(--vis-ink) 18%, transparent) !important; }
.vis-filters__toggle input::after { background: var(--wp--preset--color--white) !important; }
.vis-filters__toggle input:checked { background: var(--wp--preset--color--gold-500) !important; }
.vis-filters__apply { min-height: 48px !important; padding: 0 1.5rem !important; border: 0 !important; background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; font-family: var(--wp--preset--font-family--display) !important; font-style: italic; text-transform: uppercase; font-size: 1rem !important; letter-spacing: .02em; cursor: pointer; transition: background .3s; }
.vis-filters__apply:hover { background: var(--wp--preset--color--white) !important; }
.vis-filters__search { background: color-mix(in srgb, var(--vis-ink) 6%, transparent) !important; border: 1px solid color-mix(in srgb, var(--vis-ink) 22%, transparent); padding: 3px 3px 3px 1.25rem !important; }
.vis-filters__search input { color: var(--vis-ink) !important; background: transparent !important; border: 0 !important; padding: 0 !important; min-height: 42px !important; }
.vis-filters__search input::placeholder { color: color-mix(in srgb, var(--vis-ink) 60%, transparent); }
.vis-filters__search button { width: 42px !important; height: 42px !important; }
.vis-filters :focus-visible { outline: var(--wp--custom--focus--ring); outline-offset: 2px; }
.vis-directory__status { margin: 0 0 1.75rem .5rem; text-transform: uppercase; color: var(--vis-muted); }
@media (max-width: 781px) {
	.vis-filters { border-radius: var(--wp--custom--radius--lg); }
	.vis-filters__select, .vis-filters__apply { flex: 1 1 auto; }
}
.vis-filters .vis-filters__search input { border: 0 !important; border-radius: 0 !important; background: transparent !important; padding: 0 !important; min-height: 42px !important; }
/* The athletes section kept extra space for the champions curve; the sports ribbon now follows it. */
.vis-section--athletes:has(+ .vis-marquee) { padding-bottom: var(--vis-section-space); }

/* Directory: Games as one-tap pills; filters apply as they change. */
.vis-directory.is-enhanced .vis-filters__apply { display: none; }
.vis-filters__chips { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0; padding: 4px; border: 0; border-radius: var(--wp--custom--radius--pill); background: color-mix(in srgb, var(--vis-ink) 5%, transparent); }
.vis-filters__chips label { position: relative; cursor: pointer; }
.vis-filters__chips input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.vis-filters__chips span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1.1rem; border-radius: var(--wp--custom--radius--pill); font-size: .9375rem; font-weight: 600; color: color-mix(in srgb, var(--vis-ink) 78%, transparent); transition: background .3s, color .3s; white-space: nowrap; }
.vis-filters__chips label:hover span { color: var(--vis-ink); background: color-mix(in srgb, var(--vis-ink) 8%, transparent); }
.vis-filters__chips input:checked + span { background: var(--wp--preset--color--gold-500); color: var(--wp--preset--color--navy-950); }
.vis-filters__chips input:focus-visible + span { outline: var(--wp--custom--focus--ring); outline-offset: 2px; }
.vis-directory__clear { margin-left: 1rem; color: var(--vis-accent-ink); text-decoration: underline; text-underline-offset: .2em; letter-spacing: .08em; }
.vis-directory[aria-busy="true"] .vis-directory__grid { opacity: .4; transition: opacity .2s; }
.vis-directory__grid.is-fresh > li { animation: vis-rise .7s var(--vis-ease) both; animation-delay: calc(var(--n, 0) * 40ms); }
@keyframes vis-rise { from { opacity: 0; transform: translateY(28px); } }
@media (prefers-reduced-motion: reduce) { .vis-directory__grid.is-fresh > li { animation: none; } }
@media (max-width: 781px) { .vis-filters__chips { flex: 1 1 100%; justify-content: space-between; } .vis-filters__chips span { padding: 0 .8rem; font-size: .875rem; } }

/* 15. Newsletter + footer ------------------------------------------------------------
   Deep navy sign-up panel (no more pale band), then the footer with the
   artwork curve, a big tagline, gold eyebrow headings, icon buttons for
   social, and a back-to-top link. */
.vis-newsletter { background: var(--wp--preset--color--navy-900) !important; color: var(--vis-ink) !important; }
.vis-newsletter__row { position: relative; gap: clamp(2rem, 5vw, 6rem) !important; }
.vis-newsletter__eyebrow { margin: 0 0 1rem; color: var(--vis-accent-ink); text-transform: uppercase; }
.vis-newsletter h2 { color: var(--vis-ink) !important; font-size: var(--vis-opener-size) !important; line-height: .9; max-width: 12ch; text-wrap: balance; }
.vis-newsletter .mc4wp-form .description { color: color-mix(in srgb, var(--vis-ink) 70%, transparent) !important; font-size: .9375rem !important; margin: 1rem 0 0 1.5rem !important; }
.vis-newsletter .mc4wp-form .newsletter-form { background: none !important; padding: 0 !important; max-width: none !important; margin: 0 !important; }
.vis-newsletter .mc4wp-form label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.vis-newsletter :is(.email-input-wrapper, .vis-signup) {
	display: flex; align-items: center; gap: .5rem; padding: 6px 6px 6px 1.75rem !important; min-height: 72px; box-sizing: border-box;
	background: color-mix(in srgb, var(--vis-ink) 7%, transparent) !important; border: 1px solid color-mix(in srgb, var(--vis-ink) 22%, transparent) !important; border-radius: var(--wp--custom--radius--pill) !important;
	transition: border-color .3s, background .3s;
}
.vis-newsletter :is(.email-input-wrapper, .vis-signup):focus-within { border-color: var(--wp--preset--color--gold-500) !important; background: color-mix(in srgb, var(--vis-ink) 10%, transparent) !important; }
.vis-newsletter :is(.email-input-wrapper, .vis-signup) input[type="email"] { flex: 1; min-width: 0; border: 0 !important; background: transparent !important; color: var(--vis-ink) !important; font: inherit; font-size: 1.125rem !important; padding: .5rem 0 !important; margin: 0 !important; outline: none; }
.vis-newsletter input[type="email"]::placeholder { color: color-mix(in srgb, var(--vis-ink) 55%, transparent); }
.vis-newsletter :is(.submit-button, .vis-signup button) { flex: none; width: 60px !important; height: 60px !important; padding: 0 !important; border: 0 !important; cursor: pointer; display: grid; place-items: center; background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; transition: transform .4s var(--vis-ease), background .3s; }
.vis-newsletter :is(.submit-button, .vis-signup button):hover { background: var(--wp--preset--color--white) !important; }
.vis-newsletter .submit-button svg { width: 22px; height: 22px; }

.vis-footer__tagline { margin-inline: auto !important; font-style: italic; text-wrap: balance; margin-bottom: clamp(3rem, 6vw, 5rem) !important; }
.vis-footer__heading { font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; text-transform: uppercase !important; color: var(--vis-accent-ink) !important; }
.vis-footer__cols { gap: clamp(2rem, 4vw, 4rem) !important; }
.vis-footer__cols p { color: color-mix(in srgb, var(--vis-ink) 75%, transparent); line-height: 1.6; }

.vis-footer__list:not(.vis-footer__social) a { font-size: 1.0625rem; background: linear-gradient(var(--wp--preset--color--gold-500), var(--wp--preset--color--gold-500)) left bottom / 0 1px no-repeat; transition: background-size .4s var(--vis-ease), color .3s; padding-bottom: 2px; }
.vis-footer__list:not(.vis-footer__social) a:hover { background-size: 100% 1px; color: var(--vis-ink) !important; }
.vis-footer__social { display: flex !important; }
.vis-footer__social a { position: relative; place-items: center; border-radius: 50%; font-size: 0; color: transparent !important; border: 1px solid color-mix(in srgb, var(--vis-ink) 25%, transparent); transition: background .3s, border-color .3s, transform .4s var(--vis-ease); }
.vis-footer__social a::before { content: ""; background: var(--wp--preset--color--white); -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; transition: background .3s; }
.vis-footer__social a:hover, .vis-footer__social a:focus-visible { background: var(--wp--preset--color--gold-500); border-color: var(--wp--preset--color--gold-500); transform: translateY(-3px); }
.vis-footer__social a:hover::before, .vis-footer__social a:focus-visible::before { background: var(--wp--preset--color--navy-950); }
.vis-footer__social a[href*="facebook"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.1 23.7v-8H6.6V12h2.5v-1.6c0-4.1 1.9-6 5.9-6 .8 0 2.1.2 2.7.3v3.3c-.3 0-.8-.1-1.5-.1-2.1 0-2.9.8-2.9 2.9V12h4.2l-.7 3.7h-3.5v8.1C19.5 23 24 18 24 12 24 5.4 18.6 0 12 0S0 5.4 0 12c0 5.6 3.9 10.3 9.1 11.7z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.1 23.7v-8H6.6V12h2.5v-1.6c0-4.1 1.9-6 5.9-6 .8 0 2.1.2 2.7.3v3.3c-.3 0-.8-.1-1.5-.1-2.1 0-2.9.8-2.9 2.9V12h4.2l-.7 3.7h-3.5v8.1C19.5 23 24 18 24 12 24 5.4 18.6 0 12 0S0 5.4 0 12c0 5.6 3.9 10.3 9.1 11.7z'/%3E%3C/svg%3E"); }
.vis-footer__social a[href*="linkedin"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13zM7.12 20.45H3.56V9h3.56v11.45z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13zM7.12 20.45H3.56V9h3.56v11.45z'/%3E%3C/svg%3E"); }
.vis-footer__social a[href*="instagram"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2.5' y='2.5' width='19' height='19' rx='5.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='12' cy='12' r='4.3' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='17.6' cy='6.4' r='1.4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2.5' y='2.5' width='19' height='19' rx='5.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='12' cy='12' r='4.3' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='17.6' cy='6.4' r='1.4'/%3E%3C/svg%3E"); }
.vis-footer__social a[href*="youtube"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31 31 0 0 0 0 12a31 31 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 24 12a31 31 0 0 0-.5-5.8zM9.6 15.6V8.4l6.3 3.6z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31 31 0 0 0 0 12a31 31 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 24 12a31 31 0 0 0-.5-5.8zM9.6 15.6V8.4l6.3 3.6z'/%3E%3C/svg%3E"); }
.vis-footer__social a[href*="x.com"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.9 1.2h3.7l-8 9.2L24 22.8h-7.4l-5.8-7.6-6.6 7.6H.5l8.6-9.8L0 1.2h7.6l5.2 6.9zm-1.3 19.4h2L6.5 3.3H4.3z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.9 1.2h3.7l-8 9.2L24 22.8h-7.4l-5.8-7.6-6.6 7.6H.5l8.6-9.8L0 1.2h7.6l5.2 6.9zm-1.3 19.4h2L6.5 3.3H4.3z'/%3E%3C/svg%3E"); }
.vis-footer__social a[href*="tiktok"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.5.02C13.8 0 15.1.01 16.4 0c.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.5.02C13.8 0 15.1.01 16.4 0c.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E"); }
.vis-footer__legal { border-top: 1px solid color-mix(in srgb, var(--vis-ink) 12%, transparent) !important; border-bottom: 0 !important; font-size: .8125rem; color: color-mix(in srgb, var(--vis-ink) 60%, transparent); align-items: center; }
.vis-footer__legal a { color: color-mix(in srgb, var(--vis-ink) 75%, transparent) !important; }
.vis-footer__top a { display: inline-flex; align-items: center; gap: .6rem; color: var(--vis-ink) !important; text-transform: uppercase; }
.vis-footer__top a::after { content: ""; width: 36px; height: 36px; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 10V2M2 6l4-4 4 4' stroke='%230b233f' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") center / 12px no-repeat; transition: transform .4s var(--vis-ease); }
.vis-footer__top a:hover::after { transform: translateY(-4px); }
.vis-footer__ack p { color: color-mix(in srgb, var(--vis-ink) 60%, transparent); }
@media (max-width: 781px) {
	.vis-newsletter :is(.email-input-wrapper, .vis-signup) { min-height: 60px; padding-left: 1.25rem !important; }
	.vis-newsletter :is(.submit-button, .vis-signup button) { width: 48px !important; height: 48px !important; }
}
@media (max-width: 599px) { .vis-footer__ack { flex-wrap: wrap !important; } }

/* Leadership: every person card the same size (the CEO's office row used two big columns). */
.vis-legacy-grid:has(> .vis-card--person) { --vis-cols: 4; }
/* People and athlete grids on phones: two across, like the directory. One card per
   row made Leadership 14,000px tall and the Glasgow squad 25,000px. */
@media (max-width: 781px) {
	.vis-legacy-grid:has(> .vis-card--person), .vis-legacy-grid:has(> .vis-card--athlete) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .75rem !important; }
	.vis-legacy-grid > .vis-card--person .vis-card__body { padding: 1rem !important; gap: .4rem !important; }
}

/* 16. Straight lines -------------------------------------------------------------
   No more swoosh curves: photos fade into the page and sections meet on
   straight edges, like the athlete and timeline pages. */
.vis-banner { height: clamp(380px, 46vw, 680px) !important; }
.vis-banner--small { height: clamp(300px, 32vw, 460px) !important; }
.vis-banner::after { -webkit-mask: none !important; mask: none !important; height: 55% !important; bottom: 0 !important;
	background: linear-gradient(180deg, rgba(11, 35, 63, 0) 0%, rgba(11, 35, 63, .7) 55%, var(--wp--preset--color--navy-900) 100%) !important; }
.vis-banner.has-image::before { background: linear-gradient(180deg, rgba(3, 25, 63, .75) 0%, rgba(3, 25, 63, .25) 35%, rgba(3, 25, 63, .2) 60%) !important; }
:is(.vis-legacy, .vis-detail) .vis-legacy__title, .vis-page-head { margin-top: calc(-1 * clamp(200px, 20vw, 300px)) !important; }
h1.vis-page-head, .error404 main > h1 { font-size: var(--vis-title-size); }
h1.vis-page-head--long { font-size: var(--vis-title-size-long); max-width: 24ch; margin-inline: auto; }
/* Detail pages: the head stays on navy whatever the title length; the reading column sits on its own paper band. */
main.vis-detail { background-color: var(--wp--preset--color--navy-900) !important; }
main.vis-detail > .vis-detail__paper { background-color: var(--vis-paper) !important; padding-top: 1px; margin-top: calc(-1 * clamp(2rem, 4vw, 3rem)); padding-bottom: 1px; }
main.vis-detail > .vis-service__head { padding-bottom: clamp(4rem, 7vw, 6rem); }
main.vis-detail > .vis-service__head .vis-page-head { margin-bottom: 0 !important; }
main.vis-detail .vis-detail__body { padding-top: clamp(3rem, 6vw, 5rem); }
.vis-detail .vis-service__head { position: relative; z-index: 3; }
.vis-detail .wp-block-post-date.vis-service__eyebrow { color: var(--wp--preset--color--gold-500); /* sits on the banner photo */ font-family: var(--wp--preset--font-family--body); font-size: var(--vis-label-size); font-weight: 700; letter-spacing: var(--vis-label-tracking); text-transform: uppercase; }
.vis-detail__head { padding-bottom: clamp(3rem, 6vw, 5rem); border-bottom: 1px solid color-mix(in srgb, var(--vis-ink) 8%, transparent); }
/* Home: the hero video melts into the news section. */
.vis-slider .vis-hero-video::after { background: linear-gradient(180deg, rgba(3, 25, 63, .35) 0%, rgba(3, 25, 63, .25) 55%, var(--wp--preset--color--navy-900) 100%) !important; }
.vis-slider .vis-hero-video__inner { padding-bottom: clamp(6rem, 10vw, 9rem) !important; }
/* Hero title at the scale of the frame: a headline, not a caption. */
.vis-slider .vis-hero-video__title { font-size: clamp(3rem, .5rem + 8vw, 9.5rem); line-height: .86; max-width: 14ch; text-wrap: balance; padding-right: .08em; }
.vis-slider .vis-slider__text { margin-top: clamp(1rem, 2vw, 1.75rem); max-width: 38ch; font-size: clamp(1.0625rem, 1rem + .35vw, 1.3125rem); line-height: 1.5; color: color-mix(in srgb, var(--vis-ink) 85%, transparent); }
.vis-slider .vis-slider__text > :last-child { margin-bottom: 0; }
.vis-slider__down { bottom: clamp(6rem, 10vw, 9rem) !important; }
.vis-section--news { margin-top: 0 !important; padding-top: var(--vis-section-space) !important; }
/* Champions background: straight top, fades in from the page. */
.vis-champions__bg { -webkit-mask-image: linear-gradient(180deg, transparent, #000 22%); mask-image: linear-gradient(180deg, transparent, #000 22%); }
/* Footer: plain deep navy, a fine line between it and the newsletter. */
.vis-footer {
	margin-top: 0 !important; padding-top: clamp(2rem, 4vw, 4rem) !important; border-top: 0;
	background: var(--wp--preset--color--navy-900) !important; /* same canvas as the page */
}
.vis-champions { margin-top: 0 !important; }

/* Partner logos on the dark page: white silhouettes, full colour on hover. */
.vis-logos img { filter: brightness(0) invert(1) !important; opacity: .6 !important; }
.vis-logos li:hover img { filter: none !important; opacity: 1 !important; }
.vis-page-head { margin-bottom: clamp(5rem, 10vw, 9rem) !important; }

/* Newsletter and footer continue the page: same navy, no dividing lines. */
/* Motto: one or two lines across the full width. */
.vis-footer__tagline { max-width: 1400px !important; font-size: clamp(1.625rem, 1rem + 1.7vw, 2.875rem) !important; line-height: 1.02 !important; }
/* Partner logos: transparent logos become white silhouettes; logos saved on a
   solid background (site.js marks them .has-bg) are inverted and screened so
   the background disappears into the navy. */
/* Logo wall: five to a row, the last row centred (never one stray logo on the left). */
.vis-logos .wp-block-post-template { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center; }
.vis-logos .wp-block-post-template > li { flex: 0 0 20%; display: flex; justify-content: center; align-items: center; }
.vis-logos img { width: auto !important; max-width: 150px !important; max-height: none !important; }
@media (max-width: 900px) { .vis-logos .wp-block-post-template > li { flex-basis: 33.333%; } }
.vis-logos li.has-bg { mix-blend-mode: screen; } /* on the item: animation transforms would isolate the image */
.vis-logos li.has-bg img, .vis-logos li.has-bg:hover img { filter: grayscale(1) invert(1) contrast(1.4) !important; }
.vis-section--partners { background: var(--wp--preset--color--navy-900); isolation: isolate; } /* gives the logo blend a backdrop */

/* 17. Engineered system (F1-team references) -----------------------------------
   Sharp geometry everywhere (radius tokens in theme.json are 0–3px), one
   rectangular button with a gold arrow block, square icon buttons, and
   numbered hairline rules that give every section the same structure. */
:root { --vis-arrow-ink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 12L12 4M5.5 4H12v6.5' stroke='%2303193f' stroke-width='1.8' fill='none'/%3E%3C/svg%3E"); }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link { gap: 1.25rem; min-height: 48px; padding-right: 0 !important; overflow: hidden; transition: background-color .3s ease, color .3s ease; }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link::after {
	width: 48px; height: 48px; align-self: stretch; height: auto; min-height: 48px;
	background: var(--wp--preset--color--gold-500) var(--vis-arrow-ink) center / 14px no-repeat; transition: background-position .45s var(--vis-ease), background-color .3s;
}
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover::after { transform: none; background-color: var(--wp--preset--color--white); }
@keyframes vis-arrow-out { 0% { background-position: center; } 45% { background-position: 150% -50%; } 46% { background-position: -50% 150%; } 100% { background-position: center; } }
/* Outline buttons (header VIS Hub, secondary actions). */
.wp-block-button.is-style-outline > .wp-block-button__link, .vis-header__actions .wp-block-button__link {
	border: 1px solid color-mix(in srgb, var(--vis-ink) 45%, transparent) !important; border-radius: var(--wp--custom--radius--pill) !important; background: transparent !important; color: var(--vis-ink) !important;
	font-family: var(--wp--preset--font-family--body) !important; font-weight: 700; font-size: .75rem !important; letter-spacing: .14em; text-transform: uppercase; padding: 0 1.25rem !important; min-height: 48px;
}
.vis-header__actions .wp-block-button__link::after { display: none !important; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover, .vis-header__actions .wp-block-button__link:hover { background: var(--wp--preset--color--white) !important; color: var(--wp--preset--color--navy-950) !important; }
/* Square icon buttons. */
:is(.vis-carousel__btn, .vis-filters__search button, .vis-header-search .wp-block-search__button, .vis-footer__social a, .vis-footer__top a::after, .legacy-toggle summary::after, .vis-timeline__more summary::after, .vis-mega .wp-block-navigation-item__content::after, .vis-opportunities__dialog-close button) { border-radius: var(--wp--custom--radius--pill) !important; }
.vis-newsletter :is(.submit-button, .vis-signup button) { border-radius: var(--wp--custom--radius--pill) !important; }
.vis-newsletter :is(.submit-button, .vis-signup button):hover { transform: none; }
.vis-footer__social a:hover { transform: none; }
/* A band shows its call to action once: site.js marks a button repeated under the grid. */
.vis-section .wp-block-buttons.is-repeat-cta { display: none !important; }
/* One arrow for every inline "more" link: the SVG arrow in the text colour. */
:root { --vis-arrow-mask: 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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E"); }
:is(.vis-footer__cta a, .vis-card.has-profile .vis-card__more summary, .vis-strip__more, .vis-legacy-engage__more a, .vis-path__link a, .vis-content ul.vis-jump a)::after,
.vis-profile__step.is-next .vis-profile__dir::after, .vis-profile__step.is-prev .vis-profile__dir::before, .vis-service__eyebrow a::before {
	content: "" !important; display: inline-block; width: .9em; height: .9em; margin-left: .35em; vertical-align: -.1em; background: currentColor; -webkit-mask: var(--vis-arrow-mask) center / contain no-repeat; mask: var(--vis-arrow-mask) center / contain no-repeat;
}
:is(.vis-path__link a, .vis-content ul.vis-jump a)::after { transform: rotate(90deg); }
.vis-profile__step.is-prev .vis-profile__dir::before, .vis-service__eyebrow a::before { margin: 0 .35em 0 0; transform: rotate(180deg); }
.vis-engage__arrow::before, .vis-engage__arrow::after { content: "" !important; background: currentColor; -webkit-mask: var(--vis-arrow-mask) center / 1.1rem no-repeat; mask: var(--vis-arrow-mask) center / 1.1rem no-repeat; }
.vis-engage__arrow::after { background: var(--wp--preset--color--navy-950); }
/* One quote: a gold rule on top, the words set large, the source as a label. */
:is(.vis-content .wp-block-quote, .vis-service__section .wp-block-quote, .vis-voice blockquote):not(.vis-country--intro *) { margin: 0; padding: 1.5rem 0 0 !important; border: 0 !important; border-top: 2px solid var(--wp--preset--color--gold-500) !important; background: none !important; border-radius: 0 !important; }
.vis-voice blockquote::before, .vis-quote blockquote::before { display: none !important; }
:is(.vis-content .wp-block-quote, .vis-service__section .wp-block-quote) p { font-size: clamp(1.125rem, 1.05rem + .4vw, 1.375rem) !important; line-height: 1.5; font-weight: 500; color: var(--vis-ink) !important; }
/* One scrim over banner photos, wherever the banner sits. */
/* The gold section rule above every band opener, whatever its markup path. */
.vis-section > .vis-module > h2:first-of-type, .vis-section > .pin-spacer > .wp-block-columns > .wp-block-column > h2:first-of-type { padding-top: 1.75rem; border-top: 1px solid color-mix(in srgb, var(--vis-ink) 14%, transparent); position: relative; }
.vis-section > .vis-module > h2:first-of-type::before, .vis-section > .pin-spacer > .wp-block-columns > .wp-block-column > h2:first-of-type::before { content: ""; position: absolute; top: -1px; left: 0; width: 2.5rem; border-top: 2px solid var(--wp--preset--color--gold-500); }
/* Section rules: a hairline across the grid with a short gold segment at the start. */
.vis-section__head { position: relative; padding-top: 1.75rem; border-top: 1px solid color-mix(in srgb, var(--vis-ink) 14%, transparent); }
.vis-section__head::before { content: ""; position: absolute; top: -1px; left: 0; width: 2.5rem; border-top: 2px solid var(--wp--preset--color--gold-500); }
/* Legacy page headings get the same rule, so every page shares the structure. */
.vis-legacy :is(.legacy-text, .legacy-heading) > h2:first-child { padding-top: 1.75rem; border-top: 1px solid color-mix(in srgb, var(--vis-ink) 14%, transparent); position: relative; }
.vis-legacy :is(.legacy-text, .legacy-heading) > h2:first-child::before { content: ""; position: absolute; top: -1px; left: 0; width: 2.5rem; border-top: 2px solid var(--wp--preset--color--gold-500); }
/* Photo tiles sit closer together, like a team gallery. */
.vis-section--news .wp-block-post-template, .vis-tiles, .vis-champions__tiles { gap: .75rem !important; }

/* Stats rows ("431 athletes / 46 sports / 35 years") always sit side by side. */
.vis-legacy #inline-row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

/* 18. Rebuilt pages (.vis-content: native blocks converted from Divi) -----------
   Same language as the legacy styles above, for real blocks. */
.vis-content + .vis-content { padding-top: 0; }
.vis-content :is(.wp-block-columns) { gap: clamp(2rem, 5vw, 6rem) !important; margin-block: 0 clamp(2rem, 4vw, 3.5rem); }
.vis-content .wp-block-columns:last-child { margin-bottom: 0; }
.vis-content .wp-block-column > * + * { margin-block-start: 1.25rem; }
.vis-content :is(h2, h3, h4).wp-block-heading { margin: 0 0 .5em; text-wrap: balance; }
.vis-content h2.wp-block-heading { font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem); line-height: .95; }
.vis-content h3.wp-block-heading { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem); line-height: 1; }
.vis-content :is(.wp-block-column, .wp-block-group.vis-section) > h2.wp-block-heading:first-child,
.vis-content .wp-block-group.vis-section > .vis-module:first-child > h2.wp-block-heading:first-child { padding-top: 1.75rem; border-top: 1px solid color-mix(in srgb, var(--vis-ink) 14%, transparent); position: relative; }
.vis-content :is(.wp-block-column, .wp-block-group.vis-section) > h2.wp-block-heading:first-child::before,
.vis-content .wp-block-group.vis-section > .vis-module:first-child > h2.wp-block-heading:first-child::before { content: ""; position: absolute; top: -1px; left: 0; width: 2.5rem; border-top: 2px solid var(--wp--preset--color--gold-500); }
.vis-content p { color: var(--vis-muted); line-height: 1.7; max-width: 66ch; }
.vis-content p :is(strong, b) { color: var(--vis-ink); }
.vis-content p a:not(.wp-block-button__link), .vis-content li a:not(.wp-block-button__link) { color: var(--vis-ink); text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.vis-content .wp-block-list { padding: 0; list-style: none; display: grid; gap: .6rem; color: var(--vis-muted); }
.vis-content .wp-block-list li { position: relative; padding-left: 1.25rem; }
.vis-content .wp-block-list li::before { content: ""; position: absolute; left: 0; top: .75em; width: .55rem; height: 2px; background: var(--wp--preset--color--gold-500); }
.vis-content ol.wp-block-list { counter-reset: vis-ol; }
.vis-content ol.wp-block-list li { counter-increment: vis-ol; padding-left: 2rem; }
.vis-content ol.wp-block-list li::before { content: counter(vis-ol, decimal-leading-zero); width: auto; height: auto; top: .1em; background: none; color: var(--vis-accent-ink); font-size: .75rem; font-weight: 700; letter-spacing: .1em; }
.vis-content .wp-block-buttons { margin-top: 2rem !important; }
.vis-content .wp-block-image { margin: 0; overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-content .wp-block-column > .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: scale .6s var(--vis-ease); }
.vis-content :is(.wp-block-video, .wp-block-embed) { margin: 0; overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-content .wp-block-video video { width: 100%; display: block; }
.vis-content .wp-block-separator { border: 0; border-top: 1px solid color-mix(in srgb, var(--vis-ink) 14%, transparent); margin-block: clamp(2rem, 4vw, 3rem); opacity: 1; }
.vis-content .wp-block-quote { margin: 0; padding: .25rem 0 .25rem 1.5rem; border-left: 3px solid var(--wp--preset--color--gold-500); }
.vis-content .wp-block-quote p { font-size: 1.25rem; color: var(--vis-ink); }
.vis-content .wp-block-quote cite { display: block; margin-top: .75rem; font-style: normal; text-transform: uppercase; color: var(--vis-accent-ink); }
:is(.vis-blurb, .is-style-box) { box-sizing: border-box; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--vis-surface); border: 1px solid var(--vis-surface-line); }
/* A box fills its column only when it is the column's only box (stacked boxes keep their own height). */
.wp-block-column > :is(.vis-blurb, .is-style-box):only-child { height: 100%; }
.vis-blurb > .wp-block-image { margin: calc(-1 * clamp(1.5rem, 3vw, 2.25rem)) calc(-1 * clamp(1.5rem, 3vw, 2.25rem)) 1.5rem !important; box-shadow: none; }
.vis-blurb h3.wp-block-heading { font-size: var(--vis-card-title-size); }
.vis-blurb h3 a { color: inherit; text-decoration: none; }
.vis-blurb p { overflow-wrap: anywhere; }
.vis-content .wp-block-details { border-top: 1px solid var(--vis-surface-line); padding-block: 1.1rem; margin: 0 !important; }
.vis-content .wp-block-details:last-of-type { border-bottom: 1px solid var(--vis-surface-line); }
.vis-content .wp-block-details summary { list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-weight: 700; font-size: 1.125rem; min-height: 44px; align-items: center; cursor: pointer; }
.vis-content .wp-block-details summary::-webkit-details-marker { display: none; }
.vis-content .wp-block-details summary::after { content: ""; flex: none; width: 32px; height: 32px; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1v10M1 6h10' stroke='%230b233f' stroke-width='2'/%3E%3C/svg%3E") center / 12px no-repeat; transition: transform .3s; border-radius: var(--wp--custom--radius--pill); }
.vis-content .wp-block-details[open] summary::after { transform: rotate(45deg); }
.vis-content .wp-block-details > :not(summary) { margin-top: 1rem; }
.vis-content .wp-block-social-links { gap: .6rem; }
/* Stats rows: big gold figures. */
.vis-content #inline-row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem !important; border-top: 1px solid var(--vis-surface-line); padding-top: 1.75rem; }
.vis-content #inline-row p { margin: 0; text-transform: uppercase; }
.vis-content #inline-row p > span:first-child { display: block; margin-bottom: .35rem; font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; font-size: clamp(3rem, 2rem + 3vw, 5rem); line-height: .85; letter-spacing: 0; color: var(--vis-accent-ink); }
.vis-content #inline-row br { display: none; }
/* Mobile: image above its text where Divi asked for it. */
@media (max-width: 781px) { :is(.vis-content .reverse-mobile-column, .vis-content .reverse-mobile, .wp-block-columns.is-style-stack-reverse) { flex-direction: column-reverse; } }
/* Divi per-device visibility (its breakpoints). */
@media (max-width: 767px) { .legacy-hide-phone { display: none !important; } }
@media (min-width: 768px) and (max-width: 980px) { .legacy-hide-tablet { display: none !important; } }
@media (min-width: 981px) { .legacy-hide-desktop { display: none !important; } }
/* Contact Form 7 in the system. */

.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) { width: 100%; box-sizing: border-box; min-height: 52px; padding: .85rem 1.1rem; font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--vis-ink); background: color-mix(in srgb, var(--vis-ink) 6%, transparent); border: 1px solid color-mix(in srgb, var(--vis-ink) 22%, transparent); border-radius: var(--wp--custom--radius--pill); }

.wpcf7 :is(input, textarea):focus { outline: none; border-color: var(--wp--preset--color--gold-500); }

.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--white); }
.wpcf7-response-output { margin: 0 !important; border-radius: var(--wp--custom--radius--pill); }
#slide-custom-arrow { display: none; } /* old scroll arrow under the hero; the slider has its own */

/* 19. Header behaviour (site.js) ------------------------------------------------
   Countdown strip and header are fixed from the first paint; nothing changes
   size or position type while scrolling. Only transform and opacity animate,
   on one curve, so it moves as one piece. */
:root { --vis-admin-h: var(--wp-admin--admin-bar--height, 0px); --vis-head-ease: cubic-bezier(.22, 1, .36, 1); }
body { padding-top: var(--vis-bar-h, 0px); }
.vis-countdown { position: absolute !important; z-index: 21; top: var(--vis-admin-h); left: 0; right: 0; } /* scrolls away with the page */
.vis-header, body:not(.home) .vis-header, .home .vis-header {
	position: fixed !important; z-index: 20; top: calc(var(--vis-admin-h) + var(--vis-head-y, var(--vis-bar-h, 0px))); left: 0; right: 0; /* --vis-head-y: what is left of the countdown on screen (site.js) */
	padding-block: 1rem !important; background: transparent !important; box-shadow: none !important; border: 0 !important;
	transition: transform .5s var(--vis-head-ease) !important;
}
.vis-header::before { content: ""; position: absolute; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .4s ease; border-bottom: 1px solid color-mix(in srgb, var(--vis-ink) 10%, transparent); }
/* At the top, a soft shade keeps the menu readable over any photo. */
.vis-header::after { content: ""; position: absolute; inset: 0 0 -40%; z-index: -2; pointer-events: none; background: linear-gradient(180deg, rgba(3, 25, 63, .55), rgba(3, 25, 63, 0)); transition: opacity .4s ease; }
.vis-scrolled .vis-header::before { opacity: 1; }
.vis-scrolled .vis-header::after { opacity: 0; }
:root.vis-nav-hidden body .vis-header { transform: translateY(calc(-150% - var(--vis-admin-h))); } /* clears the blur below the bar too */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .vis-header::before { background: rgba(11, 35, 63, .95); } }
@media (prefers-reduced-motion: reduce) { .vis-header, .vis-header::before { transition: none !important; } }

/* 20. Header background: progressive blur, no box ---------------------------------
   Once scrolled, the page behind the menu blurs, strongest at the top and
   fading to nothing below the bar: no rectangle, no edge line. The bar hides
   while scrolling down and returns on scroll up (site.js). */
.vis-header::after { display: none !important; }
.vis-header::before {
	inset: 0 0 -45% !important; border: 0 !important;
	background: linear-gradient(180deg, rgba(3, 25, 63, .85) 0%, rgba(3, 25, 63, .6) 55%, rgba(3, 25, 63, 0) 100%) !important;
	-webkit-backdrop-filter: blur(26px) saturate(160%); backdrop-filter: blur(26px) saturate(160%);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 50%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 50%, transparent 100%);
}
/* At the very top, only a faint shade keeps the menu readable over photos. */
.vis-header { --vis-shade: 1; }
.vis-header > .vis-header__bar { position: relative; }
.vis-header > .vis-header__bar::before { content: ""; position: absolute; inset: -1rem -50vw -3rem; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(3, 25, 63, .5), rgba(3, 25, 63, 0)); transition: opacity .4s ease; }
.vis-scrolled .vis-header > .vis-header__bar::before { opacity: 0; }

/* 21. Newsletter, premium -------------------------------------------------------
   Full-bleed athlete photo under a navy grade, big heading and a promise,
   one clear field with a labelled Subscribe button, a proper success state. */
.vis-newsletter { --vis-nl-image: url(/wp-content/uploads/2025/10/WEB_VIS_Meet-Our-Athletes.webp); position: relative; isolation: isolate; overflow: hidden; padding-block: clamp(6rem, 12vw, 11rem) !important; }
.vis-newsletter::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(90deg, var(--wp--preset--color--navy-900) 0%, rgba(11, 35, 63, .92) 38%, rgba(11, 35, 63, .7) 100%), linear-gradient(0deg, var(--wp--preset--color--navy-900) 0%, rgba(11, 35, 63, 0) 30%, rgba(11, 35, 63, 0) 70%, var(--wp--preset--color--navy-900) 100%), var(--vis-nl-image, none) center 35% / cover no-repeat;
}
.vis-newsletter__intro { margin: 1.5rem 0 0; max-width: 32ch; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.55; color: color-mix(in srgb, var(--vis-ink) 80%, transparent); }
.vis-newsletter .mc4wp-form-fields { display: grid; gap: 0; }
.vis-newsletter :is(.vis-signup-field, form.vis-signup) {
	display: flex !important; align-items: stretch; gap: 0; padding: 0 !important; min-height: 64px;
	background: color-mix(in srgb, var(--vis-ink) 8%, transparent) !important; border: 1px solid color-mix(in srgb, var(--vis-ink) 28%, transparent) !important; border-radius: var(--wp--custom--radius--pill) !important;
	transition: border-color .3s, background .3s;
}
.vis-newsletter :is(.vis-signup-field, form.vis-signup):focus-within { border-color: var(--wp--preset--color--gold-500) !important; background: color-mix(in srgb, var(--vis-ink) 12%, transparent) !important; }
.vis-newsletter :is(.vis-signup-field, form.vis-signup) input[type="email"] { flex: 1; min-width: 0; padding: 0 1.5rem !important; border: 0 !important; background: transparent !important; color: var(--vis-ink) !important; font: inherit; font-size: 1.0625rem !important; outline: none; }
.vis-newsletter :is(.vis-signup-field, form.vis-signup) button {
	flex: none; display: inline-flex; align-items: center; gap: .9rem; width: auto !important; height: auto !important; margin: 0; padding: 0 1.75rem !important; border: 0 !important; border-radius: 0 !important; cursor: pointer;
	background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important;
	font: inherit; font-size: .8125rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: background .3s;
}
.vis-newsletter :is(.vis-signup-field, form.vis-signup) button::after { content: ""; width: 14px; height: 14px; background: var(--vis-arrow-ink) center / contain no-repeat; transition: transform .45s var(--vis-ease); }
.vis-newsletter :is(.vis-signup-field, form.vis-signup) button:hover { background: var(--wp--preset--color--white) !important; transform: none; }
.vis-newsletter :is(.vis-signup-field, form.vis-signup) button:hover::after { transform: translate(3px, -3px); }
.vis-newsletter :is(.vis-signup-field, form.vis-signup) button svg { display: none; }
.vis-newsletter .mc4wp-response:not(:empty) { margin-top: 1rem; }
.vis-newsletter .mc4wp-alert { padding: 1rem 1.25rem; border-left: 3px solid var(--wp--preset--color--gold-500); background: color-mix(in srgb, var(--vis-ink) 6%, transparent); color: var(--vis-ink); }
.vis-newsletter .mc4wp-alert p { margin: 0; }
.vis-newsletter .mc4wp-success { border-left-color: #3ecf8e; }
.vis-newsletter .mc4wp-form-success .mc4wp-form-fields { display: none; } /* swap the field for the message once subscribed */
@media (max-width: 599px) {
	.vis-newsletter :is(.vis-signup-field, form.vis-signup) { flex-direction: column; min-height: 0; }
	.vis-newsletter :is(.vis-signup-field, form.vis-signup) input[type="email"] { min-height: 56px; }
	.vis-newsletter :is(.vis-signup-field, form.vis-signup) button { justify-content: center; min-height: 52px; }
}

/* Champions: the heading sits on the faded top of the photo, so its rule
   never crosses the athlete. */
@media (min-width: 782px) {
	.vis-champions__content { inset: 2.5rem 0 0 0 !important; }
	.vis-champions__bg { -webkit-mask-image: linear-gradient(180deg, transparent, #000 30%) !important; mask-image: linear-gradient(180deg, transparent, #000 30%) !important; }
}

/* 22. Home rhythm ------------------------------------------------------------------
   One beat between home sections (it had drifted between 65px and 265px). */
/* Home bands use the same beat as every other band (--vis-section-space, global.css). */

/* 23. Home hierarchy ----------------------------------------------------------------
   Light and dark alternate so the dark, image-led moments hit harder: hero
   (dark) / news (light) / engage (dark) / athletes (light) / marquee and
   champions (dark) / Instagram and partners (light) / newsletter (dark).
   Italic Railroad Gothic is kept for the big moments (hero, champion numbers,
   newsletter); section headings and headlines are DM Sans. */
.vis-home > .vis-section--partners { padding-top: 0 !important; } /* continues the Instagram band */

/* News: lead story left, three more as a list right. */
.vis-home .vis-section--news .wp-block-post-template { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) !important; grid-auto-rows: auto !important; gap: 0 clamp(1.5rem, 3vw, 3rem) !important; }
.vis-home .vis-section--news .wp-block-post-template > li:first-child { grid-row: 1 / span 3; min-height: clamp(460px, 40vw, 620px); }
.vis-home .vis-section--news li:first-child :is(.vis-card__title, .vis-card__title a) {
	font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; text-transform: none !important;
	font-weight: 600 !important; letter-spacing: -.025em; line-height: 1.05 !important; font-size: clamp(1.75rem, 1rem + 1.8vw, 2.75rem) !important;
}
.vis-home .vis-section--news li:first-child .vis-card__title { max-width: 24ch; }
.vis-home .vis-section--news li:not(:first-child) { border-top: 1px solid var(--vis-line); }
.vis-home .vis-section--news li:nth-child(2) { border-top: 0; }
.vis-home .vis-section--news li:not(:first-child) .vis-card {
	flex-direction: row !important; align-items: center; gap: 1.25rem !important; min-height: 0;
	background: none !important; border-radius: 0; padding: clamp(1rem, 1.6vw, 1.5rem) 0 !important; overflow: visible;
}
.vis-home .vis-section--news li:nth-child(2) .vis-card { padding-top: 0 !important; }
.vis-home .vis-section--news li:not(:first-child) .vis-card .wp-block-post-featured-image {
	position: relative; inset: auto; flex: 0 0 clamp(7rem, 11vw, 10rem); aspect-ratio: 4 / 3 !important; height: auto; overflow: hidden; border-radius: var(--wp--custom--radius--lg);
}
.vis-home .vis-section--news li:not(:first-child) .vis-card .wp-block-post-featured-image img { position: absolute; inset: 0; transition: scale .6s var(--vis-ease); }
.vis-home .vis-section--news li:not(:first-child) .vis-card:hover .wp-block-post-featured-image img { scale: 1.03; }
.vis-home .vis-section--news li:not(:first-child) .vis-card__body { background: none; padding: 0 !important; margin: 0; gap: .45rem !important; align-self: center; }
.vis-home .vis-section--news li:not(:first-child) .wp-block-post-date { color: var(--vis-muted) !important; }
.vis-home .vis-section--news li:not(:first-child) :is(.vis-card__title, .vis-card__title a) { color: var(--vis-ink) !important; font-weight: 600; font-size: clamp(1rem, .9rem + .35vw, 1.1875rem) !important; line-height: 1.3; letter-spacing: -.01em; }
.vis-home .vis-section--news li:not(:first-child) .vis-card:hover .vis-card__title a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; }
@media (max-width: 900px) {
	.vis-home .vis-section--news .wp-block-post-template { grid-template-columns: 1fr !important; }
	.vis-home .vis-section--news .wp-block-post-template > li:first-child { grid-row: auto; min-height: 420px; margin-bottom: 1.5rem; }
}

/* Athletes on paper: names in DM Sans; the photo carries the card. */
.vis-card--athlete :is(.vis-card__name, .vis-card__name a) { font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; text-transform: none !important; font-weight: 600; letter-spacing: -.015em; line-height: 1.15; font-size: var(--vis-card-title-size) !important; }
.vis-carousel__btn { border-color: var(--vis-line) !important; color: var(--vis-ink) !important; }
/* Engage tiles: labels in DM Sans. */

/* Champions: the counts as a scoreboard, set big. Each count's photo shows on hover. */
.vis-champions__board { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid color-mix(in srgb, var(--vis-ink) 18%, transparent); }
.vis-champions__board li + li { border-left: 1px solid color-mix(in srgb, var(--vis-ink) 18%, transparent); }
.vis-champions__board a { position: relative; isolation: isolate; display: grid; align-content: end; gap: .9rem; min-height: clamp(200px, 18vw, 280px); padding: clamp(1.25rem, 2vw, 2rem); overflow: hidden; color: var(--vis-ink); text-decoration: none; }
.vis-champions__board img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity .6s ease, transform 1.2s var(--vis-ease); }
.vis-champions__board a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6, 22, 43, .2), rgba(6, 22, 43, .9)); opacity: 0; transition: opacity .6s ease; }
.vis-champions__board a:is(:hover, :focus-visible) :is(img, ::before) { opacity: 1; }
.vis-champions__board a:is(:hover, :focus-visible) img { opacity: .9; transform: none; }
.vis-champions__board a:is(:hover, :focus-visible)::before { opacity: 1; }
.vis-champions__board strong { font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; font-size: clamp(3.75rem, 1.5rem + 6vw, 8.5rem); line-height: .8; letter-spacing: -.01em; font-variant-numeric: tabular-nums; padding-right: .06em; }
.vis-champions__board span { text-transform: uppercase; color: color-mix(in srgb, var(--vis-ink) 78%, transparent); padding-top: .9rem; border-top: 2px solid var(--wp--preset--color--gold-500); justify-self: start; }
.vis-champions__board a:focus-visible { outline: var(--wp--custom--focus--ring); outline-offset: -3px; }
/* Our champions page: the same scoreboard, as plain figures, over the journey */
.vis-history__board { padding-top: 0; padding-bottom: 0 !important; }
.vis-history__board .vis-champions__board li { display: grid; align-content: end; gap: .9rem; padding: clamp(1.5rem, 2.5vw, 2.5rem) clamp(1rem, 1.5vw, 1.5rem) clamp(1.5rem, 2.5vw, 2.5rem) 0; }
.vis-history__board .vis-champions__board li + li { padding-left: clamp(1rem, 2vw, 2rem); }
.vis-history__board .vis-champions__board strong { font-size: clamp(3.25rem, 1rem + 5vw, 7rem); }
.vis-history__board .vis-champions__board strong > span { font: inherit; letter-spacing: inherit; text-transform: none; color: inherit; padding: 0; border: 0; }
@media (max-width: 900px) {
	.vis-champions__board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vis-champions__board li:first-child { grid-column: 1 / -1; }
	.vis-champions__board li { border-left: 0 !important; border-bottom: 1px solid color-mix(in srgb, var(--vis-ink) 18%, transparent); }
	.vis-champions__board li:nth-child(odd):not(:first-child) { border-left: 1px solid color-mix(in srgb, var(--vis-ink) 18%, transparent) !important; }
}
/* Partner logos on paper (any light section): one ink colour (logos saved on a box drop the box via multiply). */
:where(.vis-scheme-light, .vis-detail, .vis-content, .vis-home > .vis-section--partners) .vis-logos img { filter: brightness(0) !important; opacity: .62 !important; }
:where(.vis-scheme-light, .vis-detail, .vis-content, .vis-home > .vis-section--partners) .vis-logos li:hover img { filter: none !important; opacity: 1 !important; }
:where(.vis-scheme-light, .vis-detail, .vis-content, .vis-home > .vis-section--partners) .vis-logos li.has-bg { mix-blend-mode: multiply; }
:where(.vis-scheme-light, .vis-detail, .vis-content, .vis-home > .vis-section--partners) .vis-logos li.has-bg :is(img, img:hover) { filter: grayscale(1) contrast(1.4) !important; opacity: .75 !important; }
/* Scoreboard labels reserve two lines so every number sits on one baseline. */
.vis-champions__board span { box-sizing: content-box; min-height: 2.7em; line-height: 1.35; }
.vis-home .vis-section--news li:not(:first-child) .vis-card { flex-wrap: nowrap !important; }
.vis-home .vis-section--news li:not(:first-child) .vis-card__body { flex: 1 1 auto !important; min-width: 0; }
@media (max-width: 900px) {
	/* Phone: the scoreboard rises onto the bottom of the photo instead of leaving a gap under it. */
	.vis-champions__content { margin-top: -14rem !important; gap: 6rem !important; }
	.vis-champions__board strong { font-size: clamp(3.5rem, 18vw, 5rem); }
	.vis-champions__board a { min-height: 0; padding: 1.75rem 1.25rem; }
}
@media (max-width: 900px) { .vis-home .vis-section--news li:nth-child(2) .vis-card { padding-top: clamp(1rem, 1.6vw, 1.5rem) !important; } }
/* Join us band: the follow button with a small icon for every VIS channel. */
.vis-follow { gap: .75rem 1rem !important; margin-bottom: .35rem; }
.vis-follow .wp-block-buttons { margin: 0; }
.vis-follow__links.wp-block-social-links { gap: .5rem !important; margin: 0; }
.vis-follow__links .wp-block-social-link { color: var(--vis-ink); background: none !important; font-size: 18px; }
.vis-follow__links .wp-social-link a { display: grid; place-items: center; width: 44px; height: 44px; padding: 0 !important; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--vis-ink) 22%, transparent); transition: background .3s, border-color .3s, color .3s, transform .4s var(--vis-ease); }
.vis-follow__links .wp-social-link a:is(:hover, :focus-visible) { background: var(--wp--preset--color--gold-500); border-color: var(--wp--preset--color--gold-500); color: var(--wp--preset--color--navy-950); transform: translateY(-2px); }
.vis-follow__links .wp-block-social-link:hover { transform: none; }

/* 24. Type system: one rule for the whole site --------------------------------------
   Italic Railroad Gothic is for page titles (h1), hero titles, the newsletter
   and big numbers (stats, scoreboards, timeline years). Every other heading is
   DM Sans, semibold, sentence case. Header and footer keep their own type. */
:is(h2, h3, h4):not(.vis-display, .vis-hero-video__title, :is(.vis-newsletter, .vis-timeline, .vis-timeline__panel, .vis-marquee, .vis-header, .vis-footer, .vis-mega) *) {
	font-family: var(--wp--preset--font-family--body); font-style: normal; text-transform: none; font-weight: 600; letter-spacing: -.025em;
}
:is(.vis-section__head h2, .vis-content h2.wp-block-heading, .vis-legacy .legacy-text h2, .vis-legacy-heading, .vis-detail__body h2) {
	font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem) !important; line-height: 1.05 !important; letter-spacing: -.035em;
}
:is(.vis-content h3.wp-block-heading, .vis-detail__body h3, .legacy-blurb__title) { font-size: var(--vis-h3-size); line-height: 1.15; }
/* Section openers ("Latest news", "Engage with us"...) are the exception: the
   display face, set large, so each section is introduced in the brand's voice
   and the heading outranks what's under it. Headings inside content stay DM Sans. */
/* Decision 2 Nov 2026: every band opener, not only the home sections. The opener is the
   first h2 of a band, whether it sits directly in the section, in the first column row
   or in a module; later h2s and every h3 inside the band stay DM Sans. */
.vis-section .vis-section__head h2, .vis-section__head h2.wp-block-heading,
.vis-section > h2.wp-block-heading:first-of-type,
.vis-section > .wp-block-columns > .wp-block-column > h2:first-of-type,
.vis-section > .pin-spacer > .wp-block-columns > .wp-block-column > h2:first-of-type,
.vis-section > .wp-block-columns > .wp-block-column > .vis-module:first-child > h2:first-of-type,
.vis-section > .vis-module > h2:first-of-type,
.vis-opportunities__heading:not(.vis-opportunities__dialog *), .vis-sports-programs > h2, .vis-rc__dark > h2 {
	font-family: var(--wp--preset--font-family--display) !important; font-style: italic !important; font-weight: 400 !important; text-transform: uppercase !important;
	font-size: var(--vis-opener-size) !important; line-height: .88 !important; letter-spacing: .005em !important; padding-right: .12em; text-wrap: balance;
}
.vis-section__head:has(> h2 + :is(.wp-block-buttons, .vis-follow)) { align-items: flex-end !important; }
.vis-section__head > .wp-block-buttons { margin-bottom: .35rem; }
/* One label for the whole site: every eyebrow, kicker, date, status and data label
   is DM Sans .75rem, bold, tracked by the eyebrow token. Colour stays with the
   component (gold/VIS-blue accent for eyebrows, muted for data labels). */
:is(.vis-card :is(.wp-block-post-date, .vis-card__eyebrow, .vis-card__sport), .vis-legacy #inline-row .legacy-text p, .vis-quote__role, .vis-detail__eyebrow, .vis-detail__eyebrow a, .vis-directory__status, .vis-newsletter__eyebrow, .vis-footer__heading, .vis-footer__top a,
	.vis-content .wp-block-quote cite, .vis-content #inline-row p, .wp-block-columns.is-style-stats .wp-block-column > p + p, .vis-contact__label, p.is-style-eyebrow, .vis-profile__group, .vis-profile__dir, .vis-service__eyebrow a, .vis-restricted-notice__eyebrow,
	.vis-recipe__facts span, .vis-recipe__nutrition span, .vis-course-facts span, .vis-auth__eyebrow, .vis-voice figcaption, .vis-figures li > span, .vis-events__month, .vis-events__weekday, .vis-events__type, .vis-champions__board :is(li, a) > span, .vis-card.has-profile .vis-card__more summary,
	.vis-section--news .vis-card .wp-block-post-date, .vis-card--athlete .vis-card__sport, .vis-card--athlete .vis-card__sport a, .vis-card__eyebrow, .vis-ig__overlay, .vis-timeline:not(.is-horizontal) .vis-timeline__kicker, .vis-timeline__panel .vis-timeline__kicker, .vis-timeline__stats span, .vis-timeline__more h4, .vis-timeline__panel h4, .vis-opportunities__includes p, .vis-opportunities__dialog h3, .vis-athlete__sports, .vis-athlete__highlights span, .vis-athlete__facts dt) {
	font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; font-size: var(--vis-label-size) !important; font-weight: 700 !important; letter-spacing: var(--vis-label-tracking) !important; text-transform: uppercase; line-height: 1.3;
}
/* Three cards and one panel (decision 2 Nov 2026) ------------------------------
   Content card: white, photo flush to the top at 16:9, label, title, a line of text.
   Photo card: dark, name on the photo at 3:4 (athletes, people, sports).
   Panel: a box with a gold rule along the top, for options, paths, priorities and features. */
:is(.vis-card--item, .vis-card--news, .vis-opportunities__card, .vis-pubs--featured .vis-card) > :is(.wp-block-post-featured-image, figure):not(.vis-opportunities__logo) img { aspect-ratio: 16 / 9 !important; height: auto; object-fit: cover; }
:is(.vis-card--item, .vis-card--news, .vis-opportunities__card, .vis-pubs--featured .vis-card) .vis-card__body { padding: clamp(1.25rem, 2vw, 1.75rem) !important; gap: .6rem !important; }
.vis-panel, :is(.vis-blurb, .is-style-box), .vis-path, .vis-rc__priority, .vis-engage__feature, .vis-content ul.vis-partners__options li, .vis-careers__path-body, .vis-rc__apply-body {
	box-sizing: border-box; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--vis-surface); border: 1px solid var(--vis-surface-line); border-top: 3px solid var(--wp--preset--color--gold-500) !important; border-radius: var(--wp--custom--radius--lg); box-shadow: none;
}
.vis-careers__path, .vis-rc__apply { border: 0; box-shadow: none; background: none; }
.vis-careers__path > figure img, .vis-rc__apply > .wp-block-image img { border-radius: var(--wp--custom--radius--lg) var(--wp--custom--radius--lg) 0 0; }
:is(.vis-path, .vis-rc__priority, .vis-engage__feature):hover { border-color: var(--vis-surface-line); }
/* One closing band: a statement beside its action, the same gap and alignment everywhere. */
:is(.vis-engage__close, .vis-rc__ask, .vis-partners__close, .vis-service__ask, .vis-country__hear, .vis-contact) { gap: clamp(2rem, 6vw, 6rem) !important; }
:is(.vis-engage__close, .vis-partners__close, .vis-rc__ask, .vis-service__ask, .vis-country__hear) p:not(.is-style-eyebrow):not(.is-style-lead) { font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); line-height: 1.5; max-width: 44ch; }
/* Card titles are never underlined at rest (the content-list link rule reached them in hub listings). */
.vis-content .vis-card :is(.vis-card__title, .vis-card__name) a { text-decoration: none !important; }
.vis-content .vis-card:hover :is(.vis-card__title, .vis-card__name) a { text-decoration: underline !important; text-decoration-color: var(--wp--preset--color--gold-500) !important; text-underline-offset: .2em; }
/* Card titles: DM Sans throughout (sport programs and the news lead included). */
:is(.vis-card--program .vis-card__title, .vis-card--program .vis-card__title a, .vis-section--news li:first-child .vis-card__title, .vis-section--news li:first-child .vis-card__title a) {
	font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; text-transform: none !important; font-weight: 600 !important; letter-spacing: -.02em; line-height: 1.1 !important;
}
.vis-card--program :is(.vis-card__title, .vis-card__title a) { font-size: var(--vis-card-title-size) !important; }
/* UI labels (tabs, filters, opportunity headings) in DM Sans caps, not display. */
:is(.vis-tabs__list [role="tab"], .vis-filters__toggle, .vis-filters__apply, .vis-legacy-tabs a, .vis-tile__cta) {
	font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; font-weight: 700; letter-spacing: .1em; font-size: .8125rem !important; text-transform: uppercase;
}
/* Consecutive content sections touch: no strip of page colour between them. */
.vis-content { margin-block: 0 !important; }

/* 25. Standard page body ---------------------------------------------------------------
   Text typed straight into a page sits in a reading column on paper; sections
   from the pattern library (full width) bring their own spacing. */
.vis-page-body { padding-block: var(--vis-block-space); }
.vis-page-body:has(> .vis-section:first-child) { padding-top: 0; }
.vis-page-body:has(> .vis-section:last-child) { padding-bottom: 0; }
.vis-page-body > :is(p, ul, ol) { color: var(--vis-muted); line-height: 1.7; }
.vis-page-body > :is(h2, h3) { margin-top: 2.5rem; }

/* Stats row (Columns > Styles > Stats row): in each column, the first paragraph
   is the number, the next one the label. */
.wp-block-columns.is-style-stats { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: 1rem !important; border-top: 1px solid var(--vis-surface-line); padding-top: 1.75rem; }
.wp-block-columns.is-style-stats .wp-block-column > * { margin: 0; }
.wp-block-columns.is-style-stats .wp-block-column > p:first-child { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: clamp(3rem, 2rem + 3vw, 5rem); line-height: .85; color: var(--vis-accent-ink); max-width: none; }
.wp-block-columns.is-style-stats .wp-block-column > p + p { margin-top: .35rem; text-transform: uppercase; color: var(--vis-muted); }

/* 26. Directory pages (news, athletes, resources, recipes, experts, courses) -----------
   The list section starts where the banner ends, on its own background, so the
   filter bar sits below the photo rather than on it. On paper the bar is a
   plain toolbar of white controls; on the dark athletes page it stays glass. */
.vis-section:has(> .vis-directory) { position: relative; z-index: 2; background-color: var(--wp--preset--color--navy-900); padding-top: clamp(2rem, 4vw, 3rem) !important; margin-top: 0 !important; }
main:has(.vis-directory:not(.vis-directory--athletes)) .vis-section:has(> .vis-directory) { background-color: var(--vis-paper); }
main .vis-section > .vis-directory .vis-filters {
	background: none; border: 0; border-radius: 0; padding: 0 0 clamp(1.25rem, 2vw, 1.75rem); margin-bottom: 1.25rem !important;
	-webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: 1px solid var(--vis-line);
}
main:has(.vis-directory:not(.vis-directory--athletes)) :is(.vis-filters__select, .vis-filters__search) {
	background-color: var(--wp--preset--color--white) !important; border: 1px solid var(--vis-line) !important; color: var(--vis-ink) !important;
	box-shadow: 0 1px 2px rgba(11, 35, 63, .04);
}
main:has(.vis-directory:not(.vis-directory--athletes)) :is(.vis-filters__select, .vis-filters__search):hover { border-color: color-mix(in srgb, var(--vis-ink) 35%, transparent) !important; }
main:has(.vis-directory:not(.vis-directory--athletes)) .vis-filters__search:focus-within { border-color: var(--vis-ink) !important; }
main .vis-section > .vis-directory .vis-filters__search { flex: 1 1 15rem; max-width: 24rem; margin-left: auto; }
@media (max-width: 781px) { main .vis-section > .vis-directory .vis-filters__search { max-width: none; margin-left: 0; } }
.vis-directory__status { margin-left: 0; }

/* Directory grids: 4, 3 or 2 columns (never 5 or 6), so every batch of 12
   fills its rows and a short last row only ever means the end of the list. */
.vis-directory__grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 1100px) { .vis-directory__grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 781px) { .vis-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .75rem !important; } }
@media (max-width: 480px) { .vis-directory--news .vis-directory__grid, main:has(.vis-directory:not(.vis-directory--athletes)) .vis-directory__grid { grid-template-columns: 1fr !important; } }

/* 27. Footer: four aligned columns, one text size, social icons in one row ------- */
.vis-footer__cols { display: grid !important; grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr)); align-items: start; }
.vis-footer__cols > .wp-block-column { flex-basis: auto !important; }
.vis-footer__heading { margin: 0 0 1.25rem !important; }
.vis-footer__cols p, .vis-footer__list:not(.vis-footer__social) a { font-size: .9375rem !important; line-height: 1.6; }
.vis-footer__cols p { margin: 0 0 .9rem; max-width: 30ch; }
.vis-footer__cols p a[href^="tel:"] { color: var(--vis-ink); font-weight: 600; text-decoration: none; }
.vis-footer__list:not(.vis-footer__social) { gap: .45rem !important; }
.vis-footer__social { flex-wrap: wrap !important; gap: .5rem !important; margin: 0 0 1.5rem !important; } /* six icons wrap on tablets; the sixth sat past the viewport in a no-wrap row */
.vis-footer__social a { display: flex !important; align-items: center; justify-content: center; width: 40px !important; height: 40px !important; line-height: 0; }
.vis-footer__social a::before { width: 18px !important; height: 18px !important; flex: none; }
.vis-footer__cta a { display: inline-flex; align-items: center; gap: .6rem; color: var(--vis-ink) !important; font-weight: 600; text-decoration: none;
	padding-bottom: .2rem; border-bottom: 2px solid var(--wp--preset--color--gold-500); transition: color .3s; }
.vis-footer__cta a::after { content: "→"; color: var(--vis-accent-ink); transition: transform .4s var(--vis-ease); }
.vis-footer__cta a:hover { color: var(--vis-accent-ink) !important; }
.vis-footer__cta a:hover::after { transform: translateX(4px); }
.vis-footer__ack { gap: 1.5rem !important; margin-top: clamp(2.5rem, 5vw, 4rem) !important; padding-block: 1.75rem !important; border-top: 1px solid color-mix(in srgb, var(--vis-ink) 12%, transparent); }
.vis-footer__ack figure { margin: 0 !important; flex: none; }
.vis-footer__ack p { margin: 0 !important; font-size: .8125rem !important; line-height: 1.6; max-width: 80ch; }
.vis-footer__legal { margin-top: 0 !important; padding-block: 1.5rem 2rem !important; }
@media (max-width: 1100px) { .vis-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } .vis-footer__cols > .wp-block-column:first-child { grid-column: 1 / -1; } }
@media (max-width: 700px) { .vis-footer__cols { grid-template-columns: 1fr 1fr; } .vis-footer__cols > .wp-block-column:last-child { grid-column: 1 / -1; } }

/* 28. Forms (Contact Form 7, site-wide): labelled fields on white, short
   fields side by side, clear focus and error states, the site's button. -------- */
.wpcf7 form { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1rem !important; max-width: none !important; }
.wpcf7 form > :is(p, div, fieldset) { grid-column: 1 / -1; margin: 0 !important; }
.wpcf7 form > p:has(:is(input[type="text"], input[type="email"], input[type="tel"])):not(:has(textarea, input[type="submit"])) { grid-column: span 1; }
.wpcf7 form > fieldset.hidden-fields-container { display: none; }
.wpcf7 label { display: grid !important; gap: .5rem !important; font-size: .875rem !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--vis-ink) !important; }
.wpcf7 label br, .wpcf7 form > p > br, .cf7-cf-turnstile ~ br, .cf7-cf-turnstile br { display: none; }
.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], textarea, select) {
	width: 100%; box-sizing: border-box; min-height: 52px; padding: .85rem 1rem !important; border-radius: var(--wp--custom--radius--lg) !important;
	font: inherit; font-size: 1rem !important; font-weight: 400; letter-spacing: 0; color: var(--wp--preset--color--navy-900) !important;
	background: var(--wp--preset--color--white) !important; border: 1px solid rgba(11, 35, 63, .18) !important; box-shadow: 0 1px 2px rgba(11, 35, 63, .04);
	transition: border-color .2s, box-shadow .2s;
}
.wpcf7 textarea { min-height: 11rem; resize: vertical; line-height: 1.6; }
.wpcf7 :is(input, textarea, select):hover { border-color: rgba(11, 35, 63, .35) !important; }
.wpcf7 :is(input, textarea, select):focus { outline: none; border-color: var(--wp--preset--color--navy-900) !important; box-shadow: 0 0 0 3px rgba(248, 152, 29, .45); }
.cf7-cf-turnstile { margin: 0 0 1rem !important; }
.wpcf7 input[type="submit"] {
	justify-self: start; display: inline-flex; min-height: 52px; padding: 0 2rem !important; border: 0; border-radius: var(--wp--custom--radius--pill) !important; cursor: pointer;
	background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important;
	font: inherit; font-size: .8125rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: background .3s, color .3s;
}
.wpcf7 input[type="submit"]:hover, .wpcf7 input[type="submit"]:focus-visible { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
:where(.vis-scheme-dark, .is-style-section-navy, .vis-newsletter) .wpcf7 input[type="submit"] { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 1rem; vertical-align: middle; }
.wpcf7 .wpcf7-not-valid { border-color: #b3261e !important; }
.wpcf7 .wpcf7-not-valid-tip { margin-top: .4rem; font-size: .8125rem; font-weight: 500; color: #b3261e; }
.wpcf7 form .wpcf7-response-output { grid-column: 1 / -1; margin: 0 !important; padding: .9rem 1.1rem !important; border: 0 !important; border-left: 4px solid var(--wp--preset--color--gold-500) !important; border-radius: var(--wp--custom--radius--lg) !important; font-size: .9375rem; background: #fff6e8; color: var(--wp--preset--color--navy-900); }
.wpcf7 form.sent .wpcf7-response-output { border-left-color: #2e7d4f !important; background: #eaf6ef; }
.wpcf7 form:is(.failed, .aborted, .spam) .wpcf7-response-output { border-left-color: #b3261e !important; background: #fdecea; }
@media (max-width: 600px) { .wpcf7 form > p { grid-column: 1 / -1 !important; } }

/* Query pagination (search, archives): pills with a 44px target. */
.wp-block-query-pagination { gap: .5rem !important; align-items: center; }
.wp-block-query-pagination :is(a, .page-numbers.current, .page-numbers.dots) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 .9rem; border: 1px solid var(--vis-line); border-radius: var(--wp--custom--radius--pill); font-size: .875rem; font-weight: 600; color: var(--vis-ink); text-decoration: none; background: var(--wp--preset--color--white); transition: border-color .2s, background .2s; }
.wp-block-query-pagination .page-numbers.dots { border: 0; background: none; min-width: 0; }
.wp-block-query-pagination a:hover { border-color: var(--vis-ink); }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--navy-900); border-color: var(--wp--preset--color--navy-900); color: var(--wp--preset--color--white); }
.wp-block-query-pagination-numbers { display: flex; gap: .5rem; }
.wp-block-query-pagination :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next) { text-transform: uppercase; font-size: .75rem; letter-spacing: .1em; }
/* Footer links: every row is a 24px+ target. */
.vis-footer__list:not(.vis-footer__social) a, .vis-footer__legal a { display: inline-block; padding-block: .2rem; }

/* Contact page: form card beside the contact details. */
.vis-contact { gap: clamp(2rem, 5vw, 5rem) !important; align-items: flex-start !important; }
.vis-contact__form { padding: clamp(1.75rem, 3.5vw, 3rem) !important; background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); border-radius: var(--wp--custom--radius--lg); box-shadow: var(--vis-shadow); }
.vis-contact__form > .wp-block-heading { margin: 0 0 .5rem !important; padding: 0 !important; border: 0 !important; }
.vis-contact__form > .wp-block-heading::before { display: none !important; }
.vis-contact__form > p:not(.is-style-eyebrow) { margin: 0 0 2rem !important; }
.vis-contact__info > * + * { margin-top: 0 !important; }
.vis-contact__block { padding: 1.5rem 0; border-top: 1px solid var(--vis-line); }
.vis-contact__block:first-child { border-top: 0; padding-top: 0; }
.vis-contact__block > * { margin: 0 !important; }
.vis-contact__block > * + * { margin-top: .5rem !important; }
.vis-contact__label { font-family: var(--wp--preset--font-family--body) !important; text-transform: uppercase !important; color: var(--vis-accent-ink) !important; padding: 0 !important; border: 0 !important; }
.vis-contact__label::before { display: none !important; }
.vis-contact__phone a { font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.375rem); font-weight: 600; letter-spacing: -.02em; color: var(--vis-ink) !important; text-decoration: none !important; }
.vis-contact__teams { list-style: none !important; padding: 0 !important; margin: .75rem 0 0 !important; display: grid !important; gap: 0 !important; }
.vis-contact__teams li { display: grid; grid-template-columns: 1fr; gap: .15rem; padding: .7rem 0 !important; border-top: 1px solid var(--vis-line); font-size: .9375rem; }
.vis-contact__teams li::before { display: none !important; }
.vis-contact__teams strong { color: var(--vis-ink); font-weight: 600; }
.vis-contact__teams a { color: var(--vis-muted) !important; text-decoration: none !important; overflow-wrap: anywhere; }
.vis-contact__teams a:hover { color: var(--vis-ink) !important; text-decoration: underline !important; text-decoration-color: var(--wp--preset--color--gold-500) !important; }
.vis-contact__map iframe { display: block; width: 100%; height: clamp(320px, 32vw, 460px); border: 0; border-radius: var(--wp--custom--radius--lg); box-shadow: var(--vis-shadow); }

.vis-contact__map { padding-top: 0 !important; }
/* Eyebrow (Paragraph > Styles > Eyebrow): a short gold label above a heading. */
p.is-style-eyebrow { margin-block: 0 .75rem !important; text-transform: uppercase; color: var(--vis-accent-ink) !important; }

/* Enquiry form block: open in a white card, or a real button that reveals it. */
.vis-enquiry { margin-top: 1.5rem; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); border-radius: var(--wp--custom--radius--lg); box-shadow: var(--vis-shadow); }
/* Engage closing band: the form in a white card on the light page, like Contact. */
.vis-engage__close .vis-enquiry { box-sizing: border-box; padding: clamp(1.75rem, 3.5vw, 3rem); }
.ur-form-cta { margin-top: 1.5rem; }
.ur-form-cta > summary { display: inline-flex !important; align-items: center; gap: .75rem; width: auto !important; min-height: 52px; padding: 0 1.75rem !important; list-style: none; cursor: pointer;
	border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important;
	font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ur-form-cta > summary::-webkit-details-marker { display: none; }
.ur-form-cta > summary::marker { content: ""; }
.ur-form-cta > summary::after { content: "+"; font-size: 1.25rem; line-height: 1; color: var(--vis-accent-ink); transition: transform .3s; }
.ur-form-cta[open] > summary::after { transform: rotate(45deg); }
.ur-form-cta__form { margin-top: 1rem; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); border-radius: var(--wp--custom--radius--lg); box-shadow: var(--vis-shadow); }
.ur-form-cta__title { display: none; }
/* Forms built with form-row / form-group wrappers (older CF7 forms). */
.wpcf7 form > :is(.form-row, .form-group) { grid-column: 1 / -1; margin: 0; }
.wpcf7 .form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.wpcf7 .form-group > p { margin: 0 !important; }
.wpcf7 .contact-form-7-wrapper { display: grid; gap: 1.25rem; }
.wpcf7 .vis-field-label { display: block; margin-bottom: .5rem; font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--navy-900); }
.wpcf7 .vis-field-label .vis-req { color: #b3261e; margin-left: .15em; }
@media (max-width: 600px) { .wpcf7 .form-row { grid-template-columns: 1fr; } }
.wpcf7 label.vis-field-label { display: block !important; }
.wpcf7 textarea { height: 11rem; }

/* 29. Partner logos: always in their original colours (partners' brand rules).
   No filters, tints or blend modes anywhere. Where a logo wall sits on a dark
   section, each logo gets a white tile so dark logos stay visible. */
.vis-logos img, .vis-logos li:hover img,
:where(.vis-scheme-light, .vis-detail, .vis-content, .vis-home > .vis-section--partners) .vis-logos img,
:where(.vis-scheme-light, .vis-detail, .vis-content, .vis-home > .vis-section--partners) .vis-logos li.has-bg :is(img, img:hover),
.vis-logos li.has-bg img, .vis-logos li.has-bg:hover img { filter: none !important; opacity: 1 !important; }
.vis-logos li, .vis-logos li.has-bg { mix-blend-mode: normal !important; }
:where(.vis-scheme-dark, .is-style-section-navy, .is-style-section-deep) .vis-logos li { background: var(--wp--preset--color--white); border-radius: var(--wp--custom--radius--lg); padding: 1rem; }
/* Logo wall: logos sit straight on the page colour (logos supplied on a white
   box have transparent copies in the Media Library), evenly spaced, sized by
   visible area (site.js). White tiles only on dark sections. */
.vis-logos .wp-block-post-template { gap: clamp(2.5rem, 4vw, 3.75rem) 0 !important; }
.vis-logos .wp-block-post-template > li, .vis-logos li { flex: 0 0 20% !important; display: flex; align-items: center; justify-content: center; }
.vis-logos li a { display: flex; align-items: center; justify-content: center; }
@media (max-width: 900px) { .vis-logos .wp-block-post-template > li, .vis-logos li { flex-basis: 33.333% !important; } }
@media (max-width: 520px) { .vis-logos .wp-block-post-template > li, .vis-logos li { flex-basis: 50% !important; } }

/* Lead paragraph (Paragraph > Styles > Lead): the page's opening statement. */
.vis-content p.is-style-lead, p.is-style-lead { font-size: var(--vis-lead-size) !important; line-height: 1.35 !important; font-weight: 500; letter-spacing: -.015em; color: var(--vis-ink) !important; max-width: 30ch; text-wrap: pretty; }

/* 30. Our sports ----------------------------------------------------------------- */
.vis-sports-intro { align-items: start !important; margin-bottom: clamp(2.5rem, 5vw, 4rem) !important; }
.vis-sports-intro .wp-block-column:first-child p.is-style-lead { max-width: 24ch; }
.vis-paths { gap: 1rem !important; }
.vis-path { display: flex; flex-direction: column; height: 100%; transition: transform .5s var(--vis-ease), box-shadow .5s var(--vis-ease); }
.vis-path:hover { border-color: var(--vis-surface-line-hover); }
.vis-path > * { margin: 0 !important; }
.vis-path > h3 { margin: .25rem 0 .6rem !important; font-size: var(--vis-h3-size) !important; }
.vis-path > p:not(.is-style-eyebrow):not(.vis-path__link) { color: var(--vis-muted); flex: 1; }
.vis-path__link { margin-top: 1.5rem !important; }
.vis-path__link a { font-weight: 600; color: var(--vis-ink) !important; text-decoration: none !important; padding-bottom: .15rem; border-bottom: 2px solid var(--wp--preset--color--gold-500); }
.vis-path__link a::after { content: " ↓"; color: var(--vis-accent-ink); }
.vis-path__link a::before { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.vis-path { position: relative; }

/* Program tiles: full-bleed photo, name on a soft fade, on the dark band. */
.vis-sports-programs { background-color: var(--wp--preset--color--navy-900) !important; }
.vis-sports-programs > h2 { margin-bottom: clamp(2rem, 4vw, 3rem) !important; }
.vis-sports-programs .vis-legacy-grid { gap: .75rem !important; }
.vis-sports-programs .vis-card--program { position: relative; aspect-ratio: 3 / 4; padding: 0 !important; border: 0 !important; border-radius: var(--wp--custom--radius--lg); overflow: hidden; background: var(--wp--preset--color--navy-800) !important; }
.vis-sports-programs .vis-card--program > figure { position: absolute; inset: 0; margin: 0 !important; height: 100%; }
.vis-sports-programs .vis-card--program > figure img { width: 100%; height: 100% !important; object-fit: cover; aspect-ratio: auto !important; } /* sports have no pages: no hover zoom or arrow, nothing suggests a click */
.vis-sports-programs .vis-card--program .vis-card__body { position: absolute; inset: auto 0 0; padding: 4.5rem 1.25rem 1.25rem !important; background: linear-gradient(180deg, rgba(6, 22, 43, 0), rgba(6, 22, 43, .92)); display: flex; justify-content: space-between; gap: 1rem; }
.vis-sports-programs .vis-card--program :is(.vis-card__title, .vis-card__title a) { margin: 0; color: var(--wp--preset--color--white) !important; font-size: var(--vis-card-title-size) !important; text-decoration: none !important; }
@media (max-width: 781px) { .vis-sports-programs .vis-card--program { aspect-ratio: 3 / 4; } }

/* Sports list: clean columns with hairlines. */
.vis-content ul.vis-sport-list { list-style: none !important; padding: 0 !important; margin-top: 1.25rem !important; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1.5rem !important; }
.vis-content ul.vis-sport-list li { padding: .6rem 0 !important; border-top: 1px solid var(--vis-line); color: var(--vis-ink) !important; font-weight: 500; }
.vis-content ul.vis-sport-list li::before { display: none !important; }
@media (max-width: 600px) { .vis-content ul.vis-sport-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
html { scroll-behavior: smooth; }
#sport-programs, #individual-scholarships, #future-talent { scroll-margin-top: 6rem; }
.vis-sports-programs .vis-card--program .vis-card__body { flex-direction: row !important; align-items: flex-end !important; }
.vis-sports-programs .vis-card--program .vis-card__title { flex: 1; text-align: left; }
/* A section whose background differs from the one before keeps its full top spacing. */
.vis-content.vis-scheme-dark, .vis-content.vis-scheme-dark + .vis-content { padding-top: var(--vis-block-space) !important; }
.vis-content.vis-scheme-dark { padding-bottom: var(--vis-block-space) !important; }
.vis-sports-intro p.is-style-lead { max-width: 34ch !important; }
@media (max-width: 781px) {
	.vis-sports-programs .vis-legacy-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .5rem !important; }
	.vis-sports-programs .vis-card--program .vis-card__body { padding: 3rem .85rem .85rem !important; }
	.vis-sports-programs .vis-card--program :is(.vis-card__title, .vis-card__title a) { font-size: 1rem !important; }
}

/* 31. Dropdown refinements: each highlight hugs its own link, clear gaps,
   link columns at a readable width, names in DM Sans (title keeps display). */
@media (min-width: 600px) {
	.vis-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .vis-mega {
		grid-template-columns: minmax(17rem, 22rem) repeat(var(--cols, 3), minmax(0, 19rem)) !important; justify-content: start;
		gap: .5rem 1.25rem !important; align-items: start;
	}
	.vis-mega__intro { margin-right: 1.75rem !important; padding-right: 2.5rem !important; }
	.vis-mega > li:not(.vis-mega__intro) { align-self: start; }
	.vis-mega .wp-block-navigation-item__content {
		height: auto !important; gap: .3rem !important; padding: .9rem 3rem .9rem 1.1rem !important; border-radius: var(--wp--custom--radius--lg) !important;
		box-shadow: inset 2px 0 0 transparent; transition: background-color .25s ease, box-shadow .25s ease !important;
	}
	.vis-mega .wp-block-navigation-item__label { font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; text-transform: none !important; font-weight: 600; font-size: 1.0625rem !important; letter-spacing: -.01em !important; line-height: 1.3 !important; }
	.vis-mega__desc { font-size: .875rem !important; }
	.vis-mega .wp-block-navigation-item__content::after { top: 50% !important; margin-top: -11px; right: 1rem !important; }
	.vis-mega > li:is(:hover, :focus-within) > .wp-block-navigation-item__content { background-color: rgba(255, 255, 255, .07) !important; box-shadow: inset 2px 0 0 var(--wp--preset--color--gold-500); }
	/* The page you're on: a gold mark only, no box, so it never reads as hovered. */
	.vis-mega > li.is-current:not(:hover):not(:focus-within) > .wp-block-navigation-item__content { background-color: transparent !important; box-shadow: inset 2px 0 0 var(--wp--preset--color--gold-500); }
	.vis-mega > li.is-current:not(:hover):not(:focus-within) > .wp-block-navigation-item__content::after { opacity: 0 !important; }
}

/* 32. Profile panel (assets/js/profile.js) ----------------------------------------- */
.vis-card.has-profile { position: relative; cursor: pointer; }
.vis-card.has-profile .vis-card__more-body { display: none !important; }
.vis-card.has-profile .vis-card__more summary { display: inline-flex; align-items: center; gap: .45rem; list-style: none; text-transform: uppercase; }
.vis-card.has-profile .vis-card__more summary::-webkit-details-marker { display: none; }
.vis-card.has-profile .vis-card__more summary::marker { content: ""; }
.vis-card.has-profile .vis-card__more summary::after { content: "→"; transition: transform .4s var(--vis-ease); }
.vis-card.has-profile:hover .vis-card__more summary::after { transform: translateX(4px); }
.vis-card.has-profile .vis-card__more summary:focus-visible { outline: none; }
.vis-card.has-profile:has(summary:focus-visible) { outline: var(--wp--custom--focus--ring); outline-offset: 3px; }
.vis-card.has-profile figure img { transition: scale .6s var(--vis-ease); }
.vis-card.has-profile:hover figure img { scale: 1.03; }

.vis-profile { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; overflow: hidden; color: var(--wp--preset--color--navy-900); }
.vis-profile::backdrop { background: rgba(3, 25, 63, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: vis-fade .35s ease both; }
.vis-profile.is-closing::backdrop { animation: vis-fade .26s ease reverse both; }
.vis-profile__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100%); display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain;
	background: var(--wp--preset--color--white); box-shadow: -30px 0 80px -20px rgba(3, 25, 63, .45); animation: vis-panel-in .55s var(--vis-ease) both;
}
.vis-profile.is-closing .vis-profile__panel { animation: vis-panel-out .26s ease-in both; }
@keyframes vis-fade { from { opacity: 0; } }
@keyframes vis-panel-in { from { transform: translateX(100%); } }
@keyframes vis-panel-out { to { transform: translateX(100%); } }
.vis-profile__close { position: absolute; top: 1rem; right: 1rem; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255, 255, 255, .92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3L3 13' stroke='%230b233f' stroke-width='1.8'/%3E%3C/svg%3E") center / 14px no-repeat; box-shadow: 0 4px 14px rgba(3, 25, 63, .2); transition: transform .3s var(--vis-ease); }
.vis-profile__close:hover { transform: rotate(90deg); }
.vis-profile__close:focus-visible { outline: var(--wp--custom--focus--ring); outline-offset: 2px; }
.vis-profile__photo { flex: none; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--wp--preset--color--navy-800); }
.vis-profile__photo :is(img, .vis-initials) { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; display: block; }
/* Some portraits were exported with transparent rounded corners (Figma "Mask group" PNGs); a slight overscale crops them off so every photo meets the frame square. */
.vis-profile__photo img { transform: scale(1.06); transform-origin: center; }
.vis-profile__body { padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 2.75rem) 2rem; }
.vis-profile__group { margin: 0 0 .6rem; text-transform: uppercase; color: #002c76; }
.vis-profile__group:empty { display: none; }
.vis-profile__name { margin: 0 0 1.5rem; font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; text-transform: none !important; font-weight: 600; font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem) !important; line-height: 1.1; letter-spacing: -.025em; color: var(--wp--preset--color--navy-900) !important; }
.vis-profile__text { font-size: 1rem; line-height: 1.7; color: rgba(11, 35, 63, .78); }
.vis-profile__text p { margin: 0 0 1rem; }
.vis-profile__text a { color: var(--wp--preset--color--navy-900); text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; overflow-wrap: anywhere; }
.vis-profile__nav { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(11, 35, 63, .1); }
.vis-profile__step { display: grid; gap: .2rem; padding: 1.1rem clamp(1.5rem, 4vw, 2.75rem); border: 0; background: none; cursor: pointer; text-align: left; font: inherit; color: var(--wp--preset--color--navy-900); transition: background .25s; }
.vis-profile__step.is-next { text-align: right; border-left: 1px solid rgba(11, 35, 63, .1); }
.vis-profile__step:hover { background: #f3f4f6; }
.vis-profile__step:focus-visible { outline: var(--wp--custom--focus--ring); outline-offset: -3px; }
.vis-profile__dir { text-transform: uppercase; color: #002c76; }
.vis-profile__step.is-prev .vis-profile__dir::before { content: "← "; }
.vis-profile__step.is-next .vis-profile__dir::after { content: " →"; }
.vis-profile__who { font-weight: 600; font-size: .9375rem; }
html.vis-profile-open { overflow: hidden; }
@media (max-width: 700px) {
	.vis-profile__panel { top: auto; left: 0; width: 100%; max-height: 92vh; border-radius: 12px 12px 0 0; animation-name: vis-sheet-in; }
	.vis-profile.is-closing .vis-profile__panel { animation-name: vis-sheet-out; }
	.vis-profile__photo { aspect-ratio: 16 / 10; }
	@keyframes vis-sheet-in { from { transform: translateY(100%); } }
	@keyframes vis-sheet-out { to { transform: translateY(100%); } }
}
@media (prefers-reduced-motion: reduce) { .vis-profile__panel, .vis-profile::backdrop { animation: none !important; } }
.vis-profile__panel:focus { outline: none; }

/* Text placed straight in a wide section (e.g. an intro under a section heading)
   lines up with the heading instead of centring in the 1600px column. */
.vis-content.is-layout-constrained:not(.vis-history *) > :is(p, .wp-block-list, ul, ol):not(.alignwide):not(.alignfull) { margin-left: max(0px, calc((100% - 1600px) / 2)) !important; margin-right: auto !important; }
.vis-content > p + :is(.vis-legacy-grid, .vis-carousel, ul) { margin-top: clamp(2rem, 4vw, 3rem) !important; }
.vis-content > h2 + p { margin-top: 0 !important; font-size: 1.0625rem; }
/* Person cards (leadership, experts…): full-bleed portrait, name and "Read bio"
   on a soft fade, one baseline across the row. */
.vis-card--person { position: relative !important; aspect-ratio: 3 / 4; overflow: hidden; padding: 0 !important; border: 0 !important; background: var(--wp--preset--color--navy-800) !important; }
.vis-card--person > :is(.wp-block-post-featured-image, figure) { position: absolute !important; inset: 0; margin: 0 !important; height: 100%; }
.vis-card--person > :is(.wp-block-post-featured-image, figure) :is(img, .vis-initials) { width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; object-position: center 20%; }
.vis-card--person .vis-card__body { position: absolute !important; inset: auto 0 0; margin: 0 !important; display: flex; flex-direction: column; justify-content: flex-end; gap: .6rem !important;
	min-height: 45%; padding: 4rem 1.4rem 1.4rem !important; background: linear-gradient(180deg, rgba(6, 22, 43, 0) 0%, rgba(6, 22, 43, .78) 45%, rgba(6, 22, 43, .94) 100%) !important; }
.vis-card--person :is(.vis-card__name, .vis-card__name a) { margin: 0 !important; color: var(--wp--preset--color--white) !important; font-size: var(--vis-card-title-size) !important; line-height: 1.2 !important; text-wrap: balance; }
.vis-card--person .vis-card__more { margin: 0; }
.vis-card--person .vis-card__more summary { color: var(--vis-accent-ink) !important; }

/* 33. Our Connection to Country ------------------------------------------------------
   VIS First Nations artwork (Katie Bugden Art) used as supplied: song lines run
   through the dark bands; the artwork key pairs each meaning with its symbol. */
.vis-country { position: relative; overflow: hidden; }
.vis-country > * { position: relative; z-index: 1; }
.vis-country--intro::before, .vis-country--art::before {
	content: ""; position: absolute; z-index: 0; pointer-events: none; top: -2rem; bottom: -2rem; width: clamp(140px, 13vw, 220px);
	background: url(../images/country/songline-orange-long.webp) center / contain no-repeat;
}
.vis-country--intro::before { right: clamp(-2rem, -1vw, 0rem); opacity: .9; }
.vis-country--art::before { left: clamp(-3rem, -2vw, -1rem); background-image: url(../images/country/songline-white-long.webp); opacity: .35; }
.vis-country--intro .vis-country__intro { gap: clamp(2rem, 6vw, 7rem) !important; }
.vis-country--intro p.is-style-lead { max-width: 30ch !important; margin-bottom: 1.5rem !important; }
.vis-country--intro .wp-block-quote { margin: 0 0 2.5rem !important; padding: 3.5rem 0 0 !important; border: 0 !important; position: relative; }
.vis-country--intro .wp-block-quote::before { content: ""; position: absolute; top: 0; left: 0; width: 56px; height: 50px; background: url(../images/country/meeting-place.webp) left top / contain no-repeat; }
.vis-country--intro .wp-block-quote p { font-size: clamp(1.125rem, 1rem + .45vw, 1.375rem) !important; line-height: 1.5; font-weight: 500; color: var(--wp--preset--color--white) !important; }
.vis-country--intro .wp-block-quote cite { color: var(--vis-accent-ink) !important; }
.vis-country__person { display: grid; grid-template-columns: 88px 1fr; grid-template-rows: auto auto auto; column-gap: 1.25rem; align-items: center; padding: 1rem; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--wp--custom--radius--lg); }
.vis-country__person > * { margin: 0 !important; }
.vis-country__person > .wp-block-image { grid-row: 1 / span 3; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; box-shadow: none !important; }
.vis-country__person > .wp-block-image img { width: 100%; height: 100% !important; aspect-ratio: 1 !important; object-fit: cover; object-position: center 25%; }
.vis-country__person h3 { font-size: var(--vis-card-title-size) !important; margin: .15rem 0 .1rem !important; padding: 0 !important; border: 0 !important; }
.vis-country__person h3::before { display: none !important; }
.vis-country__person p:not(.is-style-eyebrow) { color: var(--vis-muted); font-size: .9375rem; }
.vis-country__person p.is-style-eyebrow { margin: 0 !important; align-self: end; }

.vis-country__commit { gap: clamp(2rem, 5vw, 5rem) !important; align-items: start !important; }
.vis-country__commit .wp-block-image img { aspect-ratio: 3 / 4 !important; }
.vis-country__commit .wp-block-details summary { font-size: 1.1875rem !important; }

/* Artwork key */
.vis-country--art .wp-block-image { box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .7) !important; }
.vis-country--art .wp-block-image img { aspect-ratio: 1 !important; }
.vis-art-credit { margin-top: .9rem !important; font-size: .8125rem !important; color: var(--vis-muted) !important; }
.vis-content ul.vis-art-key { list-style: none !important; padding: 0 !important; margin-top: 2rem !important; display: grid !important; gap: 0 !important; }
.vis-content ul.vis-art-key li { display: grid; grid-template-columns: 64px 1fr; gap: 1.25rem; align-items: center; padding: 1.25rem 0 !important; border-top: 1px solid rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .82) !important; line-height: 1.6; }
.vis-content ul.vis-art-key li::before { position: static !important; content: "" !important; width: 64px !important; height: 64px !important; border-radius: 0; background: center / contain no-repeat !important; }
.vis-content ul.vis-art-key li.is-meeting::before { background-image: url(../images/country/meeting-place-full.webp) !important; }
.vis-content ul.vis-art-key li.is-songline-white::before { background-image: url(../images/country/songline-white.webp) !important; }
.vis-content ul.vis-art-key li.is-songline-orange::before { background-image: url(../images/country/songline-orange.webp) !important; }
.vis-content ul.vis-art-key li.is-background::before { background: url(/wp-content/uploads/2026/01/OCTC_First-Nations-Artwork-1-1024x768.webp) 30% 20% / 260% no-repeat !important; border-radius: 50%; }

.vis-country__hear { gap: clamp(2rem, 5vw, 5rem) !important; align-items: start !important; }
.vis-country__hear .wp-block-image img { aspect-ratio: 3 / 4 !important; }
@media (max-width: 781px) {
	.vis-country--intro .vis-country__intro { padding-right: 0; }
	.vis-country--intro::before { width: 90px; top: auto; height: 420px; bottom: -3rem; opacity: .5; }
	.vis-country--art::before { display: none; }
}
.vis-country--intro::before { top: 0; bottom: 0; background-size: auto 112%; background-position: center; width: clamp(160px, 14vw, 240px); }
/* No background song lines (decision 15/10/2026): the artwork lives in the quote mark and the artwork key. */
.vis-country--intro::before, .vis-country--art::before { display: none !important; }
.vis-country--intro .vis-country__intro { padding-right: 0; }

/* Artwork scroll story (motion.js): the layers stack over the still image. */
.vis-country--art .wp-block-image.has-stage { position: relative; }
.vis-country--art .wp-block-image.has-stage, .vis-country--art .wp-block-image.has-stage img { aspect-ratio: 4 / 3 !important; }
.vis-country--art .wp-block-image.has-stage > img { visibility: hidden; }
.vis-art-stage { position: absolute; inset: 0; z-index: 1; background: transparent; overflow: hidden; }
.vis-country--art .wp-block-image.has-stage { box-shadow: none !important; background: transparent !important; overflow: visible !important; }
.vis-art-stage .vis-art-layer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vis-art-layer:is(.is-songlines, .is-paths) {
	-webkit-mask-image: radial-gradient(circle at 50% 52%, #000 var(--r, 0px), transparent calc(var(--r, 0px) + 140px));
	mask-image: radial-gradient(circle at 50% 52%, #000 var(--r, 0px), transparent calc(var(--r, 0px) + 140px));
}
/* With the scroll story running, each line of the key appears as its layer draws (motion.js). */
.vis-country--art ul.vis-art-key li { transition: opacity .7s var(--vis-ease), transform .7s var(--vis-ease), color .5s ease; }
.vis-country--art:has(.has-stage) ul.vis-art-key:has(li.is-active) li:not(.is-active) { opacity: .5; }
.vis-country--art:has(.has-stage) ul.vis-art-key li.is-active { opacity: 1; transform: none; color: var(--wp--preset--color--white) !important; }
.vis-country--art:has(.has-stage) ul.vis-art-key li::before { transition: transform .9s var(--vis-ease); }
.vis-country--art:has(.has-stage) ul.vis-art-key:has(li.is-active) li:not(.is-active)::before { transform: scale(.85); }

/* 34. Key dates & Games strip (blocks/countdown) -------------------------------------
   One slim bar. Countdown: "Next up", the event, a tabular clock, Key dates.
   Games: LIVE, the Games, the VIS tally as medal chips, results rotating. */
.vis-strip { position: relative; z-index: 30; display: flex !important; align-items: center; justify-content: center; flex-wrap: nowrap !important; gap: 0 clamp(1rem, 2vw, 1.75rem) !important; padding-inline: var(--vis-gutter) !important; font-family: var(--wp--preset--font-family--body); }
.vis-strip > p { margin: 0 !important; }
.vis-strip__kicker, .vis-strip__live { display: inline-flex; align-items: center; gap: .55rem; font-size: .6875rem !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--vis-accent-ink); white-space: nowrap; }
.vis-strip__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 rgba(248, 152, 29, .6); animation: vis-live 2s ease-out 3; }
.vis-strip .vis-countdown__label::before { display: none !important; }
.vis-strip__event { font-style: normal !important; font-weight: 600; font-size: clamp(.875rem, .8rem + .3vw, 1rem) !important; letter-spacing: -.005em !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.vis-strip__event a { color: inherit; text-decoration: none; }
.vis-strip__event a:hover { text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); }
.vis-strip .vis-countdown__clock { display: inline-flex; gap: .55rem !important; padding: .3rem .75rem; border-radius: var(--wp--custom--radius--pill); background: rgba(255, 255, 255, .07); }
.vis-strip .vis-countdown__unit { gap: .1rem; }
.vis-strip .vis-countdown__unit b { font-family: var(--wp--preset--font-family--body) !important; font-style: normal !important; font-weight: 600 !important; font-size: .9375rem !important; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.vis-strip .vis-countdown__unit small { font-size: .75rem !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; color: rgba(255, 255, 255, .55) !important; }
.vis-strip .vis-countdown__sep { display: none; }

.vis-strip__dates { position: relative; }
.vis-strip__toggle { display: inline-flex; align-items: center; gap: .4rem; min-height: 32px; padding: 0 .85rem; border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--wp--custom--radius--pill); background: none; color: var(--wp--preset--color--white); font: inherit; font-size: .75rem; font-weight: 600; cursor: pointer; white-space: nowrap; transition: border-color .2s, background .2s; }
.vis-strip__toggle::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .3s; }
.vis-strip__toggle[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
.vis-strip__toggle:hover, .vis-strip__toggle[aria-expanded="true"] { border-color: var(--wp--preset--color--gold-500); background: rgba(255, 255, 255, .06); }
.vis-strip__toggle:focus-visible { outline: var(--wp--custom--focus--ring); outline-offset: 2px; }
.vis-strip__panel { position: absolute; top: calc(100% + 12px); right: 0; z-index: 40; width: min(420px, calc(100vw - 2rem)); padding: 1.25rem 1.25rem .5rem; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); color: var(--wp--preset--color--navy-900); box-shadow: 0 24px 60px -18px rgba(3, 25, 63, .55); animation: vis-pop .3s var(--vis-ease) both; }
@keyframes vis-pop { from { opacity: 0; transform: translateY(-6px); } }
.vis-strip__panel-title { margin: 0 0 .5rem !important; font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #002c76; }
.vis-strip__panel ol { list-style: none; margin: 0; padding: 0; }
.vis-strip__panel li { display: grid; grid-template-columns: 6.5rem 1fr auto; gap: .25rem 1rem; align-items: center; padding: .85rem 0; border-top: 1px solid rgba(11, 35, 63, .1); font-size: .875rem; }
.vis-strip__panel li:first-child { border-top: 0; }
.vis-strip__panel time { color: rgba(11, 35, 63, .65); font-variant-numeric: tabular-nums; }
.vis-strip__name { font-weight: 600; line-height: 1.3; }
.vis-strip__name a { color: inherit; }
.vis-strip__ics { padding: .35rem .65rem; border: 1px solid rgba(11, 35, 63, .2); border-radius: var(--wp--custom--radius--pill); background: none; color: var(--wp--preset--color--navy-900); font: inherit; font-size: .75rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.vis-strip__ics:hover { background: var(--wp--preset--color--navy-900); color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--navy-900); }

/* Games mode */
.vis-strip--games { background: linear-gradient(90deg, var(--wp--preset--color--navy-950), var(--wp--preset--color--blue-700) 55%, var(--wp--preset--color--navy-950)) !important; }
.vis-strip__live { color: #ff5a4f; }
.vis-strip__live .vis-strip__dot { box-shadow: 0 0 0 0 rgba(255, 90, 79, .6); animation-name: vis-live-red; }
@keyframes vis-live-red { 70%, 100% { box-shadow: 0 0 0 10px rgba(255, 90, 79, 0); } }
.vis-strip__games { font-weight: 700; font-size: .9375rem !important; white-space: nowrap; }
.vis-strip__tally { display: inline-flex; align-items: center; gap: .4rem; }
.vis-strip__tally-label { margin-right: .3rem; font-size: .75rem; color: rgba(255, 255, 255, .6); white-space: nowrap; }
.vis-strip__medal { display: inline-grid; place-items: center; height: 30px; border-radius: 50%; font-size: .875rem; font-variant-numeric: tabular-nums; color: #1a1205; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .18); }
.vis-strip__medal.is-gold { background: linear-gradient(145deg, #ffe08a, #e8b54a 60%, #c99227); }
.vis-strip__medal.is-silver { background: linear-gradient(145deg, #f3f6f9, #cfd6de 60%, #a9b3be); }
.vis-strip__medal.is-bronze { background: linear-gradient(145deg, #f0c09a, #c98a55 60%, #9e6435); color: #fff; }
.vis-strip__results { position: relative; list-style: none; margin: 0; padding: 0 0 0 1rem; border-left: 1px solid rgba(255, 255, 255, .15); height: 1.4em; min-width: 0; flex: 0 1 34rem; overflow: hidden; font-size: .875rem; }
.vis-strip__results li { position: absolute; inset: 0 0 0 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transform: translateY(100%); transition: opacity .5s ease, transform .6s var(--vis-ease); }
.vis-strip__results li.is-on { opacity: 1; transform: none; }
.vis-strip__results li:is(.is-gold, .is-silver, .is-bronze)::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: .5rem; border-radius: 50%; vertical-align: 1px; background: #e8b54a; }
.vis-strip__results li.is-silver::before { background: #cfd6de; }
.vis-strip__results li.is-bronze::before { background: #c98a55; }
.vis-strip__results a { color: inherit; text-decoration: none; }
.vis-strip__results a:hover { text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); }
.vis-strip__more { flex: none; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--vis-accent-ink); text-decoration: none; white-space: nowrap; }
.vis-strip__more::after { content: " →"; }

@media (max-width: 900px) {
	.vis-strip__kicker, .vis-strip__tally-label, .vis-strip__more { display: none; }
	.vis-strip--games .vis-strip__results { display: none; }
}
@media (max-width: 599px) {
	.vis-strip { gap: 0 .65rem !important; }
	.vis-strip__event { max-width: 9.5rem; font-size: .8125rem !important; }
	.vis-strip .vis-countdown__clock { padding: .25rem .55rem; gap: .35rem !important; }
	.vis-strip .vis-countdown__unit b { font-size: .8125rem !important; }
	.vis-strip [data-unit="sec"], .vis-strip [data-unit="sec"] + small { display: none; }
	.vis-strip__toggle { font-size: 0; gap: 0; padding: 0 .6rem; }
	.vis-strip__toggle::before { content: "Dates"; font-size: .6875rem; margin-right: .35rem; }
	.vis-strip__panel { position: fixed; top: calc(var(--vis-admin-h, 0px) + var(--vis-bar-h, 48px) + 8px); left: 1rem; right: 1rem; width: auto; }
	.vis-strip__panel li { grid-template-columns: 1fr auto; }
	.vis-strip__panel time { grid-column: 1 / -1; font-size: .75rem; }
	.vis-strip__games { font-size: .8125rem !important; max-width: 11rem; overflow: hidden; text-overflow: ellipsis; }
}
@media (prefers-reduced-motion: reduce) { .vis-strip__dot { animation: none; } .vis-strip__results li { transition: none; } }

.vis-art-layer.is-background { -webkit-mask-image: radial-gradient(circle at 50% 52%, #000 var(--r, 0px), transparent calc(var(--r, 0px) + 220px)); mask-image: radial-gradient(circle at 50% 52%, #000 var(--r, 0px), transparent calc(var(--r, 0px) + 220px)); }
/* The artwork never zooms on hover: its layers must stay registered. */
.vis-country--art .wp-block-image img, .vis-country--art .wp-block-image:hover img { transform: none !important; scale: none !important; filter: none !important; transition: none !important; }
.vis-strip .vis-strip__event { font-family: var(--wp--preset--font-family--body) !important; text-transform: none !important; }
.vis-strip__medal { width: 30px; min-width: 30px; padding: 0 !important; aspect-ratio: 1; font-weight: 700; }
@media (max-width: 599px) { .vis-strip__medal { width: 26px; min-width: 26px; height: 26px; font-size: .8125rem; } }

/* 35. History pages (Award of Excellence, Our champions): the intro stays on the
   dark canvas as a lead statement, centred under the title, no box. */
.vis-history .vis-content { background: none !important; padding: 0 !important; }
.vis-history__intro { padding-bottom: clamp(3rem, 6vw, 5rem) !important; }
.vis-history__intro .vis-content > p { max-width: 46ch !important; margin: 0 auto !important; text-align: center; text-wrap: balance;
	font-size: clamp(1.1875rem, 1rem + .6vw, 1.5rem) !important; line-height: 1.55 !important; font-weight: 400; color: rgba(255, 255, 255, .82) !important; }
.vis-history__intro .vis-content > p + p { margin-top: 1rem !important; }
.vis-history__intro:has(p)::after { content: ""; display: block; width: 48px; height: 2px; margin: clamp(2rem, 4vw, 3rem) auto 0; background: var(--wp--preset--color--gold-500); }
.vis-history__intro .vis-content.is-layout-constrained > p { margin-left: auto !important; margin-right: auto !important; }
.vis-history__intro:not(:has(p)) { padding-bottom: 0 !important; }
main.vis-history .vis-history__intro .vis-content > p.wp-block-paragraph { margin-left: auto !important; margin-right: auto !important; }

/* 36. Research Council --------------------------------------------------------------- */
.vis-rc__intro { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
.vis-rc__intro p.is-style-lead { max-width: 30ch !important; margin-bottom: 1.5rem !important; }
.vis-rc__expert { position: relative; overflow: hidden; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--navy-900); box-shadow: var(--vis-shadow); }
.vis-rc__expert > * { margin: 0 !important; }
.vis-rc__expert .wp-block-image { box-shadow: none !important; }
.vis-rc__expert .wp-block-image img { aspect-ratio: 4 / 3 !important; object-fit: cover; object-position: center 25%; }
.vis-rc__expert > p, .vis-rc__expert > h3 { padding-inline: 1.5rem !important; color: var(--wp--preset--color--white) !important; }
.vis-rc__expert > p.is-style-eyebrow { padding-top: 1.25rem !important; color: var(--vis-accent-ink) !important; }
.vis-rc__expert > h3 { font-size: var(--vis-card-title-size) !important; margin: .25rem 0 .2rem !important; padding-top: 0 !important; border: 0 !important; }
.vis-rc__expert > h3::before { display: none !important; }
.vis-rc__expert > p:last-child { padding-bottom: 1.4rem !important; color: rgba(255, 255, 255, .7) !important; }

.vis-rc__council { gap: clamp(2rem, 5vw, 5rem) !important; align-items: start !important; }
.vis-rc__council .wp-block-image img { aspect-ratio: 3 / 4 !important; }
.vis-rc__duties { display: grid; margin-top: 1.5rem !important; }
.vis-rc__duty { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--vis-line); }
.vis-rc__duty > p { margin: 0 !important; color: var(--vis-ink) !important; line-height: 1.55; }
p.vis-rc__num { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: 1.375rem !important; line-height: 1.1 !important; color: var(--vis-accent-ink) !important; }

.vis-rc__dark > h2 { margin-bottom: clamp(2rem, 4vw, 3rem) !important; }
.vis-rc__priorities { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.vis-rc__priority { padding: clamp(1.5rem, 2.5vw, 2rem); border-radius: var(--wp--custom--radius--lg); background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); transition: border-color .3s, transform .5s var(--vis-ease); }
.vis-rc__priority:hover { border-color: rgba(248, 152, 29, .55); }
.vis-rc__priority > * { margin: 0 !important; }
.vis-rc__priority p.vis-rc__num { font-size: 2.5rem !important; line-height: 1 !important; }
.vis-rc__priority h3 { margin: 1.5rem 0 1rem !important; font-size: var(--vis-h3-size) !important; padding: 0 !important; border: 0 !important; }
.vis-rc__priority h3::before { display: none !important; }
.vis-rc__priority .wp-block-list { gap: .5rem !important; }
.vis-rc__priority .wp-block-list li { color: rgba(255, 255, 255, .78) !important; }

.vis-rc__ways { gap: 1.25rem !important; align-items: stretch !important; margin-top: clamp(2rem, 4vw, 3rem) !important; }
.vis-rc__apply { display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); box-shadow: 0 24px 48px -36px rgba(11, 35, 63, .35); }
.vis-rc__apply > .wp-block-image { margin: 0 !important; box-shadow: none !important; }
.vis-rc__apply > .wp-block-image img { aspect-ratio: 16 / 9 !important; object-fit: cover; }
.vis-rc__apply-body { display: flex; flex-direction: column; flex: 1; padding: clamp(1.5rem, 3vw, 2.5rem); }
.vis-rc__apply-body > * { margin: 0 0 1rem !important; }
.vis-rc__apply-body > h3 { margin: .25rem 0 .75rem !important; font-size: var(--vis-h3-size) !important; padding: 0 !important; border: 0 !important; }
.vis-rc__apply-body > h3::before { display: none !important; }
.vis-rc__apply-body > .wp-block-buttons { margin: auto 0 0 !important; padding-top: 1rem; }
.vis-content ul.vis-rc__checks { gap: .65rem !important; }
.vis-content ul.vis-rc__checks li { padding-left: 1.75rem !important; }
.vis-content ul.vis-rc__checks li::before { width: 1rem !important; height: 1rem !important; top: .3em !important; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' stroke='%230b233f' stroke-width='1.8' fill='none'/%3E%3C/svg%3E") center / 10px no-repeat !important; }
.vis-rc__note { font-size: .9375rem; padding: 1rem 1.1rem; border-radius: var(--wp--custom--radius--lg); background: #f3f4f6; }

.vis-rc__ask { gap: clamp(2rem, 5vw, 5rem) !important; align-items: start !important; }
.vis-rc__ask .vis-enquiry { margin-top: 0; }
@media (max-width: 1100px) { .vis-rc__priorities { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 781px) { .vis-rc__duties { grid-template-columns: 1fr; } .vis-rc__priorities { grid-template-columns: 1fr; } }
.vis-rc__duties { grid-template-columns: 1fr !important; gap: 0 !important; }
.vis-rc__duty { align-items: baseline; }
.vis-rc__duty:last-child { border-bottom: 1px solid var(--vis-line); }
.vis-rc__priorities > *, .vis-rc__duties > * { margin-block: 0 !important; }

/* 37. Publications ------------------------------------------------------------------
   Three layouts (Publications block > Layout): large cards, a cover shelf for
   reports and magazines (first page of the PDF), a document list for policies. */
.vis-pubs { list-style: none !important; margin: clamp(1.5rem, 3vw, 2.5rem) 0 0 !important; padding: 0 !important; }
.vis-pubs > li { margin: 0 !important; padding: 0 !important; }
.vis-pubs > li::before { display: none !important; }
.vis-pubs .vis-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.vis-pubs .vis-card { position: relative; }
.vis-pubs .vis-card__download { position: relative; z-index: 2; }

/* Large cards */
.vis-pubs--featured { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.vis-pubs--featured .vis-card { height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white) !important; border: 1px solid var(--vis-line) !important; transition: transform .5s var(--vis-ease), box-shadow .5s var(--vis-ease); }
.vis-pubs--featured figure { margin: 0 !important; aspect-ratio: 16 / 9; overflow: hidden; }
.vis-pubs--featured figure img { width: 100%; height: 100% !important; object-fit: cover; transition: scale .6s var(--vis-ease); }
.vis-pubs--featured .vis-card:hover figure img { scale: 1.03; }
.vis-pubs--featured .vis-card__body { flex: 1; display: flex; flex-direction: column; gap: .9rem; padding: 1.5rem !important; }
.vis-pubs--featured :is(.vis-card__title, .vis-card__title a) { color: var(--vis-ink) !important; font-size: var(--vis-card-title-size) !important; line-height: 1.25; text-decoration: none; }
.vis-pubs--featured .vis-card__actions { margin-top: auto; }

/* Cover shelf */
.vis-pubs--covers { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem) 1.25rem; }
.vis-pubs--covers .vis-card { background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; overflow: visible; }
.vis-pubs--covers figure { margin: 0 0 1rem !important; aspect-ratio: 1058 / 1497; overflow: hidden; border-radius: 2px; background: var(--wp--preset--color--navy-800);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 18px 34px -16px rgba(0, 0, 0, .55); transition: transform .5s var(--vis-ease), box-shadow .5s var(--vis-ease); }
.vis-pubs--covers figure img { width: 100%; height: 100% !important; object-fit: cover; object-position: top; }
.vis-pubs--covers .vis-card__body { padding: 0 !important; gap: .5rem !important; }
.vis-pubs--covers :is(.vis-card__title, .vis-card__title a) { margin: 0; color: var(--vis-ink) !important; font-size: 1rem !important; font-weight: 600; line-height: 1.35; text-decoration: none; }
.vis-pubs--covers .vis-card__actions { margin: 0; }
.vis-pubs--covers .vis-card__download { background: none !important; padding: 0 !important; min-height: 0; color: var(--wp--preset--color--blue-700) !important; font-size: .75rem !important; letter-spacing: .12em; }
.vis-pubs--covers .vis-card__download:hover { text-decoration: underline; }
.vis-pubs--covers .vis-card__filetype { color: var(--vis-muted); font-weight: 500; letter-spacing: 0; text-transform: none; }

/* Document list */
.vis-pubs--list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; border-top: 1px solid var(--vis-line); }
.vis-pubs--list .vis-card { display: flex !important; align-items: center; gap: 1rem; padding: 1.1rem .25rem !important; background: none !important; border: 0 !important; border-bottom: 1px solid var(--vis-line) !important; border-radius: 0 !important; box-shadow: none !important; transition: background .25s; }
.vis-pubs--list .vis-card::before { content: ""; flex: none; width: 40px; height: 48px; border-radius: 3px; background: var(--wp--preset--color--navy-900) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f8981d' stroke-width='1.6'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M14 3v4h4M9.5 12h5M9.5 15.5h5'/%3E%3C/svg%3E") center / 22px no-repeat; }
.vis-pubs--list .vis-card:hover { background: rgba(11, 35, 63, .03) !important; }
.vis-pubs--list .vis-card__body { flex: 1; display: grid !important; grid-template-columns: 1fr auto; align-items: center; gap: .15rem 1rem !important; padding: 0 !important; }
.vis-pubs--list :is(.vis-card__title, .vis-card__title a) { grid-column: 1; margin: 0; color: var(--vis-ink) !important; font-size: 1rem !important; font-weight: 600; line-height: 1.35; text-decoration: none; }
.vis-pubs--list .vis-card__sport { grid-column: 1; margin: 0; font-size: .8125rem !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--vis-muted) !important; }
.vis-pubs--list .vis-card__actions { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
.vis-pubs--list .vis-card__download { padding: .5rem .9rem !important; min-height: 0; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important; font-size: .75rem !important; }
.vis-pubs--list .vis-card__download:hover { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
.vis-pubs--list .vis-card__filetype { display: none; }

/* Pinnacle on the dark band */
.vis-scheme-dark .vis-pubs--covers :is(.vis-card__title, .vis-card__title a) { color: var(--wp--preset--color--white) !important; }
.vis-scheme-dark .vis-pubs--covers .vis-card__download { color: var(--wp--preset--color--gold-500) !important; }

/* Page: lead intro, jump bar, section rhythm */
.vis-pubs-intro { padding-bottom: 0 !important; }
.vis-pubs-intro p.is-style-lead { max-width: 34ch !important; margin-bottom: 1.75rem !important; }
.vis-content ul.vis-jump { list-style: none !important; display: flex !important; flex-wrap: wrap; gap: .5rem !important; padding: 0 !important; margin: 0 !important; }
.vis-content ul.vis-jump li { padding: 0 !important; }
.vis-content ul.vis-jump li::before { display: none !important; }
.vis-content ul.vis-jump a { display: inline-flex; align-items: center; gap: .45rem; min-height: 40px; padding: 0 1rem; border: 1px solid var(--vis-line); border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--white); color: var(--vis-ink) !important; font-size: .875rem; font-weight: 600; text-decoration: none !important; transition: border-color .2s, background .2s; }
.vis-content ul.vis-jump a::after { content: "↓"; color: var(--vis-accent-ink); }
.vis-content ul.vis-jump a:hover { border-color: var(--vis-ink); }
.vis-pubs-section { scroll-margin-top: 6rem; }
.vis-pubs-section > h2 { margin-bottom: 0 !important; }

@media (max-width: 1100px) { .vis-pubs--covers { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) { .vis-pubs--featured { grid-template-columns: 1fr; } .vis-pubs--list { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .vis-pubs--covers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.vis-pubs.vis-pubs--list > li.vis-card { width: 100%; margin: 0 !important; padding: 1.1rem .25rem !important; }
.vis-pubs.vis-pubs--list > li.vis-card::before { display: block !important; }
.vis-pubs.vis-pubs--list > li.vis-card > .vis-card__body,
.vis-pubs.vis-pubs--covers > li.vis-card > .vis-card__body { padding: 0 !important; margin: 0 !important; }
.vis-pubs.vis-pubs--featured > li.vis-card > .vis-card__body { padding: 1.5rem !important; }
.vis-pubs.vis-pubs--list > li.vis-card { flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; text-align: left; }
.vis-pubs.vis-pubs--list > li.vis-card > .vis-card__body { flex: 1 1 auto !important; min-width: 0; }
.vis-pubs.vis-pubs--covers > li.vis-card .vis-card__body { gap: .35rem !important; }
.vis-pubs.vis-pubs--covers .vis-card__title { min-height: 2.7em; }
.vis-pubs.vis-pubs--list > li.vis-card { gap: 1rem !important; }
.vis-pubs-intro + .vis-pubs-section { padding-top: clamp(3rem, 6vw, 5rem) !important; }

/* 38. Athlete performance services (single-athlete_performance) ----------------------
   Banner + title; sections alternate text/media; tick lists; expert card;
   'Explore our services' strip on navy at the end. */
.vis-service__head { position: relative; z-index: 3; text-align: center; }
.vis-service__eyebrow { position: relative; z-index: 3; margin: calc(-1 * clamp(200px, 20vw, 300px)) 0 1rem !important; text-align: center; }
.vis-service__eyebrow a { text-transform: uppercase; color: var(--vis-accent-ink); text-decoration: none; }
.vis-service__eyebrow a::before { content: "← "; }
.vis-service__head .vis-page-head { margin-top: 0 !important; }
.vis-service__body { margin: 0 !important; }
.vis-service__section .vis-service__cols { gap: clamp(2rem, 6vw, 6rem) !important; align-items: start !important; }
.vis-service__section.is-flipped .vis-service__cols { flex-direction: row-reverse; }
.vis-service__section .wp-block-column > .wp-block-image { margin: 0 0 1.5rem !important; }
.vis-service__section .wp-block-column > .wp-block-image img { aspect-ratio: 4 / 3 !important; object-fit: cover; }
.vis-service__section h2.wp-block-heading { margin-bottom: 1.25rem !important; }
.vis-service__section h3.wp-block-heading { margin: 2rem 0 .75rem !important; font-size: var(--vis-h3-size) !important; }
.vis-service__section p.is-style-lead { max-width: 32ch !important; }
.vis-content ul.vis-checks { gap: .85rem !important; margin-top: 1.5rem !important; }
.vis-content ul.vis-checks li { padding-left: 2rem !important; color: var(--vis-ink) !important; line-height: 1.55; }
.vis-content ul.vis-checks li::before { width: 1.15rem !important; height: 1.15rem !important; top: .2em !important; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' stroke='%230b233f' stroke-width='1.8' fill='none'/%3E%3C/svg%3E") center / 10px no-repeat !important; }
.vis-content ul.vis-doclinks { list-style: none !important; padding: 0 !important; gap: 0 !important; margin: 1.5rem 0 !important; border-top: 1px solid var(--vis-line); }
.vis-content ul.vis-doclinks li { padding: .9rem 0 .9rem 2.5rem !important; border-bottom: 1px solid var(--vis-line); }
.vis-content ul.vis-doclinks li::before { width: 1.6rem !important; height: 1.9rem !important; top: .75rem !important; border-radius: 3px; background: var(--wp--preset--color--navy-900) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f8981d' stroke-width='1.8'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M14 3v4h4'/%3E%3C/svg%3E") center / 15px no-repeat !important; }
.vis-content ul.vis-doclinks a { font-weight: 600; color: var(--vis-ink) !important; text-decoration: none !important; }
.vis-content ul.vis-doclinks a:hover { text-decoration: underline !important; text-decoration-color: var(--wp--preset--color--gold-500) !important; }
.vis-service__expert { display: grid; grid-template-columns: 96px 1fr; column-gap: 1.25rem; align-items: center; padding: 1rem; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); box-shadow: 0 18px 40px -30px rgba(11, 35, 63, .4); }
.vis-service__expert > * { margin: 0 !important; }
.vis-service__expert > .wp-block-image { grid-row: 1 / span 3; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; box-shadow: none !important; }
.vis-service__expert > .wp-block-image img { width: 100%; height: 100% !important; aspect-ratio: 1 !important; object-fit: cover; object-position: center 25%; }
.vis-service__expert > h3 { margin: .1rem 0 !important; font-size: var(--vis-card-title-size) !important; padding: 0 !important; border: 0 !important; }
.vis-service__expert > h3::before { display: none !important; }
.vis-service__expert > p:last-child { color: var(--vis-muted); font-size: .9375rem; }
.vis-service__section .wp-block-quote { margin: 1.5rem 0 0 !important; padding: 1.5rem 1.5rem 1.5rem 1.75rem !important; border-left: 3px solid var(--wp--preset--color--gold-500) !important; background: var(--wp--preset--color--white); border-radius: 0 var(--wp--custom--radius--lg) var(--wp--custom--radius--lg) 0; }
.vis-service__section .wp-block-quote p { font-size: 1.0625rem !important; line-height: 1.6; color: var(--vis-ink) !important; }
.vis-service__section .vis-legacy-grid--cols-4, .vis-service__section .vis-legacy-grid { gap: .75rem !important; }
.vis-service__more .vis-card--service .vis-card__title, .vis-service__more .vis-card--service .vis-card__title a { color: var(--wp--preset--color--white) !important; }
@media (max-width: 781px) { .vis-service__section.is-flipped .vis-service__cols { flex-direction: column; } }
/* Service experts: a row of compact person cards (legacy library layout inside). */
.vis-service__experts .legacy-section, .vis-service__experts .legacy-row { margin: 0 !important; padding: 0 !important; }
.vis-service__experts .legacy-row { display: grid !important; --legacy-cols: none !important; }
.vis-service__experts .legacy-row > .legacy-col { width: auto !important; min-width: 0; }
.vis-service__experts .legacy-blurb { overflow: hidden; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white) !important; border: 1px solid var(--vis-line) !important; }
.vis-service__experts .legacy-blurb__image { margin: 0 !important; box-shadow: none !important; }
.vis-service__experts .legacy-blurb__image img { width: 100%; height: 100% !important; object-fit: cover; }
.vis-service__experts .legacy-blurb__title { color: var(--vis-ink) !important; padding: 0 !important; border: 0 !important; }
.vis-service__experts .legacy-blurb__title::before { display: none !important; }
.vis-service__experts .legacy-blurb p { color: var(--vis-muted) !important; line-height: 1.45; }
.vis-service__experts > h2 { margin-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
.vis-service__ask { gap: clamp(2rem, 5vw, 5rem) !important; align-items: start !important; }
.vis-service__ask .vis-enquiry { margin-top: 0; }
@media (max-width: 1000px) { .vis-service__experts .legacy-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
/* Saved Divi library layouts inside a section: centred in the same 1600px column as the heading (wide screens). */
.vis-content .legacy-row { margin-left: auto !important; margin-right: auto !important; }
/* Meet the team: the same compact expert card as every other service page (round photo, name, role). */
.vis-service__experts .legacy-row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)) !important; gap: 1rem !important; }
.vis-service__experts .legacy-blurb { display: grid !important; grid-template-columns: 96px 1fr; grid-template-rows: auto auto; column-gap: 1.25rem; align-items: center; align-content: center;
	height: auto !important; padding: 1rem !important; box-shadow: 0 18px 40px -30px rgba(11, 35, 63, .4); }
.vis-service__experts .legacy-blurb__image { grid-row: 1 / span 2; width: 96px; height: 96px; aspect-ratio: 1 !important; border-radius: 50% !important; overflow: hidden; }
.vis-service__experts .legacy-blurb__image img { object-position: center 25% !important; }
.vis-service__experts .legacy-blurb__title { margin: 0 0 .2rem !important; align-self: end; font-size: var(--vis-card-title-size) !important; }
.vis-service__experts .legacy-blurb p { margin: 0 !important; align-self: start; font-size: .9375rem !important; }
@media (min-width: 782px) {
	.vis-service__experts .legacy-row:has(> :nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.vis-service__experts .legacy-row:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* 39. VIS Hub items: recipes, resources, courses ----------------------------------- */
.vis-hub-item__body { margin: 0 !important; }
.vis-hub-item__more { padding-top: clamp(3rem, 6vw, 5rem) !important; }

/* LearnDash on the site's terms (course content list, lesson actions, badges,
   tooltips): the plugin's variables take the theme's type, radii and colours,
   so nothing renders in Inter, bright blue or 8px corners. */
.learndash-wrapper, .ld-accordion, .ld-tooltip, .ld-content-actions, .ld-button, .ld-alert, .ld-pill, .ld-form {
	--ld-typography-font-family: var(--wp--preset--font-family--body);
	--ld-button-border-radius: var(--wp--custom--radius--pill); --ld-border-radius: var(--wp--custom--radius--lg); --ld-border-radius-small: var(--wp--custom--radius--lg);
	--ld-color-primitives-blue-500: var(--wp--preset--color--navy-900); --ld-color-brand-primary: var(--wp--preset--color--navy-900);
	--ld-color-system-body-text: var(--wp--preset--color--navy-900); --ld-color-system-middle-gray-light: var(--wp--preset--color--gray-100); --ld-color-field-border: rgba(11, 35, 63, .18);
}
/* Course content: a plain list with hairlines, titles in DM Sans, no box. */
.vis-course .ld-accordion { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; }
.vis-course .ld-accordion__header { padding: 0 !important; border: 0 !important; }
.vis-course .ld-accordion__heading { margin: 0 0 1rem !important; }
.vis-course .ld-accordion__content, .vis-course .ld-accordion__section, .vis-course .ld-accordion__items { padding: 0 !important; border: 0 !important; }
.vis-course .ld-accordion__items { border-top: 1px solid var(--vis-line); }
.vis-course .ld-accordion__item { border-bottom: 1px solid var(--vis-line); }
.vis-course .ld-accordion__item-header { padding: 0 !important; }
.vis-course .ld-accordion__item-title-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: 1rem 0; }
.vis-course .ld-accordion__item-title { font-family: var(--wp--preset--font-family--body); font-size: 1.0625rem; font-weight: 600; line-height: 1.35; color: var(--vis-ink) !important; text-decoration: none !important; }
.vis-course .ld-accordion__item-title:hover { text-decoration: underline !important; text-decoration-color: var(--wp--preset--color--gold-500) !important; text-underline-offset: .2em; }
.vis-course :is(.ld-accordion__item-attribute--collapsed, .ld-accordion__item-attribute--collapsible, .ld-accordion__item-attribute-label) { font-family: var(--wp--preset--font-family--body) !important; font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--vis-muted) !important; background: none !important; padding: 0 !important; }
.ld-tooltip.ld-tooltip--modern [role="tooltip"] { font: inherit !important; font-size: .875rem !important; color: var(--wp--preset--color--navy-900) !important; background: var(--wp--preset--color--white) !important; border: 1px solid var(--vis-line) !important; box-shadow: var(--vis-shadow) !important; }
/* Lesson and topic actions: the site's primary and outline buttons, one row. */
.learndash-wrapper .ld-content-actions { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: clamp(2rem, 4vw, 3rem) !important; padding: 1.5rem 0 0 !important; border-top: 1px solid var(--vis-line) !important; }
.learndash-wrapper .ld-content-actions .ld-content-action { flex: none !important; padding: 0 !important; margin: 0 !important; }
.learndash-wrapper .ld-content-actions .ld-course-step-back { display: none !important; } /* "Back to course" already sits in the row */
.learndash-wrapper :is(.ld-button, a.ld-button, input.learndash_mark_complete_button, .sfwd-mark-complete input[type="submit"], .ld-content-action a) {
	display: inline-flex !important; align-items: center; justify-content: center; gap: .75rem; min-height: 48px; padding: 0 1.75rem !important; border: 0 !important; border-radius: var(--wp--custom--radius--pill) !important; box-shadow: none !important; cursor: pointer;
	background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important;
	font-family: var(--wp--preset--font-family--body) !important; font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: .14em; line-height: 1; text-transform: uppercase; text-decoration: none !important; transition: background .3s, color .3s;
}
.learndash-wrapper :is(.ld-button, input.learndash_mark_complete_button, .ld-content-action a):hover { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
.learndash-wrapper :is(.ld-button--border, .ld-button--secondary, .ld-content-action:first-child a:not(.learndash_mark_complete_button)) { background: transparent !important; color: var(--wp--preset--color--navy-900) !important; border: 1px solid rgba(11, 35, 63, .3) !important; }
.learndash-wrapper :is(.ld-button--border, .ld-button--secondary, .ld-content-action:first-child a):hover { background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important; }
.learndash-wrapper .ld-button .ld-icon, .learndash-wrapper .ld-content-action a .ld-icon { display: none !important; }
/* LearnDash's modern step navigation (lesson/topic foot): one row, the site's buttons,
   Mark complete and Next as primary, Back as outline; the repeated "Back to course" link goes. */
.learndash-wrapper .ld-navigation { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .75rem 1rem; margin-top: clamp(2rem, 4vw, 3rem) !important; padding: 1.5rem 0 0 !important; border-top: 1px solid var(--vis-line) !important; }
.learndash-wrapper .ld-navigation > * { margin: 0 !important; }
.learndash-wrapper .ld-navigation__progress { order: 2; }
.learndash-wrapper .ld-navigation__previous { order: 1; }
.learndash-wrapper .ld-navigation__next { order: 3; margin-left: auto !important; }
.learndash-wrapper .ld-navigation__back-to-course { display: none !important; }
.learndash-wrapper :is(.ld-navigation__progress-mark-complete-button, .learndash_mark_complete_button, .ld-navigation__next-link, .ld-navigation__previous-link, .ld-navigation__back-to-course-link) {
	display: inline-flex !important; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: 0 1.5rem !important; border-radius: var(--wp--custom--radius--pill) !important; box-shadow: none !important; cursor: pointer;
	font-family: var(--wp--preset--font-family--body) !important; font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: .14em; line-height: 1; text-transform: uppercase; text-decoration: none !important; transition: background .3s, color .3s, border-color .3s;
}
.learndash-wrapper :is(.ld-navigation__progress-mark-complete-button, .learndash_mark_complete_button, .ld-navigation__next-link) { border: 0 !important; background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important; }
.learndash-wrapper :is(.ld-navigation__progress-mark-complete-button, .learndash_mark_complete_button, .ld-navigation__next-link):hover { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
.learndash-wrapper .ld-navigation__previous-link { background: transparent !important; color: var(--wp--preset--color--navy-900) !important; border: 1px solid rgba(11, 35, 63, .3) !important; }
.learndash-wrapper .ld-navigation__previous-link:hover { background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important; }
.learndash-wrapper .ld-navigation :is(svg, .ld-icon) { width: 14px; height: 14px; }
.learndash-wrapper .ld-breadcrumbs { margin: 0 0 1.5rem !important; font-size: .8125rem; }
.learndash-wrapper .ld-breadcrumbs a { color: var(--vis-muted) !important; text-decoration: none !important; }
.learndash-wrapper .ld-breadcrumbs a:hover { color: var(--vis-ink) !important; text-decoration: underline !important; }
/* Lesson and topic pages: the step's content in a reading column; LearnDash's own navigation sits under it. */
.vis-step__main .vis-step__body { max-width: 900px; margin-inline: auto !important; font-size: 1.0625rem; line-height: 1.7; }
.vis-step__body > * { max-width: none; }
/* Headings inside page content keep their rank: h4 under h3. */
.vis-content h4.wp-block-heading { font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); line-height: 1.25; }

/* Members-only panel (vis-core restriction) */
.vis-restricted-notice { max-width: 980px; margin: clamp(2.5rem, 6vw, 5rem) auto; padding: clamp(1.75rem, 4vw, 3rem); border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid rgba(11, 35, 63, .1); box-shadow: 0 30px 60px -40px rgba(11, 35, 63, .45); color: var(--wp--preset--color--navy-900); }
.vis-restricted-notice.is-logged-out { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; padding: clamp(1rem, 2vw, 1.25rem); }
.vis-restricted-notice__photo { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--wp--custom--radius--lg); }
.vis-restricted-notice__photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); }
.vis-restricted-notice__body { padding: clamp(.5rem, 2vw, 1.5rem); }
.vis-restricted-notice p { margin: 0 0 1rem; color: rgba(11, 35, 63, .75); line-height: 1.6; }
.vis-restricted-notice__eyebrow { display: inline-flex; align-items: center; gap: .5rem; text-transform: uppercase; color: #002c76 !important; }
.vis-restricted-notice__eyebrow::before { content: ""; width: 14px; height: 14px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002c76' stroke-width='2'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat; }
.vis-restricted-notice__title { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem) !important; font-weight: 600; line-height: 1.15; letter-spacing: -.02em; color: var(--wp--preset--color--navy-900) !important; }
.vis-restricted-notice__actions { margin: 1.5rem 0 0 !important; }
.vis-restricted-notice .wp-element-button { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.75rem; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--navy-900); color: var(--wp--preset--color--white) !important; font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.vis-restricted-notice .wp-element-button:hover { background: var(--wp--preset--color--gold-500); color: var(--wp--preset--color--navy-950) !important; }
@media (max-width: 700px) { .vis-restricted-notice.is-logged-out { grid-template-columns: 1fr; } }

/* Recipe */
.vis-recipe__intro { gap: clamp(2rem, 5vw, 5rem) !important; align-items: center !important; }
.vis-recipe__intro .wp-block-image { margin: 0 !important; }
.vis-recipe__intro .wp-block-image img { aspect-ratio: 4 / 3 !important; object-fit: cover; }
.vis-content ul.vis-recipe__tags { list-style: none !important; display: flex !important; flex-wrap: wrap; gap: .4rem !important; padding: 0 !important; margin: 0 0 1.5rem !important; }
.vis-content ul.vis-recipe__tags li { padding: .35rem .8rem !important; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); font-size: .8125rem; font-weight: 600; color: var(--vis-ink) !important; }
.vis-content ul.vis-recipe__tags li::before { display: none !important; }
.vis-recipe__facts { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--vis-line); }
.vis-recipe__facts li { display: grid; gap: .3rem; padding-right: 1rem; }
.vis-recipe__facts li + li { padding-left: 1rem; border-left: 1px solid var(--vis-line); }
.vis-recipe__facts span { text-transform: uppercase; color: var(--vis-muted); }
.vis-recipe__facts strong { font-size: 1.125rem; font-weight: 600; color: var(--vis-ink); }
.vis-recipe__cook { gap: clamp(2rem, 5vw, 5rem) !important; align-items: start !important; }
.vis-recipe__cook > .wp-block-column:first-child { position: sticky; top: 7rem; padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); }
.vis-content ul.vis-recipe__ingredients { list-style: none !important; padding: 0 !important; gap: 0 !important; }
.vis-content ul.vis-recipe__ingredients li { position: relative; padding: .7rem 0 .7rem 2.1rem !important; border-bottom: 1px solid var(--vis-line); color: var(--vis-ink) !important; cursor: pointer; transition: color .2s; }
.vis-content ul.vis-recipe__ingredients li::before { content: "" !important; position: absolute; left: 0 !important; top: .8rem !important; width: 1.15rem !important; height: 1.15rem !important; border-radius: 4px; border: 1.5px solid rgba(11, 35, 63, .3); background: none !important; }
.vis-content ul.vis-recipe__ingredients li.is-done { color: var(--vis-muted) !important; text-decoration: line-through; text-decoration-color: rgba(11, 35, 63, .35); }
.vis-content ul.vis-recipe__ingredients li.is-done::before { border-color: var(--wp--preset--color--gold-500); background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' stroke='%230b233f' stroke-width='1.8' fill='none'/%3E%3C/svg%3E") center / 10px no-repeat !important; }
.vis-content ol.vis-recipe__method { counter-reset: step; list-style: none !important; padding: 0 !important; display: grid !important; gap: 0 !important; }
.vis-content ol.vis-recipe__method > li { counter-increment: step; position: relative; padding: 1.1rem 0 1.1rem 3.5rem !important; border-bottom: 1px solid var(--vis-line); color: var(--vis-ink) !important; line-height: 1.6; }
.vis-content ol.vis-recipe__method > li::before { content: counter(step) !important; position: absolute; left: 0 !important; top: .95rem !important; width: 2.25rem !important; height: 2.25rem !important; display: grid; place-items: center; border-radius: 50%; background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important; font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: 1.125rem; }
.vis-recipe__nutrition { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .75rem; margin: 1.25rem 0 .75rem; padding: 0; }
.vis-recipe__nutrition li { display: grid; gap: .25rem; padding: 1.1rem 1.25rem; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); }
.vis-recipe__nutrition strong { font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; font-size: 1.75rem; line-height: 1; color: var(--vis-ink); }
.vis-recipe__nutrition span { text-transform: uppercase; color: var(--vis-muted); }
.vis-recipe__per { font-size: .875rem !important; color: var(--vis-muted) !important; margin-bottom: 1.5rem !important; }
.vis-recipe__nutrition-section { padding-top: 0 !important; }
@media (max-width: 781px) { .vis-recipe__cook > .wp-block-column:first-child { position: static; } .vis-recipe__facts { grid-template-columns: 1fr 1fr 1fr; } }
@media print {
	.vis-header, .vis-footer, .vis-newsletter, .vis-countdown, .vis-hub-item__more, .vis-print, body::after { display: none !important; }
	.vis-recipe__cook > .wp-block-column:first-child { position: static; border: 0; padding: 0; }
	.vis-hub-item .vis-banner, .vis-service__eyebrow { display: none !important; }
	.vis-hub-item .vis-page-head { margin: 0 0 1.5rem !important; color: #000 !important; }
}

/* Resource article */
.vis-article { padding-top: clamp(3rem, 6vw, 5rem) !important; }
.vis-article__row { max-width: 1240px; margin: 0 auto clamp(2.5rem, 5vw, 4rem) !important; }
.vis-article__row.is-single { max-width: 820px; }
.vis-article__row.is-two { gap: clamp(2rem, 5vw, 4rem) !important; align-items: center !important; }
.vis-article__row .wp-block-image { margin: 0 !important; }
.vis-article__row.is-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.vis-article__row.is-cards.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vis-article__row.is-cards.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vis-card-lite { padding: clamp(1.25rem, 2vw, 1.75rem); border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); }
.vis-card-lite > * { margin-top: 0 !important; }
.vis-card-lite > * + * { margin-top: .75rem !important; }
.vis-card-lite .wp-block-image { margin: calc(-1 * clamp(1.25rem, 2vw, 1.75rem)) calc(-1 * clamp(1.25rem, 2vw, 1.75rem)) 1rem !important; }
.vis-card-lite h2, .vis-card-lite h3 { font-size: 1.25rem !important; padding: 0 !important; border: 0 !important; }
.vis-card-lite h2::before, .vis-card-lite h3::before { display: none !important; }
.vis-article .wp-block-details { background: var(--wp--preset--color--white); padding-inline: 1.25rem !important; border: 1px solid var(--vis-line) !important; border-radius: var(--wp--custom--radius--lg); margin-bottom: .5rem !important; }
.vis-article .wp-block-embed { margin: 0; border-radius: var(--wp--custom--radius--lg); overflow: hidden; }
/* Embeds reserve their shape before the third-party script arrives: video at 16:9,
   social posts at a sensible height, on a quiet surface, so nothing jumps or sits blank. */
:is(.vis-detail__body, .vis-content, .vis-article) .wp-block-embed { background: color-mix(in srgb, var(--vis-ink) 5%, transparent); border-radius: var(--wp--custom--radius--lg); overflow: hidden; }
:is(.vis-detail__body, .vis-content, .vis-article) .wp-block-embed.is-type-video .wp-block-embed__wrapper { aspect-ratio: 16 / 9; }
:is(.vis-detail__body, .vis-content, .vis-article) .wp-block-embed.is-type-video iframe { width: 100%; height: 100%; }
:is(.vis-detail__body, .vis-content, .vis-article) .wp-block-embed:is(.wp-block-embed-instagram, .is-provider-instagram, .is-provider-twitter, .is-provider-tiktok) .wp-block-embed__wrapper { min-height: 32rem; }
@media (max-width: 900px) { .vis-article__row.is-cards, .vis-article__row.is-cards.is-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .vis-article__row.is-cards, .vis-article__row.is-cards.is-2, .vis-article__row.is-cards.is-4 { grid-template-columns: 1fr; } }

/* Course */
.vis-course__main { padding-top: clamp(2.5rem, 5vw, 4rem) !important; }
.vis-course-facts { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 clamp(2rem, 4vw, 3rem) !important; padding: 0; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); }
.vis-course-facts li { display: grid; gap: .3rem; padding: 1.25rem 1.5rem; }
.vis-course-facts li + li { border-left: 1px solid var(--vis-line); }
.vis-course-facts span { text-transform: uppercase; color: var(--vis-muted); }
.vis-course-facts strong { font-size: 1.0625rem; font-weight: 600; color: var(--vis-ink); line-height: 1.35; }
.vis-course .learndash-wrapper .ld-layout { gap: clamp(2rem, 5vw, 5rem) !important; }
.vis-course .ld-featured-image { display: none !important; } /* the banner already shows it */
.vis-course .ld-tab-bar__panel { color: var(--vis-ink); font-size: 1.0625rem; line-height: 1.7; }
.vis-course .ld-tab-bar__panel > h3:first-of-type { color: var(--vis-ink) !important; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem) !important; margin: 0 0 1rem !important; }
.vis-course .ld-tab-bar__panel p strong:only-child { display: block; margin-top: 1.5rem; font-size: 1.1875rem; color: var(--vis-ink); }
.vis-course .ld-tab-bar__panel a { color: var(--vis-ink) !important; text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; overflow-wrap: anywhere; }
.vis-course .ld-tab-bar__panel ol { padding-left: 1.25rem; }
.vis-course .ld-tab-bar__panel ol li { padding: .35rem 0 .35rem .25rem; }
.vis-course .ld-tab-bar__panel ol li::marker { color: #002c76; font-weight: 700; }
.vis-course .ld-layout__sidebar { position: sticky; top: 7rem; align-self: start; }
.vis-course .ld-enrollment { padding: 1.75rem !important; border-radius: var(--wp--custom--radius--lg) !important; background: var(--wp--preset--color--navy-900) !important; border: 0 !important; color: var(--wp--preset--color--white); box-shadow: var(--vis-shadow); }
.vis-course .ld-enrollment__pricing-price { margin: 0 0 .25rem !important; line-height: 1 !important; font-family: var(--wp--preset--font-family--display) !important; font-style: italic; font-weight: 400 !important; font-size: 2.5rem !important; text-transform: uppercase; color: var(--wp--preset--color--white) !important; }
.vis-course .ld-enrollment__pricing-label { color: rgba(255, 255, 255, .75) !important; font-size: .9375rem !important; }
.vis-course .ld-enrollment__join { margin-top: 1.5rem; }
.vis-course .ld-enrollment :is(.ld-enrollment__login-link, .ld-enrollment__join-button, a.ld-button, .ld-button, input[type="submit"]) { width: 100%; justify-content: center; min-height: 48px; border: 0 !important; border-radius: var(--wp--custom--radius--pill) !important; background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; font: inherit; font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; text-decoration: none !important; }
.vis-course-experts { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: 1rem; margin: clamp(1.5rem, 3vw, 2.5rem) 0 0; padding: 0; }
.vis-card--expert-lite { display: grid !important; grid-template-columns: 88px 1fr; gap: 0 1.25rem; align-items: center; padding: 1rem !important; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white) !important; border: 1px solid var(--vis-line) !important; box-shadow: 0 18px 40px -30px rgba(11, 35, 63, .4); }
.vis-card--expert-lite figure { margin: 0; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; }
.vis-card--expert-lite figure :is(img, .vis-initials) { width: 100%; height: 100% !important; object-fit: cover; object-position: center 25%; aspect-ratio: auto; }
.vis-card--expert-lite .vis-card__body { padding: 0 !important; display: grid; gap: .2rem; }
.vis-card--expert-lite .vis-card__name { margin: 0; font-size: var(--vis-card-title-size) !important; color: var(--vis-ink) !important; line-height: 1.25; }
.vis-card--expert-lite .vis-card__role { margin: 0; font-size: .875rem; color: var(--vis-muted); }
.vis-card--expert-lite .vis-card__more summary { margin-top: .35rem; }
.vis-course__more .vis-card__title, .vis-course__more .vis-card__title a { color: var(--wp--preset--color--white) !important; }
@media (max-width: 960px) { .vis-course-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vis-course-facts li:nth-child(3) { border-left: 0; } .vis-course-facts li:nth-child(n+3) { border-top: 1px solid var(--vis-line); } .vis-course .ld-layout__sidebar { position: static; } }
.vis-course .ld-enrollment__pricing { display: grid; gap: .35rem; }
.vis-course .ld-enrollment__join, .vis-course .ld-enrollment__join > * { display: block; width: 100%; }
/* Paid course: one clear way in (Sign in to buy / Buy now), so LearnDash's extra "or Log In" link is not shown. */
.vis-course .ld-enrollment:has(.ld-enrollment__pricing--pay-now, .ld-enrollment__pricing--subscribe) .ld-enrollment__login { display: none !important; }
.vis-course .ld-enrollment .ld-enrollment__join-button { text-decoration: none !important; }
.vis-course .ld-enrollment :is(.ld-enrollment__login-link, .ld-enrollment__join-button, a.ld-button, .ld-button, input[type="submit"]) { display: flex !important; align-items: center; padding: 0 1.5rem !important; box-sizing: border-box; }
.vis-course-experts:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; }
@media (max-width: 700px) { .vis-course-experts:has(> li:nth-child(4):last-child) { grid-template-columns: 1fr; } }
.vis-article__row.is-cards > * { margin: 0 !important; }
.vis-content .vis-card-lite :is(h2, h3) { font-size: var(--vis-h3-size) !important; line-height: 1.2; max-width: none; }
.vis-article__row .wp-block-image img { aspect-ratio: auto !important; height: auto !important; object-fit: contain !important; }
.vis-hub-item__body { background: var(--vis-paper); }
.vis-hub-item__body > .vis-restricted-notice { margin-block: clamp(2.5rem, 6vw, 5rem); }
/* "Photo background band" (patterns/hub-photo-band.php): navy until a photo is added. */
.vis-photo-wash { background-color: var(--wp--preset--color--navy-900); }
@media (max-width: 600px) {
	.vis-recipe__facts { grid-template-columns: 1fr; gap: 0; }
	.vis-recipe__facts li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .6rem 0 !important; border-left: 0 !important; }
	.vis-recipe__facts li + li { border-top: 1px solid var(--vis-line); }
	.vis-recipe__facts strong { font-size: 1rem; text-align: right; }
}

/* 40. Sign-in screens (template "Sign-in screen"): log in, registration,
   reset password. One screen: the header, the page's banner photo full-bleed,
   a short intro and the form on a solid panel. No newsletter or footer. -------- */
.vis-auth { position: relative; isolation: isolate; box-sizing: border-box; min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: clamp(2rem, 6vw, 7rem); align-items: center;
	max-width: 1440px; margin: 0 auto !important; padding: clamp(8rem, 12vw, 10rem) clamp(1rem, 4vw, 4rem) clamp(2.5rem, 5vw, 4rem); }
.vis-auth:has(form.register) { grid-template-columns: minmax(0, 1fr) minmax(0, 680px); }
.vis-auth .vis-banner { position: fixed !important; inset: 0; z-index: -1; height: auto !important; background-position: center; }
.vis-auth .vis-banner.has-image::before { background: linear-gradient(90deg, rgba(3, 25, 63, .9) 0%, rgba(3, 25, 63, .6) 45%, rgba(3, 25, 63, .4) 100%) !important; }
.vis-auth .vis-banner::after { height: 35% !important; }
.vis-auth > * { margin: 0 !important; }
.vis-auth__intro { align-self: end; padding-bottom: clamp(0rem, 4vw, 3rem); color: var(--wp--preset--color--white); }
.vis-auth__eyebrow { margin: 0 0 1rem !important; text-transform: uppercase; color: var(--vis-accent-ink); }
.vis-auth__title { margin: 0 !important; font-family: var(--wp--preset--font-family--display) !important; font-style: italic; font-weight: 400 !important; text-transform: uppercase; font-size: var(--vis-title-size) !important; line-height: .9 !important; letter-spacing: -.01em; color: var(--wp--preset--color--white) !important; }
.vis-auth__lead { max-width: 30ch; margin: 1.5rem 0 0 !important; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.5; color: rgba(255, 255, 255, .82); }
.vis-auth__panel { padding: clamp(1.75rem, 3.5vw, 2.75rem) !important; background: var(--wp--preset--color--white); border-radius: var(--wp--custom--radius--lg); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6); color: var(--wp--preset--color--navy-900); }
.vis-auth__panel > * { margin-top: 0 !important; margin-bottom: 0 !important; max-width: none !important; }
.vis-auth__panel > .vis-banner + * { position: static; }
.vis-auth__switch { margin-top: 1.5rem !important; padding-top: 1.25rem; border-top: 1px solid rgba(11, 35, 63, .1); text-align: center; font-size: .9375rem; color: rgba(11, 35, 63, .7); }
.vis-auth__switch a, .vis-auth .user-registration-register a, .vis-auth .lost_password a { color: var(--wp--preset--color--navy-900) !important; font-weight: 600; text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; }

/* User Registration plugin forms, in the site's form style (see 28). */
.vis-auth .user-registration, .vis-auth .ur-frontend-form, .vis-auth form { margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; max-width: none !important; width: auto !important; font: inherit; }
.vis-auth .ur-form-row { display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0 1rem; margin: 0 !important; }
.vis-auth .ur-form-grid { width: auto !important; padding: 0 !important; margin: 0 !important; border: 0 !important; }
.vis-auth :is(.form-row, .user-registration-form-row, .ur-field-item) { margin: 0 0 1.1rem !important; padding: 0 !important; width: auto !important; float: none !important; }
.vis-auth .ur-field-item .form-row { margin: 0 !important; }
.vis-auth label, .vis-auth .ur-label { display: block; margin: 0 0 .5rem !important; font-size: .875rem !important; font-weight: 600 !important; line-height: 1.3; color: var(--wp--preset--color--navy-900) !important; }
.vis-auth :is(.required, abbr.required) { color: #002c76 !important; text-decoration: none; border: 0; }
.vis-auth :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select, textarea) {
	width: 100% !important; box-sizing: border-box; min-height: 52px; margin: 0 !important; padding: .85rem 1rem !important; border-radius: var(--wp--custom--radius--lg) !important;
	font: inherit; font-size: 1rem !important; color: var(--wp--preset--color--navy-900) !important; background: var(--wp--preset--color--white) !important;
	border: 1px solid rgba(11, 35, 63, .18) !important; box-shadow: 0 1px 2px rgba(11, 35, 63, .04) !important; transition: border-color .2s, box-shadow .2s; }
.vis-auth :is(input, select, textarea):hover { border-color: rgba(11, 35, 63, .35) !important; }
.vis-auth :is(input, select, textarea):focus { outline: none; border-color: var(--wp--preset--color--navy-900) !important; box-shadow: 0 0 0 3px rgba(248, 152, 29, .45) !important; }
.vis-auth :is(.input-wrapper, .password-input-group, .ur-input-with-icon) { position: relative; display: block; width: 100%; }
.vis-auth .password_preview { position: absolute; right: .9rem; top: 50%; transform: translateY(-50%); color: rgba(11, 35, 63, .5); }
.vis-auth input[type="checkbox"] { width: 1.1rem; height: 1.1rem; margin: 0 .55rem 0 0 !important; vertical-align: -.2em; accent-color: var(--wp--preset--color--navy-900); }
.vis-auth .user-registration-form__label-for-checkbox, .vis-auth .field-privacy_policy label { display: inline !important; font-weight: 500 !important; }
.vis-auth .user-registration-before-login-btn { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .25rem 0 1.5rem; font-size: .9375rem; }
.vis-auth .user-registration-before-login-btn label { margin: 0 !important; }
.vis-auth :is(button[type="submit"], input[type="submit"], .ur-submit-button) {
	display: flex !important; align-items: center; justify-content: center; width: 100% !important; min-height: 52px; margin: 0 !important; padding: 0 2rem !important; border: 0 !important;
	border-radius: var(--wp--custom--radius--pill) !important; cursor: pointer; background: var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--white) !important;
	font: inherit; font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: .14em; text-transform: uppercase; transition: background .3s, color .3s; box-shadow: none !important; }
.vis-auth :is(button[type="submit"], input[type="submit"], .ur-submit-button):is(:hover, :focus-visible) { background: var(--wp--preset--color--gold-500) !important; color: var(--wp--preset--color--navy-950) !important; }
.vis-auth .ur-submit-button span:empty { display: none; }
.vis-auth .user-registration-register { margin-top: 1.5rem !important; padding-top: 1.25rem; border-top: 1px solid rgba(11, 35, 63, .1); text-align: center; font-size: .9375rem; }
.vis-auth .ur-lost-password-title, .vis-auth .ur-frontend-form .ur-lost-password-content-container .ur-lost-password-title { margin: 0 0 .35rem !important; font-size: 1.375rem; line-height: 1.2 !important; font-weight: 600; color: var(--wp--preset--color--navy-900) !important; }
.vis-auth .ur-lost-password-message, .vis-auth .ur-frontend-form .ur-lost-password-content-container .ur-lost-password-message { margin: 0 0 1.5rem !important; font-size: 1rem; color: rgba(11, 35, 63, .7) !important; }
.vis-auth .cf-turnstile, .vis-auth [data-field="recaptcha"] { margin: 0 0 1.1rem !important; }
.vis-auth :is(.user-registration-error, .user-registration-message, .ur-message, .user-registration-info) { margin: 0 0 1.25rem !important; padding: .9rem 1.1rem !important; border: 0 !important; border-left: 4px solid var(--wp--preset--color--gold-500) !important; border-radius: var(--wp--custom--radius--lg); background: #fff6e8 !important; color: var(--wp--preset--color--navy-900) !important; font-size: .9375rem; list-style: none; }
.vis-auth .user-registration-error { border-left-color: #b3261e !important; background: #fdecea !important; }
/* Sign in with VIS (Microsoft): above the password form, same pill as the submit button but outlined. */
.vis-ms { margin: 0 0 1.5rem; }
.vis-ms__button { display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 52px; padding: 0 2rem; border: 2px solid var(--wp--preset--color--navy-900); border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--navy-900) !important; font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; transition: background .3s, border-color .3s; }
.vis-ms__button:is(:hover, :focus-visible) { background: var(--wp--preset--color--gold-500); border-color: var(--wp--preset--color--gold-500); outline: none; }
.vis-ms__hint { margin: .75rem 0 0 !important; font-size: .875rem; line-height: 1.45; color: rgba(11, 35, 63, .7); text-align: center; }
.vis-ms__or { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0 0 !important; font-size: .8125rem; color: rgba(11, 35, 63, .6); }
.vis-ms__or::before, .vis-ms__or::after { content: ""; flex: 1; border-top: 1px solid rgba(11, 35, 63, .12); }
.vis-ms__note { margin: 0 0 1.25rem !important; padding: .9rem 1.1rem; border-left: 4px solid var(--wp--preset--color--gold-500); border-radius: var(--wp--custom--radius--lg); background: #fff6e8; font-size: .9375rem; }
.vis-ms__connect { padding: 1.1rem 1.25rem; border-radius: var(--wp--custom--radius--lg); background: #f2f5f9; font-size: .9375rem; line-height: 1.5; }
.vis-ms__connect p { margin: 0 0 .6rem !important; }
.vis-ms__connect-title { font-weight: 700; font-size: 1.0625rem; }
.vis-ms__create { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 1rem 0 0 !important; padding-top: .9rem; border-top: 1px solid rgba(11, 35, 63, .1); }
.vis-auth .vis-ms__create-button { width: auto !important; min-height: 44px; padding: 0 1.25rem !important; background: transparent !important; border: 2px solid var(--wp--preset--color--navy-900) !important; color: var(--wp--preset--color--navy-900) !important; }
@media (max-width: 900px) {
	.vis-auth, .vis-auth:has(form.register) { grid-template-columns: 1fr; align-items: start; gap: 1.75rem; padding-top: 7.5rem; }
	.vis-auth__intro { align-self: auto; padding: 0; }
	.vis-auth__lead { margin-top: .9rem !important; }
}
@media (max-width: 600px) { .vis-auth .ur-form-row { grid-auto-flow: row; } }
.vis-auth .ur-button-container { display: block !important; float: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
.vis-auth .ur-button-container button { width: 100% !important; }
.vis-auth .ur-lost-password-content-container { text-align: left !important; }
.vis-auth .field-privacy_policy label a { color: var(--wp--preset--color--navy-900) !important; text-decoration: underline; text-decoration-color: var(--wp--preset--color--gold-500); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.vis-auth .field-privacy_policy .ur-portal-tooltip.is-linked { display: none; }
@media (max-width: 600px) {
	.vis-auth .ur-form-grid { display: contents !important; }
	.vis-auth .field-user_login { order: 1; } .vis-auth .field-user_email { order: 2; } .vis-auth .field-user_pass { order: 3; } .vis-auth .field-user_confirm_password { order: 4; }
}
.vis-auth .ur-lost-password-content-container p { text-align: left !important; }
/* Editor only: notes on VIS Hub blocks that read their values from fields. */
.vis-hub-note { margin: .75rem 0 0 !important; padding: .6rem .85rem !important; border-left: 3px solid var(--wp--preset--color--gold-500); background: #fff6e8; font-size: .8125rem !important; line-height: 1.45; color: var(--wp--preset--color--navy-900) !important; }
/* Recipe photo: the recipe's featured image, styled as the layout's photo. */
.vis-recipe__intro .wp-block-post-featured-image { margin: 0 !important; overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-recipe__intro .wp-block-post-featured-image img { width: 100%; height: auto !important; aspect-ratio: 4 / 3 !important; object-fit: cover; display: block; transition: scale .6s var(--vis-ease); }
/* Photo-led recipe: the photo across the page, the intro centred under it. */
.vis-recipe__top--hero .wp-block-post-featured-image { margin: 0 0 clamp(2rem, 4vw, 3rem) !important; overflow: hidden; box-shadow: var(--vis-shadow); }
.vis-recipe__top--hero .wp-block-post-featured-image img { width: 100%; height: auto !important; aspect-ratio: 21 / 9; object-fit: cover; display: block; }
.vis-recipe__top--hero .vis-article__row { margin-bottom: 0 !important; text-align: center; }
.vis-content.vis-recipe__top--hero ul.vis-recipe__tags { justify-content: center; }
.vis-recipe__top--hero .vis-recipe__facts { text-align: left; }
@media (max-width: 600px) { .vis-recipe__top--hero .wp-block-post-featured-image img { aspect-ratio: 4 / 3; } }
/* Cards under the method (swaps, storage, timing) and the dietitian's note. */
.vis-recipe__extra .vis-article__row { margin-top: 1.5rem !important; margin-bottom: 0 !important; }
.vis-recipe__extra .vis-article__row.is-single { margin-top: 0 !important; }
.vis-sports-programs .vis-card--program:hover > figure img { scale: none !important; filter: none !important; }
.vis-sports-programs .vis-card--program:hover { transform: none !important; box-shadow: none !important; }

/* Careers at VIS ------------------------------------------------------------
   Intro beside the whole-team photo; benefits as a checklist beside a photo;
   the inclusion commitment on navy with two captioned photos; live vacancies
   (ELMO) on a white panel; three pathways as cards; captioned life-at-VIS row. */
.vis-careers figcaption { font-size: .8125rem; line-height: 1.45; color: var(--vis-muted); margin-top: .7rem; max-width: 46ch; text-wrap: pretty; }
.vis-careers .wp-block-image { margin: 0 !important; box-shadow: none !important; background: none !important; }
.vis-careers__intro { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
.vis-careers__intro p.is-style-lead { max-width: 28ch !important; margin-bottom: 1.5rem !important; }
.vis-careers__intro p:not(.is-style-lead) { max-width: 56ch; }
.vis-careers__team img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.vis-careers__perks { gap: clamp(2rem, 6vw, 6rem) !important; align-items: start !important; }
.vis-careers__perks > .wp-block-column:first-child > h2 { margin-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
.vis-careers__aside img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.vis-content ul.vis-careers__benefits { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0 2.5rem !important; padding: 0 !important; margin: 0 !important; list-style: none; }
.vis-content ul.vis-careers__benefits li { position: relative; padding: 1.1rem 0 1.1rem 2rem !important; border-top: 1px solid var(--vis-line); line-height: 1.5; }
.vis-content ul.vis-careers__benefits li::before { content: ""; position: absolute; left: 0; top: 1.35rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' fill='none' stroke='%2303193f' stroke-width='1.6'/%3E%3C/svg%3E") center / 70% no-repeat; }
.vis-careers__belong { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
.vis-careers__belong h2 { margin-bottom: 1.5rem !important; max-width: 16ch; }
.vis-careers__belong p:not(.is-style-lead) { max-width: 58ch; }
.vis-careers__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
.vis-careers__pair > figure:nth-child(2) { margin-top: clamp(2rem, 6vw, 5rem) !important; }
.vis-careers__pair img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.vis-careers__jobs { box-sizing: border-box; background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); border-radius: var(--wp--custom--radius--lg); padding: clamp(1rem, 3vw, 2.5rem); box-shadow: 0 24px 48px -36px rgba(11, 35, 63, .35); min-height: 12rem; }
.vis-careers__jobs iframe { display: block; width: 100%; min-height: 10rem; border: 0; }
.vis-careers__paths { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.25rem; }
:is(.vis-careers__paths, .vis-careers__life, .vis-careers__pair) > * { margin-block: 0 !important; }
.vis-careers__path { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); box-shadow: 0 24px 48px -36px rgba(11, 35, 63, .35); }
.vis-careers__path > figure img { aspect-ratio: 16 / 9; object-fit: cover; }
.vis-careers__path > figure figcaption { display: none; }
.vis-careers__path-body { padding: clamp(1.5rem, 3vw, 2.25rem); display: grid; gap: .9rem; align-content: start; }
.vis-careers__path-body > * { margin: 0 !important; }
.vis-careers__path-body > h3 { font-size: var(--vis-h3-size) !important; padding: 0 !important; border: 0 !important; }
.vis-careers__path-body > h3::before { display: none !important; }
.vis-careers__path:not(:has(> figure)) { align-self: start; background: var(--wp--preset--color--navy-900); border-color: transparent; --vis-ink: var(--wp--preset--color--white); color: var(--vis-ink); }
.vis-careers__path:not(:has(> figure)) h3, .vis-careers__path:not(:has(> figure)) p { color: var(--wp--preset--color--white) !important; }
.vis-careers__life { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.25rem; }
.vis-careers__life img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
@media (max-width: 767px) {
	.vis-careers__pair > figure:nth-child(2) { margin-top: 2rem !important; }
}

/* Engage products --------------------------------------------------------------
   'Product includes' (intro, key facts, booking) beside the photo; the
   layout's feature columns as cards; video; FAQs beside booking; gallery. */
.vis-engage .wp-block-image { margin: 0 !important; }
.vis-engage__intro { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
.vis-engage__intro p.is-style-lead { max-width: 30ch !important; margin-bottom: 2.5rem !important; }
.vis-engage__intro p:not(.is-style-lead):not(.is-style-eyebrow) { max-width: 56ch; }
.vis-engage__photo img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.vis-engage .vis-legacy-facts { margin: 1.75rem 0 2rem; }
/* "What's included" labels the facts list; it goes when an offering has no facts. */
.vis-engage__intro .is-style-eyebrow { margin: 2rem 0 .75rem !important; }
.vis-engage__intro .is-style-eyebrow + .vis-legacy-facts { margin-top: 0; }
.vis-engage__intro .is-style-eyebrow:not(:has(+ .vis-legacy-facts)) { display: none; }
.vis-engage .vis-legacy-facts ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--vis-line); }
.vis-engage .vis-legacy-facts li { position: relative; padding: .95rem 0 .95rem 2rem; border-bottom: 1px solid var(--vis-line); font-weight: 500; line-height: 1.45; }
.vis-engage .vis-legacy-facts li img { display: none; }
.vis-engage .vis-legacy-facts li::before { content: ""; position: absolute; left: 0; top: 1.1rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--wp--preset--color--gold-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' fill='none' stroke='%2303193f' stroke-width='1.6'/%3E%3C/svg%3E") center / 70% no-repeat; }
.vis-engage__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.vis-engage__actions > *, .vis-engage__actions .wp-block-buttons { margin: 0 !important; }
/* Full content width like the columns below (so it shares their left edge at any
   screen size); the paragraphs keep a reading measure. */
.vis-engage__more-intro { margin-bottom: clamp(2.5rem, 5vw, 4rem) !important; }
.vis-engage__more-intro p { max-width: 68ch; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.6; color: var(--vis-ink); }
.vis-engage__features { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: clamp(2rem, 4vw, 4rem); }
.vis-engage__features > *, .vis-engage__gallery > * { margin-block: 0 !important; }
.vis-engage__feature { padding-top: 1.5rem; border-top: 2px solid var(--wp--preset--color--gold-500); }
.vis-engage__feature > * { margin: 0 0 .9rem !important; }
.vis-engage__feature > :last-child { margin-bottom: 0 !important; }
.vis-engage__feature > h3 { font-size: var(--vis-h3-size) !important; padding: 0 !important; border: 0 !important; margin-bottom: 1rem !important; }
.vis-engage__feature > h3::before { display: none !important; }
.vis-engage__feature ul { padding-left: 1.1rem; display: grid; gap: .5rem; }
.vis-engage__video { max-width: 1100px; margin-inline: auto !important; overflow: hidden; border-radius: var(--wp--custom--radius--lg); box-shadow: var(--vis-shadow); }
.vis-engage__faqs { gap: clamp(2rem, 6vw, 6rem) !important; align-items: start !important; }
.vis-engage__faqs > .wp-block-column:first-child h2 { margin-bottom: 1.5rem !important; }
.vis-engage__gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; }
.vis-engage__gallery img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.vis-engage__credit { margin-top: 1rem !important; font-size: .8125rem; color: var(--vis-muted); }
.vis-engage__video iframe { display: block; width: 100% !important; height: auto !important; aspect-ratio: 16 / 9; border: 0; }
.vis-engage__others .vis-legacy-engage > h2.vis-legacy-heading { display: none; } /* the section already says "More products" */

/* Engage, elite pass -------------------------------------------------------------
   Voices: matched testimonials as large editorial quotes on navy.
   Closing band: the product's summary beside its booking buttons.
   Hub: underline tabs, quieter product cards, editorial testimonials.
   Partners: an even sponsor board and the partnership options as cards. */
.vis-engage__voices:not(:has(.vis-voice)) { display: none !important; }
.vis-voices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr)); gap: clamp(2.5rem, 5vw, 5rem); }
.vis-voice figure { margin: 0; display: grid; gap: 1.5rem; }
.vis-voice blockquote { margin: 0; padding: 0; border: 0; }
.vis-voice blockquote::before { content: "\201C"; display: block; height: .55em; font: italic 700 clamp(4rem, 6vw, 6rem)/1 var(--wp--preset--font-family--display); color: var(--wp--preset--color--gold-500); }
.vis-voice blockquote p { margin: 0; font-size: clamp(1.25rem, 1.05rem + .7vw, 1.75rem); line-height: 1.4; font-weight: 500; letter-spacing: -.01em; color: var(--vis-ink); text-wrap: pretty; }
.vis-voice figcaption { padding-top: 1rem; border-top: 1px solid var(--vis-line); text-transform: uppercase; color: var(--vis-accent-ink); }
.vis-voices:has(> .vis-voice:only-child) .vis-voice { max-width: 52rem; }
.vis-engage__close { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
.vis-engage__close h2 { margin-bottom: 1rem !important; }
.vis-engage__close p { max-width: 52ch; color: var(--vis-muted); }
.vis-engage__close .vis-engage__actions { justify-content: flex-end; }
@media (max-width: 781px) { .vis-engage__close .vis-engage__actions { justify-content: flex-start; } }
/* The enquiry form shown in the band (not behind a button): summary left, form card right.
   Either the old User Registration form or a CRM form (.vis-enquiry iframe). */
.vis-engage__close:has(.ur-form-cta.is-open, .vis-enquiry) { align-items: flex-start !important; }
.vis-engage__close:has(.ur-form-cta.is-open, .vis-enquiry) > .wp-block-column:first-child { flex-basis: 38% !important; position: sticky; top: 7rem; }
.vis-engage__close:has(.ur-form-cta.is-open, .vis-enquiry) > .wp-block-column:last-child { flex-basis: 62% !important; }
.vis-engage__close .vis-engage__actions:has(.ur-form-cta.is-open, .vis-enquiry) { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; }
:is(.ur-form-cta.is-open, .vis-engage__close .vis-enquiry) { margin-top: 0; width: 100%; scroll-margin-top: 7rem; }
.ur-form-cta.is-open .ur-form-cta__form { margin-top: 0; background-color: var(--wp--preset--color--white) !important; }
@media (max-width: 781px) { .vis-engage__close:has(.ur-form-cta.is-open, .vis-enquiry) > .wp-block-column:first-child { position: static; } }

/* Hub tabs: an underline nav instead of boxed chips. */
.vis-legacy-engage .vis-legacy-tabs ul { gap: 0 2rem; border-bottom: 1px solid var(--vis-line); margin-bottom: clamp(2rem, 4vw, 3rem); }
.vis-legacy-engage .vis-legacy-tabs a, .vis-legacy-engage .vis-legacy-tabs a:hover { min-height: 48px; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; color: var(--vis-muted) !important; box-shadow: inset 0 -2px 0 transparent; transition: color .25s, box-shadow .25s; }
.vis-legacy-engage .vis-legacy-tabs a:hover { color: var(--vis-ink) !important; }
.vis-legacy-engage .vis-legacy-tabs a[aria-current] { color: var(--vis-ink) !important; box-shadow: inset 0 -2px 0 var(--wp--preset--color--gold-500); }
.vis-legacy-engage__more { margin-top: clamp(1.5rem, 3vw, 2.5rem); font-weight: 600; }
.vis-legacy-engage__more a::after { content: " →"; }
/* Product cards: the title leads, the facts sit quietly underneath. */
.vis-legacy-engage .vis-card--item .vis-card__title { font-size: var(--vis-card-title-size) !important; line-height: 1.2; }
.vis-legacy-engage .vis-card--item .vis-card__title a { text-decoration: none !important; background: none !important; }
.vis-legacy-engage .vis-card--item .vis-card__facts { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--vis-line); display: grid; gap: .35rem; list-style: none; padding-left: 0; }
.vis-legacy-engage .vis-card--item .vis-card__facts li { font-size: .8125rem; color: var(--vis-muted); padding-left: 1.1rem; position: relative; }
.vis-legacy-engage .vis-card--item .vis-card__facts li::before { content: ""; position: absolute; left: 0; top: .55em; width: .4rem; height: .4rem; border-radius: 50%; background: var(--wp--preset--color--gold-500); }
.vis-legacy-engage .vis-card--item .vis-card__body { display: flex; flex-direction: column; gap: .75rem; height: 100%; }
/* Hub testimonials: editorial quotes, no boxes. */
.vis-legacy-quotes { gap: clamp(2rem, 4vw, 3.5rem) !important; }
.vis-legacy-quotes .vis-quote figure { background: none !important; border: 0 !important; box-shadow: none !important; padding: 1.5rem 0 0 !important; border-top: 2px solid var(--wp--preset--color--gold-500) !important; border-radius: 0 !important; }
.vis-legacy-quotes .vis-quote blockquote p { font-size: 1.125rem !important; line-height: 1.55; font-weight: 500; }

/* Partners: an even sponsor board (five across, every cell the same size). */
:is(.vis-legacy-logos, .vis-logos) .wp-block-post-template { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); justify-items: stretch !important; align-items: stretch !important; gap: 0 !important; border-top: 1px solid var(--vis-line); border-left: 1px solid var(--vis-line); }
:is(.vis-legacy-logos, .vis-logos) .wp-block-post-template > li { flex: none !important; aspect-ratio: 3 / 2; padding: clamp(.75rem, 1.5vw, 1.25rem); border-right: 1px solid var(--vis-line); border-bottom: 1px solid var(--vis-line); container-type: inline-size; }
/* Logos are sized in site.js by visible area as a share of the tile, so the
   marks grow with the board. Before that runs: a contained box in the tile. */
:is(.vis-legacy-logos, .vis-logos) .wp-block-post-template > li :is(figure, a) { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; }
:is(.vis-legacy-logos, .vis-logos) .wp-block-post-template > li img { width: auto !important; height: 44cqw; max-width: 84cqw !important; max-height: none !important; object-fit: contain !important; }
@media (max-width: 900px) { :is(.vis-legacy-logos, .vis-logos) .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { :is(.vis-legacy-logos, .vis-logos) .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vis-partners__ways { margin-top: clamp(3rem, 6vw, 5rem) !important; }
.vis-content ul.vis-partners__options { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1.25rem !important; margin: 1.25rem 0 2rem !important; padding: 0 !important; list-style: none; }
.vis-content ul.vis-partners__options li { margin: 0 !important; padding: 1.75rem 1.75rem 1.75rem !important; background: var(--wp--preset--color--white); border: 1px solid var(--vis-line); border-top: 3px solid var(--wp--preset--color--gold-500); border-radius: var(--wp--custom--radius--lg); line-height: 1.55; color: var(--vis-muted); }
.vis-content ul.vis-partners__options li::before { display: none !important; }
.vis-content ul.vis-partners__options li strong { display: block; margin-bottom: .5rem; font-size: 1.25rem; line-height: 1.25; color: var(--vis-ink); }
:is(.vis-legacy-logos, .vis-logos) .wp-block-post-template > li { box-sizing: border-box; width: auto !important; max-width: none !important; margin: 0 !important; background: var(--wp--preset--color--white) !important; transform: none !important; }
/* A card left alone on the last row of the Engage grid spans the row: image beside text. */
@media (min-width: 900px) {
	.vis-legacy-engage .vis-legacy-grid > li.vis-card:last-child:nth-child(3n + 1) { grid-column: 1 / -1; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
	.vis-legacy-engage .vis-legacy-grid > li.vis-card:last-child:nth-child(3n + 1) > figure { position: relative; min-height: 18rem; height: 100%; margin: 0; }
	.vis-legacy-engage .vis-legacy-grid > li.vis-card:last-child:nth-child(3n + 1) > figure img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; }
	.vis-legacy-engage .vis-legacy-grid > li.vis-card:last-child:nth-child(3n + 1) .vis-card__body { justify-content: center; padding: clamp(1.5rem, 3vw, 2.5rem) !important; height: auto; } /* the text sets the row height here; 100% (above) would size it from the photo and clip the facts list */
}
/* Engage hub: the Testimonials section follows the selected tab and hides when it has none. */
#testimonial-section:not(:has(.vis-quote)) { display: none !important; }

/* Partners as a pitch -------------------------------------------------------------
   The offer beside the athletes; the champion scoreboard on navy; options;
   current partners beside the board; partnership stories; a closing band. */
.vis-partners__pitch, .vis-partners__current, .vis-partners__close { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center !important; }
.vis-content .vis-partners__pitch h2.wp-block-heading { margin-bottom: 1.5rem !important; text-wrap: balance; }
.vis-partners__pitch p.is-style-lead { max-width: 34ch !important; }
.vis-partners__pitch .wp-block-image img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--wp--custom--radius--lg); }
.vis-figures { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.vis-figures li { display: grid; gap: .75rem; align-content: start; padding: .25rem clamp(1rem, 2vw, 2rem); border-left: 1px solid var(--vis-line); }
.vis-figures li:first-child { border-left: 0; padding-left: 0; }
.vis-figures__num { font: italic 700 clamp(3.5rem, 2rem + 4.5vw, 6.5rem)/.85 var(--wp--preset--font-family--display); color: var(--vis-ink); letter-spacing: -.01em; }
.vis-figures li span { text-transform: uppercase; color: var(--vis-accent-ink); }
@media (max-width: 900px) {
	.vis-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 0; }
	.vis-figures li:nth-child(odd) { border-left: 0; padding-left: 0; }
	.vis-figures li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
/* Intro beside its figures (Athlete Performance Support): lead and copy left, a 2 x 2 scoreboard right. */
.vis-intro-figures { gap: clamp(2.5rem, 6vw, 7rem) !important; align-items: flex-start !important; }
.vis-intro-figures p.is-style-lead { max-width: 44ch; margin-bottom: 1.75rem !important; }
.vis-intro-figures p:not(.is-style-lead) { max-width: 60ch; color: var(--vis-muted); }
.vis-figures--grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0 !important; position: sticky; top: 7rem; }
.vis-figures--grid li { border-left: 0 !important; border-top: 1px solid var(--vis-line); padding: clamp(1.25rem, 2.5vw, 2rem) 1rem clamp(1.5rem, 3vw, 2.5rem) 0 !important; grid-column: auto !important; position: relative; }
.vis-figures--grid li::before, .vis-content .wp-block-list.vis-figures--grid li::before { content: ""; position: absolute; top: -1px; left: 0; width: 2.5rem; height: 2px; background: var(--wp--preset--color--gold-500); }
.vis-figures--grid .vis-figures__num { font-size: clamp(3rem, 2rem + 3vw, 5rem); }
@media (max-width: 781px) { .vis-figures--grid { position: static; } }
.vis-partners__current .vis-legacy-logos { width: 100%; }
/* Beside the text the board has half the width: three across keeps the tiles (and the logos) a good size. */
@media (min-width: 901px) { .vis-partners__current :is(.vis-legacy-logos, .vis-logos) .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vis-partners__close p { font-size: clamp(1.25rem, 1.05rem + .7vw, 1.625rem); line-height: 1.4; font-weight: 500; color: var(--vis-ink) !important; max-width: 40ch; }
.vis-partners__close .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .vis-partners__close .wp-block-buttons { justify-content: flex-start; } }
.vis-partners__proof p.is-style-eyebrow { margin-bottom: clamp(1.5rem, 3vw, 2.5rem) !important; }
.vis-course .ld-enrollment .vis-pay-off { margin: 0; color: rgba(255, 255, 255, .75); font-size: .9375rem; }

/* 22. Engage list (home) ----------------------------------------------------------
   Learn, Support, Visit, Work set large as numbered rows, not a second row of
   photo cards: the athletes band below keeps the photos. On wide screens the
   rows share one photo frame on the right; the row under the pointer or focus
   shows its photo there and the others step back (site.js). Small screens: each
   row carries its own photo and nothing depends on hover. */
/* Block class only: Engage offering pages also carry .vis-engage on <main>. */
.wp-block-vis-engage-tiles { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .5fr); gap: clamp(2rem, 5vw, 6rem); align-items: stretch; margin-top: clamp(1.5rem, 3vw, 3rem); }
.vis-engage__rows { list-style: none; margin: 0; padding: 0; container-type: inline-size; }
.vis-engage__row { position: relative; border-top: 1px solid var(--vis-line); }
.vis-engage__row:last-child { border-bottom: 1px solid var(--vis-line); }
.vis-engage__row::before { content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 2px; background: var(--wp--preset--color--gold-500); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--vis-ease); }
.vis-engage__row.is-active::before { transform: scaleX(1); }
.vis-engage__link {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem) auto; grid-template-areas: "word line arrow"; align-items: center; column-gap: clamp(1rem, 2.5vw, 2.5rem);
	padding: clamp(1rem, 1.6vw, 1.75rem) 0 clamp(.9rem, 1.4vw, 1.5rem); color: var(--vis-ink); text-decoration: none;
}
.vis-engage__link:focus-visible { outline: var(--wp--custom--focus--ring); outline-offset: 4px; }
.vis-engage__word { grid-area: word; display: block; overflow: hidden; margin: -.08em 0 0; padding: .08em .3em 0 0; /* room for the italic overhang inside the rise mask */ }
.vis-engage__word > span {
	display: block; font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; text-transform: uppercase;
	font-size: clamp(2.25rem, 7cqi, 3.75rem); line-height: .82; /* sized to the list, so the longest word (Support) always fits; a step below the section heading */ letter-spacing: -.005em;
	transition: transform .6s var(--vis-ease), color .4s ease;
}
.vis-engage__line { grid-area: line; padding-bottom: .35rem; font-size: clamp(.9375rem, .85rem + .3vw, 1.0625rem); line-height: 1.45; color: var(--vis-muted); transition: color .4s ease; }
.vis-engage__arrow {
	grid-area: arrow; align-self: center; width: clamp(2.75rem, 3.5vw, 3.5rem); aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--vis-line); position: relative; overflow: hidden;
	transition: background .4s ease, border-color .4s ease;
}
.vis-engage__arrow::before, .vis-engage__arrow::after { position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.125rem; color: var(--vis-ink); transition: transform .5s var(--vis-ease); }
.vis-engage__arrow::after { transform: translateX(-120%); color: var(--wp--preset--color--navy-950); }
.vis-engage__row.is-active .vis-engage__arrow { background: var(--wp--preset--color--gold-500); border-color: var(--wp--preset--color--gold-500); }
.vis-engage__row.is-active .vis-engage__arrow::before { transform: translateX(120%); }
.vis-engage__row.is-active .vis-engage__arrow::after { transform: none; }
.vis-engage__row.is-active .vis-engage__word > span { transform: translateX(.08em); }
.vis-engage__row.is-active .vis-engage__line { color: var(--vis-ink); }
/* While the pointer is over the list, the other rows step back. */
.vis-engage__rows:is(:hover, :focus-within) .vis-engage__row:not(.is-active) .vis-engage__word > span { color: color-mix(in srgb, var(--vis-ink) 28%, transparent); }
.vis-engage__thumb { display: none; }
.vis-engage__stage { position: relative; overflow: hidden; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--navy-800); min-height: 100%; isolation: isolate; }
.vis-engage__stage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 25, 63, 0) 55%, rgba(3, 25, 63, .45)); pointer-events: none; }
.vis-engage__stage .vis-engage__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity .6s ease, transform 1.2s var(--vis-ease); }
.vis-engage__stage .vis-engage__photo.is-active { opacity: 1; transform: none; z-index: 1; }
@media (max-width: 1024px) {
	.wp-block-vis-engage-tiles { grid-template-columns: 1fr; }
	.vis-engage__stage { display: none; }
	.vis-engage__link { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "word arrow" "line arrow"; row-gap: .6rem; padding-right: calc(clamp(5rem, 16vw, 7.5rem) + 1rem); }
	.vis-engage__line { max-width: 40ch; padding: 0; }
	.vis-engage__arrow { display: none; }
	.vis-engage__thumb { display: block; position: absolute; right: 0; top: 50%; translate: 0 -50%; width: clamp(5rem, 16vw, 7.5rem); aspect-ratio: 1; object-fit: cover; border-radius: var(--wp--custom--radius--sm); pointer-events: none; }
	.vis-engage__row::before { display: none; }
	.vis-engage__rows:is(:hover, :focus-within) .vis-engage__row:not(.is-active) .vis-engage__word > span { color: inherit; }
	.vis-engage__row.is-active .vis-engage__word > span { transform: none; }
	.vis-engage__row.is-active .vis-engage__line { color: var(--vis-muted); }
}
@media (prefers-reduced-motion: reduce) {
	.vis-engage__row::before, .vis-engage__word > span, .vis-engage__arrow, .vis-engage__arrow::before, .vis-engage__arrow::after, .vis-engage__stage .vis-engage__photo { transition: none !important; }
}

/* 26. Athlete carousels ------------------------------------------------------------
   Wide screens: whole cards inside the content column, edges in line with the
   heading and button like every other section; the arrows page through.
   Phones: the row runs to the screen edges so the next card peeks in to swipe.
   Under the row: a progress line, a "01 / 12" count and previous/next (site.js). */
.vis-section:has(> .vis-carousel) { overflow-x: clip; }
.vis-section > .vis-carousel .wp-block-post-template { --vis-gap: clamp(.75rem, 1.2vw, 1.25rem); gap: var(--vis-gap); grid-auto-columns: calc((100% - 3 * var(--vis-gap)) / 4) !important; }
@media (max-width: 1024px) { .vis-section > .vis-carousel .wp-block-post-template { grid-auto-columns: calc((100% - 2 * var(--vis-gap)) / 3) !important; } }
@media (max-width: 781px) {
	.vis-section > .vis-carousel .wp-block-post-template { max-width: none !important; margin-inline: calc(50% - 50vw) !important; padding-inline: calc(50vw - 50%) !important; grid-auto-columns: 46% !important; }
}
@media (max-width: 600px) { .vis-section > .vis-carousel .wp-block-post-template { grid-auto-columns: 74% !important; } }
.vis-carousel .vis-card--athlete :is(.wp-block-post-featured-image, figure) img { transition: transform 1.2s var(--vis-ease); }
.vis-carousel .vis-card--athlete:hover :is(.wp-block-post-featured-image, figure) img { transform: scale(1.05); }

.vis-carousel__nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.75rem); margin-top: clamp(1.5rem, 2.5vw, 2.25rem); }
.vis-carousel__nav[hidden] { display: none; }
.vis-carousel__progress { position: relative; flex: 1; height: 2px; overflow: hidden; background: var(--vis-line); border-radius: 2px; }
.vis-carousel__progress span { position: absolute; inset: 0 auto 0 0; background: var(--vis-ink); border-radius: inherit; transition: width .3s ease; }
.vis-carousel__count { margin: 0; min-width: 4.5rem; text-align: right; color: var(--vis-muted); font-size: .8125rem; font-weight: 600; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.vis-carousel__count b { color: var(--vis-ink); font-weight: 700; }
.vis-carousel__nav .vis-carousel__btn {
	width: 52px; height: 52px; border: 1px solid var(--vis-ink) !important; background: transparent; color: var(--vis-ink) !important;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease, opacity .3s ease;
}
.vis-carousel__nav .vis-carousel__btn::before {
	background: currentColor !important; transition: transform .4s var(--vis-ease);
	-webkit-mask: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vis-carousel__nav .vis-carousel__btn:hover:not(:disabled) { background: var(--vis-ink); border-color: var(--vis-ink) !important; color: var(--vis-btn-fg, var(--wp--preset--color--white)) !important; }
.vis-carousel__nav .vis-carousel__btn.is-next:hover:not(:disabled)::before { transform: translateX(2px); }
.vis-carousel__nav .vis-carousel__btn.is-prev:hover:not(:disabled)::before { transform: rotate(180deg) translateX(2px); }
.vis-carousel__nav .vis-carousel__btn:disabled { opacity: .25; }
.vis-carousel__nav .vis-carousel__btn:focus-visible { outline: 2px solid var(--vis-accent-ink); outline-offset: 3px; }
@media (max-width: 600px) { .vis-carousel__count { display: none; } }
@media (prefers-reduced-motion: reduce) { .vis-carousel .vis-card--athlete img, .vis-carousel__progress span { transition: none !important; } }

/* Para events (vis/para-events): a quiet list by month. The date leads in the
   display face; Register and Add to calendar sit to the right. */
.vis-events__month { margin: clamp(2rem, 4vw, 3rem) 0 0 !important; padding-bottom: .75rem; border-bottom: 1px solid var(--vis-line); text-transform: uppercase; color: var(--vis-accent-ink); }
.vis-events__month:first-child { margin-top: 0 !important; }
.vis-events__list { list-style: none; margin: 0; padding: 0; }
.vis-events__item { display: grid; grid-template-columns: 4.5rem 1fr auto; gap: .25rem clamp(1rem, 3vw, 2rem); align-items: center; padding: clamp(1.25rem, 2.5vw, 1.75rem) 0; border-bottom: 1px solid var(--vis-line); }
.vis-events__date { display: grid; justify-items: center; align-self: start; line-height: 1; color: var(--vis-ink); }
.vis-events__day { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: clamp(2.5rem, 2rem + 1.5vw, 3.25rem); }
.vis-events__weekday { margin-top: .35rem; text-transform: uppercase; color: var(--vis-muted); }
.vis-events__body > * { margin: 0 !important; }
.vis-events__type { margin-bottom: .35rem !important; text-transform: uppercase; color: var(--vis-accent-ink); }
.vis-events__title { font-size: var(--vis-h3-size) !important; line-height: 1.2; }
.vis-events__meta { margin-top: .4rem !important; color: var(--vis-ink); font-weight: 500; }
.vis-events__details { margin-top: .25rem !important; color: var(--vis-muted); }
.vis-events .wp-block-button__link { color: var(--vis-btn-fg); text-decoration: none; } /* beats .vis-content li a */
.vis-events__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .75rem 1.25rem; }
.vis-events__ics { min-height: 44px; padding: 0; border: 0; background: none; color: var(--vis-ink); font: inherit; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; cursor: pointer; }
.vis-events__ics:hover { text-decoration-color: var(--vis-accent-ink); }
.vis-events__empty { margin: 0; color: var(--vis-muted); }
@media (max-width: 781px) {
	.vis-events__item { grid-template-columns: 3.5rem 1fr; }
	.vis-events__actions { grid-column: 2; justify-content: flex-start; margin-top: .75rem; }
}

/* Enquire button that stays on screen on enquiry pages (site.js): bottom right
   on wide screens, a full-width bar on phones. Hidden until the page's own
   "Enquire now" has scrolled away, and while the form is in view. */
.vis-enquire-float { position: fixed; z-index: 90; right: var(--vis-gutter); bottom: clamp(1rem, 2.5vw, 1.75rem); margin: 0; box-shadow: 0 10px 30px rgba(6, 22, 43, .28); opacity: 0; visibility: hidden; transform: translateY(1rem); transition: opacity .35s ease, transform .5s var(--vis-ease), visibility 0s linear .5s; }
.vis-enquire-float > .wp-block-button__link { background: var(--wp--preset--color--navy-900); color: var(--wp--preset--color--white); }
.vis-enquire-float.is-shown { opacity: 1; visibility: visible; transform: none; transition: opacity .35s ease, transform .5s var(--vis-ease), visibility 0s; }
@media (max-width: 781px) {
	.vis-enquire-float { left: 5.25rem; right: 1rem; bottom: 1rem; } /* clears the accessibility button, bottom left */
	.vis-enquire-float .wp-block-button__link { width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) { .vis-enquire-float, .vis-enquire-float.is-shown { transform: none; } }
@media print { .vis-enquire-float { display: none; } }

/* Engage offering banner (inc/legacy-shortcodes.php): title, lead sentence and
   the main buttons on the photo, set low where it fades to navy. Anything
   taller than the photo runs on onto the same navy, so it always reads. */
main.vis-engage { --vis-hero-h: clamp(520px, 48vw, 700px); }
main.vis-engage > .wp-block-post-content > .vis-banner { height: var(--vis-hero-h) !important; }
.vis-engage-hero {
	position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; text-align: center;
	box-sizing: border-box; min-height: var(--vis-hero-h); margin-top: calc(-1 * var(--vis-hero-h)) !important;
	padding: 9.5rem var(--vis-gutter) clamp(3.5rem, 7vw, 6rem);
	background: linear-gradient(180deg, transparent var(--vis-hero-h), var(--wp--preset--color--navy-900) var(--vis-hero-h));
}
.vis-engage-hero > .vis-page-head { margin: 0 !important; }
.vis-engage-hero__lead { max-width: 44ch; margin: clamp(1rem, 2vw, 1.5rem) auto 0 !important; font-size: var(--vis-lead-size); line-height: 1.5; font-weight: 500; color: color-mix(in srgb, var(--wp--preset--color--white) 88%, transparent); text-wrap: pretty; }
.vis-engage-hero .vis-engage__actions { justify-content: center; margin-top: clamp(1.5rem, 3vw, 2.25rem) !important; }
/* The intro below keeps "What's included" and the photo. */
.vis-engage__intro .wp-block-column > .is-style-eyebrow:first-child { margin-top: 0 !important; }
@media (max-width: 781px) {
	main.vis-engage { --vis-hero-h: 560px; }
	.vis-engage-hero { padding-top: 8rem; }
}

/* 41. Availability flag (Engage offerings) -------------------------------------------
   "Fully booked for 2026" lives in the Availability fields, not the title: a small
   gold line above the title in the hero, and the card's eyebrow in lists. */
.vis-engage-hero__status { order: -1; display: inline-block; margin: 0 0 clamp(1rem, 2vw, 1.5rem) !important; padding: .5rem 1rem; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--gold-500); color: var(--wp--preset--color--navy-950); font-family: var(--wp--preset--font-family--body); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1; }
