/*
	Theme Name: EnglishGrammar Textbook
	Theme URI: https://www.englishgrammar.org/
	Description: The 2026 EnglishGrammar.org theme. A Genesis child theme: Inter throughout (self-hosted), the logo's green for structure and gold for Pro, hairlines instead of boxes, a sticky navigation row, a landing home page and restyled exercises. Keeps every behavior of the previous Outreach Pro setup.
	Author: EnglishGrammar.org
	Version: 1.0.10
	Template: genesis
	Template Version: 3.6
	License: GPL-2.0-or-later
	Text Domain: eg-textbook
*/


/* Table of contents
   1. Tokens
   2. Fonts
   3. Base and typography
   4. Layout
   5. Masthead (header), navigation row, mobile menu
   6. Entries and content
   7. Buttons and forms
   8. Badges, filters and exercise lists
   9. Sidebar and widget areas
  10. Footer
  11. Home landing page
  12. Pro plugin harmonization
  13. Accessibility and utilities
  14. Media queries
---------------------------------------------------------------------------------------------------- */


/* 1. Tokens
---------------------------------------------------------------------------------------------------- */

:root {
	/* The greens are the logo's: #446931 behind the wordmark, #355d20 its darker page, #afca00 the leaf. */
	--eg-pine: #446931;
	--eg-pine-deep: #355d20;
	--eg-moss: #446931;
	--eg-moss-dark: #355d20;
	--eg-moss-soft: #edf3e7;
	--eg-leaf: #afca00;
	--eg-gold: #d9b44a;
	--eg-gold-dark: #b8932f;
	--eg-gold-pale: #fff4cf;
	/* Pro: a berry that carries white text (7.9:1 against white), unlike any level color. */
	--eg-pro: #9d174d;
	--eg-pro-dark: #7f1240;
	--eg-pro-soft: #fdf2f8;
	--eg-marker: #f7e25a;
	--eg-ink: #1f2c1e;
	--eg-text: #313b2f;
	--eg-muted: #6a7267;
	--eg-rule: #e5e2d9;
	--eg-rule-strong: #cfcbbf;
	--eg-paper: #f6f3ea;
	--eg-paper-deep: #efeadb;
	--eg-page: #ffffff;
	--eg-canvas: #ffffff;
	--eg-tint: #f2f7ec;
	--eg-tint-deep: #e6efdc;
	--eg-panel-border: #e3e6dc;
	--eg-panel-radius: 14px;
	/* One size for every small chip: level badge, PRO, PDF. */
	--eg-chip-w: 46px;
	--eg-chip-h: 22px;
	--eg-shadow: 0 14px 34px -22px rgba(52, 84, 32, 0.45), 0 1px 2px rgba(31, 44, 30, 0.05);
	/* The logo's three pages, drawn once and reused as a watermark. */
	--eg-pages: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240'%3E%3Cg transform='rotate(-14 120 120)'%3E%3Crect x='46' y='34' width='74' height='172' rx='14' fill='%23446931' fill-opacity='0.10'/%3E%3Crect x='86' y='34' width='74' height='172' rx='14' fill='%238fb04a' fill-opacity='0.14'/%3E%3Crect x='126' y='34' width='74' height='172' rx='14' fill='%23afca00' fill-opacity='0.18'/%3E%3C/g%3E%3C/svg%3E");
	--eg-pages-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240'%3E%3Cg transform='rotate(-14 120 120)'%3E%3Crect x='46' y='34' width='74' height='172' rx='14' fill='%23ffffff' fill-opacity='0.07'/%3E%3Crect x='86' y='34' width='74' height='172' rx='14' fill='%23ffffff' fill-opacity='0.10'/%3E%3Crect x='126' y='34' width='74' height='172' rx='14' fill='%23afca00' fill-opacity='0.22'/%3E%3C/g%3E%3C/svg%3E");
	--eg-level-a: #446931;
	--eg-level-b: #1f5fa8;
	--eg-level-c: #6b2d6e;
	--eg-wrong: #b4412b;
	--eg-sans: "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--eg-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	--eg-wrap: 1260px;
	--eg-gutter: 24px;
	--eg-content: 820px;
	--eg-sidebar: 352px;
	--eg-column-gap: 36px;
	--eg-masthead: 72px;
	--eg-navrow: 52px;
	--eg-radius: 6px;
	--eg-radius-large: 12px;
	--eg-focus: 0 0 0 3px rgba(68, 105, 49, 0.35);
}


/* 2. Fonts (Inter, self-hosted; SIL Open Font License, see fonts/LICENSE-inter.txt)
---------------------------------------------------------------------------------------------------- */

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url(fonts/inter-latin-wght-normal.woff2) format("woff2-variations"), url(fonts/inter-latin-wght-normal.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2-variations"), url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Inter";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url(fonts/inter-latin-wght-italic.woff2) format("woff2-variations"), url(fonts/inter-latin-wght-italic.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* 3. Base and typography
---------------------------------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: calc(var(--eg-navrow) + 12px);
}

body {
	margin: 0;
	background: var(--eg-canvas);
	color: var(--eg-text);
	font-family: var(--eg-sans);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body > div {
	font-size: inherit;
}

a {
	color: var(--eg-moss);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.14em;
	text-decoration-color: rgba(63, 111, 35, 0.4);
	transition: color 120ms ease, text-decoration-color 120ms ease;
}

a:hover,
a:focus {
	color: var(--eg-moss-dark);
	text-decoration-color: currentColor;
}

p {
	margin: 0 0 1.3em;
}

ol,
ul {
	margin: 0;
	padding: 0;
}

li {
	list-style-type: none;
}

b,
strong {
	font-weight: 650;
}

cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 32px 0;
	padding: 4px 0 4px 24px;
	border-left: 3px solid var(--eg-gold);
	color: var(--eg-ink);
	font-size: 1.06em;
	font-weight: 500;
	line-height: 1.55;
}

blockquote p:last-child {
	margin-bottom: 0;
}

code,
kbd,
pre,
samp {
	font-family: var(--eg-mono);
	font-size: 0.92em;
}

pre {
	overflow: auto;
	padding: 16px 20px;
	border-radius: var(--eg-radius);
	background: var(--eg-paper);
	line-height: 1.5;
}

code {
	padding: 1px 5px;
	border-radius: 4px;
	background: var(--eg-paper);
}

pre code {
	padding: 0;
	background: none;
}

hr {
	height: 1px;
	margin: 40px 0;
	border: 0;
	background: var(--eg-rule);
}

mark {
	background: var(--eg-marker);
	color: inherit;
	padding: 0 0.15em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.55em;
	color: var(--eg-ink);
	font-family: var(--eg-sans);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

h1 {
	font-size: 38px;
	line-height: 1.12;
	letter-spacing: -0.028em;
}

h2 {
	font-size: 27px;
	margin-top: 1.6em;
}

h3 {
	font-size: 22px;
	margin-top: 1.5em;
	letter-spacing: -0.015em;
}

h4 {
	font-size: 18.5px;
	margin-top: 1.4em;
	font-weight: 650;
	letter-spacing: -0.01em;
}

h5,
h6 {
	font-size: 17px;
	font-weight: 650;
	letter-spacing: 0;
}

h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child {
	margin-top: 0;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

figure {
	margin: 0 0 1.5em;
}

figcaption {
	margin-top: 8px;
	color: var(--eg-muted);
	font-size: 15px;
}

table {
	width: 100%;
	margin-bottom: 32px;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: 16px;
	line-height: 1.5;
}

th,
td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--eg-rule);
	text-align: left;
	vertical-align: top;
}

th {
	color: var(--eg-ink);
	font-weight: 650;
}

thead th {
	border-bottom: 2px solid var(--eg-rule-strong);
}

::selection {
	background: var(--eg-gold-pale);
	color: var(--eg-ink);
}

.screen-reader-text,
.screen-reader-shortcut {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
	padding: 0;
	margin: -1px;
	white-space: nowrap;
}

.screen-reader-text:focus,
.screen-reader-shortcut:focus {
	position: absolute !important;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	clip: auto;
	z-index: 100000;
	padding: 12px 18px;
	border-radius: var(--eg-radius);
	background: var(--eg-page);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
	color: var(--eg-ink);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.genesis-skip-link {
	margin: 0;
}

.genesis-skip-link li {
	height: 0;
	width: 0;
	list-style: none;
}


/* 4. Layout
---------------------------------------------------------------------------------------------------- */

.site-container {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.wrap {
	width: 100%;
	max-width: var(--eg-wrap);
	margin: 0 auto;
	padding-left: var(--eg-gutter);
	padding-right: var(--eg-gutter);
}

.site-inner {
	flex: 1 0 auto;
	padding: 32px 0 64px;
	clear: both;
}

.content-sidebar-wrap {
	display: flex;
	align-items: flex-start;
	gap: var(--eg-column-gap);
}

.content {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	max-width: var(--eg-content);
	padding: 36px 36px 40px;
	border: 1px solid var(--eg-panel-border);
	border-radius: var(--eg-panel-radius);
	background: var(--eg-page);
	box-shadow: var(--eg-shadow);
	overflow: hidden;
}

.content::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--eg-moss) 0%, var(--eg-leaf) 100%);
	content: "";
}

