/* ==========================================================================
 * members-base.css
 *
 * The Savoy rules the members area actually depends on, extracted so that
 * /members/ and /members/savetrainer/ can stop loading the parent theme's
 * stylesheets entirely. See si_members_base_styles() in functions.php, which
 * loads this and dequeues the ten Savoy handles it replaces. The compiled
 * theme options live separately in members-theme-options.css, which has to
 * load last — see the note at the top of that file.
 *
 * Provenance: extracted 2026-08-15 from Savoy 3.1.8 by walking
 * document.styleSheets on the live site, then verified by simulating the swap
 * on eight signed-in members URLs and diffing computed styles element by
 * element until the difference was zero.
 *
 * ~416 rules, replacing 4,530 across ten Savoy stylesheets (40 KB / 8.6 KB
 * gzipped, against 558 KB parsed and 21 KB of inline CSS per request).
 *
 * Four things in here look droppable and are not — each was caught by the
 * diff, not by reading:
 *   - the Magnific Popup layer, which matches nothing until a popup opens
 *   - #nm-shop-products-overlay, which the SaveTrainer workouts grid reuses
 *   - the block-grid system, used by the plan and workout lists
 *   - the display:none on Savoy's footer DOM, which Savoy's own CSS was hiding
 *
 * This is a snapshot of third-party CSS, not authored code. Prefer overriding
 * in members.css / savetrainer.css over editing here, so the provenance stays
 * honest and this file can be re-derived if Savoy is ever updated before it's
 * removed. Once Savoy is gone this becomes ours to own and prune freely.
 * ========================================================================== */


/* --------------------------------------------------------------------------
 * The radius scale
 *
 * Two platforms share this sheet, and only one of them rounds.
 *
 * On SaveTrainer: buttons and pills are fully round, everything else is 10px.
 * On the rest of the members area -- courses, dashboard, the monthly programme
 * -- nothing rounds; those pages look exactly as they did before this scale
 * existed, which is why the defaults below are 10px and 8px rather than 999px.
 *
 * The switch is the last two lines of this block being overridden in
 * savetrainer.css, which is enqueued only by page-members-savetrainer.php and
 * the is_savetrainer_page branch in functions.php. Nothing else is scoped: the
 * rules all read the tokens, so the platform boundary is those two lines and
 * not a body class threaded through a hundred selectors.
 *
 *   button   things you press -- buttons, CTAs, the tour controls
 *   pill     things you read -- tags, badges, status chips
 *   surface  everything else: cards, panels, modals, nav rows, hover targets
 *
 * Button or hover target is settled by one question: does it have a background
 * when nobody is touching it? A persistent fill is identity, and identity is
 * what a round shape states -- so a filled, pressable thing is a button however
 * it is marked up (.upnext-empty-link and .comment-reply-link are <a>s, and both
 * are buttons). A fill that appears only on :hover or :focus is feedback, not
 * identity: the shape lasts 150ms, and rounding it would make the transient
 * shape louder than the persistent one. Those take surface -- the left nav and
 * .si-back-link are the examples.
 *   input    text fields and selects. They are controls, but a stadium field
 *            reads as a button you cannot press, so they stay square-ish.
 *   inner    the handful of boxes that were already 8px inside a surface
 *   flat     textareas, where a full round is always wrong
 *
 * surface, input and flat are deliberately the same 10px. They are separate
 * names because they answer different questions, and one of them may move
 * later without dragging the others with it.
 *
 * A note on what did NOT survive contact: an earlier pass made every control
 * round, inputs included, and put surfaces at 12px with an 8px concentric
 * correction. It made the filter panel unusable when expanded and made text
 * fields look like buttons. Round is for the two things a person acts on and
 * reads as a unit; it is not a general-purpose "modern" setting.
 *
 * Defined here because members-base.css is queued first (priority 5) and every
 * other members sheet depends on it, so the tiers reach members.css,
 * savetrainer.css and members-account.css without an enqueue change.
 * -------------------------------------------------------------------------- */
:root {
	--st-radius-button: 10px;
	--st-radius-pill: 8px;
	--st-radius-surface: 10px;
	--st-radius-input: 10px;
	--st-radius-inner: 8px;
	--st-radius-flat: 10px;
}


/* --------------------------------------------------------------------------
 * Savoy custom properties referenced by the rules below. Resolved from the
 * live computed values, because their source is the ~21 KB block Savoy prints
 * inline via nm_custom_styles() — which we also remove.
 * -------------------------------------------------------------------------- */
:root {
	--nm--page-width: 1280px;
	--nm--page-column-spacing: 15px;
	--nm--page-overlay-background: rgba(51, 51, 51, 0.6);
	--nm--color-font-highlight: #4EB9AA;
	--nm--color-font-strong: #253540;
	--nm--inputs-padding-vertical: 12px;
	--nm--inputs-padding-horizontal: 16px;
	--nm--inputs-border-color: #e1e1e1;
	--nm--border-radius-container: 0px;
	--nm--border-radius-image: 0px;
	--nm--border-radius-inputs: 0px;
	--nm--border-radius-button: var(--st-radius-button);
	--nm--spinner-border-color: #4EB9AA #4EB9AA transparent transparent;
	--nm--spinner-border-color-light: #4EB9AA #4EB9AA transparent transparent;
}


/* --------------------------------------------------------------------------
 * The workouts grid loading overlay
 *
 * #nm-shop-products-overlay is Savoy's shop AJAX overlay, but the SaveTrainer
 * workouts grid reuses the id — the SaveTrainer SVG animation is rendered
 * inside it (member/part-st_workouts.php). Easy to mistake for shop-only
 * markup and drop; without these rules the overlay stops being a hidden 1px
 * box and renders inline above the grid.
 * -------------------------------------------------------------------------- */
#nm-shop-products-overlay {
	position: absolute; top: -1px; left: 0;
	z-index: 1000; width: 1px; height: 1px;
	opacity: 0; overflow: hidden;
	background: #fff; transition: opacity .3s;
}
#nm-shop-products-overlay.show { visibility: visible; top: 0; width: 100%; height: 100%; opacity: 1; }
#nm-shop-products-overlay.fade-out { opacity: 0; }
#nm-shop-products-overlay.no-anim { transition: none; }

