/* Rise With Teagan — account area
   ------------------------------------------------------------------
   Purchases table (Figma 1437-4850).

   Binds to the Elementor kit globals so brand changes propagate. Those custom
   properties live on `body.elementor-kit-8`, NOT `:root` — aliasing them under
   `:root` silently falls back to the defaults below.                          */

body {
	/* Fallbacks are the real brand values, confirmed against
	   uploads/elementor/css/post-8.css — Terracotta #BC5F50, Espresso #3D322B,
	   Terracotta Tint #F0D5CF, Warm White #FFFBF8. */
	--rwt-ink: var( --e-global-color-primary, #BC5F50 );
	--rwt-body: var( --e-global-color-text, #3D322B );
	--rwt-line: var( --e-global-color-ec00e88, #F0D5CF );
	--rwt-tint: var( --e-global-color-accent, #F5E9E2 );
	--rwt-card: var( --e-global-color-secondary, #FFFBF8 );
}

.rwt-purchases {
	margin: 0 0 2.5rem;
}

/* Wide content must scroll inside its own box — the page body must never
   scroll sideways. */
.rwt-purchases__table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: var( --rwt-card );
	border: 1px solid var( --rwt-line );
	border-radius: 12px;
	overflow: hidden;
	font-size: 15px;
}

.rwt-purchases__table thead th {
	background: var( --rwt-tint );
	color: var( --rwt-ink );
	font-weight: 600;
	text-align: left;
	padding: 14px 18px;
	white-space: nowrap;
}

.rwt-purchases__table tbody td {
	padding: 16px 18px;
	border-top: 1px solid var( --rwt-line );
	color: var( --rwt-body );
	vertical-align: middle;
}

/* Money and dates read far better when they don't reflow between rows. */
.rwt-purchases__table tbody td[data-label="Total"],
.rwt-purchases__table tbody td[data-label="Date"] {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.rwt-purchases__status {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	background: var( --rwt-tint );
	color: var( --rwt-ink );
	font-size: 13px;
	white-space: nowrap;
}

.rwt-purchases__status--refunded,
.rwt-purchases__status--cancelled,
.rwt-purchases__status--failed {
	background: rgba( 0, 0, 0, 0.05 );
	color: #6B6B6B;
}

.rwt-purchases__actions {
	white-space: nowrap;
}

.rwt-purchases__actions a {
	color: var( --rwt-ink );
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rwt-purchases__actions a + a,
.rwt-purchases__actions a + .rwt-purchases__ref {
	margin-left: 14px;
}

.rwt-purchases__download {
	font-weight: 600;
}

/* The MemberPress transaction number. Shown because there is no invoice
   document to link to — it is the reference a member quotes in support. */
.rwt-purchases__ref {
	color: #8A8A8A;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}

.rwt-purchases__paging {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 16px;
	font-size: 14px;
}

.rwt-purchases__paging a {
	color: var( --rwt-ink );
	text-decoration: none;
}

.rwt-purchases__paging a:hover {
	text-decoration: underline;
}

.rwt-purchases__paging-count {
	color: #8A8A8A;
	margin-left: auto;
	margin-right: auto;
}

/* Empty state — the common case for a Rise Free member, who has no
   subscription and no payments but is still a legitimate account holder. */
.rwt-purchases--empty {
	padding: 40px 28px;
	text-align: center;
	background: var( --rwt-card );
	border: 1px solid var( --rwt-line );
	border-radius: 12px;
}

.rwt-purchases__empty-title {
	margin: 0 0 6px;
	color: var( --rwt-ink );
	font-size: 20px;
	font-weight: 600;
}

.rwt-purchases__empty-text {
	margin: 0 0 18px;
	color: var( --rwt-body );
}

.rwt-purchases__cta {
	display: inline-block;
	padding: 12px 28px;
	border-radius: 999px;
	background: var( --rwt-ink );
	color: #fff;
	text-decoration: none;
}

/* ------------------------------------------------------------------
   Mobile — the kit's breakpoint is 800px, not Elementor's stock 767.
   Below it the table becomes stacked cards: a six-column table cannot be
   scrolled comfortably on a phone, and horizontal scroll hides the actions
   column, which is where the download lives.                              */
@media ( max-width: 800px ) {

	.rwt-purchases__table,
	.rwt-purchases__table tbody,
	.rwt-purchases__table tr,
	.rwt-purchases__table td {
		display: block;
		width: 100%;
	}

	.rwt-purchases__table thead {
		/* Not display:none — that removes it from the accessibility tree.
		   Clipped instead, so screen readers keep the column names. */
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect( 0 0 0 0 );
		white-space: nowrap;
	}

	.rwt-purchases__table {
		background: transparent;
		border: 0;
		border-radius: 0;
	}

	.rwt-purchases__row {
		background: var( --rwt-card );
		border: 1px solid var( --rwt-line );
		border-radius: 12px;
		margin-bottom: 14px;
		padding: 6px 4px;
	}

	.rwt-purchases__table tbody td {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 16px;
		border-top: 0;
		padding: 9px 16px;
	}

	.rwt-purchases__table tbody td::before {
		content: attr( data-label );
		color: #8A8A8A;
		font-size: 13px;
		flex: 0 0 auto;
	}

	.rwt-purchases__actions {
		justify-content: flex-end;
		white-space: normal;
	}
}

/* ==================================================================
   Account shell — Figma 1437-4702 / 4798 / 4850
   ------------------------------------------------------------------
   Every value binds to an Elementor kit global, verified against
   uploads/elementor/css/post-8.css. Figma -> kit mapping:

     Terracotta      #BC5F50  --e-global-color-primary
     Warm White      #FFFBF8  --e-global-color-secondary
     Espresso        #3D322B  --e-global-color-text
     Warm Cream      #F5E9E2  --e-global-color-accent
     Sienna          #A14A3A  --e-global-color-f220437
     Terracotta Tint #F0D5CF  --e-global-color-ec00e88
     Taupe           #887D78  --e-global-color-c2248c7
     Button Colour   #C46A5A  --e-global-color-03edebf
     Form Outlines   #B6B0AD  --e-global-color-b97e9cc
     H2 Fraunces 44  --e-global-typography-5193019
     H4 Fraunces 28  --e-global-typography-9e9beda
     H5 Fraunces 22  --e-global-typography-2b41e17
     Body 16/20      --e-global-typography-primary
     Small 14/18     --e-global-typography-accent

   These custom properties are declared on body.elementor-kit-8, NOT
   :root — aliasing under :root silently resolves to the fallbacks.    */

.rwt-account {
	display: grid;
	grid-template-columns: 285px minmax( 0, 1fr );
	align-items: start;
	min-height: 60vh;
}

/* ---------------------------------------------------------- sidebar */

.rwt-account__sidebar {
	background: var( --e-global-color-accent, #F5E9E2 );
	padding: 38px 0 60px;
	align-self: stretch;
}

.rwt-account__sidebar-label {
	margin: 0 0 18px;
	padding: 0 28px;
	color: var( --e-global-color-c2248c7, #887D78 );
	font-family: var( --e-global-typography-accent-font-family, "DM Sans" ), sans-serif;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rwt-account__nav {
	display: flex;
	flex-direction: column;
}

.rwt-account__nav-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 28px;
	color: var( --e-global-color-primary, #BC5F50 );
	font-family: var( --e-global-typography-primary-font-family, "DM Sans" ), sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.rwt-account__nav-link:hover,
.rwt-account__nav-link:focus-visible {
	background: var( --e-global-color-ec00e88, #F0D5CF );
	color: var( --e-global-color-primary, #BC5F50 );
}

/* Current tab gets the tinted bar from the design. Doubling the class beats
   Elementor's `.elementor-kit-8 a` at (0,1,1) without !important. */
.rwt-account__nav-link.is-current.is-current {
	background: var( --e-global-color-ec00e88, #F0D5CF );
	border-left-color: var( --e-global-color-primary, #BC5F50 );
}

.rwt-account__icon {
	width: 19px;
	height: 19px;
	flex: 0 0 auto;
}

/* ------------------------------------------------------------- main */

.rwt-account__main {
	padding: 44px 56px 80px;
	max-width: 1000px;
}

.rwt-account__head {
	padding-bottom: 26px;
	border-bottom: 1px solid var( --e-global-color-ec00e88, #F0D5CF );
	margin-bottom: 34px;
}

.rwt-account .rwt-account__title {
	margin: 0 0 8px;
	color: var( --e-global-color-primary, #BC5F50 );
	font-family: var( --e-global-typography-5193019-font-family, "Fraunces" ), serif;
	font-size: var( --e-global-typography-5193019-font-size, 44px );
	line-height: var( --e-global-typography-5193019-line-height, 1.09em );
	letter-spacing: var( --e-global-typography-5193019-letter-spacing, -0.01em );
	font-weight: 400;
}

.rwt-account .rwt-account__standfirst {
	margin: 0;
	color: var( --e-global-color-text, #3D322B );
	font-family: var( --e-global-typography-primary-font-family, "DM Sans" ), sans-serif;
	font-size: var( --e-global-typography-primary-font-size, 16px );
	line-height: var( --e-global-typography-primary-line-height, 1.25em );
}

.rwt-account__section {
	margin-bottom: 54px;
}

.rwt-account__section-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 22px;
}

.rwt-account .rwt-account__section-title {
	margin: 0 0 22px;
	color: var( --e-global-color-primary, #BC5F50 );
	font-family: var( --e-global-typography-9e9beda-font-family, "Fraunces" ), serif;
	font-size: var( --e-global-typography-9e9beda-font-size, 28px );
	line-height: var( --e-global-typography-9e9beda-line-height, 1.21em );
	font-weight: 400;
}

.rwt-account__section-head .rwt-account__section-title {
	margin-bottom: 0;
}

.rwt-account__section-link {
	color: var( --e-global-color-primary, #BC5F50 );
	font-size: 15px;
	text-decoration: none;
	white-space: nowrap;
}

.rwt-account__section-link:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ------------------------------------- MemberPress forms, restyled */

.rwt-account .mepr-account-form,
.rwt-account .mepr_update_account_table {
	width: 100%;
}

.rwt-account .mepr-form-row,
.rwt-account .mp-form-row {
	margin-bottom: 20px;
}

.rwt-account .mepr-form-label,
.rwt-account .mp-form-label label {
	display: block;
	margin-bottom: 7px;
	color: var( --e-global-color-text, #3D322B );
	font-family: var( --e-global-typography-accent-font-family, "DM Sans" ), sans-serif;
	font-size: 14px;
	font-weight: 500;
}

/* Elementor's kit styles inputs at (0,1,1) via `.elementor-kit-8 input[type=x]`,
   so a single class would lose. Scoping under .rwt-account wins on specificity
   without !important. */
.rwt-account input[type="text"],
.rwt-account input[type="email"],
.rwt-account input[type="password"],
.rwt-account input[type="tel"] {
	width: 100%;
	padding: 13px 16px;
	background: var( --e-global-color-d3c7489, #FFFFFF );
	border: 1px solid var( --e-global-color-b97e9cc, #B6B0AD );
	border-radius: 8px;
	color: var( --e-global-color-text, #3D322B );
	font-family: var( --e-global-typography-primary-font-family, "DM Sans" ), sans-serif;
	font-size: 16px;
}

.rwt-account input:focus {
	outline: 2px solid var( --e-global-color-primary, #BC5F50 );
	outline-offset: 1px;
	border-color: transparent;
}

.rwt-account input[type="submit"],
.rwt-account .mepr-submit,
.rwt-account__cta,
.rwt-purchases__cta {
	display: inline-block;
	width: auto;
	padding: 12px 28px;
	background: var( --e-global-color-03edebf, #C46A5A );
	border: 0;
	border-radius: 999px;
	color: var( --e-global-color-d3c7489, #FFFFFF );
	font-family: var( --e-global-typography-primary-font-family, "DM Sans" ), sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.05;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.rwt-account input[type="submit"]:hover,
.rwt-account .mepr-submit:hover,
.rwt-account__cta:hover,
.rwt-purchases__cta:hover {
	background: var( --e-global-color-f220437, #A14A3A );
}

/* ------------------------------------------------ saved recipes */

.rwt-account__cards {
	display: grid;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	gap: 24px;
}

.rwt-account__card {
	background: var( --e-global-color-d3c7489, #FFFFFF );
	border: 1px solid var( --e-global-color-ec00e88, #F0D5CF );
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.rwt-account__card-media {
	position: relative;
	display: block;
	aspect-ratio: 1.17;
	overflow: hidden;
}

/* The link now sits inside the media wrapper rather than being it, so it has to
   fill the box itself. */
.rwt-account__card-link {
	display: block;
	width: 100%;
	height: 100%;
}

.rwt-account__card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.rwt-account__card-body {
	padding: 16px 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	/* min-width:0 so a long title wraps instead of widening the grid track. */
	min-width: 0;
}

.rwt-account .rwt-account__card-title {
	margin: 0;
	font-family: var( --e-global-typography-2b41e17-font-family, "Fraunces" ), serif;
	font-size: var( --e-global-typography-2b41e17-font-size, 22px );
	line-height: var( --e-global-typography-2b41e17-line-height, 1.32em );
	font-weight: 400;
}

.rwt-account__card-title a {
	color: var( --e-global-color-primary, #BC5F50 );
	text-decoration: none;
}

.rwt-account__card-hook {
	margin: 0;
	color: var( --e-global-color-text, #3D322B );
	font-family: var( --e-global-typography-accent-font-family, "DM Sans" ), sans-serif;
	font-size: 14px;
	line-height: 1.4;
}

.rwt-account__card-meta {
	margin: 0;
	color: var( --e-global-color-primary, #BC5F50 );
	font-size: 13px;
}

/* --------------------------------------------------- empty states */

.rwt-account__empty {
	padding: 36px 28px;
	text-align: center;
	background: var( --e-global-color-secondary, #FFFBF8 );
	border: 1px solid var( --e-global-color-ec00e88, #F0D5CF );
	border-radius: 12px;
}

.rwt-account .rwt-account__empty-title {
	margin: 0 0 6px;
	color: var( --e-global-color-primary, #BC5F50 );
	font-family: var( --e-global-typography-2b41e17-font-family, "Fraunces" ), serif;
	font-size: 22px;
}

.rwt-account__empty-text {
	margin: 0 0 18px;
	color: var( --e-global-color-text, #3D322B );
}

.mepr-account-subscriptions .rwt-min-term {
	display: block;
	font-size: 13px;
	line-height: 1.5;
	color: var( --rwt-muted, #887D78 );
}

/* Plan-change guidance (no self-serve downgrades — rwt-plan-change-terms.php) */
.rwt-plan-notice {
	background: #FFF4EE;
	border: 1px solid #F0D5CF;
	border-radius: 12px;
	padding: 16px 20px;
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 1.55;
	color: var( --rwt-body, #3D322B );
}
body .mepr-white-popup .rwt-plan-note {
	font-size: 14px;
	line-height: 1.55;
	color: var( --rwt-muted, #887D78 );
	margin: 4px 0 18px;
	text-align: left;
}

/* ==================================================================
   Responsive. Kit breakpoints: mobile <=800, tablet 801-1200.        */

@media ( max-width: 1200px ) {

	.rwt-account {
		grid-template-columns: 232px minmax( 0, 1fr );
	}

	.rwt-account__main {
		padding: 36px 32px 64px;
	}

}

@media ( max-width: 800px ) {

	/* Sidebar becomes a horizontal chip scroller above the content — a 285px
	   column on a 390px phone leaves nothing beside it. */
	.rwt-account {
		grid-template-columns: minmax( 0, 1fr );
	}

	/* Edge to edge. The theme's `main.site-main` carries 10px of horizontal
	   padding, which inset the whole grid. Removing it here (rather than pulling
	   the sidebar out with negative margins or 100vw) avoids the scrollbar
	   overflow that vw units cause, and our own blocks already own their padding. */
	body.rwt-account-page .site-main,
	body.rwt-account-page .page-content {
		padding-left: 0;
		padding-right: 0;
	}

	.rwt-account__sidebar {
		padding: 18px 0 0;
	}

	.rwt-account__sidebar-label {
		display: none;
	}

	/* Wrap, don't scroll. Five chips measure ~784px against a 355px viewport, so
	   a horizontal scroller hid three of them behind an edge with no affordance —
	   the member could not see Purchases, Email preferences or Log out at all.
	   Wrapping shows every option at once, which matters more than one tidy row. */
	/* Two per row, each filling its half. Grid rather than flex-wrap so the
	   chips are equal width regardless of label length — "Email preferences" is
	   nearly twice "Log out", and ragged chips read as broken. */
	.rwt-account__nav {
		display: grid;
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
		gap: 8px;
		padding: 0 16px 16px;
	}

	.rwt-account__nav-link {
		justify-content: center;
		padding: 11px 12px;
		font-size: 14px;
		gap: 8px;
		border-left: 0;
		border-radius: 999px;
		white-space: nowrap;
		background: var( --e-global-color-secondary, #FFFBF8 );
		border: 1px solid var( --e-global-color-ec00e88, #F0D5CF );
	}

	.rwt-account__icon {
		width: 16px;
		height: 16px;
	}

	/* Must carry the SAME specificity as the desktop rule
	   (.rwt-account .rwt-account__nav-link.is-current.is-current = 0,4,0).
	   A media query adds none, so a shorter selector here loses no matter where
	   it sits in the file — which is what left the label terracotta-on-terracotta. */
	.rwt-account .rwt-account__nav-link.is-current.is-current {
		border-left: 0;
		background: var( --e-global-color-primary, #BC5F50 );
		border-color: var( --e-global-color-primary, #BC5F50 );
		/* White, not terracotta — the chip fill IS terracotta here. */
		color: var( --e-global-color-d3c7489, #FFFFFF );
	}

	/* Log out is a different kind of action to the four tabs; push it onto its
	   own line so it is not mistaken for another section. */
	/* Full width on its own row — it is a different kind of action to the four
	   tabs, and an odd count would otherwise leave a lone half-width chip. */
	.rwt-account__nav-link--logout {
		grid-column: 1 / -1;
	}

	.rwt-account__main {
		padding: 28px 20px 56px;
	}

	.rwt-account .rwt-account__title {
		font-size: 26px;
	}

	.rwt-account__cards {
		grid-template-columns: minmax( 0, 1fr );
	}
}

/* MemberPress's own account nav ships inside [mepr_account_form]. Our sidebar
   replaces it, so hide it rather than fight it — the form's fields and its
   nonced billing actions are what we actually want from that shortcode.
   ID selector is (1,0,0); scoping under .rwt-account makes this (1,1,0). */
.rwt-account #mepr-account-nav {
	display: none;
}

/* MemberPress wraps each account screen in .mepr-account-* containers that
   carry their own margins. Neutralise the top gap so our section headings
   control the rhythm. */
.rwt-account .mepr_account_table,
.rwt-account .mepr-account-content {
	margin-top: 0;
}

/* ==================================================================
   Design-fidelity corrections, all found by measuring the rendered
   page rather than reading the CSS.

   Elementor's kit styles bare anchors via `.elementor-kit-8 a` at
   (0,1,1), which beats any single class. Every link rule below is
   scoped under .rwt-account to reach (0,2,0) — the same trap that made
   the h1 render at 56px.                                             */

.rwt-account .rwt-account__nav-link,
.rwt-account .rwt-account__cta,
.rwt-account .rwt-purchases__cta,
.rwt-account .rwt-account__card-title a,
.rwt-account .rwt-account__section-link {
	text-decoration: none;
}

.rwt-account .rwt-account__section-link:hover,
.rwt-account .rwt-account__card-title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* MemberPress ships its own link colour (#C36 — a leftover magenta) which is
   nowhere in the brand. Bring every link inside the account area onto
   Terracotta. */
.rwt-account a {
	color: var( --e-global-color-primary, #BC5F50 );
}

.rwt-account .rwt-account__cta,
.rwt-account .rwt-purchases__cta {
	color: var( --e-global-color-d3c7489, #FFFFFF );
}

/* Desktop current tab: terracotta text on the pale tint bar. The mobile rule
   below flips both, because there the chip fill is terracotta itself — stating
   the colour once here and overriding it there previously produced
   terracotta-on-terracotta and an invisible label. */
.rwt-account .rwt-account__nav-link.is-current.is-current {
	color: var( --e-global-color-primary, #BC5F50 );
}

/* MemberPress's "Change Password" sits directly under the submit button with no
   breathing room, and reads as a form field rather than a secondary action. */
.rwt-account .mepr-account-change-password-link,
.rwt-account .mepr_change_password_link,
.rwt-account .rwt-account__details > form > a {
	display: inline-block;
	margin-top: 16px;
	font-size: 15px;
}

/* First / last name sit side by side in the design (Figma 1437-4702). MemberPress
   emits each field as its own .mp-form-row, so pair them with a grid rather than
   floats — `.mepr_first_name` and `.mepr_last_name` are stable class hooks. */
@media ( min-width: 801px ) {

	/* Everything else stays on its own line. */
	.rwt-account .mp-form-row {
		clear: both;
	}

	/* Float, not inline-block. Two inline-blocks at 50% are separated by a
	   whitespace text node, which pushed the pair 1px past the form width and
	   wrapped the second field. Floats ignore that whitespace, so the two halves
	   plus the gutter total exactly 100%. */
	.rwt-account .mp-form-row.mepr_first_name,
	.rwt-account .mp-form-row.mepr_last_name {
		float: left;
		clear: none;
		/* !important is load-bearing here, not laziness. A MemberPress rule sets
		   width on .mp-form-row with !important, so specificity alone cannot win.
		   Verified by injection: the identical declaration resolves to 743px
		   without it and 360.5px with it. (CSSOM enumeration returns nothing on
		   this site, so the source rule could not be located by reading — the
		   behaviour was measured instead.) `display` is NOT !important because it
		   applies fine on its own. */
		width: calc( 50% - 9px ) !important;
		vertical-align: top;
	}

	.rwt-account .mp-form-row.mepr_first_name {
		margin-right: 18px;
	}

	/* Float containment — without it the form collapses around the floated pair
	   and the submit button rides up alongside them. */
	.rwt-account .mepr-account-form::after {
		content: "";
		display: table;
		clear: both;
	}
}

/* MemberPress prints "Welcome to <site name>" above the fields. Our h1 already
   greets the member by name, so it reads as a duplicate. */
.rwt-account .mepr-account-welcome,
.rwt-account .mepr_account_welcome {
	display: none;
}

/* Required-field asterisks inherit MemberPress red; soften to the body colour so
   the form doesn't look like it is in an error state on first load. */
.rwt-account .mepr-field-required-asterisk,
.rwt-account .mp-form-label .mepr-required {
	color: var( --e-global-color-c2248c7, #887D78 );
}

/* MemberPress checks `!empty($welcome_message)` BEFORE running its own
   `mepr_account_welcome_message` filter, so emptying the string leaves an empty
   wrapper behind. The wrapper has a stable id, so hide that too — the filter
   removes the text, this removes the gap it leaves. */
.rwt-account #mepr-account-welcome-message {
	display: none;
}

/* ------------------------------------------------------------------
   Batch fixes, 2026-07-30                                            */

/* MemberPress's "Change Password" link (and anything else it prints inside the
   account form) picks up Elementor's underlined anchor style at (0,1,1).
   Scoped to (0,2,0) to clear it. Underline returns on hover so the affordance
   is not lost entirely. */
/* MemberPress puts "Change Password" in span.mepr-account-change-password inside
   .mp_wrapper — OUTSIDE the form element, which is why scoping to the form alone
   missed it. Cover both wrappers. */
.rwt-account .mepr-account-form a,
.rwt-account .mepr-account-content a,
.rwt-account .mepr-account-change-password a,
.rwt-account .mp_wrapper a {
	text-decoration: none;
}

.rwt-account .mepr-account-form a:hover,
.rwt-account .mepr-account-form a:focus-visible,
.rwt-account .mepr-account-content a:hover,
.rwt-account .mepr-account-change-password a:hover,
.rwt-account .mepr-account-change-password a:focus-visible,
.rwt-account .mp_wrapper a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* The saved-recipe image. Recipes store theirs in _rwt_hero_image rather than
   the featured image, so the card renders wp_get_attachment_image() directly. */
.rwt-account .rwt-account__card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Float the save control over the image instead of leaving it in normal flow,
   where it sat flush against the media edge. Inset matches the recipe cards on
   the archive so the two card styles stay consistent.

   Placed top-RIGHT to match Figma 1437-4702 — flip `right` to `left` if you
   want it on the other side. */
.rwt-account .rwt-account__card-media {
	display: block;
}

.rwt-account .rwt-account__card-media .rwt-save.rwt-save--icon {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 32px;
	height: 32px;
	background: var( --e-global-color-secondary, #FFFBF8 );
	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.14 );
}

.rwt-account .rwt-account__card-media .rwt-save.rwt-save--icon:hover,
.rwt-account .rwt-account__card-media .rwt-save.rwt-save--icon:focus-visible {
	background: var( --e-global-color-primary, #BC5F50 );
	color: var( --e-global-color-d3c7489, #FFFFFF );
}

/* Phone field. MemberPress renders `tel` custom fields through intl-tel-input,
   which wraps the input in `div.iti` — an inline-block sized to its own default,
   not the form. Widening the input alone does nothing (verified by injection:
   width:100% !important on the input left it at 274px); the wrapper is what
   needs the width.

   The country-dropdown variant also insets the input on the left to make room
   for the dial code, so padding-left is left to the plugin. */
.rwt-account .mp-form-row .iti {
	display: block;
	width: 100%;
}

.rwt-account .mp-form-row .iti input[type="tel"] {
	width: 100%;
}

/* ------------------------------------------------------------------
   Email preferences                                                  */

.rwt-prefs {
	max-width: 640px;
}

.rwt-prefs__notice {
	margin: 0 0 22px;
	padding: 12px 16px;
	border-radius: 8px;
	background: var( --e-global-color-accent, #F5E9E2 );
	color: var( --e-global-color-primary, #BC5F50 );
	font-size: 15px;
}

/* Grid rather than flex so the help text aligns under the title instead of
   wrapping back beneath the checkbox. */
.rwt-prefs__row {
	display: grid;
	grid-template-columns: auto minmax( 0, 1fr );
	gap: 14px;
	align-items: start;
	padding: 20px 22px;
	background: var( --e-global-color-secondary, #FFFBF8 );
	border: 1px solid var( --e-global-color-ec00e88, #F0D5CF );
	border-radius: 12px;
	cursor: pointer;
}

.rwt-account .rwt-prefs__row input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var( --e-global-color-primary, #BC5F50 );
	cursor: pointer;
}

.rwt-prefs__text {
	display: block;
	min-width: 0;
}

.rwt-prefs__title {
	display: block;
	margin-bottom: 4px;
	color: var( --e-global-color-text, #3D322B );
	font-family: var( --e-global-typography-primary-font-family, "DM Sans" ), sans-serif;
	font-size: 16px;
	font-weight: 500;
}

.rwt-prefs__help {
	display: block;
	color: var( --e-global-color-c2248c7, #887D78 );
	font-size: 14px;
	line-height: 1.45;
}

/* The transactional-email caveat. Deliberately quiet — it is reassurance, not a
   warning, and should not compete with the control above it. */
.rwt-prefs__fineprint {
	margin: 16px 0 24px;
	color: var( --e-global-color-c2248c7, #887D78 );
	font-size: 13px;
	line-height: 1.5;
}

.rwt-account .rwt-prefs button[type="submit"] {
	border: 0;
	cursor: pointer;
}

@media ( max-width: 800px ) {

	.rwt-prefs__row {
		padding: 16px;
	}
}

/* ------------------------------------------------------------------
   Sidebar upgrade nudge — one tier up from the member's current plan
   (rwt_account_upgrade_offer in rwt-account-page.php). Rise Plus
   members see nothing here.                                          */

.rwt-account__upsell {
	margin: 28px 20px 0;
	padding: 22px 20px;
	background: var( --e-global-color-d3c7489, #FFFFFF );
	border: 1px solid var( --e-global-color-ec00e88, #F0D5CF );
	border-radius: 12px;
}

.rwt-account__upsell-eyebrow {
	margin: 0 0 8px;
	color: var( --e-global-color-c2248c7, #887D78 );
	font-family: var( --e-global-typography-accent-font-family, "DM Sans" ), sans-serif;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rwt-account .rwt-account__upsell-title {
	margin: 0 0 8px;
	color: var( --e-global-color-primary, #BC5F50 );
	font-family: var( --e-global-typography-2b41e17-font-family, "Fraunces" ), serif;
	font-size: 21px;
	line-height: 1.25;
	font-weight: 400;
}

.rwt-account .rwt-account__upsell-text {
	margin: 0 0 16px;
	color: var( --e-global-color-text, #3D322B );
	font-size: 14px;
	line-height: 1.5;
}

/* Scoped to (0,2,0): `.rwt-account a` and Elementor's `.elementor-kit-8 a`
   are both (0,1,1) and would repaint the button text terracotta. */
.rwt-account .rwt-account__upsell-cta {
	display: block;
	padding: 12px 16px;
	background: var( --e-global-color-primary, #BC5F50 );
	border-radius: 999px;
	color: var( --e-global-color-d3c7489, #FFFFFF );
	font-family: var( --e-global-typography-primary-font-family, "DM Sans" ), sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.rwt-account .rwt-account__upsell-cta:hover,
.rwt-account .rwt-account__upsell-cta:focus-visible {
	background: var( --e-global-color-f220437, #A14A3A );
	text-decoration: none;
}

@media ( max-width: 800px ) {

	/* The sidebar is a chip bar here; the card follows it above the content. */
	.rwt-account__upsell {
		margin: 4px 16px 18px;
	}
}

/* ------------------------------------------------------------------
   MemberPress popups (Change Plan / Cancel confirm), branded.

   The markup is MemberPress's own — .mepr-white-popup rendered inside a
   Magnific Popup — so only the look is ours. Vendor + kit button styles are
   aggressive, hence the body-prefixed selectors and the !importants on the
   buttons (the kit paints .mepr-btn blue with a pink focus ring otherwise). */

body .mfp-bg {
	background: var( --rwt-body, #3D322B );
	opacity: 0.55;
}

body .mepr-white-popup {
	max-width: 460px;
	margin: 0 auto;
	padding: 36px 32px 32px;
	background: var( --rwt-card, #FFFBF8 );
	border: 1px solid var( --rwt-line, #F0D5CF );
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba( 61, 50, 43, 0.28 );
	color: var( --rwt-body, #3D322B );
	position: relative;
}

/* The vendor markup spaces itself with <br>s; margins are steadier. */
body .mepr-white-popup br {
	display: none;
}

body .mepr-white-popup .mepr-upgrade-sub-text,
body .mepr-white-popup .mepr-cancel-sub-text {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	color: var( --rwt-body, #3D322B );
	margin-bottom: 20px;
}

body .mepr-white-popup .mepr-upgrade-dropdown {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	color: var( --rwt-body, #3D322B );
	background: #FFFFFF;
	border: 1px solid var( --rwt-line, #F0D5CF );
	border-radius: 10px;
	margin-bottom: 20px;
}

body .mepr-white-popup .mepr-upgrade-dropdown:focus {
	outline: none;
	border-color: var( --rwt-ink, #BC5F50 );
	box-shadow: 0 0 0 3px rgba( 188, 95, 80, 0.15 );
}

body .mepr-white-popup .mepr-cancel-sub-buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin-top: 4px;
}

body .mepr-white-popup .mepr-btn {
	background: var( --rwt-ink, #BC5F50 ) !important;
	border: 1px solid var( --rwt-ink, #BC5F50 ) !important;
	color: #FFFFFF !important;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	padding: 13px 26px;
	border-radius: 999px;
	cursor: pointer;
	margin: 0 !important; /* also kills the vendor .mepr-left-margin */
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

/* The walk-away choice (Cancel / No) is the outline pill, same pairing as the
   save-recipe button states. */
body .mepr-white-popup .mepr-upgrade-cancel,
body .mepr-white-popup .mepr-confirm-no {
	background: transparent !important;
	color: var( --rwt-ink, #BC5F50 ) !important;
}

body .mepr-white-popup .mepr-btn:hover {
	background: var( --e-global-color-03edebf, #C46A5A ) !important;
	border-color: var( --e-global-color-03edebf, #C46A5A ) !important;
	color: #FFFFFF !important;
}

@media ( max-width: 800px ) {

	body .mepr-white-popup {
		padding: 28px 20px 24px;
	}

	body .mepr-white-popup .mepr-cancel-sub-buttons {
		flex-wrap: wrap;
	}
}

/* ------------------------------------------------------------------
   Mobile current-tab colour — MUST stay last in this file.

   The desktop rule above (.rwt-account .rwt-account__nav-link.is-current
   .is-current) has identical specificity (0,4,0), so at equal weight the later
   rule wins on source order. A media query contributes nothing to specificity,
   so putting this earlier — even inside @media — lost, and the current chip
   rendered terracotta text on a terracotta fill: an invisible label.

   If you add rules below this, keep this block at the bottom.               */
@media ( max-width: 800px ) {

	.rwt-account .rwt-account__nav-link.is-current.is-current {
		color: var( --e-global-color-d3c7489, #FFFFFF );
	}
}