/* The page header: a tinted band across the top of the panel with the logo's pages as a watermark.
   The Pro sales page and the member area bring their own header design and are left alone. */

body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header,
.content > .archive-description {
	position: relative;
	margin: -36px -36px 30px;
	padding: 36px 36px 24px;
	background: linear-gradient(180deg, var(--eg-tint) 0%, rgba(242, 247, 236, 0) 100%);
	border-bottom: 1px solid var(--eg-rule);
	overflow: hidden;
}

body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header::after,
.content > .archive-description::after {
	position: absolute;
	right: -40px;
	top: -30px;
	width: 300px;
	height: 300px;
	background: var(--eg-pages) center/contain no-repeat;
	content: "";
	pointer-events: none;
}

body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header > *,
.content > .archive-description > * {
	position: relative;
	z-index: 1;
	max-width: 80%;
}

body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header .entry-meta {
	padding-bottom: 0;
	border-bottom: 0;
}

.content > .archive-description {
	padding-bottom: 28px;
}

.content > .archive-description .archive-title {
	margin-bottom: 8px;
}

.sidebar-primary {
	flex: 0 0 var(--eg-sidebar);
	width: var(--eg-sidebar);
}

.sidebar-secondary {
	display: none;
}

.full-width-content .content,
.full-width-content .content-sidebar-wrap {
	max-width: none;
}

.full-width-content .content {
	padding: 40px 48px 48px;
}

body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page).full-width-content .content > .entry > .entry-header {
	margin: -40px -48px 30px;
	padding: 40px 48px 24px;
}

.full-width-content .sidebar-primary {
	display: none;
}

.sidebar-content .content-sidebar-wrap {
	flex-direction: row-reverse;
}

.content-sidebar-sidebar .content,
.sidebar-content-sidebar .content,
.sidebar-sidebar-content .content {
	max-width: var(--eg-content);
}

.one-half,
.one-third,
.two-thirds,
.one-fourth,
.three-fourths,
.one-sixth,
.five-sixths,
.two-sixths,
.four-sixths,
.two-fourths,
.three-sixths {
	float: left;
	margin-left: 2.5%;
}

.one-half,
.three-sixths,
.two-fourths {
	width: 48.75%;
}

.one-third,
.two-sixths {
	width: 31.6666%;
}

.two-thirds,
.four-sixths {
	width: 65.8333%;
}

.one-fourth {
	width: 23.125%;
}

.three-fourths {
	width: 74.375%;
}

.one-sixth {
	width: 14.5833%;
}

.five-sixths {
	width: 82.9166%;
}

.first {
	clear: both;
	margin-left: 0;
}

.clearfix::before,
.clearfix::after,
.entry::before,
.entry::after,
.entry-content::before,
.entry-content::after,
.site-container::before,
.site-container::after {
	content: " ";
	display: table;
}

.clearfix::after,
.entry::after,
.entry-content::after,
.site-container::after {
	clear: both;
}


/* 5. Masthead, navigation row, mobile menu
---------------------------------------------------------------------------------------------------- */

.site-header {
	position: relative;
	background: linear-gradient(100deg, #3b5d28 0%, #446931 48%, #4e7a38 100%);
	color: #fff;
}

.site-header::after {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--eg-leaf) 0%, #d7e66a 45%, rgba(175, 202, 0, 0) 100%);
	content: "";
}

.site-header .wrap {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: var(--eg-masthead);
}

.eg-logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	margin-right: auto;
	text-decoration: none;
	line-height: 0;
}

.eg-logo img {
	display: block;
	width: auto;
	height: 36px;
}

.eg-logo:focus-visible {
	outline: 2px solid var(--eg-leaf);
	outline-offset: 6px;
	border-radius: 2px;
}

.site-title,
.site-description {
	margin: 0;
}

.site-title a {
	color: #fff;
	font-size: 24px;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: -0.01em;
}

.site-description {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.7);
}

/* Masthead search */

.eg-masthead-search {
	flex: 0 1 360px;
	min-width: 0;
}

.eg-masthead-search .search-form,
.eg-search-form {
	position: relative;
	display: flex;
	margin: 0;
}

.eg-masthead-search .search-form-input,
.eg-search-form .search-form-input {
	width: 100%;
	height: 44px;
	padding: 0 48px 0 18px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	transition: background-color 120ms ease, border-color 120ms ease;
}

.eg-masthead-search .search-form-input::placeholder,
.eg-search-form .search-form-input::placeholder {
	color: rgba(255, 255, 255, 0.7);
	opacity: 1;
}

.eg-masthead-search .search-form-input:focus,
.eg-search-form .search-form-input:focus {
	outline: none;
	border-color: var(--eg-leaf);
	background: rgba(255, 255, 255, 0.16);
	box-shadow: 0 0 0 3px rgba(169, 212, 90, 0.3);
}

.eg-masthead-search .search-form-submit,
.eg-search-form .search-form-submit {
	position: absolute;
	top: 2px;
	right: 2px;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3C/svg%3E") center/20px no-repeat;
	color: transparent;
	font-size: 0;
	cursor: pointer;
}

.eg-masthead-search .search-form-submit:hover,
.eg-masthead-search .search-form-submit:focus-visible {
	background-color: rgba(255, 255, 255, 0.14);
	outline: none;
}