/* The spinner itself, plus the keyframes it animates against. */
.nm-loader::after {
	display: block; position: absolute;
	top: 50%; right: 50%; content: " ";
	width: 16px; height: 16px;
	font-family: inherit;
	margin: -8px -8px 0 0;
	opacity: 1;
	border: 2px solid; border-color: var(--nm--spinner-border-color);
	border-radius: 2rem;
	transform: translateZ(0);
	animation: nmSpin .4s linear infinite;
}
.nm-loader.nm-loader-light::after { border-color: var(--nm--spinner-border-color-light); }
#nm-shop-products-overlay.nm-loader::after { top: 100px; right: auto; left: 50%; width: 20px; height: 20px; margin-left: -10px; }
@media (max-width: 991px) { #nm-shop-products-overlay.nm-loader::after { top: 56px; } }
@media (max-width: 768px) { #nm-shop-products-overlay.nm-loader::after { top: 29px; } }

@keyframes nmSpin {
	0%   { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}


/* --------------------------------------------------------------------------
 * Reset — normalize.min.css (4 rules) + Savoy's own reset
 * -------------------------------------------------------------------------- */
html { line-height: 1.15; text-size-adjust: 100%; height: 100%; }
body { margin: 0; }
a { background-color: transparent; }
img { border-style: none; }
abbr[title] { border-bottom: none; text-decoration: underline dotted; }
small { font-size: 75%; }
textarea { overflow: auto; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }
button, input { overflow: visible; }
button, select { text-transform: none; }
[type="button"], [type="reset"], [type="submit"], button { appearance: button; }
[hidden] { display: none; }

a, abbr, address, article, aside, audio, b, blockquote, body, canvas, caption,
center, cite, code, dd, del, div, dl, dt, em, embed, fieldset, figcaption,
figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, hr, html, i,
iframe, img, ins, label, legend, li, menu, nav, object, ol, output, p, pre, q,
section, small, span, strike, strong, sub, summary, sup, table, tbody, td,
tfoot, th, thead, time, tr, tt, u, ul, var, video {
	margin: 0; padding: 0; border: 0;
}

*, ::after, ::before { box-sizing: border-box; -webkit-font-smoothing: antialiased; }

b, strong { font-weight: 900; }
li { list-style: none; }
img { font-size: 0; color: transparent; max-width: 100%; height: auto; vertical-align: bottom; }

.clear::before, .clear::after,
.clearfix::before, .clearfix::after { content: " "; display: table; }
.clear::after, .clearfix::after { clear: both; }


/* --------------------------------------------------------------------------
 * Base typography, links, form controls and buttons
 * -------------------------------------------------------------------------- */
body {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 2;
	color: #777;
}

h1, h2, h3, h4, h5, h6 { font-style: normal; line-height: 1.4; color: #282828; }
h1, .h1-size { font-size: 30px; }
h2, .h2-size { font-size: 28px; }
h3, .h3-size { font-size: 24px; }
h4, .h4-size { font-size: 22px; }
h5, .h5-size { font-size: 18px; }
h6, .h6-size { font-size: 16px; }

a { color: #DC9814; outline: 0; text-decoration: none; transition: color .2s; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px; width: 1px;
	overflow: hidden;
	position: absolute !important;
}

input[type="text"], input[type="password"], input[type="number"],
input[type="date"], input[type="datetime"], input[type="datetime-local"],
input[type="time"], input[type="month"], input[type="week"],
input[type="email"], input[type="search"], input[type="tel"],
input[type="url"], input.input-text, select, textarea {
	font-family: inherit;
	line-height: 1.6;
	outline: 0;
	padding: var(--nm--inputs-padding-vertical) var(--nm--inputs-padding-horizontal);
	border: 1px solid var(--nm--inputs-border-color);
	border-radius: var(--nm--border-radius-inputs);
	transition: border-color .4s;
	box-shadow: none;
	appearance: none;
}

.widget form > button, input[type="submit"], .button {
	display: inline-block;
	font-size: 16px;
	font-weight: normal;
	line-height: 16px;
	color: #fff;
	padding: 14px 18px;
	border: 0;
	border-radius: var(--nm--border-radius-button);
	text-align: center;
	opacity: 1;
	cursor: pointer;
	transition: opacity .2s;
	background-color: #282828;
}

/* The hover fade. Without this the white/outlined buttons on Plan Preview,
   My Plan and Assessment, and the salmon Reset Plan Progress, have no hover
   state at all — the transition above has nothing to transition to. */
input[type="submit"]:hover, .button:hover { color: #fff; opacity: .82; }
.touch input[type="submit"]:hover, .touch input[type="submit"]:active,
.touch input[type="submit"]:focus, .touch .button:hover,
.touch .button:active, .touch .button:focus { opacity: 1; }

#nm-blog-pagination a, #nm-blog-pagination a:hover,
.button.border, .button.border:hover {
	color: #282828; opacity: 1; transition: border .2s; background: none;
}
#nm-blog-pagination a, .button.border { border: 1px solid #aaa; }
#nm-blog-pagination a:not([disabled]):hover,
.button.border:not([disabled]):hover { color: #282828; border-color: #282828; }


/* --------------------------------------------------------------------------
 * Savoy's icon font, vendored
 *
 * The Magnific Popup close control is built as
 * <a class="mfp-close nm-font nm-font-close2"> in jquery.simembers.js,
 * jquery.save.js and member/member.php, so the "X" on every modal —
 * notifications, conversations, the health disclaimer — is a glyph from
 * Savoy's icon font. Dequeuing nm-icons removed it and left the modals with
 * no visible close control.
 *
 * The font is copied into fonts/nm-font/ rather than pointed at the parent
 * theme, so this survives Savoy being removed. Only the glyphs the members
 * area actually renders are declared; the other ~160 stay behind.
 * -------------------------------------------------------------------------- */
@font-face {
	font-family: nm-font;
	src: url("../fonts/nm-font/nm-font.woff") format("woff"),
	     url("../fonts/nm-font/nm-font.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: block;
}
[class*=" nm-font-"], [class^="nm-font-"] {
	font-style: normal;
	font-weight: 400;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	font-family: nm-font !important;
}
.nm-font-close2::before { content: "\e117"; }


/* --------------------------------------------------------------------------
 * Savoy's footer DOM, neutralised
 *
 * nm_footer_includes() prints a mobile menu, a cart panel and a quickview
 * container into every page, including ours. The members area shows none of
 * them — it has its own mmenu drawer and the SaveTrainer tab bar — and until
 * now they were kept out of sight by the Savoy stylesheets we are removing.
 * Without this they unhide and render as stray blocks in the footer.
 *
 * Stage 2 has since removed the markup at source — functions.php unhooks
 * nm_footer_includes on members pages — so these normally match nothing now.
 * Kept as a safety net: 80 bytes that guarantee no visual regression if that
 * hook removal ever stops taking (a Savoy update, a hook-timing change, a
 * plugin printing the same markup). Delete them once Savoy is gone for good.
 * -------------------------------------------------------------------------- */
/* Unscoped on purpose: this file is only enqueued on /members/. */
.nm-mobile-menu-holder,
.nm-cart-panel-holder,
#nm-quickview,
#nm-page-includes { display: none !important; }


/* --------------------------------------------------------------------------
 * Page wrappers used by header-members.php / footer-members.php
 * -------------------------------------------------------------------------- */
.nm-page-wrap {
	position: relative; right: 0;
	min-width: 280px; min-height: 100%;
	overflow: hidden; background: #fff;
}
.nm-page-wrap-inner { position: relative; width: 100%; }

.nm-page-overlay {
	visibility: hidden;
	position: fixed; inset: -1px 0 0; z-index: 1000;
	content: " "; width: 1px; height: 1px;
	opacity: 0; transition: opacity .25s;
	background: var(--nm--page-overlay-background);
}


/* --------------------------------------------------------------------------
 * The members header's right-hand menu
 * -------------------------------------------------------------------------- */
.nm-menu li { position: relative; float: left; }
.nm-menu li a {
	display: inline-block;
	font-size: 16px; line-height: 1; color: #707070;
	vertical-align: bottom; text-decoration: none;
	padding: 16px;
}
.nm-right-menu { float: right; margin-right: -16px; }
.nm-right-menu > ul { display: inline-block; line-height: 1; vertical-align: middle; }

@media (max-width: 991px) {
	.nm-menu li a { padding-left: 2px; }
	.nm-right-menu ul li { display: none; }
}
@media (max-width: 550px) { .nm-menu li a { padding-left: 0; } }
@media (max-width: 400px) {
	.header-mobile-default .nm-menu li a { padding-right: 12px; }
	.nm-right-menu { margin-right: -12px; }
}


/* --------------------------------------------------------------------------
 * Grid
 *
 * Savoy's grid.css is 537 rules; this is the 12-column core the members area
 * uses, written out rather than dumped. Same breakpoints (768/992/1200) and
 * the same N/12 widths. The offset/push/pull and fifths variants are dropped —
 * nothing under /members/ uses them.
 * -------------------------------------------------------------------------- */
.nm-row {
	max-width: var(--nm--page-width);
	margin: 0 auto;
	padding-right: 15px; padding-left: 15px;
	background-position: 50% 50%;
	background-repeat: no-repeat;
}
@media (max-width: 768px) { .nm-row { padding-right: 0; padding-left: 0; } }

/*
 * Clearfix. The columns float, so without this every .nm-row collapses to zero
 * height and its contents overflow instead of pushing what follows down — most
 * visibly the discussion pager, which ended up overlapping the comments. Easy
 * to lose: this section was written out by hand rather than dumped, and the
 * verification diff had height removed from its property list to quieten
 * animation noise, which is the one property the fault shows in.
 */
.nm-row::before, .nm-row::after { display: table; content: " "; }
.nm-row::after { clear: both; }

/* Nested rows — the discussion page nests one inside another. */
.nm-row .nm-row { margin-right: -15px; margin-left: -15px; }
.nm-row .nm-row-full-nopad,
.nm-row:not(.nm-row-full):not(.nm-row-full-nopad) .nm-row { padding-right: 0; padding-left: 0; }
.nm-row .nm-row.nm-row-max-width,
.nm-row.nm-row-full .nm-row.nm-row-boxed,
.nm-row.nm-row-full-nopad .nm-row.nm-row-boxed { margin-right: auto; margin-left: auto; }

.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
	position: relative; min-height: 1px;
	padding-right: 15px; padding-left: 15px;
}

.col-center, .col.centered { margin-right: auto; margin-left: auto; float: none !important; }
.col-right { float: right !important; }

.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { float: left; }
.col-xs-1 { width: 8.33333%; }
.col-xs-2 { width: 16.6667%; }
.col-xs-3 { width: 25%; }
.col-xs-4 { width: 33.3333%; }
.col-xs-5 { width: 41.6667%; }
.col-xs-6 { width: 50%; }
.col-xs-7 { width: 58.3333%; }
.col-xs-8 { width: 66.6667%; }
.col-xs-9 { width: 75%; }
.col-xs-10 { width: 83.3333%; }
.col-xs-11 { width: 91.6667%; }
.col-xs-12 { width: 100%; }

@media (min-width: 768px) {
	.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { float: left; }
	.col-sm-1 { width: 8.33333%; }
	.col-sm-2 { width: 16.6667%; }
	.col-sm-3 { width: 25%; }
	.col-sm-4 { width: 33.3333%; }
	.col-sm-5 { width: 41.6667%; }
	.col-sm-6 { width: 50%; }
	.col-sm-7 { width: 58.3333%; }
	.col-sm-8 { width: 66.6667%; }
	.col-sm-9 { width: 75%; }
	.col-sm-10 { width: 83.3333%; }
	.col-sm-11 { width: 91.6667%; }
	.col-sm-12 { width: 100%; }
}

@media (min-width: 992px) {
	.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; }
	.col-md-1 { width: 8.33333%; }
	.col-md-2 { width: 16.6667%; }
	.col-md-3 { width: 25%; }
	.col-md-4 { width: 33.3333%; }
	.col-md-5 { width: 41.6667%; }
	.col-md-6 { width: 50%; }
	.col-md-7 { width: 58.3333%; }
	.col-md-8 { width: 66.6667%; }
	.col-md-9 { width: 75%; }
	.col-md-10 { width: 83.3333%; }
	.col-md-11 { width: 91.6667%; }
	.col-md-12 { width: 100%; }
}

@media (min-width: 1200px) {
	.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; }
	.col-lg-1 { width: 8.33333%; }
	.col-lg-2 { width: 16.6667%; }
	.col-lg-3 { width: 25%; }
	.col-lg-4 { width: 33.3333%; }
	.col-lg-5 { width: 41.6667%; }
	.col-lg-6 { width: 50%; }
	.col-lg-7 { width: 58.3333%; }
	.col-lg-8 { width: 66.6667%; }
	.col-lg-9 { width: 75%; }
	.col-lg-10 { width: 83.3333%; }
	.col-lg-11 { width: 91.6667%; }
	.col-lg-12 { width: 100%; }
}

/* --------------------------------------------------------------------------
 * Block grid
 *
 * The second grid in Savoy's grid.css — Foundation-style block grids on <ul>.
 * The SaveTrainer plan and workout lists use it (ul.xsmall-block-grid-1
 * .small-block-grid-2 in member/part-st_plan_overview.php and friends), so it
 * is not shop-only. Breakpoints 400/750/1020 as Savoy sets them.
 * -------------------------------------------------------------------------- */
[class*="block-grid-"] { display: block; margin: 0 -8px; padding: 0; }
[class*="block-grid-"]::before, [class*="block-grid-"]::after { display: table; content: " "; }
[class*="block-grid-"]::after { clear: both; }
[class*="block-grid-"] .flickity-slider > li,
[class*="block-grid-"] > li { display: block; float: left; height: auto; padding: 0 8px 16px; }

.xsmall-block-grid-1 .flickity-slider > li, .xsmall-block-grid-1 > li { width: 100%; }
.xsmall-block-grid-1 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-1 > li:nth-of-type(1n+1) { clear: both; }
.xsmall-block-grid-2 .flickity-slider > li, .xsmall-block-grid-2 > li { width: 50%; }
.xsmall-block-grid-2 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-2 > li:nth-of-type(2n+1) { clear: both; }
.xsmall-block-grid-3 .flickity-slider > li, .xsmall-block-grid-3 > li { width: 33.3333%; }
.xsmall-block-grid-3 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-3 > li:nth-of-type(3n+1) { clear: both; }
.xsmall-block-grid-4 .flickity-slider > li, .xsmall-block-grid-4 > li { width: 25%; }
.xsmall-block-grid-4 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-4 > li:nth-of-type(4n+1) { clear: both; }
.xsmall-block-grid-5 .flickity-slider > li, .xsmall-block-grid-5 > li { width: 20%; }
.xsmall-block-grid-5 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-5 > li:nth-of-type(5n+1) { clear: both; }
.xsmall-block-grid-6 .flickity-slider > li, .xsmall-block-grid-6 > li { width: 16.6667%; }
.xsmall-block-grid-6 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-6 > li:nth-of-type(6n+1) { clear: both; }
.xsmall-block-grid-7 .flickity-slider > li, .xsmall-block-grid-7 > li { width: 14.2857%; }
.xsmall-block-grid-7 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-7 > li:nth-of-type(7n+1) { clear: both; }
.xsmall-block-grid-8 .flickity-slider > li, .xsmall-block-grid-8 > li { width: 12.5%; }
.xsmall-block-grid-8 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-8 > li:nth-of-type(8n+1) { clear: both; }
.xsmall-block-grid-9 .flickity-slider > li, .xsmall-block-grid-9 > li { width: 11.1111%; }
.xsmall-block-grid-9 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-9 > li:nth-of-type(9n+1) { clear: both; }
.xsmall-block-grid-10 .flickity-slider > li, .xsmall-block-grid-10 > li { width: 10%; }
.xsmall-block-grid-10 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-10 > li:nth-of-type(10n+1) { clear: both; }
.xsmall-block-grid-11 .flickity-slider > li, .xsmall-block-grid-11 > li { width: 9.09091%; }
.xsmall-block-grid-11 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-11 > li:nth-of-type(11n+1) { clear: both; }
.xsmall-block-grid-12 .flickity-slider > li, .xsmall-block-grid-12 > li { width: 8.33333%; }
.xsmall-block-grid-12 > li:nth-of-type(n) { clear: none; }
.xsmall-block-grid-12 > li:nth-of-type(12n+1) { clear: both; }

@media (min-width: 400px) {
	.small-block-grid-1 .flickity-slider > li, .small-block-grid-1 > li { width: 100%; }
	.small-block-grid-1 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-1 > li:nth-of-type(1n+1) { clear: both; }
	.small-block-grid-2 .flickity-slider > li, .small-block-grid-2 > li { width: 50%; }
	.small-block-grid-2 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-2 > li:nth-of-type(2n+1) { clear: both; }
	.small-block-grid-3 .flickity-slider > li, .small-block-grid-3 > li { width: 33.3333%; }
	.small-block-grid-3 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-3 > li:nth-of-type(3n+1) { clear: both; }
	.small-block-grid-4 .flickity-slider > li, .small-block-grid-4 > li { width: 25%; }
	.small-block-grid-4 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-4 > li:nth-of-type(4n+1) { clear: both; }
	.small-block-grid-5 .flickity-slider > li, .small-block-grid-5 > li { width: 20%; }
	.small-block-grid-5 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-5 > li:nth-of-type(5n+1) { clear: both; }
	.small-block-grid-6 .flickity-slider > li, .small-block-grid-6 > li { width: 16.6667%; }
	.small-block-grid-6 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-6 > li:nth-of-type(6n+1) { clear: both; }
	.small-block-grid-7 .flickity-slider > li, .small-block-grid-7 > li { width: 14.2857%; }
	.small-block-grid-7 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-7 > li:nth-of-type(7n+1) { clear: both; }
	.small-block-grid-8 .flickity-slider > li, .small-block-grid-8 > li { width: 12.5%; }
	.small-block-grid-8 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-8 > li:nth-of-type(8n+1) { clear: both; }
	.small-block-grid-9 .flickity-slider > li, .small-block-grid-9 > li { width: 11.1111%; }
	.small-block-grid-9 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-9 > li:nth-of-type(9n+1) { clear: both; }
	.small-block-grid-10 .flickity-slider > li, .small-block-grid-10 > li { width: 10%; }
	.small-block-grid-10 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-10 > li:nth-of-type(10n+1) { clear: both; }
	.small-block-grid-11 .flickity-slider > li, .small-block-grid-11 > li { width: 9.09091%; }
	.small-block-grid-11 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-11 > li:nth-of-type(11n+1) { clear: both; }
	.small-block-grid-12 .flickity-slider > li, .small-block-grid-12 > li { width: 8.33333%; }
	.small-block-grid-12 > li:nth-of-type(n) { clear: none; }
	.small-block-grid-12 > li:nth-of-type(12n+1) { clear: both; }
}

@media (min-width: 750px) {
	.medium-block-grid-1 .flickity-slider > li, .medium-block-grid-1 > li { width: 100%; }
	.medium-block-grid-1 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-1 > li:nth-of-type(1n+1) { clear: both; }
	.medium-block-grid-2 .flickity-slider > li, .medium-block-grid-2 > li { width: 50%; }
	.medium-block-grid-2 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-2 > li:nth-of-type(2n+1) { clear: both; }
	.medium-block-grid-3 .flickity-slider > li, .medium-block-grid-3 > li { width: 33.3333%; }
	.medium-block-grid-3 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-3 > li:nth-of-type(3n+1) { clear: both; }
	.medium-block-grid-4 .flickity-slider > li, .medium-block-grid-4 > li { width: 25%; }
	.medium-block-grid-4 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-4 > li:nth-of-type(4n+1) { clear: both; }
	.medium-block-grid-5 .flickity-slider > li, .medium-block-grid-5 > li { width: 20%; }
	.medium-block-grid-5 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-5 > li:nth-of-type(5n+1) { clear: both; }
	.medium-block-grid-6 .flickity-slider > li, .medium-block-grid-6 > li { width: 16.6667%; }
	.medium-block-grid-6 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-6 > li:nth-of-type(6n+1) { clear: both; }
	.medium-block-grid-7 .flickity-slider > li, .medium-block-grid-7 > li { width: 14.2857%; }
	.medium-block-grid-7 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-7 > li:nth-of-type(7n+1) { clear: both; }
	.medium-block-grid-8 .flickity-slider > li, .medium-block-grid-8 > li { width: 12.5%; }
	.medium-block-grid-8 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-8 > li:nth-of-type(8n+1) { clear: both; }
	.medium-block-grid-9 .flickity-slider > li, .medium-block-grid-9 > li { width: 11.1111%; }
	.medium-block-grid-9 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-9 > li:nth-of-type(9n+1) { clear: both; }
	.medium-block-grid-10 .flickity-slider > li, .medium-block-grid-10 > li { width: 10%; }
	.medium-block-grid-10 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-10 > li:nth-of-type(10n+1) { clear: both; }
	.medium-block-grid-11 .flickity-slider > li, .medium-block-grid-11 > li { width: 9.09091%; }
	.medium-block-grid-11 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-11 > li:nth-of-type(11n+1) { clear: both; }
	.medium-block-grid-12 .flickity-slider > li, .medium-block-grid-12 > li { width: 8.33333%; }
	.medium-block-grid-12 > li:nth-of-type(n) { clear: none; }
	.medium-block-grid-12 > li:nth-of-type(12n+1) { clear: both; }
}

@media (min-width: 1020px) {
	.large-block-grid-1 .flickity-slider > li, .large-block-grid-1 > li { width: 100%; }
	.large-block-grid-1 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-1 > li:nth-of-type(1n+1) { clear: both; }
	.large-block-grid-2 .flickity-slider > li, .large-block-grid-2 > li { width: 50%; }
	.large-block-grid-2 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-2 > li:nth-of-type(2n+1) { clear: both; }
	.large-block-grid-3 .flickity-slider > li, .large-block-grid-3 > li { width: 33.3333%; }
	.large-block-grid-3 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-3 > li:nth-of-type(3n+1) { clear: both; }
	.large-block-grid-4 .flickity-slider > li, .large-block-grid-4 > li { width: 25%; }
	.large-block-grid-4 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-4 > li:nth-of-type(4n+1) { clear: both; }
	.large-block-grid-5 .flickity-slider > li, .large-block-grid-5 > li { width: 20%; }
	.large-block-grid-5 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-5 > li:nth-of-type(5n+1) { clear: both; }
	.large-block-grid-6 .flickity-slider > li, .large-block-grid-6 > li { width: 16.6667%; }
	.large-block-grid-6 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-6 > li:nth-of-type(6n+1) { clear: both; }
	.large-block-grid-7 .flickity-slider > li, .large-block-grid-7 > li { width: 14.2857%; }
	.large-block-grid-7 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-7 > li:nth-of-type(7n+1) { clear: both; }
	.large-block-grid-8 .flickity-slider > li, .large-block-grid-8 > li { width: 12.5%; }
	.large-block-grid-8 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-8 > li:nth-of-type(8n+1) { clear: both; }
	.large-block-grid-9 .flickity-slider > li, .large-block-grid-9 > li { width: 11.1111%; }
	.large-block-grid-9 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-9 > li:nth-of-type(9n+1) { clear: both; }
	.large-block-grid-10 .flickity-slider > li, .large-block-grid-10 > li { width: 10%; }
	.large-block-grid-10 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-10 > li:nth-of-type(10n+1) { clear: both; }
	.large-block-grid-11 .flickity-slider > li, .large-block-grid-11 > li { width: 9.09091%; }
	.large-block-grid-11 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-11 > li:nth-of-type(11n+1) { clear: both; }
	.large-block-grid-12 .flickity-slider > li, .large-block-grid-12 > li { width: 8.33333%; }
	.large-block-grid-12 > li:nth-of-type(n) { clear: none; }
	.large-block-grid-12 > li:nth-of-type(12n+1) { clear: both; }
}


/* --------------------------------------------------------------------------
 * Prose — .entry-content and bare lists
 * -------------------------------------------------------------------------- */
blockquote.alignleft, img.alignleft, blockquote.alignright, img.alignright,
p, pre, address, .entry-content .wp-caption { margin-bottom: 24px; }

.entry-content > :last-child { margin-bottom: 0; }
.entry-content img { border-radius: var(--nm--border-radius-image); }
.entry-content strong { color: #555; }
p:last-child { margin-bottom: 0; }

blockquote { font-size: 18px; font-style: italic; color: #555; margin-bottom: 26px; }
cite { display: inline-block; font-style: normal; color: #282828; padding-top: 5px; }

ol:not([class]) li, ul:not([class]) li { list-style-position: inside; }
.page > ul:not([class]), .entry-content > ul:not([class]) { padding-left: 14px; }
.page > ol:not([class]):not(:last-child), .page > ul:not([class]):not(:last-child),
.entry-content > ol:not([class]):not(:last-child),
.entry-content > ul:not([class]):not(:last-child) { margin-bottom: 24px; }
.page > ol:not([class]) li, .page > ul:not([class]) li,
.entry-content ol:not([class]) li, .entry-content ul:not([class]) li { list-style-position: outside; }
.page > ul:not([class]) li, .entry-content > ul:not([class]) li { list-style-type: disc; }


/* ==========================================================================
 * Magnific Popup
 *
 * Kept in full. jquery.simembers.js (7 call sites), jquery.save.js (2) and
 * member/member.php (the health-disclaimer modal) all drive $.magnificPopup,
 * and none of these selectors exists in the DOM until a popup opens — which
 * is why a static "does this rule match anything?" pass reports them as dead.
 * The .nm-message / .nm-healthdisclaimer / .nm-passwordless-box skins on top
 * of this live in members.css and are ours already.
 * ========================================================================== */
.mfp-bg, .mfp-container, .mfp-wrap { left: 0; top: 0; width: 100%; height: 100%; }
.mfp-container::before, .mfp-content { display: inline-block; vertical-align: middle; }
.mfp-bg { position: fixed; z-index: 1042; overflow: hidden; background: var(--nm--page-overlay-background); opacity: 0; }
.mfp-wrap { z-index: 1043; position: fixed; backface-visibility: hidden; outline: 0 !important; }
.mfp-container { text-align: center; position: absolute; padding: 0 30px; box-sizing: border-box; }
.mfp-container::before { content: ""; height: 100%; }
.mfp-align-top .mfp-container::before, .mfp-loading.mfp-figure,
.mfp-s-error .mfp-content, .mfp-s-ready .mfp-preloader { display: none; }
.mfp-content { position: relative; margin: 0 auto; text-align: left; border-radius: var(--nm--border-radius-container); z-index: 1045; }
.mfp-close, .mfp-preloader { text-align: center; position: absolute; }
.mfp-ajax-holder .mfp-content, .mfp-inline-holder .mfp-content { width: 100%; cursor: auto; }
.mfp-ajax-cur { cursor: progress; }
.mfp-zoom { cursor: zoom-in; }
.mfp-close, .mfp-gallery .mfp-image-holder .mfp-figure { cursor: pointer; }
.mfp-auto-cursor .mfp-content { cursor: auto; }
.mfp-arrow, .mfp-close, .mfp-counter, .mfp-preloader { user-select: none; }
.mfp-hide { display: none !important; }
.mfp-preloader { color: #ccc; top: 50%; width: auto; margin-top: -.8em; left: 8px; right: 8px; z-index: 1044; }
.mfp-preloader a { color: #ccc; }
.mfp-preloader a:hover { color: #fff; }
button.mfp-arrow, button.mfp-close { overflow: visible; background: 0 0; border: 0; appearance: none; outline: 0; padding: 0; z-index: 1055; box-shadow: none; }
.mfp-close {
	display: block; width: 38px; height: 38px; line-height: 38px;
	right: 5px; top: 5px; text-decoration: none; padding: 0;
	color: #181818; font-style: normal; font-size: 22px;
	opacity: 1; transition: opacity .18s ease-out;
}
.mfp-close:focus, .mfp-close:hover { opacity: .7; }
.mfp-close.nm-font { line-height: 36px; }
.mfp-iframe-holder .mfp-close, .mfp-image-holder .mfp-close { color: #000; right: -6px; text-align: right; padding-right: 6px; width: 100%; }
.mfp-counter { position: absolute; top: 0; right: 0; color: #ccc; font-size: 12px; line-height: 18px; }
.mfp-figure, img.mfp-img { line-height: 0; }
.mfp-arrow { position: absolute; font-size: 50px; opacity: .65; margin: -55px 0 0; top: 50%; padding: 0; width: 90px; height: 110px; -webkit-tap-highlight-color: transparent; }
.mfp-arrow:active { margin-top: -54px; }
.mfp-arrow:focus, .mfp-arrow:hover,
.nm-mfp-fade-in.mfp-bg.mfp-ready, .nm-mfp-fade-in.mfp-ready .mfp-content,
.nm-mfp-zoom-in.mfp-bg.mfp-ready { opacity: 1; }
.mfp-arrow-left { left: 0; }
.mfp-arrow-right { right: 0; }
.mfp-iframe-holder { padding-top: 40px; padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content { line-height: 0; width: 100%; max-width: 900px; }
.mfp-image-holder .mfp-content, img.mfp-img { max-width: 100%; }
.mfp-iframe-holder .mfp-close { top: -40px; }
.mfp-iframe-scaler { width: 100%; height: 0; overflow: hidden; padding-top: 56.25%; }
.mfp-iframe-scaler iframe { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; box-shadow: 0 0 6px rgba(0,0,0,.4); background: #000; }
.mfp-figure::after, img.mfp-img { width: auto; height: auto; display: block; }
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
	.mfp-iframe-scaler iframe { box-shadow: none; }
}
img.mfp-img { box-sizing: border-box; padding: 0; margin: 0 auto; border-radius: var(--nm--border-radius-image); max-height: calc(100vh - 80px) !important; }
.mfp-figure::after { content: ""; position: absolute; inset: 40px 0; z-index: -1; background: #333; }
.mfp-figure small { color: #bdbdbd; display: block; font-size: 12px; line-height: 14px; }
.mfp-bottom-bar { margin-top: -36px; position: absolute; top: 100%; left: 0; width: 100%; cursor: auto; }
.mfp-title { text-align: left; line-height: 18px; color: #aaa; overflow-wrap: break-word; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
	.mfp-img-mobile .mfp-image-holder { padding-left: 0; padding-right: 0; }
	.mfp-img-mobile .mfp-bottom-bar:empty, .mfp-img-mobile img.mfp-img { padding: 0; }
	.mfp-img-mobile .mfp-figure::after { top: 0; bottom: 0; }
	.mfp-img-mobile .mfp-figure small { display: inline; margin-left: 5px; }
	.mfp-img-mobile .mfp-bottom-bar { background: rgba(0,0,0,.6); bottom: 0; margin: 0; top: auto; padding: 3px 5px; position: fixed; box-sizing: border-box; }
	.mfp-img-mobile .mfp-counter { right: 5px; top: 3px; }
	.mfp-img-mobile .mfp-close { top: 0; right: 0; width: 35px; height: 35px; line-height: 35px; background: rgba(0,0,0,.6); position: fixed; text-align: center; padding: 0; }
}
@media (max-width: 900px) {
	.mfp-arrow { transform: scale(.75); }
	.mfp-arrow-left { transform-origin: 0 center; }
	.mfp-arrow-right { transform-origin: 100% center; }
}
@media (max-width: 400px) {
	.mfp-container { padding-left: 10px; padding-right: 10px; }
	.mfp-close { font-size: 20px; line-height: 34px; width: 32px; height: 32px; }
}

/* Savoy's transition skins — referenced by name from our JS mainClass strings */
.nm-mfp-fade-in.mfp-bg, .nm-mfp-zoom-in.mfp-bg { opacity: 0; transition: opacity .18s ease-out; }
.nm-mfp-fade-in.mfp-bg.mfp-removing, .nm-mfp-fade-in.mfp-removing .mfp-content,
.nm-mfp-move-from-top.mfp-removing .nm-popup-wrap, .nm-mfp-move-from-top.mfp-removing.mfp-bg,
.nm-mfp-zoom-in.mfp-bg.mfp-removing { opacity: 0; }
.nm-mfp-fade-in .mfp-content { opacity: 0; transition: opacity .18s ease-in-out; }
.nm-mfp-zoom-in .mfp-content { opacity: 0; transition: .18s ease-in-out; transform: scale(.8); transform-origin: center top; }
.nm-mfp-zoom-in.mfp-ready .mfp-content { opacity: 1; transform: scale(1); }
.nm-mfp-zoom-in.mfp-removing .mfp-content { transform: scale(.8); opacity: 0; }
.nm-mfp-move-from-top .mfp-content { vertical-align: top; }
.nm-mfp-move-from-top .nm-popup-wrap { transition: .2s; transform: translateY(-160px); }
.nm-mfp-move-from-top.mfp-bg { opacity: 0; transition: .2s; }
.nm-mfp-move-from-top.mfp-ready .nm-popup-wrap { transform: translateY(0); }
.nm-mfp-move-from-top.mfp-ready.mfp-bg { opacity: .9; }

/* WP gallery lightbox skin */
.nm-wp-gallery-popup .mfp-counter { display: none; }
.nm-wp-gallery-popup .mfp-close { color: #fff; }
.nm-wp-gallery-popup .mfp-close:hover, .nm-wp-gallery-popup .mfp-close:focus { opacity: 1; }
.nm-wp-gallery-popup .mfp-arrow { font-size: 30px; line-height: 110px; color: #fff; width: 70px; opacity: .75; cursor: pointer; transition: opacity .25s; }
.nm-wp-gallery-popup .mfp-arrow-left::before { display: inline-block; transform: scale(-1, 1); }
.nm-wp-gallery-popup .mfp-arrow:hover { opacity: 1; }
@media (max-width: 820px) { .nm-wp-gallery-popup .mfp-arrow { display: none; } }


/* ==========================================================================
 * The sign-in / lost-password forms
 *
 * members-account.css and the members header's sign-in link both build on
 * these. From Savoy's shop.css, which we otherwise drop entirely.
 * ========================================================================== */
.nm-myaccount-login, .nm-myaccount-lost-reset-password {
	color: #282828;
	width: 100%; max-width: 502px; margin: 0 auto;
	padding-top: 61px; padding-bottom: 87px;
	overflow: hidden;
}
.nm-myaccount-login h2 { font-size: 24px; line-height: 1; padding: 0 0 50px; text-align: center; }
.nm-myaccount-login-inner { position: relative; width: 100%; height: 100%; }
.nm-myaccount-login input.input-text,
.nm-myaccount-lost-reset-password input.input-text { color: #282828; border-color: #ccc; background-color: transparent; }
.nm-myaccount-lost-reset-password h2 { font-size: 16px; line-height: 1.6; font-weight: inherit; margin-top: -4px; padding: 0 0 38px; }
.nm-myaccount-lost-reset-password .nm-shop-notice { padding-bottom: 40px; }

.nm-login-form-divider { position: relative; width: 100%; margin: 19px 0; text-align: center; }
.nm-login-form-divider::before { position: absolute; top: 50%; left: 0; display: block; content: " "; width: 100%; height: 1px; background: #ccc; }
.nm-login-form-divider span { position: relative; z-index: 10; display: inline-block; font-size: 16px; line-height: 1; color: #282828; padding: 0 19px; text-transform: lowercase; background: #f5f5f5; }

/*
 * The form itself.
 *
 * Savoy's shop.css styled .login / .register / .lost_reset_password as one
 * block; stage 1 copied the wrapper and the divider but not this, so the
 * buttons fell back to the plain inline-block .button above and stopped
 * matching the width of the fields they sit under — "Enroll in a Program",
 * "Not a Member Yet? Join SaveTrainer Now", "Sign In", the magic-link button
 * and Reset Password all shrank to their own text.
 */
.login { width: 100%; }
.login p, .login .form-row,
.register p, .register .form-row { margin-bottom: 18px; }
.login .form-group, .register .form-group { margin-bottom: 15px; }
.login .form-actions, .register .form-actions { text-align: center; }
.login .button, .register .button,
.lost_reset_password .button { display: block; width: 100%; padding: 12px; }
.login .button.border, .register .button.border { display: block; width: 100%; padding: 11px; }
.login .lost_password { float: right; }
.login .lost_password a { position: relative; top: 1px; color: inherit; }
.register .form-actions { padding-top: 14px; }
.lost_reset_password .form-row { width: 100%; }
.lost_reset_password .button { margin-top: 5px; }

/* The message slot in woocommerce/global/form-login.php. */
.nm-login-message { line-height: 1.6; margin-top: -9px; margin-bottom: 20px; }

.nm-login-popup-wrap {
	position: relative; width: 100%; max-width: 574px;
	margin: var(--nm--page-column-spacing) auto;
	padding: 47px 37px 50px;
	border-radius: var(--nm--border-radius-container);
	background: #fff;
}
.nm-login-popup-wrap .nm-myaccount-login { max-width: none; padding: 0; }
.nm-login-popup-wrap #nm-login-wrap, .nm-login-popup-wrap #nm-register-wrap { top: 0 !important; }
.nm-login-popup-wrap .login .form-row:last-child,
.nm-login-popup-wrap .register .form-row:last-child { margin-bottom: 0; }
.nm-login-popup-wrap .nm-myaccount-login h2 { padding-bottom: 36px; }
.nm-login-popup-wrap .nm-login-form-divider span { background: #fff; }

/*
 * The sign-in / register swap.
 *
 * woocommerce/myaccount/form-login.php stacks both panels and relies on these
 * to show one at a time — the visible one carries .inline .fade-in .slide-up,
 * the other sits absolutely positioned at opacity 0 behind it. They lived in
 * Savoy's shop.css, and without them a signed-out member reaching
 * /members/…/my-account/ saw the login form and the registration form at once.
 * Missed in stage 1 because the pass ran signed in, where neither renders.
 */
.nm-myaccount-login-inner { position: relative; width: 100%; height: 100%; }
#nm-login-wrap, #nm-register-wrap {
	position: absolute; top: 10px; left: 0;
	z-index: -1; width: 100%; opacity: 0;
	transition: all .2s ease;
}
#nm-login-wrap.no-anim, #nm-register-wrap.no-anim { transition: none; }
#nm-login-wrap.inline, #nm-register-wrap.inline { position: relative; z-index: 100; }
#nm-login-wrap.fade-in, #nm-register-wrap.fade-in { opacity: 1; }
#nm-login-wrap.slide-up, #nm-register-wrap.slide-up { top: 0; }

@media (max-width: 768px) {
	.nm-myaccount-login, .nm-myaccount-lost-reset-password { padding-top: 47px; padding-bottom: 68px; }
	.nm-myaccount-login h2 { padding-bottom: 36px; }
	.nm-myaccount-lost-reset-password h2 { padding-bottom: 33px; }
	.nm-login-message { margin-top: -5px; }
	.nm-login-popup-wrap { padding-top: 44px; padding-bottom: 46px; }
	.nm-login-popup-wrap .nm-myaccount-login h2 { padding-bottom: 32px; }
}
@media (max-width: 550px) {
	.nm-myaccount-login, .nm-myaccount-lost-reset-password { padding-top: 44px; padding-bottom: 64px; }
	.nm-myaccount-login h2 { font-size: 22px; padding-bottom: 32px; }
	.nm-myaccount-lost-reset-password h2 { font-size: inherit; padding-bottom: 21px; }
	.nm-login-message { margin-top: 5px; margin-bottom: 21px; }
	.register .form-actions { padding-top: 10px; }
	.nm-login-popup-wrap { padding: 35px 28px 37px; }
	.nm-login-popup-wrap .nm-myaccount-login h2 { padding-bottom: 24px; }
}
@media (max-width: 400px) {
	.nm-myaccount-login, .nm-myaccount-lost-reset-password { padding-top: 34px; }
	.nm-myaccount-login h2 { font-size: 20px; padding-bottom: 24px; }
	.nm-login-message { display: none; }
	.nm-login-popup-wrap { padding-right: 15px; padding-left: 15px; }
}
@media (max-width: 350px) {
	.login .lost_password { float: none; display: block; padding: 6px 0 4px; }
	.login .lost_password a { top: 0; }
}


/* --------------------------------------------------------------------------
 * Course search results
 *
 * page-members-course.php renders search hits with Savoy's blog-search markup
 * (.nm-search-results / .nm-post-title / .nm-post-meta / .nm-post-divider).
 * That view only exists once a member searches inside a course, so it was not
 * on screen during the stage 1 coverage pass and these rules were dropped —
 * the same way the Magnific Popup layer nearly was. Without them the results
 * lose their two-column split, the title scale and the rule between hits.
 * -------------------------------------------------------------------------- */
.nm-post-meta { position: relative; color: #A0A0A0; padding-left: 40px; }
.nm-post-meta::before {
	position: absolute; top: 15px; left: 0;
	display: block; content: " ";
	width: 26px; height: 1px; background: #DADADA;
}

.nm-search-results .nm-title-col { display: flex; }
.nm-search-results .nm-post-title { font-size: 24px; padding-right: 28px; }
.nm-search-results .nm-post-title a { color: inherit; }
.nm-search-results .nm-post-meta { margin-top: 6px; padding-left: 0; }
.nm-search-results .nm-post-meta::before { display: none; }
.nm-search-results .nm-post-content { font-size: 16px; line-height: 1.6; }
.nm-search-results .nm-post-divider { height: 1px; margin: 45px 0 48px; background: #eee; }
.nm-search-results > div:first-child .nm-post-divider { display: none; }

@media (max-width: 1199px) {
	.nm-search-results .nm-title-col,
	.nm-search-results .nm-content-col,
	.nm-search-results .nm-divider-col { float: none; width: auto; }
	.nm-search-results .nm-post-title { padding-right: 0; }
	.nm-search-results .nm-post-content { margin-top: 22px; }
	.nm-search-results .nm-post-divider { margin: 34px 0 40px; }
}
@media (max-width: 550px) { .nm-search-results .nm-post-title { font-size: 22px; } }
@media (max-width: 400px) {
	.nm-search-results .nm-post-title { font-size: 22px; }
	.nm-search-results .nm-post-divider { margin: 26px 0 32px; }
}


/* ==========================================================================
 * The Community discussion
 *
 * comments-discussion.php renders the SaveTrainer Community, and its whole
 * layout came from Savoy: the avatar is absolutely positioned and the comment
 * body is pushed clear of it with margin-left: 81px, with .children carrying
 * the same indent for replies. Without these the thread collapses to a flat,
 * unindented list — which is exactly what happened.
 *
 * This is the one members template the stage 1 verification pass skipped (the
 * page is a 1.8 MB document), which is why it was the one that broke.
 * ========================================================================== */
.commentlist > li { position: relative; min-height: 48px; }
.commentlist > li > div > img,
.commentlist .children > li > div > img {
	position: absolute; top: -5px; left: 0;
	width: 60px; height: 60px;
	margin: 0; padding: 0;
	overflow: hidden; border-radius: 50%;
}
.commentlist > li .comment-text {
	margin: 0 0 34px 81px;
	padding-bottom: 28px;
	border-bottom: 1px solid #f0f0f0;
}
.commentlist > li:last-child .comment-text { margin-bottom: 0; border-bottom: 0; }
.commentlist > li .comment-text .meta { margin-bottom: 0; }
.commentlist > li .comment-text .meta strong,
.commentlist > li .comment-text .meta strong a { color: #282828; }
.commentlist > li .comment-text .meta strong { display: block; font-size: 18px; line-height: 1.4; font-weight: inherit; }
.commentlist > li .comment-text .meta time { display: block; line-height: 1; color: #A1A1A1; padding-top: 7px; }
.commentlist > li .comment-text .description { font-size: 16px; line-height: 1.6; padding-top: 19px; }
.commentlist > li .comment-text .reply { line-height: 1; padding-top: 19px; }
.commentlist > li .children { margin-left: 81px; }
.commentlist .children > li { position: relative; }

.comment-respond h3 { font-size: 18px; padding-bottom: 32px; }
.comment-respond h3 #cancel-comment-reply-link { font-size: 14px; }
.comment-form { clear: both; overflow: hidden; }
.comment-form > p { display: block; float: left; width: 100%; margin: 0 0 16px; padding: 0; }
.comment-form p label { display: block; font-size: 16px; color: #282828; padding-bottom: 3px; }
.comment-form p input, .comment-form p textarea { width: 100%; }
.comment-form p textarea { resize: none; }
.comment-form p input#submit { display: inline-block; width: auto; min-width: 120px; margin-top: 9px; }

@media (max-width: 820px) { .comment-form p input#submit { width: 100%; min-width: 0; } }
@media (max-width: 767px) {
	.commentlist > li > div > img,
	.commentlist .children > li > div > img { display: none; }
	.commentlist > li .comment-text { margin-left: 0; }
	.commentlist > li .children { margin-left: 35px; }
}
@media (max-width: 400px) { .commentlist > li .children { margin-left: 28px; } }


/* --------------------------------------------------------------------------
 * Pagination — the numbered pager under the discussion (1 2 3 … 26)
 * -------------------------------------------------------------------------- */
.page-numbers { width: 100%; overflow: hidden; }
.page-numbers li { float: left; }
.page-numbers li a, .page-numbers li span { font-size: 16px; color: inherit; padding: 3px 14px; }
.page-numbers li:first-child a, .page-numbers li:first-child span { padding-left: 0; }
.page-numbers li a:hover, .page-numbers li span.current { color: #DC9814; }

#nm-blog-pagination { position: relative; margin-top: 50px; }
#nm-blog-pagination a { display: block; font-size: 16px; line-height: 1; text-align: center; width: 100%; padding: 12px 0; }
#nm-blog-pagination.infinite-load { border-top: 1px solid #eaeaea; border-bottom: 1px solid #eaeaea; }
#nm-blog-pagination.all-pages-loaded { display: none; }
@media (max-width: 991px) { #nm-blog-pagination { margin-top: 40px; } }


/* ==========================================================================
 * The My Account screens
 *
 * /members/savetrainer/my-account/ sits inside the members area, so it loses
 * Savoy along with everything else. These are the WooCommerce account layout
 * rules Savoy's shop.css provided — the two-column nav/content split and its
 * single-column collapse. members-account.css builds on top of them.
 * ========================================================================== */
.nm-MyAccount-dashboard { font-size: 16px; }
.nm-MyAccount-dashboard h1, .nm-MyAccount-dashboard h2, .nm-MyAccount-dashboard h3,
.nm-MyAccount-dashboard h4, .nm-MyAccount-dashboard h5 { margin-bottom: 19px; }

.woocommerce-MyAccount-navigation {
	float: left; width: 25%;
	margin: 55px 0; padding-right: 15px;
	overflow: hidden;
}
.woocommerce-MyAccount-navigation ul li { float: left; clear: left; }
.woocommerce-MyAccount-navigation ul li a {
	display: block;
	font-size: 16px; line-height: 1.4; color: inherit;
	margin: 0 0 14px; padding: 0 0 1px;
	border-bottom: 1px solid transparent;
}
.woocommerce-MyAccount-navigation ul li:last-child a { margin-bottom: 0; }
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a { color: #282828; }
.woocommerce-MyAccount-navigation ul li.is-active a { border-color: #e1e1e1; }

.woocommerce-MyAccount-content {
	float: left; line-height: 1.6; width: 75%;
	margin: 55px 0; padding-left: 15px;
	overflow: hidden;
}

@media (max-width: 991px) {
	.woocommerce-MyAccount-navigation { float: none; width: auto; margin-top: 46px; margin-bottom: 0; padding-right: 0; }
	.woocommerce-MyAccount-navigation ul li { float: none; }
	.woocommerce-MyAccount-navigation ul li.is-active a,
	.woocommerce-MyAccount-navigation ul li a { border-bottom-color: #eee; }
	.woocommerce-MyAccount-navigation ul li a { margin-bottom: 10px; padding-bottom: 10px; }
	.woocommerce-MyAccount-content { float: none; width: auto; margin-top: 46px; padding-left: 0; }
}
@media (max-width: 400px) {
	.woocommerce-MyAccount-navigation ul li a { font-size: inherit; }
}

/* The order/product list widget markup Woo reuses on the account screens */
.product_list_widget { padding-top: 7px; }
.widget .product_list_widget > li, .product_list_widget > li {
	position: relative; min-height: 77px; overflow: hidden;
	margin-bottom: 16px; padding: 5px 0 0 75px;
}
