/*
 * Tapped — spec 90.
 * Values from Figma page 898:585 (read 2026-11-02): grid 1702:33028 / 1752:3280, card set 1647:2719,
 * story 1753:3382, share band 1753:3403. Everything that needs a child combinator or a media query
 * lives here, not in a Divi free-form slot (spec 79b). Breakpoints are Divi's: ≥981 · 768–980 · ≤767.
 */

/* ---------------------------------------------------------------- tokens */
.sego-tapped-page,
.sego-tapped-story,
.home {
	--tp-ground: #faf7f2;
	--tp-line: #eadfc9;
	--tp-ink: #1f4a4a;
	--tp-plum: #78466f;
	--tp-plum-deep: #4b153f;
	--tp-gold: #d5b52a;
	--tp-honey: #eada94;
	--tp-honey-pale: #f8f0d0;
	--tp-teal: #2f5c5c;
	--tp-teal-dark: #013838;
	--tp-grey: #4b4a48;
	--tp-placeholder: #a5a3a0;
	--tp-coral: #dc6867;
	--tp-display: 'Literata', Georgia, serif;
	--tp-shadow: 0 8px 20px rgba(1, 56, 56, 0.07);
	--tp-shadow-hover: 0 12px 24px rgba(1, 56, 56, 0.10);
}