/* Menu toggle (phones and tablets) */

.eg-menu-toggle {
	display: none;
	align-items: center;
	gap: 10px;
	height: 44px;
	padding: 0 12px 0 10px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	background: transparent;
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}

.eg-menu-toggle:hover,
.eg-menu-toggle:focus-visible,
.eg-search-toggle:hover,
.eg-search-toggle:focus-visible {
	border-color: rgba(255, 255, 255, 0.5);
	background-color: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.eg-menu-toggle:focus-visible,
.eg-search-toggle:focus-visible {
	outline: 2px solid var(--eg-leaf);
	outline-offset: 2px;
}

.eg-menu-toggle__icon {
	position: relative;
	display: block;
	width: 20px;
	height: 14px;
}

.eg-menu-toggle__icon::before,
.eg-menu-toggle__icon::after,
.eg-menu-toggle__icon span {
	position: absolute;
	left: 0;
	width: 20px;
	height: 2px;
	border-radius: 2px;
	background: #fff;
	content: "";
	transition: transform 160ms ease, opacity 160ms ease;
}

.eg-menu-toggle__icon::before {
	top: 0;
}

.eg-menu-toggle__icon span {
	top: 6px;
}

.eg-menu-toggle__icon::after {
	top: 12px;
}

.eg-menu-toggle[aria-expanded="true"] .eg-menu-toggle__icon::before {
	transform: translateY(6px) rotate(45deg);
}

.eg-menu-toggle[aria-expanded="true"] .eg-menu-toggle__icon span {
	opacity: 0;
}

.eg-menu-toggle[aria-expanded="true"] .eg-menu-toggle__icon::after {
	transform: translateY(-6px) rotate(-45deg);
}

.eg-search-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3C/svg%3E") center/20px no-repeat;
	color: transparent;
	font-size: 0;
	cursor: pointer;
}

/* Navigation row */

.nav-primary {
	position: sticky;
	top: 0;
	z-index: 900;
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--eg-rule);
	box-shadow: 0 6px 18px -14px rgba(31, 44, 30, 0.35);
}

.nav-primary .wrap {
	display: flex;
	align-items: stretch;
	min-height: var(--eg-navrow);
}

.genesis-nav-menu {
	display: flex;
	align-items: stretch;
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	list-style: none;
}

.genesis-nav-menu > .menu-item {
	position: relative;
	display: flex;
	align-items: stretch;
	margin: 0;
}

.genesis-nav-menu > .menu-item > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0 12px;
	color: var(--eg-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.005em;
	text-decoration: none;
	white-space: nowrap;
	transition: color 120ms ease;
}

.genesis-nav-menu > .menu-item:first-child > a {
	padding-left: 0;
}

.genesis-nav-menu > .menu-item > a::after {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 0;
	height: 3px;
	border-radius: 3px 3px 0 0;
	background: var(--eg-leaf);
	content: "";
	opacity: 0;
	transform: scaleX(0.6);
	transition: opacity 140ms ease, transform 160ms ease;
}

.genesis-nav-menu > .menu-item:first-child > a::after {
	left: 0;
}

.genesis-nav-menu > .menu-item > a:hover,
.genesis-nav-menu > .menu-item > a:focus-visible,
.genesis-nav-menu > .menu-item:hover > a {
	color: var(--eg-moss-dark);
	outline: none;
}

.genesis-nav-menu > .menu-item > a:hover::after,
.genesis-nav-menu > .menu-item > a:focus-visible::after,
.genesis-nav-menu > .current-menu-item > a::after,
.genesis-nav-menu > .current-menu-ancestor > a::after,
.genesis-nav-menu > .current-menu-parent > a::after {
	opacity: 1;
	transform: scaleX(1);
}

.genesis-nav-menu > .current-menu-item > a {
	color: var(--eg-moss-dark);
}

.admin-bar .nav-primary {
	top: 32px;
}

/* Drop-down submenus */

.genesis-nav-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 950;
	min-width: 220px;
	margin: 0;
	padding: 8px 0;
	border: 1px solid var(--eg-rule);
	border-radius: 0 0 var(--eg-radius) var(--eg-radius);
	background: var(--eg-page);
	box-shadow: 0 12px 28px rgba(31, 44, 30, 0.12);
	opacity: 0;
	visibility: hidden;
	transition: opacity 140ms ease, visibility 140ms ease;
}

.genesis-nav-menu .menu-item:hover > .sub-menu,
.genesis-nav-menu .menu-item:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
}

.genesis-nav-menu .sub-menu a {
	display: block;
	padding: 9px 18px;
	color: var(--eg-text);
	font-size: 15px;
	text-decoration: none;
}

.genesis-nav-menu .sub-menu a:hover,
.genesis-nav-menu .sub-menu a:focus {
	background: var(--eg-paper);
	color: var(--eg-moss-dark);
}

.genesis-nav-menu .sub-menu .sub-menu {
	top: -9px;
	left: 100%;
}

/* The Pro item: the only berry thing in the navigation */

.genesis-nav-menu > .eg-pro-nav {
	margin-left: auto;
	align-items: center;
}

.genesis-nav-menu > .eg-pro-nav > a,
.genesis-nav-menu > .eg-pro-nav > a:visited {
	height: 36px;
	padding: 0 18px;
	border-radius: 999px;
	text-box: trim-both cap alphabetic;
	background: var(--eg-pro);
	color: #fff;
	font-weight: 700;
	box-shadow: 0 1px 2px rgba(31, 44, 30, 0.12);
	transition: background-color 120ms ease, box-shadow 120ms ease;
}

.genesis-nav-menu > .eg-pro-nav > a::after {
	display: none;
}

.genesis-nav-menu > .eg-pro-nav > a:hover,
.genesis-nav-menu > .eg-pro-nav:hover > a {
	background: var(--eg-pro-dark);
	color: #fff;
}

.genesis-nav-menu > .eg-pro-nav > a:focus-visible {
	outline: 2px solid var(--eg-pro);
	outline-offset: 2px;
}

.genesis-nav-menu > .eg-pro-nav.current-menu-item > a,
.genesis-nav-menu > .eg-pro-nav > a[aria-current="page"] {
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}

/* Mobile menu panel (populated by the same menu; shown under 1180px) */

.eg-mobile-panel {
	display: none;
}

/* The previous theme's header widget area is not printed, but keep its markup harmless if a plugin injects it. */

.header-widget-area {
	display: none;
}


/* 6. Entries and content
---------------------------------------------------------------------------------------------------- */

.entry {
	margin: 0 0 48px;
}

.entry-header {
	margin-bottom: 28px;
}

.entry-title {
	margin-bottom: 10px;
}

.entry-title a {
	color: inherit;
	text-decoration: none;
}

.entry-title a:hover,
.entry-title a:focus {
	color: var(--eg-moss-dark);
}

.entry-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0;
	color: var(--eg-muted);
	font-size: 15px;
	line-height: 1.4;
}

.entry-header .entry-meta {
	padding-bottom: 18px;
	border-bottom: 1px solid var(--eg-rule);
}

.entry-meta .entry-time {
	font-variant-numeric: tabular-nums;
}

.entry-meta .entry-author,
.entry-meta .entry-comments-link {
	display: none;
}

.entry-content > *:last-child {
	margin-bottom: 0;
}

