/*
 * VISA Athletes — front-end styles matching the VISA site (Hestia theme):
 * Roboto body / Roboto Slab headings, #0071BC accent, raised white cards, uppercase small links.
 * Override any custom property from the theme or Elementor.
 */
:root {
	--visa-accent: #0071bc;
	--visa-accent-dark: #005a96;
	--visa-accent-soft: #e8f2fa;
	--visa-ink: #333333;
	--visa-text: #3c4858;
	--visa-muted: #6b7280;
	--visa-placeholder: #eef1f5;
	--visa-border: #e5e5e5;
	--visa-surface: #ffffff;
	--visa-surface-2: #f7f8fa;
	--visa-radius: 6px;
	--visa-gap: 30px;
	--visa-heading-font: "Roboto Slab", "Times New Roman", serif;
	--visa-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
	--visa-shadow-raised: 0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0 rgba(0, 0, 0, 0.12);
	--visa-gold: #a8790a;
	--visa-silver: #6f7883;
	--visa-bronze: #8f5428;
}

.visa-athletes-wrap, .visa-profile, .visa-results, .visa-criteria { color: var(--visa-text); }
/* Layout responds to the width it is given (page builder column), not only the window. */
.visa-athletes-wrap, .visa-profile, .visa-results { container-type: inline-size; }
.visa-athletes-wrap a, .visa-profile a, .visa-results a { color: var(--visa-accent); text-decoration: none; }
.visa-athletes-wrap a:hover, .visa-profile a:hover, .visa-results a:hover { color: var(--visa-accent-dark); }