/* Program palettes (sego_tapped_programs()): rule/text colour + tint. */
.sego-tapped-card--next,    .sego-tapped-tag--next,    .sego-tapped-program--next    { --tp-prog: #dc6867; --tp-tint: #fceaea; --tp-on: #1f4a4a; }
.sego-tapped-card--rising,  .sego-tapped-tag--rising,  .sego-tapped-program--rising  { --tp-prog: #d5b52a; --tp-tint: #fff8ed; --tp-on: #1f4a4a; }
.sego-tapped-card--leading, .sego-tapped-tag--leading, .sego-tapped-program--leading { --tp-prog: #78466f; --tp-tint: #f5eff3; --tp-on: #ffffff; }
.sego-tapped-card--suite,   .sego-tapped-tag--suite,   .sego-tapped-program--suite   { --tp-prog: #2f5c5c; --tp-tint: #e8f2f1; --tp-on: #ffffff; }
.sego-tapped-card--political-development,
.sego-tapped-tag--political-development,
.sego-tapped-program--political-development { --tp-prog: #618a83; --tp-tint: #eef3f2; --tp-on: #ffffff; }

/*
 * NO clearfix override here. Spec 81 hides `.et_pb_row::after` on its few FLEX rows (where the pseudo is a
 * phantom first item); Tapped has no flex row, and Divi's ordinary rows NEED that clearfix to contain
 * their floated columns. 1.31.0 shipped the override page-wide and every row collapsed to 0px — the
 * section grounds and the whole footer (also a row inside the page) folded up while their content spilled
 * past them (found 2026-11-02 on a 375px story page; fixed in 1.31.1).
 */

/* ================================================================ HERO (1702:33028) */
/* Photo, bottom shade and type are Divi settings on the section/modules (build-90c) so the client can
   change them; only the layout (a 727px band with the copy pinned to the bottom) lives here. */
.sego-tapped-hero.et_pb_section {
	display: flex;
	align-items: flex-end;
	min-height: 727px;
}
.sego-tapped-hero .et_pb_row { width: 100%; }
@media (max-width: 980px) { .sego-tapped-hero.et_pb_section { min-height: 520px; } }
@media (max-width: 767px) { .sego-tapped-hero.et_pb_section { min-height: 440px; } }

/* Buttons whose comp label is uppercase (12/16, +5%). */
/* Divi gives every button a 2px currentColor border; the comp's buttons are flat fills. */
.et_pb_button.sego-tapped-btn,
.et_pb_button.sego-tapped-btn:hover { text-transform: uppercase; border-width: 0 !important; }

/* ================================================================ FILTER BAR (1752:3280 `filters`) */
.sego-tapped-filters.et_pb_section { border-bottom: 1px solid var(--tp-line); }
.sego-tapped-filter .et_pb_post_filter__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}
.sego-tapped-filter .et_pb_post_filter_item { margin: 0; padding: 0; width: auto; max-width: none; flex: 0 1 auto; }
.sego-tapped-filter .sego-tapped-fi--search { margin-left: auto; flex: 0 1 400px; }
/* The reset item exists for the JS "Clear all" (it drives Divi's own reset fetch); it has no place in the bar. */
.sego-tapped-filter .sego-tapped-fi--reset { display: none; }
/* The visible labels are the pills themselves; the item labels stay for screen readers. */
.sego-tapped-filter .et_pb_post_filter__item-label {
	position: absolute !important;
	width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Program pills */
.sego-tapped-filter .sego-tapped-fi--program .et_pb_post_filter__item-options-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
/* Divi sizes each option to the full list width (one per line, as a sidebar checklist); pills hug. */
.sego-tapped-filter .sego-tapped-fi--program .et_pb_post_filter__item-option { display: block; position: relative; width: auto; flex: 0 0 auto; }
.sego-tapped-filter .sego-tapped-fi--program .et_pb_post_filter__item-option input {
	position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0;
}
.sego-tapped-filter .sego-tapped-fi--program .et_pb_post_filter__item-option > label,
.sego-tapped-all {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 16px;
	border: 1px solid var(--tp-pill, var(--tp-teal));
	border-radius: 20px;
	background: #ffffff;
	color: var(--tp-ink);
	font-size: 13px;
	line-height: 20px;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.15s, color 0.15s;
}
.sego-tapped-filter .sego-tapped-fi--program .et_pb_post_filter__item-option > label i { display: none; }
.sego-tapped-filter input[value="next"] + label    { --tp-pill: #dc6867; --tp-pill-on: #1f4a4a; }
.sego-tapped-filter input[value="rising"] + label  { --tp-pill: #d5b52a; --tp-pill-on: #1f4a4a; }
.sego-tapped-filter input[value="leading"] + label { --tp-pill: #78466f; --tp-pill-on: #ffffff; }
.sego-tapped-filter input[value="suite"] + label   { --tp-pill: #2f5c5c; --tp-pill-on: #ffffff; }
.sego-tapped-filter input[value="political-development"] + label { --tp-pill: #618a83; --tp-pill-on: #ffffff; }
.sego-tapped-filter .sego-tapped-fi--program input:checked + label {
	background: var(--tp-pill);
	color: var(--tp-pill-on, #ffffff);
}
.sego-tapped-filter .sego-tapped-fi--program input:focus-visible + label,
.sego-tapped-all:focus-visible {
	outline: 2px solid var(--tp-coral);
	outline-offset: 2px;
}
.sego-tapped-all { font-family: inherit; }
.sego-tapped-all[aria-pressed="true"] { background: var(--tp-teal); border-color: var(--tp-teal); color: #ffffff; }

/* Cohort year (no control in the comp — the chip "Cohort Year: 2025" implies one; spec 90 §3) */
.sego-tapped-filter .sego-tapped-fi--year select {
	height: 40px;
	min-width: 132px;
	padding: 0 36px 0 16px;
	border: 1px solid var(--tp-line);
	border-radius: 20px;
	background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231f4a4a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
	color: var(--tp-ink);
	font-size: 13px;
	font-weight: 700;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

/* Divi's post-filter controls come grey (#eee) and borderless from its own module CSS, which outranks a
   class chain here — measured on Local 2026-11-02. The comp's values are forced. */
.sego-tapped-page .sego-tapped-filter .sego-tapped-fi--year select.et_pb_post_filter__item-control,
.sego-tapped-page .sego-tapped-filter .sego-tapped-fi--search input.et_pb_post_filter__item-control {
	background-color: #ffffff !important;
	border: 1px solid var(--tp-line) !important;
	color: var(--tp-ink) !important;
	font-size: 13px !important;
	line-height: 20px !important;
}
.sego-tapped-page .sego-tapped-filter .sego-tapped-fi--year select.et_pb_post_filter__item-control {
	height: 40px !important;
	padding: 0 36px 0 16px !important;
	border-radius: 20px !important;
	font-weight: 700 !important;
	background-image: none !important;   /* Divi draws its own chevron; ours would be a second one */
}
.sego-tapped-page .sego-tapped-filter .sego-tapped-fi--search input.et_pb_post_filter__item-control {
	height: 52px !important;
	padding: 0 16px 0 48px !important;
	border-radius: 26px !important;
}

/* Search (1752:3280 `search-bar`) */
.sego-tapped-filter .sego-tapped-fi--search input.et_pb_post_filter__item-control {
	width: 100%;
	height: 52px;
	padding: 0 16px 0 48px;
	border: 1px solid var(--tp-line);
	border-radius: 26px;
	background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23618a83' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat 16px center;
	color: var(--tp-ink);
	font-size: 13px;
}
.sego-tapped-filter .sego-tapped-fi--search input::placeholder { color: #8e8d8a; opacity: 1; }
.sego-tapped-filter select:focus-visible,
.sego-tapped-filter .sego-tapped-fi--search input:focus-visible {
	outline: 2px solid var(--tp-coral);
	outline-offset: 2px;
}
@media (max-width: 980px) {
	.sego-tapped-filter .sego-tapped-fi--search { margin-left: 0; flex: 1 1 100%; }
	.sego-tapped-filter .sego-tapped-fi--program .et_pb_post_filter__item-options-list {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
	}
	.sego-tapped-filter .sego-tapped-fi--program { max-width: 100%; }
}

/* ================================================================ STATUS ROW (`filter-status`) */
.sego-tapped-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.sego-tapped-status__left { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.sego-tapped-chips { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; margin: 0; padding: 0; }
.sego-tapped-page .sego-tapped-chips li { list-style: none; margin: 0; padding: 0; }
.sego-tapped-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 0;
	border-radius: 20px;
	background: var(--tp-honey-pale);
	color: var(--tp-ink);
	font: inherit;
	font-size: 13px;
	line-height: 20px;
	font-weight: 700;
	cursor: pointer;
}
.sego-tapped-chip:hover { background: var(--tp-honey); }
.sego-tapped-chip:focus-visible,
.sego-tapped-clear:focus-visible,
.sego-tapped-empty__clear:focus-visible { outline: 2px solid var(--tp-coral); outline-offset: 2px; }
.sego-tapped-clear {
	border: 0; background: none; padding: 0;
	color: var(--tp-plum); font: inherit; font-size: 13px; line-height: 20px; font-weight: 700;
	cursor: pointer; text-decoration: underline; text-underline-offset: 3px;
}
.sego-tapped-count { color: var(--tp-ink); font-size: 13px; line-height: 20px; font-weight: 700; white-space: nowrap; }

/* ================================================================ CARD (1647:2719) */
.sego-tapped-grid.et_pb_group { align-items: stretch; }
.sego-tapped-card.et_pb_group {
	position: relative;
	background: #ffffff;
	border: 1px solid transparent;
	border-top: 4px solid var(--tp-prog, var(--tp-gold));
	border-radius: 14px;
	box-shadow: var(--tp-shadow);
	padding: 28px;
	transition: box-shadow 0.15s, border-color 0.15s;
}
.sego-tapped-card.et_pb_group:hover,
.sego-tapped-card.et_pb_group:focus-within {
	border-color: var(--tp-gold);
	border-top-color: var(--tp-prog, var(--tp-gold));
	box-shadow: var(--tp-shadow-hover);
}
.sego-tapped-card .et_pb_module { margin: 0 !important; }
.sego-tapped-card .et_pb_text_inner > *:last-child { margin-bottom: 0; padding-bottom: 0; }
.sego-tapped-card__head {
	display: flex;
	align-items: flex-start;
	height: 100px;
	padding: 16px;
	border-radius: 8px;
	background: var(--tp-tint, #fff8ed);
}
.sego-tapped-card__avatar,
.sego-tapped-byline__avatar,
.sego-tapped-bio__avatar {
	display: block;
	flex: none;
	border-radius: 50%;
	object-fit: cover;
	object-position: 50% 25%;
	background: var(--tp-placeholder);
}
.sego-tapped-card__avatar { width: 68px; height: 68px; }
.sego-tapped-avatar--empty { display: block; }
/* The theme sets every h3 in Literata through `.et_pb_module h3` (0-1-1); the comp's name is the body
   face, bold. Two classes outrank it; the variable follows the site's body-font switch (fonts.php). */
.sego-tapped-card .sego-tapped-card__name,
.sego-tapped-card .sego-tapped-card__name a { margin: 0; padding: 0; font-family: var(--sego-font-body); font-size: 20px; line-height: 32px; font-weight: 700; color: var(--tp-ink); }
.sego-tapped-card__name a { color: inherit; text-decoration: none; }
/* The whole card is the target: the name link's hit area is stretched over it. */
.sego-tapped-card__name a::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.sego-tapped-card__name a:focus-visible { outline: none; }
.sego-tapped-card:focus-within { outline: 2px solid var(--tp-coral); outline-offset: 3px; }
.sego-tapped-role { margin: 3px 0 0; padding: 0; font-size: 17px; line-height: 28px; color: var(--tp-ink); }
.sego-tapped-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.sego-tapped-tag {
	display: inline-block;
	padding: 5px 10px;
	border-radius: 12px;
	background: var(--tp-tint);
	color: var(--tp-prog);
	font-size: 13px;
	line-height: 20px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
/* Rising's gold on its cream tint is too faint to read as text (≈1.9:1); the comp's own value, darkened
   to the gold the site already uses for text on light grounds (spec 68's Rising FAQ colour). */
.sego-tapped-tag--rising:not(.sego-tapped-tag--filled) { color: #8a6d1a; }
.sego-tapped-quote {
	margin: 0;
	padding: 0;
	font-family: var(--tp-display);
	font-style: italic;
	font-weight: 500;
	font-size: 26px;
	line-height: 38px;
	letter-spacing: -0.02em;
	color: var(--tp-plum);
	/*
	 * The client shortened every card quote (2026-11-06, now 13–22 words) "to get it on the card", so
	 * the whole quote must show. Measured: the longest needs 10 lines at 320px (Makaila), 8 at 1024
	 * (narrow 3-column cards) and ≤6 at 768 and ≥1280. The old 6-line clamp cut two of six. The clamp
	 * stays only as a guard against a future long quote breaking the card.
	 */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 12;
	line-clamp: 12;
	overflow: hidden;
}
.sego-tapped-card .sego-tapped-card__more-mod { margin-top: auto !important; }
.sego-tapped-more {
	position: relative;
	z-index: 1;
	color: var(--tp-plum);
	font-size: 12px;
	line-height: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
}
.sego-tapped-more:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Empty state (1752:3299). Divi renders it INSIDE the card group (its no-results path reuses the loop
   container), so the card chrome is removed and the group spans the whole grid row. */
.sego-tapped-card.et_pb_group:has(.sego-tapped-empty) {
	grid-column: 1 / -1;
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}
.sego-tapped-card.et_pb_group:has(.sego-tapped-empty):hover,
.sego-tapped-card.et_pb_group:has(.sego-tapped-empty):focus-within { box-shadow: none; outline: none; }

/* Empty state (1752:3299) */
.sego-tapped-empty { grid-column: 1 / -1; text-align: center; padding: 48px 16px; }
.sego-tapped-empty__title { margin: 0 0 8px; font-family: var(--tp-display); font-size: 30px; line-height: 38px; color: var(--tp-ink); }
.sego-tapped-empty__text { margin: 0 auto 24px; max-width: 520px; font-size: 17px; line-height: 28px; color: var(--tp-grey); }
.sego-tapped-empty__clear {
	border: 0; border-radius: 28px; padding: 14px 24px;
	background: var(--tp-teal); color: #ffffff;
	font: inherit; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
	cursor: pointer;
}

/* Pagination */
.sego-tapped-pager .et_pb_posts_nav a { color: var(--tp-plum); font-weight: 700; }

/* ================================================================ SHARE BAND (1753:3403) */
.sego-tapped-share.et_pb_group {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 36px 32px;
	background: var(--tp-honey-pale);
	border: 1px solid var(--tp-gold);
	border-radius: 12px;
}
.sego-tapped-share .et_pb_module { margin: 0 !important; }
/* The button keeps its one-line width; the copy beside it is what wraps (it squeezed to 3 lines at 768). */
.sego-tapped-share .et_pb_button_module_wrapper { flex: 0 0 auto; }
.sego-tapped-share .et_pb_button { white-space: nowrap; }
.sego-tapped-share__title { margin: 0 0 8px; padding: 0; font-family: var(--tp-display); font-weight: 500; font-size: 36px; line-height: 44px; letter-spacing: -0.02em; color: var(--tp-plum); }
.sego-tapped-share__text { margin: 0; padding: 0; font-size: 24px; line-height: 32px; color: var(--tp-grey); }
@media (max-width: 767px) {
	.sego-tapped-share.et_pb_group { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
	.sego-tapped-share__title { font-size: 28px; line-height: 36px; }
	.sego-tapped-share__text { font-size: 19px; line-height: 27px; }
}

/* ================================================================ STORY PAGE (1753:3382) */
.sego-tapped-back {
	color: var(--tp-plum);
	font-size: 13px;
	line-height: 20px;
	font-weight: 700;
	text-decoration: none;
}
.sego-tapped-back:hover { text-decoration: underline; text-underline-offset: 3px; }
.sego-tapped-tag--filled {
	padding: 6px 11px;
	border-radius: 14px;
	background: var(--tp-prog);
	color: var(--tp-on);
	letter-spacing: 0.05em;
}
.sego-tapped-story__title h1 {
	padding: 0;
	font-family: var(--tp-display);
	font-weight: 500;
	font-size: 48px;
	line-height: 56px;
	letter-spacing: -0.03em;
	color: var(--tp-plum);
}
@media (max-width: 767px) { .sego-tapped-story__title h1 { font-size: 36px; line-height: 44px; } }
.sego-tapped-byline { display: flex; align-items: center; gap: 14px; }
.sego-tapped-byline__avatar { width: 56px; height: 56px; }
.sego-tapped-byline__name { margin: 0; padding: 0; font-size: 20px; line-height: 32px; font-weight: 700; color: var(--tp-ink); }
.sego-tapped-byline__role { margin: 0; padding: 0; font-size: 17px; line-height: 28px; color: var(--tp-ink); }
.sego-tapped-photo { margin: 0; }
/* band: a wide photo fills the 1140 column, ≤620 tall, cropped around the story's focus (inline style) */
.sego-tapped-photo--band .sego-tapped-photo__img { display: block; width: 100%; height: auto; max-height: 620px; object-fit: cover; object-position: 50% 30%; border-radius: 0; }
/* whole: a portrait or small photo at its own shape, centred, never upscaled */
.sego-tapped-photo--whole { text-align: center; }
.sego-tapped-photo--whole .sego-tapped-photo__img { display: inline-block; width: auto; height: auto; max-width: 100%; max-height: 620px; border-radius: 0; }

/* Homepage TAPPD slider (build-90e): the slide box crops with object-fit:cover; portraits keep the head
   in view when the crop takes the upper third rather than the middle. */
.home .et_pb_slide_image img { object-position: 50% 22%; }

/* The story itself (divi/post-content) */
.sego-tapped-story .sego-tapped-body p {
	margin: 0 0 28px;
	padding: 0;
	font-size: 17px;
	line-height: 28px;
	font-weight: 400;
	color: var(--tp-ink);
}
.sego-tapped-story .sego-tapped-body strong { font-weight: 700; }
.sego-tapped-story .sego-tapped-body > *:last-child,
.sego-tapped-story .sego-tapped-body .et_pb_post_content > *:last-child { margin-bottom: 0; }
.sego-tapped-pullquote {
	margin: 12px 0 40px;
	padding: 22px 0 22px 26px;
	border: 0;
	border-left: 4px solid var(--tp-gold);
	background: none;
	quotes: none;
}
.sego-tapped-story .sego-tapped-body .sego-tapped-pullquote p {
	margin: 0 0 14px;
	font-family: var(--tp-display);
	font-style: italic;
	font-weight: 500;
	font-size: 30px;
	line-height: 38px;
	color: var(--tp-plum);
}
.sego-tapped-story .sego-tapped-body .sego-tapped-pullquote p::before { content: "“"; }
.sego-tapped-story .sego-tapped-body .sego-tapped-pullquote p::after { content: "”"; }
.sego-tapped-pullquote strong { font-weight: inherit; }
.sego-tapped-pullquote__by { display: block; font-style: normal; font-size: 13px; line-height: 20px; color: var(--tp-plum); }
@media (max-width: 767px) {
	.sego-tapped-story .sego-tapped-body .sego-tapped-pullquote p { font-size: 24px; line-height: 32px; }
}

/* Bio card (`detail-author-bio`) */
.sego-tapped-bio {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 30px;
	background: #ffffff;
	border: 1px solid var(--tp-line);
	border-radius: 12px;
	box-shadow: var(--tp-shadow);
}
.sego-tapped-bio__avatar { width: 72px; height: 72px; }
.sego-tapped-bio__name { margin: 0; padding: 0; font-size: 20px; line-height: 32px; font-weight: 700; color: var(--tp-ink); }
.sego-tapped-bio__role { margin: 0 0 7px; padding: 0; font-size: 17px; line-height: 28px; color: var(--tp-ink); }
.sego-tapped-bio__text { margin: 0; padding: 0; font-size: 17px; line-height: 28px; color: var(--tp-ink); }

/* Program card (`detail-program-attribution`) */
.sego-tapped-program {
	padding: 24px;
	background: #ffffff;
	border: 1px solid var(--tp-ink);
	border-radius: 12px;
}
.sego-tapped-program__label { margin: 0 0 12px; padding: 0; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--tp-ink); }
.sego-tapped-program__text { margin: 0 0 12px; padding: 0; font-size: 17px; line-height: 28px; color: var(--tp-ink); }
.sego-tapped-program__link { color: var(--tp-plum); font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-decoration: none; }
.sego-tapped-program__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.sego-tapped-back:focus-visible,
.sego-tapped-program__link:focus-visible,
.sego-tapped-more:focus-visible { outline: 2px solid var(--tp-coral); outline-offset: 2px; }

/* The empty-token text modules collapse instead of leaving a gap. */
.sego-tapped-story .et_pb_text:has(.et_pb_text_inner:empty) { display: none; }