.entry-content ol,
.entry-content ul {
	margin: 0 0 1.4em 1.4em;
}

.entry-content ol > li {
	list-style-type: decimal;
}

.entry-content ul > li {
	list-style-type: disc;
}

.entry-content li {
	margin-bottom: 0.4em;
}

.entry-content li ol,
.entry-content li ul {
	margin-top: 0.4em;
	margin-bottom: 0.4em;
}

.entry-content h2 {
	padding-top: 0.3em;
}

.entry-content img,
.entry-content picture {
	border-radius: var(--eg-radius);
}

.entry-content .alignleft {
	float: left;
	margin: 6px 28px 16px 0;
}

.entry-content .alignright {
	float: right;
	margin: 6px 0 16px 28px;
}

.entry-content .aligncenter,
.entry-content img.aligncenter {
	display: block;
	margin: 0 auto 24px;
}

.entry-content .wp-caption {
	max-width: 100%;
}

.entry-content .wp-caption-text {
	margin: 6px 0 0;
	color: var(--eg-muted);
	font-size: 15px;
	text-align: center;
}

.entry-content iframe,
.entry-content video {
	max-width: 100%;
}

.more-link {
	font-weight: 600;
}

/* The "NEW:" note used in page content and the after-post widget */

.hl-note {
	margin: 0 0 24px;
	padding: 14px 18px 14px 20px;
	border: 1px solid #efe3bd;
	border-left: 4px solid var(--eg-gold);
	border-radius: var(--eg-radius);
	background: var(--eg-gold-pale);
	color: var(--eg-ink);
	font-size: 16px;
	line-height: 1.55;
}

.hl-note a {
	font-weight: 650;
}

/* Archives, search results, blog */

.archive-description,
.author-box {
	margin-bottom: 36px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--eg-rule);
}

.archive-description p:last-child,
.author-box p:last-child {
	margin-bottom: 0;
}

.archive-title,
.entry-title.archive-title {
	font-size: 34px;
}

.archive .entry,
.blog .entry,
.search .entry {
	padding-bottom: 36px;
	border-bottom: 1px solid var(--eg-rule);
}

.archive .entry .entry-title,
.blog .entry .entry-title,
.search .entry .entry-title {
	font-size: 27px;
}

.archive .entry .entry-header .entry-meta,
.blog .entry .entry-header .entry-meta,
.search .entry .entry-header .entry-meta {
	padding-bottom: 0;
	border-bottom: 0;
}

.archive .entry .entry-header,
.blog .entry .entry-header,
.search .entry .entry-header {
	margin-bottom: 14px;
}

.archive-pagination,
.entry-pagination {
	margin: 32px 0;
	font-size: 15px;
	font-weight: 600;
}

.archive-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.archive-pagination li a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 14px;
	border: 1px solid var(--eg-rule-strong);
	border-radius: 999px;
	color: var(--eg-ink);
	text-decoration: none;
}

.archive-pagination li a:hover,
.archive-pagination li a:focus,
.archive-pagination li.active a {
	border-color: var(--eg-moss);
	background: var(--eg-moss);
	color: #fff;
}

.author-box {
	display: flex;
	gap: 20px;
}

.author-box .avatar {
	flex: 0 0 auto;
	border-radius: 50%;
}

.author-box-title {
	margin-bottom: 6px;
	font-size: 20px;
}

/* Comments (kept minimal; the site rarely shows them) */

.entry-comments,
.comment-respond,
.entry-pings {
	margin-bottom: 40px;
}

.comment-list li {
	margin-bottom: 24px;
	padding-left: 0;
}

.comment-list .children {
	margin-top: 20px;
	padding-left: 28px;
	border-left: 1px solid var(--eg-rule);
}

.comment-header {
	margin-bottom: 8px;
	font-size: 15px;
	color: var(--eg-muted);
}

.comment-content {
	font-size: 16px;
}

.comment-respond label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}


/* 7. Buttons and forms
---------------------------------------------------------------------------------------------------- */

.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.eg-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 22px;
	border: 1px solid var(--eg-moss-dark);
	border-radius: var(--eg-radius);
	background: var(--eg-moss);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 650;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.button:hover,
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.eg-button:hover,
.button:focus-visible,
button:focus-visible,
.eg-button:focus-visible {
	background-color: var(--eg-moss-dark);
	border-color: var(--eg-pine);
	color: #fff;
}

.button:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
.eg-button:focus-visible {
	outline: none;
	box-shadow: var(--eg-focus);
}

.eg-button--gold {
	border-color: var(--eg-pro-dark);
	background: var(--eg-pro);
	color: #fff;
}

.eg-button--gold:hover,
.eg-button--gold:focus-visible {
	border-color: var(--eg-pro-dark);
	background-color: var(--eg-pro-dark);
	color: #fff;
}

/* On the green Pro panel the button is white, so it reads at a glance. */

.eg-pro-panel .eg-button--gold {
	border-color: #fff;
	background: #fff;
	color: var(--eg-pro);
}

.eg-pro-panel .eg-button--gold:hover,
.eg-pro-panel .eg-button--gold:focus-visible {
	border-color: var(--eg-pro-soft);
	background-color: var(--eg-pro-soft);
	color: var(--eg-pro-dark);
}

.eg-button--quiet {
	border-color: var(--eg-rule-strong);
	background: var(--eg-page);
	color: var(--eg-ink);
}

.eg-button--quiet:hover,
.eg-button--quiet:focus-visible {
	border-color: var(--eg-moss);
	background-color: var(--eg-moss-soft);
	color: var(--eg-moss-dark);
}

input[type="email"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="url"],
select,
textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--eg-rule-strong);
	border-radius: var(--eg-radius);
	background: var(--eg-page);
	color: var(--eg-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.4;
}

input:focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: var(--eg-moss);
	box-shadow: var(--eg-focus);
}

textarea {
	min-height: 140px;
}

::placeholder {
	color: #8a918a;
	opacity: 1;
}

/* Search forms inside the content and the sidebar */

.content .search-form,
.sidebar .search-form {
	position: relative;
	display: flex;
}

.content .search-form-input,
.sidebar .search-form-input {
	padding-right: 48px;
}

.content .search-form-submit,
.sidebar .search-form-submit {
	position: absolute;
	top: 3px;
	right: 3px;
	min-height: 0;
	width: 40px;
	height: calc(100% - 6px);
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: var(--eg-moss) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3C/svg%3E") center/18px no-repeat;
	color: transparent;
	font-size: 0;
}


/* 8. Badges, filters and exercise lists
---------------------------------------------------------------------------------------------------- */

.eg-entry-resources,
.eg-post-inline-meta {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	vertical-align: middle;
}

/* Pills: the text box is trimmed to the capitals (text-box, in current Safari and Chrome), so the
   label sits in the exact middle whatever the font's metrics; text-indent balances the tracking
   that letter-spacing adds after the last letter. */

.eg-level-label,
.eg-pro-label--list,
.eg-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--eg-chip-w);
	min-width: var(--eg-chip-w);
	height: var(--eg-chip-h);
	padding: 0;
	border-radius: 999px;
	background: var(--eg-muted);
	color: #fff !important;
	font-family: var(--eg-sans);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-indent: 0.06em;
	text-box: trim-both cap alphabetic;
	line-height: 1;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: box-shadow 120ms ease, transform 120ms ease;
}