/* Status tabs */
.visa-status-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; }
.visa-status-nav__tab {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 3px;
	background: #eeeeee; color: var(--visa-text) !important; font-size: 12px; font-weight: 500;
	text-transform: uppercase; letter-spacing: 0.3px; text-decoration: none; transition: background 0.2s, box-shadow 0.2s;
}
a.visa-status-nav__tab:hover { background: #e0e0e0; }
.visa-status-nav__tab.is-active { background: var(--visa-accent); color: #fff !important; box-shadow: 0 4px 12px -4px rgba(0, 113, 188, 0.6); }

/* Listing */
.visa-status-group__heading { font-family: var(--visa-heading-font); font-weight: 700; color: var(--visa-ink); margin: 0 0 12px; }
.visa-status-group__description { font-size: 17px; font-weight: 300; line-height: 1.6; max-width: 760px; margin-bottom: 28px; }
.visa-status-group + .visa-status-group { margin-top: 48px; }
.visa-athletes { display: grid; gap: var(--visa-gap); margin: 0 0 32px; }
.visa-athletes--grid.visa-cols-1 { grid-template-columns: 1fr; }
.visa-athletes--grid.visa-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.visa-athletes--grid.visa-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.visa-athletes--grid.visa-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.visa-athletes--list, .visa-athletes--compact { grid-template-columns: 1fr; }
.visa-athletes--compact { gap: 8px; }
@container (max-width: 1000px) { .visa-athletes--grid.visa-cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (max-width: 780px) { .visa-athletes--grid.visa-cols-3, .visa-athletes--grid.visa-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 480px) { .visa-athletes--grid[class*="visa-cols-"] { grid-template-columns: 1fr; } .visa-card--list { flex-direction: column; } .visa-card--list .visa-card__photo { flex-basis: auto; height: 220px; } }

/* Card */
.visa-card { background: var(--visa-surface); border-radius: var(--visa-radius); box-shadow: var(--visa-shadow); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 0.2s; }
.visa-card:hover { box-shadow: var(--visa-shadow-raised); }
.visa-card--list { flex-direction: row; }
.visa-card--list .visa-card__photo { flex: 0 0 200px; height: auto; min-height: 200px; }
.visa-card--compact { flex-direction: row; align-items: center; padding: 10px 16px; }
.visa-card__photo { height: 250px; }
.visa-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.visa-card--compact .visa-card__body { padding: 0; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
.visa-card__name { margin: 0; font-family: var(--visa-heading-font); font-size: 20px; font-weight: 700; line-height: 1.3; }
.visa-card__name a { color: var(--visa-ink) !important; }
.visa-card__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 13px; color: var(--visa-muted); }
.visa-card__bio { margin: 0; font-size: 14px; font-weight: 300; line-height: 1.5; }
.visa-card__best { margin: 0; display: flex; gap: 8px; align-items: baseline; font-size: 14px; line-height: 1.45; }
.visa-card__best .visa-medal { flex-shrink: 0; }
.visa-card__link { margin-top: auto; padding-top: 6px; font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.4px; }

/* Photo */
.visa-photo { display: block; background: var(--visa-placeholder); overflow: hidden; }
.visa-photo img, .visa-photo__img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.visa-photo__placeholder { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.visa-photo__placeholder svg { width: 96px; max-width: 45%; fill: #c3cad3; }

/* Badges, chips, medals */
.visa-badge { --visa-badge: var(--visa-accent); display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--visa-badge); color: #fff; font-size: 11px; font-weight: 500; line-height: 1.5; text-transform: uppercase; letter-spacing: 0.4px; }
.visa-badge--lg { padding: 5px 14px; font-size: 12px; }
.visa-chip { display: inline-block; padding: 5px 14px; border-radius: 999px; background: #f1f3f5; color: var(--visa-text); font-size: 12px; font-weight: 500; }
.visa-chip--accent { padding: 8px 14px; background: var(--visa-accent-soft); color: var(--visa-accent-dark); font-size: 14px; }
.visa-chips { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.visa-medal { display: inline-block; min-width: 48px; text-align: center; padding: 1px 7px; border-radius: 3px; font-size: 11px; font-weight: 700; line-height: 1.6; color: #fff; }
.visa-medal--gold { background: var(--visa-gold); }
.visa-medal--silver { background: var(--visa-silver); }
.visa-medal--bronze { background: var(--visa-bronze); }
.visa-muted { color: var(--visa-muted); font-weight: 300; }
.visa-note { display: block; font-size: 13px; color: var(--visa-muted); font-style: italic; }
.visa-empty { color: var(--visa-muted); font-style: italic; }

/* Profile */
.visa-profile { display: flex; flex-direction: column; gap: 44px; }
.visa-profile h2 { font-family: var(--visa-heading-font); font-size: 26px; font-weight: 700; color: var(--visa-ink); margin: 0 0 14px; }
.visa-profile__section { margin: 0; }
.visa-profile__bio, .visa-profile__campaign { max-width: 820px; font-size: 17px; font-weight: 300; line-height: 1.7; }
.visa-profile__header { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }
.visa-profile__photo { width: 280px; aspect-ratio: 4 / 5; border-radius: var(--visa-radius); box-shadow: var(--visa-shadow-raised); }
.visa-profile__intro { display: flex; flex-direction: column; gap: 22px; padding-top: 6px; }
.visa-profile__badges { margin: 0; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.visa-facts { margin: 0; display: grid; grid-template-columns: 150px minmax(0, 1fr); row-gap: 12px; font-size: 16px; }
.visa-facts dt { font-weight: 500; color: var(--visa-ink); }
.visa-facts dd { margin: 0; font-weight: 300; }
.visa-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; }
.visa-stat { padding: 18px 20px; border-radius: var(--visa-radius); background: var(--visa-surface-2); display: flex; flex-direction: column; gap: 4px; }
.visa-stat__value { font-family: var(--visa-heading-font); font-size: 34px; font-weight: 700; line-height: 1.1; color: var(--visa-ink); }
.visa-stat__label { font-size: 13px; color: var(--visa-muted); }
.visa-links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.4px; }
.visa-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--visa-gap); }
.visa-highlight { padding: 24px 26px; border-radius: var(--visa-radius); box-shadow: var(--visa-shadow); display: flex; flex-direction: column; gap: 14px; }
.visa-highlight h3 { margin: 0; font-family: inherit; font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.6px; color: var(--visa-muted); }
.visa-highlight ul { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 8px; }
.visa-highlight ul.visa-medals { padding-left: 0; list-style: none; gap: 12px; }
.visa-medals { list-style: none; padding: 0; margin: 0; }
.visa-medals li { display: flex; gap: 12px; align-items: baseline; font-size: 16px; line-height: 1.4; color: var(--visa-ink); }
.visa-medals li .visa-medal { flex-shrink: 0; }
.visa-profile__back { margin: 0; }
.visa-profile__back a { font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.4px; }
@container (max-width: 760px) {
	.visa-profile__header { grid-template-columns: 1fr; gap: 18px; }
	.visa-profile__photo { width: 200px; }
	.visa-highlights { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.visa-profile { gap: 30px; }
	.visa-profile h2 { font-size: 22px; }
	.visa-profile__header { grid-template-columns: 1fr; gap: 18px; }
	.visa-profile__photo { width: 180px; }
	.visa-facts { grid-template-columns: 120px minmax(0, 1fr); font-size: 15px; }
	.visa-highlights { grid-template-columns: 1fr; }
	.visa-highlight { padding: 20px; }
}

/* Results */
.visa-results__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 16px; }
.visa-results__title { margin: 0 !important; }
.visa-results__filters { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; font-size: 14px; }
.visa-results__filters label { display: flex; gap: 8px; align-items: center; min-height: 44px; margin: 0; font-weight: 400; }
.visa-results__filters select { font: inherit; padding: 6px 10px; border: 1px solid #d2d6db; border-radius: 3px; background: #fff; }
.visa-table-results { width: 100%; border-collapse: collapse; margin-bottom: 24px; font-size: 15px; }
.visa-table-results caption { text-align: left; font-weight: 700; font-size: 18px; padding: 8px 0; color: var(--visa-ink); font-family: var(--visa-heading-font); }
.visa-table-results th, .visa-table-results td { text-align: left; padding: 16px 12px; border-bottom: 1px solid #eeeeee; vertical-align: top; }
.visa-table-results thead tr { border-bottom: 2px solid var(--visa-border); }
.visa-table-results th { padding: 10px 12px; font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; color: var(--visa-muted); }
.visa-table-results .visa-col-date { width: 80px; font-weight: 500; color: var(--visa-ink); }
.visa-table-results .visa-col-class { width: 170px; font-weight: 300; }
.visa-table-results .visa-col-result { width: 210px; }
.visa-table-results .visa-col-result .visa-medal { margin-right: 6px; }
.visa-event { display: block; color: var(--visa-ink); }
.visa-event__place { display: block; margin-top: 3px; font-size: 13px; }
.visa-table-results tr[hidden], .visa-table-results[hidden] { display: none; }
@container (max-width: 640px) {
	.visa-table-results thead { position: absolute; left: -9999px; }
	.visa-table-results, .visa-table-results tbody, .visa-table-results tr, .visa-table-results td { display: block; width: 100% !important; }
	.visa-table-results td.is-empty { display: none; }
	.visa-table-results tr { box-sizing: border-box; border: 1px solid var(--visa-border) !important; border-radius: var(--visa-radius); margin-bottom: 12px; padding: 12px 16px; }
	.visa-table-results td { border: 0; padding: 3px 0; }
	.visa-table-results td.visa-col-date::before, .visa-table-results td.visa-col-class::before { content: attr(data-label) ": "; font-weight: 500; color: var(--visa-muted); }
}

.visa-criteria__title { font-family: var(--visa-heading-font); }
.visa-criteria__guideline { font-size: 13px; color: var(--visa-muted); }
.visa-athletes-wrap .screen-reader-text, .visa-results .screen-reader-text, .visa-card .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Honours: medal winners, medal count, Games delegations */
.visa-honours, .visa-honours__section { color: var(--visa-text); container-type: inline-size; }
.visa-honours__section + .visa-honours__section { margin-top: 56px; }
.visa-honours a { color: var(--visa-accent); text-decoration: none; }
.visa-honours a:hover { color: var(--visa-accent-dark); }
.visa-honours__title { font-family: var(--visa-heading-font); font-size: 30px; font-weight: 700; color: var(--visa-ink); margin: 0 0 24px; }
.visa-games-block + .visa-games-block { margin-top: 36px; }
.visa-games-block__name { font-family: var(--visa-heading-font); font-size: 22px; font-weight: 700; color: var(--visa-ink); margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid var(--visa-border); }
.visa-editions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 30px; }
.visa-edition { background: var(--visa-surface); border-radius: var(--visa-radius); box-shadow: var(--visa-shadow); padding: 18px 20px; }
.visa-edition__title { margin: 0 0 10px; font-family: inherit; font-size: 16px; font-weight: 500; color: var(--visa-ink); }
.visa-edition__year { font-family: var(--visa-heading-font); font-weight: 700; color: var(--visa-accent); margin-right: 4px; }
.visa-edition__list, .visa-edition__officials { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.45; }
.visa-edition__officials { margin-top: 10px; padding-top: 10px; border-top: 1px solid #eeeeee; font-size: 14px; }
.visa-edition .visa-note { display: inline; margin-left: 4px; }
.visa-medal-line { display: flex; align-items: center; gap: 10px; }
.visa-medal-line .visa-medal { flex-shrink: 0; }
.visa-medal-line__photo img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: center top; display: block; }
.visa-medal-count__games { margin: -12px 0 18px; color: var(--visa-muted); }
.visa-medal-count__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.visa-count-tile { border-radius: var(--visa-radius); padding: 22px; color: #fff; display: flex; flex-direction: column; gap: 4px; box-shadow: var(--visa-shadow); }
.visa-count-tile--gold { background: var(--visa-gold); }
.visa-count-tile--silver { background: var(--visa-silver); }
.visa-count-tile--bronze { background: var(--visa-bronze); }
.visa-count-tile__value { font-family: var(--visa-heading-font); font-size: 44px; font-weight: 700; line-height: 1; }
.visa-count-tile__label { font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; }
.visa-medal-count__note { margin: 10px 0 0; font-size: 13px; }
.visa-roster__grid { display: grid; gap: 20px; }
.visa-roster__grid.visa-cols-1 { grid-template-columns: 1fr; }
.visa-roster__grid.visa-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.visa-roster__grid.visa-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.visa-roster__grid.visa-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@container (max-width: 820px) { .visa-roster__grid.visa-cols-3, .visa-roster__grid.visa-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 560px) { .visa-editions, .visa-roster__grid[class*="visa-cols-"] { grid-template-columns: 1fr; } .visa-medal-count__tiles { grid-template-columns: 1fr; } }