.eg-level-label--a1,
.eg-level-label--a2 {
	background: var(--eg-level-a);
}

.eg-level-label--b1,
.eg-level-label--b2 {
	background: var(--eg-level-b);
}

.eg-level-label--c1,
.eg-level-label--c2 {
	background: var(--eg-level-c);
}

a.eg-level-label:hover,
a.eg-level-label:focus-visible {
	box-shadow: 0 0 0 3px rgba(31, 44, 30, 0.14);
	transform: translateY(-1px);
}

.eg-pro-label--list,
.eg-badge--pro {
	background: var(--eg-pro);
	color: #fff !important;
}

a.eg-pro-label--list:hover,
a.eg-pro-label--list:focus-visible {
	background: var(--eg-pro-dark);
	box-shadow: 0 0 0 3px rgba(157, 23, 77, 0.25);
}

/* PDF link: the old red icon becomes a small text chip (the icon file is hidden) */

.eg-pdf-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--eg-chip-w);
	min-width: var(--eg-chip-w);
	height: var(--eg-chip-h);
	padding: 0;
	border: 1px solid var(--eg-rule-strong);
	border-radius: 999px;
	color: var(--eg-muted);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-indent: 0.06em;
	text-box: trim-both cap alphabetic;
	line-height: 1;
	text-decoration: none;
	transition: border-color 120ms ease, color 120ms ease, background-color 120ms ease;
}

.eg-pdf-link::before {
	content: "PDF";
}

.eg-pdf-link img {
	display: none;
}

.eg-pdf-link:hover,
.eg-pdf-link:focus-visible {
	border-color: var(--eg-moss);
	background: var(--eg-moss-soft);
	color: var(--eg-moss-dark);
}

/* Level filter pills on the Exercises page */

.eg-level-filters {
	margin: 4px 0 20px;
}

.eg-level-filters__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content .eg-level-filters__list,
.entry-content .eg-level-filters__list > li {
	margin-left: 0;
	list-style: none;
}

.eg-level-filters__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 56px;
	min-height: 36px;
	padding: 0 16px;
	border: 1px solid var(--eg-rule-strong);
	border-radius: 999px;
	background: var(--eg-page);
	color: var(--eg-ink);
	font-size: 15px;
	font-weight: 650;
	line-height: 1;
	text-box: trim-both cap alphabetic;
	text-decoration: none;
	transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease;
}

.eg-level-filters__link:hover,
.eg-level-filters__link:focus-visible {
	border-color: var(--eg-moss);
	background: var(--eg-moss-soft);
	color: var(--eg-moss-dark);
	outline: none;
}

.eg-level-filters__link.is-active {
	border-color: var(--eg-moss);
	background: var(--eg-moss);
	color: #fff;
	cursor: default;
}

.eg-level-filters__link--pro {
	border-color: var(--eg-pro);
	background: var(--eg-pro-soft);
	color: var(--eg-pro);
}

.eg-level-filters__link--pro:hover,
.eg-level-filters__link--pro:focus-visible {
	border-color: var(--eg-pro-dark);
	background: var(--eg-pro-soft);
	color: var(--eg-pro-dark);
}

.eg-level-filters__link--pro.is-active {
	border-color: var(--eg-pro);
	background: var(--eg-pro);
	color: #fff;
}

/* Exercise and vocabulary list rows (infinite scroll) */

#pnlInfScroll_PostsList {
	margin: 0;
	padding: 0;
	list-style: none;
}

.eg-infscroll-post-item {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 14px;
	margin: 0 -10px;
	padding: 9px 10px;
	border-bottom: 1px solid var(--eg-rule);
	border-radius: 8px;
	list-style: none;
	transition: background-color 120ms ease;
}

.eg-infscroll-post-item:hover {
	background: var(--eg-tint);
}

.eg-infscroll-date {
	color: var(--eg-muted);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.eg-infscroll-title {
	display: block;
	min-width: 0;
	overflow: hidden;
	color: var(--eg-ink);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-decoration: none;
}

.eg-infscroll-title:hover,
.eg-infscroll-title:focus {
	color: var(--eg-moss-dark);
	text-decoration: underline;
}

.eg-infscroll-empty {
	padding: 10px 0;
	color: var(--eg-muted);
}

#pnlInfScroll_LoadMore {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	margin: 20px 0 10px;
	padding: 10px 22px;
	border: 1px solid var(--eg-rule-strong);
	border-radius: var(--eg-radius);
	background: var(--eg-page);
	color: var(--eg-ink);
	font-size: 16px;
	font-weight: 650;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	user-select: none;
	transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease;
}

#pnlInfScroll_LoadMore:hover,
#pnlInfScroll_LoadMore:focus-visible {
	border-color: var(--eg-moss);
	background: var(--eg-moss-soft);
	color: var(--eg-moss-dark);
	outline: none;
}

#pnlInfScroll_LoadMore a {
	color: inherit;
	text-decoration: none;
}


/* 9. Sidebar and widget areas
---------------------------------------------------------------------------------------------------- */

.sidebar {
	font-size: 16px;
}

.sidebar .widget {
	margin-bottom: 32px;
	padding: 0;
}

.sidebar .widget:last-child {
	margin-bottom: 0;
}

.widget-title {
	margin: 0 0 14px;
	font-size: 19px;
	line-height: 1.25;
}

.widget-title::before {
	display: block;
	width: 34px;
	height: 4px;
	margin-bottom: 10px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--eg-moss), var(--eg-leaf));
	content: "";
}

.widget p:last-child {
	margin-bottom: 0;
}

.widget ul > li {
	margin-bottom: 0;
	padding: 9px 0;
	border-bottom: 1px solid var(--eg-rule);
}

.widget ul > li:first-child {
	padding-top: 0;
}

.widget ul > li:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.widget ul ul {
	margin-top: 8px;
	margin-left: 16px;
}

.widget_recent_entries a {
	display: block;
	color: var(--eg-ink);
	font-weight: 500;
	line-height: 1.35;
	text-decoration: none;
}

.widget_recent_entries a:hover,
.widget_recent_entries a:focus {
	color: var(--eg-moss-dark);
	text-decoration: underline;
}

.widget_recent_entries .post-date {
	display: block;
	margin-top: 2px;
	color: var(--eg-muted);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
}

/* Follower counts (EG Share Buttons) */

.sidebar .egsb-followers-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.sidebar a.egsb-followers-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 12px;
	border: 1px solid var(--eg-rule);
	border-radius: var(--eg-radius);
	background: var(--eg-paper);
	color: var(--eg-ink);
	font-size: 16px;
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	transition: border-color 120ms ease, background-color 120ms ease;
}

.sidebar a.egsb-followers-item:hover,
.sidebar a.egsb-followers-item:focus-visible {
	border-color: var(--eg-moss);
	background: var(--eg-moss-soft);
}

.sidebar .egsb-followers-item__icon {
	display: inline-flex;
	width: 22px;
	height: 22px;
	color: var(--eg-ink);
}

.sidebar .egsb-followers-item__icon svg {
	width: 22px;
	height: 22px;
}

/* Image widgets and ads */

.sidebar .custom-html-widget img.resize,
.sidebar .custom-html-widget > div > a > img {
	border-radius: var(--eg-radius);
}

/* Areas printed by the theme hooks */

#afterpost,
#cta {
	clear: both;
	margin-top: 32px;
}

#cta {
	text-align: center;
}

#cta .widget,
#afterpost .widget,
.after-entry .widget {
	margin-bottom: 24px;
}

.after-entry {
	margin: 40px 0;
	padding: 28px 0 0;
	border-top: 1px solid var(--eg-rule);
}

.after-entry .widget-title {
	font-size: 20px;
}

/* Share rows (ESSB, EG Share Buttons, the exercise plugin) sit on a hairline, centered */

.essb_links,
.egsb-share,
.eg-local-share {
	margin: 24px 0;
}

#wordcounter {
	margin-bottom: 28px;
}


/* 10. Footer
---------------------------------------------------------------------------------------------------- */

.site-footer {
	position: relative;
	margin-top: auto;
	background: linear-gradient(100deg, #3b5d28 0%, #446931 48%, #4e7a38 100%);
	color: rgba(255, 255, 255, 0.84);
	font-size: 15px;
	overflow: hidden;
}

.site-footer::before {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(90deg, rgba(175, 202, 0, 0) 0%, #d7e66a 55%, var(--eg-leaf) 100%);
	content: "";
}

.site-footer::after {
	position: absolute;
	right: -60px;
	bottom: -80px;
	width: 420px;
	height: 420px;
	background: var(--eg-pages-light) center/contain no-repeat;
	content: "";
	pointer-events: none;
}

.site-footer .wrap {
	position: relative;
	z-index: 1;
}

.site-footer .wrap {
	padding-top: 56px;
	padding-bottom: 36px;
}

.eg-footer {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 40px;
}

.eg-footer__brand img {
	display: block;
	width: auto;
	height: 32px;
	margin-bottom: 18px;
}

.eg-footer__brand p {
	max-width: 34ch;
	margin: 0 0 18px;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.55;
}

.eg-footer__title {
	margin: 0 0 14px;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.eg-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.eg-footer li {
	margin: 0 0 9px;
}

.eg-footer a {
	color: rgba(255, 255, 255, 0.88);
	text-decoration: none;
}

.eg-footer a:hover,
.eg-footer a:focus-visible {
	color: var(--eg-leaf);
	text-decoration: underline;
	text-decoration-color: currentColor;
	outline: none;
}

.eg-footer__pro {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 18px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	line-height: 1;
	text-box: trim-both cap alphabetic;
	background: var(--eg-pro);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
}

.eg-footer__pro:hover,
.eg-footer__pro:focus-visible {
	background: var(--eg-pro-dark);
}

.eg-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px 24px;
	margin-top: 44px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	color: rgba(255, 255, 255, 0.62);
	font-size: 14px;
}

.eg-footer__bottom p {
	margin: 0;
}

.eg-footer__bottom a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
}

.eg-footer__bottom a:hover {
	color: var(--eg-leaf);
}

.eg-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.eg-footer__legal li {
	margin: 0;
}

/* Genesis footer widgets stay registered but are not part of this design. */

.footer-widgets {
	display: none;
}


/* 11. Home landing page
---------------------------------------------------------------------------------------------------- */

.eg-home .site-inner {
	padding-top: 32px;
}

.eg-hero {
	position: relative;
	padding: 56px 0 52px;
	border-bottom: 1px solid var(--eg-rule);
	background: linear-gradient(180deg, var(--eg-tint) 0%, #fafcf7 70%, var(--eg-page) 100%);
	overflow: hidden;
}

.eg-hero::before {
	position: absolute;
	right: max(0px, calc((100% - var(--eg-wrap)) / 2 - 140px));
	top: -90px;
	width: 560px;
	height: 560px;
	background: var(--eg-pages) center/contain no-repeat;
	content: "";
	pointer-events: none;
}

.eg-hero .wrap {
	position: relative;
	z-index: 1;
}

.eg-hero .wrap {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 56px;
	align-items: center;
}

.eg-hero__title {
	margin: 0 0 18px;
	font-size: 52px;
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.035em;
}

.eg-hero__lead {
	max-width: 36em;
	margin: 0 0 26px;
	color: var(--eg-text);
	font-size: 20px;
	line-height: 1.5;
}

.eg-hero .eg-search-form .search-form-input {
	height: 54px;
	padding-left: 20px;
	border: 1px solid var(--eg-rule-strong);
	background: var(--eg-page);
	color: var(--eg-text);
	font-size: 17px;
	box-shadow: 0 1px 2px rgba(31, 44, 30, 0.04);
}

.eg-hero .eg-search-form .search-form-input::placeholder {
	color: #7b837a;
}

.eg-hero .eg-search-form .search-form-input:focus {
	border-color: var(--eg-moss);
	background: var(--eg-page);
	box-shadow: var(--eg-focus);
}

.eg-hero .eg-search-form .search-form-submit {
	top: 5px;
	right: 5px;
	width: 44px;
	height: 44px;
	background-color: var(--eg-moss);
}

.eg-hero .eg-search-form .search-form-submit:hover,
.eg-hero .eg-search-form .search-form-submit:focus-visible {
	background-color: var(--eg-moss-dark);
}

.eg-hero__links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
	font-size: 16px;
}

.eg-hero__links li {
	margin: 0;
}

.eg-hero__links a {
	font-weight: 600;
}

/* The live exercise in the hero */

.eg-check {
	position: relative;
	padding: 28px 30px 26px;
	border: 1px solid var(--eg-panel-border);
	border-top: 4px solid var(--eg-gold);
	border-radius: var(--eg-radius-large);
	background: var(--eg-page);
	box-shadow: 0 24px 48px -26px rgba(52, 84, 32, 0.5), 0 2px 6px rgba(31, 44, 30, 0.06);
}

.eg-check__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 14px;
	color: var(--eg-muted);
	font-size: 15px;
}

.eg-check__head strong {
	color: var(--eg-ink);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.eg-check__count {
	font-variant-numeric: tabular-nums;
}

.eg-check__question {
	margin: 0 0 16px;
	color: var(--eg-ink);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1.35;
}

.eg-check__gap {
	display: inline-block;
	min-width: 2.6em;
	border-bottom: 2px solid var(--eg-ink);
	text-align: center;
	color: var(--eg-moss-dark);
}

.eg-check__options {
	display: grid;
	gap: 8px;
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

.eg-check__options li {
	margin: 0;
}

.eg-check__option {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	width: 100%;
	min-height: 48px;
	padding: 8px 14px;
	border: 1px solid var(--eg-rule-strong);
	border-radius: 8px;
	background: #fbfcf9;
	color: var(--eg-ink);
	font-family: inherit;
	font-size: 17px;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
	transition: border-color 120ms ease, background-color 120ms ease, transform 80ms ease;
}

.eg-check__option::before {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	border: 2px solid var(--eg-rule-strong);
	border-radius: 50%;
	background: var(--eg-page);
	content: "";
	transition: border-color 120ms ease, background-color 120ms ease;
}

.eg-check__option:hover,
.eg-check__option:focus-visible {
	border-color: var(--eg-moss);
	background: var(--eg-moss-soft);
	outline: none;
}

.eg-check__option:focus-visible {
	box-shadow: var(--eg-focus);
}

.eg-check__option[disabled] {
	color: var(--eg-ink);
	cursor: default;
}

.eg-check__option.is-correct {
	border-color: var(--eg-moss);
	background: var(--eg-moss-soft);
}

.eg-check__option.is-correct::before {
	border-color: var(--eg-moss);
	background: var(--eg-moss) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3L15 7'/%3E%3C/svg%3E") center/14px no-repeat;
}

.eg-check__option.is-wrong {
	border-color: var(--eg-wrong);
	background: #fbeeea;
}

.eg-check__option.is-wrong::before {
	border-color: var(--eg-wrong);
	background: var(--eg-wrong) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l8 8M14 6l-8 8'/%3E%3C/svg%3E") center/13px no-repeat;
}

.eg-check__option.is-dim {
	opacity: 0.55;
}

.eg-check__feedback {
	display: none;
	margin: 0 0 16px;
	padding: 12px 14px;
	border-radius: 8px;
	background: var(--eg-tint);
	border: 1px solid var(--eg-tint-deep);
	font-size: 16px;
	line-height: 1.5;
}

.eg-check__feedback.is-visible {
	display: block;
}

.eg-check__feedback strong {
	color: var(--eg-ink);
}

.eg-check__feedback.is-right strong {
	color: var(--eg-moss-dark);
}

.eg-check__feedback.is-off strong {
	color: var(--eg-wrong);
}

.eg-check__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
}

.eg-check__next {
	min-height: 42px;
	padding: 8px 18px;
}

.eg-check__next[hidden] {
	display: none;
}

.eg-check__more {
	font-weight: 600;
}

/* Entry points */

.eg-entries {
	padding: 44px 0 12px;
	border-bottom: 1px solid var(--eg-rule);
	background: var(--eg-page);
}

.eg-entries .wrap {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 32px;
}

.eg-entry-point {
	display: block;
	padding: 0 0 32px;
	color: inherit;
	text-decoration: none;
}

.eg-entry-point__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	border-radius: 12px;
	background: var(--eg-tint);
	color: var(--eg-moss);
	transition: background-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.eg-entry-point__icon svg {
	width: 24px;
	height: 24px;
}

.eg-entry-point:hover .eg-entry-point__icon,
.eg-entry-point:focus-visible .eg-entry-point__icon {
	background: var(--eg-moss);
	color: #fff;
	transform: translateY(-2px);
}

.eg-entry-point__title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
	font-size: 21px;
	transition: color 120ms ease;
}

.eg-entry-point__title::after {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233f6f23' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M12 5l7 7-7 7'/%3E%3C/svg%3E") center/18px no-repeat;
	content: "";
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity 140ms ease, transform 160ms ease;
}

.eg-entry-point:hover .eg-entry-point__title,
.eg-entry-point:focus-visible .eg-entry-point__title {
	color: var(--eg-moss-dark);
}

.eg-entry-point:hover .eg-entry-point__title::after,
.eg-entry-point:focus-visible .eg-entry-point__title::after {
	opacity: 1;
	transform: translateX(0);
}

.eg-entry-point:focus-visible {
	outline: none;
	box-shadow: var(--eg-focus);
	border-radius: var(--eg-radius);
}

.eg-entry-point p {
	margin: 0;
	color: var(--eg-text);
	font-size: 16px;
	line-height: 1.5;
}

.eg-entry-point__count {
	display: block;
	margin-top: 10px;
	color: var(--eg-muted);
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: 0.01em;
}

/* Latest exercises on the home page */

.eg-latest {
	margin-bottom: 48px;
}

.eg-latest__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 20px;
	margin-bottom: 8px;
}

.eg-latest__head h2 {
	margin: 0;
	font-size: 26px;
}

.eg-latest__head a {
	font-weight: 600;
}

.eg-latest .eg-infscroll-post-item:first-child {
	border-top: 1px solid var(--eg-rule);
}

/* Pro panel */

.eg-pro-panel {
	position: relative;
	margin: 0 0 48px;
	padding: 36px 40px 38px;
	border-radius: var(--eg-radius-large);
	background: linear-gradient(100deg, #3b5d28 0%, #446931 55%, #4e7a38 100%);
	color: rgba(255, 255, 255, 0.9);
	overflow: hidden;
}

.eg-pro-panel::after {
	position: absolute;
	right: -50px;
	top: -40px;
	width: 320px;
	height: 320px;
	background: var(--eg-pages-light) center/contain no-repeat;
	content: "";
	pointer-events: none;
}

.eg-pro-panel > * {
	position: relative;
	z-index: 1;
}

.eg-pro-panel h2 {
	margin: 0 0 14px;
	color: #fff;
	font-size: 29px;
	line-height: 1.15;
}

.eg-pro-panel p {
	max-width: 56ch;
	margin: 0 0 18px;
	font-size: 17px;
	line-height: 1.55;
}

.eg-pro-panel ul {
	display: grid;
	gap: 8px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
	font-size: 16.5px;
}

.eg-pro-panel li {
	position: relative;
	padding-left: 28px;
	list-style: none;
}

.eg-pro-panel li::before {
	position: absolute;
	left: 0;
	top: 3px;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23a9d45a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5l3.6 3.4L16 6.5'/%3E%3C/svg%3E") center/18px no-repeat;
	content: "";
}

.eg-pro-panel__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 22px;
}

.eg-pro-panel__actions .eg-button--gold {
	min-height: 50px;
	padding: 10px 26px;
	font-size: 17px;
}

.eg-pro-panel__actions a:not(.eg-button) {
	color: rgba(255, 255, 255, 0.85);
	text-decoration-color: rgba(255, 255, 255, 0.4);
}

.eg-pro-panel__actions a:not(.eg-button):hover {
	color: #fff;
}

.eg-pro-panel__note {
	margin: 14px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 14.5px;
}

/* The page's own welcome text follows */

.eg-home-copy > h2:first-child {
	margin-top: 0;
}

.eg-home-copy .entry-header {
	display: none;
}


/* 12. Pro plugin harmonization: none needed; the plugin's own stylesheets stay in charge
---------------------------------------------------------------------------------------------------- */


/* 13. Accessibility and utilities
---------------------------------------------------------------------------------------------------- */

:focus-visible {
	outline: 2px solid var(--eg-moss);
	outline-offset: 2px;
}

a:focus-visible {
	border-radius: 2px;
}

.eg-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media print {
	.site-header,
	.nav-primary,
	.sidebar-primary,
	.site-footer,
	#cta,
	.eg-mobile-panel {
		display: none !important;
	}

	.content {
		max-width: none;
	}
}


/* 14. Media queries
---------------------------------------------------------------------------------------------------- */

@media only screen and (max-width: 1179px) {

	:root {
		--eg-masthead: 64px;
	}

	html {
		scroll-padding-top: calc(var(--eg-masthead) + 12px);
	}

	.site-header {
		position: sticky;
		top: 0;
		z-index: 900;
	}

	.site-header .wrap {
		gap: 12px;
	}

	.eg-menu-toggle {
		display: inline-flex;
		order: 1;
	}

	.eg-logo {
		order: 2;
		margin-right: auto;
	}

	.eg-search-toggle {
		display: inline-flex;
		order: 3;
	}

	.eg-masthead-search {
		display: none;
	}

	.eg-masthead-search.is-open {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 890;
		flex: none;
		padding: 12px var(--eg-gutter) 14px;
		background: var(--eg-pine-deep);
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	}

	.site-header {
		position: sticky;
	}

	/* The navigation row becomes a panel that drops from the masthead. */

	.nav-primary {
		position: fixed;
		top: var(--eg-masthead);
		left: 0;
		right: 0;
		z-index: 880;
		display: none;
		border-bottom: 1px solid var(--eg-rule);
		box-shadow: 0 24px 40px -20px rgba(31, 44, 30, 0.35);
	}

	.admin-bar .nav-primary {
		top: calc(var(--eg-masthead) + 32px);
	}

	.admin-bar .site-header {
		top: 32px;
	}

	.nav-primary.is-open {
		display: block;
	}

	.nav-primary .wrap {
		display: block;
		padding-top: 10px;
		padding-bottom: 16px;
		max-height: calc(100vh - var(--eg-masthead));
		overflow: auto;
	}

	.genesis-nav-menu {
		display: block;
	}

	.genesis-nav-menu > .menu-item {
		display: block;
		border-bottom: 1px solid var(--eg-rule);
	}

	.genesis-nav-menu > .menu-item > a,
	.genesis-nav-menu > .menu-item:first-child > a {
		display: flex;
		width: 100%;
		min-height: 52px;
		padding: 12px 0;
		font-size: 18px;
		white-space: normal;
	}

	.genesis-nav-menu > .menu-item > a::after {
		display: none;
	}

	.genesis-nav-menu > .current-menu-item > a {
		color: var(--eg-moss-dark);
		box-shadow: inset 3px 0 0 var(--eg-moss);
		padding-left: 14px;
	}

	.genesis-nav-menu .sub-menu {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 8px 16px;
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
	}

	.genesis-nav-menu .menu-item.is-open > .sub-menu,
	.genesis-nav-menu .menu-item:focus-within > .sub-menu {
		display: block;
	}

	.genesis-nav-menu .sub-menu a {
		padding: 10px 0;
		font-size: 16px;
	}

	.genesis-nav-menu > .eg-pro-nav {
		margin: 12px 0 0;
		border-bottom: 0;
	}

	.genesis-nav-menu > .eg-pro-nav > a,
	.genesis-nav-menu > .eg-pro-nav > a:visited {
		display: inline-flex;
		width: auto;
		min-height: 0;
		height: 44px;
		padding: 0 22px;
		font-size: 17px;
	}

	.genesis-nav-menu > .eg-pro-nav.current-menu-item > a {
		padding-left: 22px;
		box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
	}

	/* Hero and entry points */

	.eg-hero {
		padding: 40px 0 40px;
	}

	.eg-hero .wrap {
		gap: 36px;
	}

	.eg-hero__title {
		font-size: 44px;
	}

	.eg-entries .wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0 32px;
	}

	.eg-footer {
		grid-template-columns: 1fr 1fr;
	}

}

@media only screen and (max-width: 1023px) {

	:root {
		--eg-sidebar: 300px;
		--eg-column-gap: 36px;
	}

	body {
		font-size: 17px;
	}

	h1 {
		font-size: 36px;
	}

}

@media only screen and (max-width: 860px) {

	.site-inner {
		padding: 32px 0 56px;
	}

	.content-sidebar-wrap,
	.sidebar-content .content-sidebar-wrap {
		display: block;
	}

	.content {
		max-width: none;
		padding: 28px 24px 32px;
	}

	.full-width-content .content {
		padding: 28px 24px 32px;
	}

	body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header,
	.content > .archive-description {
		margin: -28px -24px 26px;
		padding: 28px 24px 20px;
	}

	.sidebar-primary,
	.sidebar-content .sidebar-primary {
		width: auto;
		margin-top: 24px;
	}

	.eg-hero .wrap {
		display: block;
	}

	.eg-check {
		margin-top: 32px;
	}

	.eg-hero__title {
		font-size: 40px;
	}

	.eg-pro-panel {
		padding: 28px 26px 30px;
	}

	.eg-pro-panel h2 {
		font-size: 27px;
	}

}

@media only screen and (max-width: 782px) {

	.admin-bar .nav-primary {
		top: calc(var(--eg-masthead) + 46px);
	}

	.admin-bar .site-header {
		top: 46px;
	}

}

@media only screen and (max-width: 600px) {

	:root {
		--eg-gutter: 18px;
		--eg-masthead: 60px;
	}

	body {
		font-size: 16.5px;
	}

	h1 {
		font-size: 31px;
	}

	h2 {
		font-size: 25px;
	}

	h3 {
		font-size: 21px;
	}

	.eg-logo img {
		height: 30px;
	}

	.eg-menu-toggle {
		padding: 0 10px;
	}

	.eg-menu-toggle__label {
		display: none;
	}

	.entry-meta {
		font-size: 14px;
	}

	.content,
	.full-width-content .content {
		padding: 22px 18px 26px;
		border-radius: 10px;
	}

	body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header,
	.content > .archive-description {
		margin: -22px -18px 22px;
		padding: 24px 18px 18px;
	}

	body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header::after,
	.content > .archive-description::after {
		width: 200px;
		height: 200px;
		right: -60px;
		top: -40px;
	}

	body:not(.egpp-letter-sales-page):not(.egpp-program-sales-page):not(.egpp-member-area):not(.egpp-monthly-sales-page) .content > .entry > .entry-header > *,
	.content > .archive-description > * {
		max-width: 100%;
	}

	.site-inner {
		padding: 20px 0 48px;
	}

	.eg-hero {
		padding: 30px 0 32px;
	}

	.eg-hero::before {
		right: -90px;
		top: -70px;
		width: 340px;
		height: 340px;
	}

	.eg-hero__title {
		font-size: 34px;
	}

	.eg-hero__lead {
		font-size: 18px;
	}

	.eg-hero .eg-search-form .search-form-input {
		height: 50px;
		padding-left: 16px;
		font-size: 16px;
	}

	.eg-check {
		padding: 22px 18px 20px;
	}

	.eg-check__question {
		font-size: 21px;
	}

	.eg-entries {
		padding-top: 28px;
	}

	.eg-entries .wrap {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.eg-entry-point {
		padding: 18px 0;
		border-bottom: 1px solid var(--eg-rule);
	}

	.eg-entry-point:last-child {
		border-bottom: 0;
	}

	.eg-entry-point__title {
		font-size: 21px;
	}

	.eg-infscroll-post-item {
		grid-template-columns: minmax(0, 1fr) auto;
		row-gap: 2px;
		padding: 10px 0;
	}

	.eg-infscroll-date {
		grid-column: 1;
		grid-row: 2;
		font-size: 13px;
	}

	.eg-infscroll-title {
		grid-column: 1;
		grid-row: 1;
		white-space: normal;
		font-size: 16.5px;
	}

	.eg-post-inline-meta {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: center;
	}

	.eg-footer {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.site-footer .wrap {
		padding-top: 40px;
	}

	.eg-latest__head h2 {
		font-size: 25px;
	}

	.eg-pro-panel {
		padding: 24px 20px 26px;
		border-radius: 10px;
	}

	.eg-pro-panel h2 {
		font-size: 24px;
	}

}
