/* ============================================================
   BloomBridge — My Account
   Dashboard + spacing corrections for the order detail view.
   ============================================================ */

:root {
	--bb-a-ink:    #2b2b2b;
	--bb-a-muted:  #6f6a63;
	--bb-a-line:   #e6e1d8;
	--bb-a-card:   #ffffff;
	--bb-a-cream:  #faf8f3;
	--bb-a-gold:   #c19b3c;
	--bb-a-blue:   #1a7fc9;
}

/* ---------- order detail page: kill the huge gaps ---------- */

.woocommerce-MyAccount-content section,
.woocommerce-MyAccount-content .woocommerce-order-details,
.woocommerce-MyAccount-content .woocommerce-customer-details,
.woocommerce-MyAccount-content .woocommerce-columns,
.woocommerce-MyAccount-content .bb-delivery-details {
	margin: 0 0 28px !important;
	padding: 0 !important;
}

.woocommerce-MyAccount-content .woocommerce-order-details__title,
.woocommerce-MyAccount-content .woocommerce-column__title,
.woocommerce-MyAccount-content .bb-delivery-details h2,
.woocommerce-MyAccount-content .bb-delivery-details h3 {
	margin: 0 0 12px !important;
	font-size: 20px;
	line-height: 1.3;
}

.woocommerce-MyAccount-content > p:empty,
.woocommerce-MyAccount-content section > p:empty,
.woocommerce-MyAccount-content br + br {
	display: none !important;
}

.woocommerce-MyAccount-content table.shop_table {
	margin: 0 0 8px !important;
}

.woocommerce-MyAccount-content address {
	margin: 0 !important;
}

/* ---------- dashboard ---------- */

.bb-dash {
	font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
	color: var(--bb-a-ink);
}

.bb-dash-card {
	background: var(--bb-a-card);
	border: 1px solid var(--bb-a-line);
	border-radius: 10px;
	padding: 22px 24px;
	margin-bottom: 20px;
}

.bb-dash-eyebrow {
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bb-a-gold);
	font-weight: 600;
	margin-bottom: 10px;
}

.bb-dash-h {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 19px;
	margin: 0 0 14px;
	color: var(--bb-a-ink);
}

/* next delivery hero */

.bb-dash-next {
	background: linear-gradient(180deg, #fffdf8 0%, #ffffff 100%);
	border-color: #e8dcc0;
}

.bb-dash-next__body {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

.bb-dash-next__img {
	width: 104px;
	height: 104px;
	object-fit: cover;
	border-radius: 8px;
	flex: 0 0 auto;
	border: 1px solid var(--bb-a-line);
}

.bb-dash-next__date {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 26px;
	line-height: 1.15;
	margin-bottom: 6px;
}

.bb-dash-next__arr {
	font-size: 15px;
	font-weight: 500;
	margin-bottom: 8px;
}

.bb-dash-next__meta {
	font-size: 14px;
	color: var(--bb-a-muted);
	line-height: 1.6;
}

.bb-dash-tag {
	display: inline-block;
	font-size: 11px;
	letter-spacing: .04em;
	text-transform: uppercase;
	background: #f3ecd9;
	color: #8a6d1f;
	border-radius: 3px;
	padding: 2px 7px;
	margin-left: 6px;
	vertical-align: 2px;
	font-weight: 600;
}

/* grid of secondary cards */

.bb-dash-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}

.bb-dash-grid .bb-dash-card { margin-bottom: 0; }

.bb-dash-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bb-dash-list li {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 9px 0;
	border-bottom: 1px solid #f1ede5;
	font-size: 14px;
}

.bb-dash-list li:last-child { border-bottom: 0; }

.bb-dash-list__date {
	color: var(--bb-a-muted);
	white-space: nowrap;
}

.bb-dash-list__name {
	text-align: right;
	font-weight: 500;
}

.bb-dash-more {
	margin-top: 10px;
	font-size: 13px;
	color: var(--bb-a-muted);
}

.bb-dash-memorials {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bb-dash-memorials li {
	padding: 11px 0;
	border-bottom: 1px solid #f1ede5;
}

.bb-dash-memorials li:last-child { border-bottom: 0; }

.bb-dash-memorials__name {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 17px;
}

.bb-dash-memorials__cem,
.bb-dash-memorials__count {
	font-size: 13px;
	color: var(--bb-a-muted);
	margin-top: 2px;
}

.bb-dash-sub__top {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 4px;
}

.bb-dash-sub__total {
	font-size: 18px;
	font-weight: 600;
}

.bb-dash-sub__total .woocommerce-Price-amount { font-weight: 600; }

.bb-dash-badge {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .05em;
	font-weight: 600;
	padding: 3px 8px;
	border-radius: 3px;
	background: #e8f4e8;
	color: #2f6b34;
}

.bb-dash-sub__next {
	font-size: 14px;
	color: var(--bb-a-muted);
	margin-bottom: 10px;
}

.bb-dash-sub__items {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
	font-size: 13.5px;
	color: var(--bb-a-muted);
}

.bb-dash-sub__items li { padding: 2px 0; }

.bb-dash-sub + .bb-dash-sub {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--bb-a-line);
}

.bb-dash-link {
	display: inline-block;
	margin-top: 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--bb-a-blue);
	text-decoration: none;
}

.bb-dash-link:hover { text-decoration: underline; }

/* footer actions */

.bb-dash-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 26px 0 16px;
}

.bb-dash-actions a {
	font-size: 13.5px;
	color: var(--bb-a-ink);
	text-decoration: none;
	border: 1px solid var(--bb-a-line);
	background: var(--bb-a-card);
	border-radius: 999px;
	padding: 8px 16px;
	transition: border-color .15s, background .15s;
}

.bb-dash-actions a:hover {
	border-color: var(--bb-a-gold);
	background: #fffdf8;
}

.bb-dash-help {
	font-size: 13.5px;
	color: var(--bb-a-muted);
}

.bb-dash-help a { color: var(--bb-a-blue); text-decoration: none; }
.bb-dash-help a:hover { text-decoration: underline; }

/* empty state */

.bb-dash-empty { text-align: center; padding: 40px 24px; }
.bb-dash-empty h3 {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 22px;
	margin: 0 0 10px;
}
.bb-dash-empty p {
	color: var(--bb-a-muted);
	max-width: 420px;
	margin: 0 auto 20px;
	font-size: 14.5px;
}

.bb-dash-btn {
	display: inline-block;
	background: var(--bb-a-gold);
	color: #fff !important;
	text-decoration: none;
	font-weight: 600;
	padding: 12px 28px;
	border-radius: 4px;
}

@media (max-width: 600px) {
	.bb-dash-next__body { flex-direction: column; }
	.bb-dash-next__img { width: 100%; height: 180px; }
	.bb-dash-list li { flex-direction: column; gap: 2px; }
	.bb-dash-list__name { text-align: left; }
}

/* ---------- order line items: product link + "Card Message" meta ---------- */

.woocommerce-MyAccount-content table.shop_table td.woocommerce-table__product-name a,
.woocommerce-MyAccount-content table.shop_table td.product-name a {
	color: var(--bb-a-ink);
	text-decoration: none;
	font-weight: 600;
}

.woocommerce-MyAccount-content table.shop_table td a:hover {
	color: var(--bb-a-gold);
}

/* WC renders item meta as a <dl> — the default float/clear makes the label
   wrap into a narrow column. Lay it out as label-then-value on one line. */
.woocommerce-MyAccount-content .wc-item-meta {
	display: block;
	margin: 6px 0 0;
	padding: 0;
	font-size: 13.5px;
	line-height: 1.5;
	list-style: none;
}

.woocommerce-MyAccount-content .wc-item-meta li {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 2px;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-content .wc-item-meta li::before { content: none; }

.woocommerce-MyAccount-content .wc-item-meta-label,
.woocommerce-MyAccount-content .wc-item-meta dt {
	float: none !important;
	clear: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	font-weight: 500;
	color: var(--bb-a-muted);
	white-space: nowrap;
}

.woocommerce-MyAccount-content .wc-item-meta dd,
.woocommerce-MyAccount-content .wc-item-meta li > p {
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--bb-a-ink);
}

.woocommerce-MyAccount-content .wc-item-meta p:last-child { margin-bottom: 0 !important; }

/* ---------- hardening against theme defaults ----------
   BeTheme stretches content images to 100% and paints its own ul bullets via
   li:before, both at higher specificity than plain class selectors. */

.bb-dash img.bb-dash-next__img {
	width: 104px !important;
	height: 104px !important;
	max-width: 104px !important;
	object-fit: cover;
	display: block;
}

.bb-dash ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.bb-dash ul li {
	list-style: none !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
	background: none !important;
}

.bb-dash ul li:before,
.bb-dash ul li:after {
	content: none !important;
	display: none !important;
}

.bb-dash h3.bb-dash-h {
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 19px !important;
	line-height: 1.3 !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.bb-dash p { margin: 0; }

/* restore the flex rows the generic li reset above would flatten */
.bb-dash .bb-dash-list li {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 9px 0 !important;
	border-bottom: 1px solid #f1ede5;
}
.bb-dash .bb-dash-list li:last-child { border-bottom: 0; }
.bb-dash .bb-dash-memorials li { padding: 11px 0 !important; border-bottom: 1px solid #f1ede5; }
.bb-dash .bb-dash-memorials li:last-child { border-bottom: 0; }
.bb-dash .bb-dash-sub__items li { padding: 2px 0 !important; }

@media (max-width: 600px) {
	.bb-dash img.bb-dash-next__img {
		width: 100% !important;
		max-width: 100% !important;
		height: 180px !important;
	}
	.bb-dash .bb-dash-list li { flex-direction: column; gap: 2px; }
}

/* ---------- orders, grouped by purchase ---------- */

.bb-ordgrp { padding: 0; overflow: hidden; }

.bb-ordgrp__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 18px;
	padding: 18px 22px;
	background: #fbf9f4;
	border-bottom: 1px solid var(--bb-a-line);
}

.bb-ordgrp__plan {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 19px;
	line-height: 1.25;
	margin-bottom: 3px;
}

.bb-ordgrp__meta {
	font-size: 13px;
	color: var(--bb-a-muted);
	line-height: 1.6;
}

.bb-ordgrp__meta a { color: var(--bb-a-blue); text-decoration: none; }
.bb-ordgrp__meta a:hover { text-decoration: underline; }

.bb-ordgrp__total {
	text-align: right;
	font-size: 17px;
	font-weight: 600;
	white-space: nowrap;
}

.bb-ordgrp__total span {
	display: block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bb-a-muted);
	margin-top: 2px;
}

.bb-ordgrp__table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 !important;
	font-size: 14px;
}

.bb-ordgrp__table th {
	text-align: left;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bb-a-muted);
	font-weight: 600;
	padding: 10px 22px;
	border-bottom: 1px solid var(--bb-a-line);
	background: #fff;
}

.bb-ordgrp__table td {
	padding: 13px 22px;
	border-bottom: 1px solid #f2eee6;
	vertical-align: middle;
}

.bb-ordgrp__table tr:last-child td { border-bottom: 0; }

.bb-ordgrp__table tr.is-past td { color: var(--bb-a-muted); }

.bb-ordgrp__num {
	display: inline-block;
	min-width: 20px;
	height: 20px;
	line-height: 20px;
	text-align: center;
	border-radius: 50%;
	background: #f0ead9;
	color: #8a6d1f;
	font-size: 11px;
	font-weight: 700;
	margin-right: 9px;
}

.bb-ordgrp__act { text-align: right; }

.bb-ordgrp__act a {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	color: var(--bb-a-ink);
	text-decoration: none;
	border: 1px solid var(--bb-a-line);
	border-radius: 999px;
	padding: 6px 16px;
}

.bb-ordgrp__act a:hover {
	border-color: var(--bb-a-gold);
	background: #fffdf8;
	color: var(--bb-a-ink);
}

.bb-ordgrp__foot {
	padding: 13px 22px;
	font-size: 12.5px;
	color: var(--bb-a-muted);
	background: #fbf9f4;
	border-top: 1px solid var(--bb-a-line);
}

.bb-ordgrp__foot a { color: var(--bb-a-blue); text-decoration: none; font-weight: 600; }

/* stacked cards on narrow screens */
@media (max-width: 720px) {
	.bb-ordgrp__head { flex-direction: column; gap: 8px; }
	.bb-ordgrp__total { text-align: left; }
	.bb-ordgrp__table thead { display: none; }
	.bb-ordgrp__table, .bb-ordgrp__table tbody, .bb-ordgrp__table tr, .bb-ordgrp__table td { display: block; width: 100%; }
	.bb-ordgrp__table tr { padding: 12px 0; border-bottom: 1px solid #f2eee6; }
	.bb-ordgrp__table td { padding: 3px 22px !important; border: 0; }
	.bb-ordgrp__table td[data-label]:before {
		content: attr(data-label) ': ';
		font-size: 11px;
		letter-spacing: .06em;
		text-transform: uppercase;
		color: var(--bb-a-muted);
		margin-right: 6px;
	}
	.bb-ordgrp__act { text-align: left; padding-top: 8px !important; }
}

/* The total is a fixed-width flex item — without this it shrinks below its
   content and the amount wraps one character per line. */
.bb-ordgrp__head .bb-ordgrp__total {
	flex: 0 0 auto;
	min-width: max-content;
	white-space: nowrap;
}

.bb-ordgrp__total .woocommerce-Price-amount,
.bb-ordgrp__total bdi {
	white-space: nowrap;
	display: inline;
}

.bb-ordgrp__head > div:first-child { min-width: 0; flex: 1 1 auto; }

/* ---------- delivery rows: stacked, not two squeezed columns ----------
   Same-date deliveries across different plans are indistinguishable without
   the person and the plan, and a right-aligned second column wraps one word
   per line inside a narrow card. */

.bb-dash .bb-dash-list li {
	display: block !important;
	padding: 12px 0 !important;
}

.bb-dash-list__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 3px;
}

.bb-dash-list__date {
	color: var(--bb-a-muted);
	font-size: 13px;
	white-space: nowrap;
}

.bb-dash-list__ord {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--bb-a-muted);
	text-decoration: none;
	white-space: nowrap;
	border: 1px solid var(--bb-a-line);
	border-radius: 999px;
	padding: 2px 9px;
	flex: 0 0 auto;
}

.bb-dash-list__ord:hover {
	border-color: var(--bb-a-gold);
	color: var(--bb-a-ink);
}

.bb-dash-list .bb-dash-list__name {
	display: block;
	text-align: left !important;
	font-weight: 500;
	font-size: 14.5px;
	line-height: 1.4;
}

.bb-dash-list__for {
	font-size: 13px;
	color: var(--bb-a-muted);
	margin-top: 2px;
}

.bb-dash-list__name .bb-dash-tag { margin-left: 0; margin-top: 4px; }

/* ============================================================
   Wide layout — full-width cards instead of a 50/50 grid, with
   arrangement thumbnails on every delivery row.
   ============================================================ */

.bb-dash-grid {
	display: block;
}

.bb-dash-grid .bb-dash-card {
	margin-bottom: 20px;
}

/* hero reads better with a larger image now that it has the full width */
.bb-dash img.bb-dash-next__img {
	width: 150px !important;
	height: 150px !important;
	max-width: 150px !important;
}

.bb-dash-next__date { font-size: 30px; }

/* ---------- delivery rows with thumbnails ---------- */

.bb-dash .bb-dash-list li {
	display: flex !important;
	align-items: flex-start;
	gap: 14px;
	padding: 14px 0 !important;
}

.bb-dash-list__thumbs {
	flex: 0 0 auto;
	display: flex;
	gap: 4px;
}

.bb-dash-list__thumbs img {
	width: 54px !important;
	height: 54px !important;
	max-width: 54px !important;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid var(--bb-a-line);
	display: block;
}

.bb-dash-list__body {
	flex: 1 1 auto;
	min-width: 0;
}

.bb-dash-list__top { margin-bottom: 2px; }

/* ---------- memorial cards ---------- */

.bb-dash .bb-dash-memorials li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 18px 0 !important;
}

.bb-dash-memorials__img {
	width: 84px !important;
	height: 84px !important;
	max-width: 84px !important;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--bb-a-line);
	flex: 0 0 auto;
	display: block;
}

.bb-dash-memorials__body { flex: 1 1 auto; min-width: 0; }

.bb-dash-memorials__name {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 20px;
	line-height: 1.2;
}

.bb-dash-memorials__dates {
	font-size: 13px;
	color: var(--bb-a-muted);
	font-style: italic;
	margin: 2px 0 6px;
}

.bb-dash-memorials__cem {
	font-size: 14px;
	font-weight: 500;
	color: var(--bb-a-ink);
	margin-top: 0;
}

.bb-dash-memorials__addr {
	font-size: 13px;
	color: var(--bb-a-muted);
	margin-top: 1px;
}

.bb-dash-memorials__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.bb-dash-memorials__stats span {
	font-size: 12px;
	color: var(--bb-a-muted);
	background: #f7f4ec;
	border-radius: 999px;
	padding: 4px 11px;
}

.bb-dash-memorials__stats strong { color: var(--bb-a-ink); font-weight: 700; }

.bb-dash-memorials__plan {
	background: #f3ecd9 !important;
	color: #8a6d1f !important;
	font-weight: 600;
}

.bb-dash-memorials__next {
	font-size: 13px;
	color: var(--bb-a-muted);
	margin-top: 9px;
	padding-top: 9px;
	border-top: 1px dashed #eae4d7;
}

.bb-dash-memorials__next strong { color: var(--bb-a-ink); }

@media (max-width: 600px) {
	.bb-dash .bb-dash-memorials li { flex-direction: column; gap: 10px; }
	.bb-dash-list__thumbs img { width: 44px !important; height: 44px !important; max-width: 44px !important; }
}

/* ---------- orders table: keep dates on one line, stop the overflow ----------
   The table was sizing past its card, pushing Status/Actions out of view. Give
   the arrangement column the slack and pin everything else to its content. */

.bb-ordgrp { overflow-x: auto; }

.bb-ordgrp__table { table-layout: auto; width: 100%; }

.bb-ordgrp__table th,
.bb-ordgrp__table td { padding-left: 16px; padding-right: 16px; }

.bb-ordgrp__table th:first-child,
.bb-ordgrp__table td:first-child { padding-left: 22px; }

.bb-ordgrp__table th:last-child,
.bb-ordgrp__table td:last-child { padding-right: 22px; }

/* delivery date — never break */
.bb-ordgrp__table td:first-child,
.bb-ordgrp__table th:first-child {
	white-space: nowrap;
	width: 1%;
}

/* status + action columns hug their content */
.bb-ordgrp__table td:nth-child(3),
.bb-ordgrp__table th:nth-child(3),
.bb-ordgrp__table td:nth-child(4),
.bb-ordgrp__table th:nth-child(4) {
	white-space: nowrap;
	width: 1%;
}

/* arrangement column absorbs the remaining width and wraps if it must */
.bb-ordgrp__table td:nth-child(2),
.bb-ordgrp__table th:nth-child(2) {
	width: auto;
	white-space: normal;
}

.bb-ordgrp__table td:nth-child(2) .bb-dash-tag {
	white-space: nowrap;
	vertical-align: middle;
}

@media (max-width: 720px) {
	.bb-ordgrp { overflow-x: visible; }
	.bb-ordgrp__table td:first-child,
	.bb-ordgrp__table td:nth-child(3),
	.bb-ordgrp__table td:nth-child(4) { width: auto; }
}

/* ============================================================
   Account forms — details, addresses, login.
   These render raw WooCommerce markup: 1px black inputs, a bare
   <fieldset> whose <legend> overlaps its own border, and the theme's
   default blue submit.
   ============================================================ */

.woocommerce-MyAccount-content form,
.woocommerce-MyAccount-content .woocommerce-form {
	font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
	color: var(--bb-a-ink);
}

/* ---------- labels ---------- */

.woocommerce-MyAccount-content label,
.woocommerce-MyAccount-content .woocommerce-form-row label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--bb-a-ink);
	margin: 0 0 6px;
	line-height: 1.4;
}

.woocommerce-MyAccount-content label .required {
	color: #b3261e;
	text-decoration: none;
	border: 0;
}

/* WooCommerce puts the hint inline in the label text — de-emphasise it */
.woocommerce-MyAccount-content label em,
.woocommerce-MyAccount-content span.description {
	font-style: normal;
	font-weight: 400;
	color: var(--bb-a-muted);
	font-size: 12.5px;
}

/* ---------- inputs ---------- */

.woocommerce-MyAccount-content input[type="text"],
.woocommerce-MyAccount-content input[type="email"],
.woocommerce-MyAccount-content input[type="tel"],
.woocommerce-MyAccount-content input[type="password"],
.woocommerce-MyAccount-content input[type="number"],
.woocommerce-MyAccount-content select,
.woocommerce-MyAccount-content textarea,
.woocommerce-MyAccount-content .select2-selection {
	width: 100%;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid var(--bb-a-line) !important;
	border-radius: 6px !important;
	padding: 11px 13px !important;
	font-size: 15px;
	line-height: 1.4;
	color: var(--bb-a-ink);
	box-shadow: none !important;
	transition: border-color .15s, box-shadow .15s;
	height: auto !important;
}

.woocommerce-MyAccount-content input:focus,
.woocommerce-MyAccount-content select:focus,
.woocommerce-MyAccount-content textarea:focus {
	outline: none;
	border-color: var(--bb-a-gold) !important;
	box-shadow: 0 0 0 3px rgba(193, 155, 60, .15) !important;
}

.woocommerce-MyAccount-content input::placeholder { color: #b3ada2; }

.woocommerce-MyAccount-content input[disabled],
.woocommerce-MyAccount-content input[readonly] {
	background: #f7f5f0;
	color: var(--bb-a-muted);
}

/* ---------- rows ---------- */

.woocommerce-MyAccount-content .woocommerce-form-row,
.woocommerce-MyAccount-content p.form-row {
	margin: 0 0 18px;
	padding: 0;
}

.woocommerce-MyAccount-content .form-row-first,
.woocommerce-MyAccount-content .form-row-last {
	float: none;
	width: 100%;
}

@media (min-width: 560px) {
	.woocommerce-MyAccount-content .woocommerce-EditAccountForm > p.form-row-first,
	.woocommerce-MyAccount-content .woocommerce-address-fields p.form-row-first,
	.woocommerce-MyAccount-content .woocommerce-EditAccountForm > p.form-row-last,
	.woocommerce-MyAccount-content .woocommerce-address-fields p.form-row-last {
		width: calc(50% - 9px);
		display: inline-block;
		vertical-align: top;
	}
	.woocommerce-MyAccount-content .woocommerce-EditAccountForm > p.form-row-first,
	.woocommerce-MyAccount-content .woocommerce-address-fields p.form-row-first {
		margin-right: 14px;
	}
}

/* ---------- password fieldset as a card ---------- */

.woocommerce-MyAccount-content fieldset {
	border: 1px solid var(--bb-a-line);
	border-radius: 8px;
	background: #fbf9f4;
	padding: 20px 22px 4px !important;
	margin: 26px 0 22px !important;
}

.woocommerce-MyAccount-content fieldset legend {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 17px;
	font-weight: 400;
	color: var(--bb-a-ink);
	padding: 0 10px;
	margin-left: -10px;
	background: transparent;
	width: auto;
	border: 0;
}

.woocommerce-MyAccount-content fieldset input { background: #fff; }

/* ---------- show/hide password toggle ---------- */

.woocommerce-MyAccount-content .woocommerce-password-hint { color: var(--bb-a-muted); font-size: 12.5px; }

.woocommerce-MyAccount-content .password-input {
	display: block;
	position: relative;
}

.woocommerce-MyAccount-content .show-password-input {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	opacity: .45;
	cursor: pointer;
}

.woocommerce-MyAccount-content .show-password-input:hover { opacity: .85; }

.woocommerce-MyAccount-content .password-input input { padding-right: 42px !important; }

/* strength meter */
.woocommerce-MyAccount-content .woocommerce-password-strength {
	border-radius: 5px;
	font-size: 12.5px;
	padding: 7px 11px;
	margin-top: 8px;
	border: 0;
}

/* ---------- submit ---------- */

.woocommerce-MyAccount-content button[type="submit"],
.woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-MyAccount-content input[type="submit"] {
	background: var(--bb-a-gold) !important;
	border: 0 !important;
	color: #fff !important;
	font-family: 'DM Sans', system-ui, sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .01em;
	border-radius: 6px !important;
	padding: 13px 30px !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background .15s;
	width: auto;
	margin-top: 6px;
}

.woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-MyAccount-content input[type="submit"]:hover {
	background: #a9862f !important;
}

/* ---------- notices ---------- */

.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-MyAccount-content .woocommerce-info {
	border-radius: 7px;
	border: 1px solid var(--bb-a-line);
	border-left-width: 3px;
	background: #fbf9f4;
	padding: 13px 16px !important;
	margin: 0 0 20px !important;
	font-size: 14px;
	list-style: none;
}

.woocommerce-MyAccount-content .woocommerce-message { border-left-color: #4a7c4e; }
.woocommerce-MyAccount-content .woocommerce-error   { border-left-color: #b3261e; }
.woocommerce-MyAccount-content .woocommerce-info    { border-left-color: var(--bb-a-gold); }

.woocommerce-MyAccount-content .woocommerce-message:before,
.woocommerce-MyAccount-content .woocommerce-error:before,
.woocommerce-MyAccount-content .woocommerce-info:before { content: none; }

/* ---------- address blocks ---------- */

.woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; gap: 20px; }

@media (min-width: 700px) {
	.woocommerce-MyAccount-content .woocommerce-Addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-MyAccount-content .woocommerce-Address {
	border: 1px solid var(--bb-a-line);
	border-radius: 10px;
	padding: 20px 22px;
	background: #fff;
	width: auto !important;
	float: none !important;
}

.woocommerce-MyAccount-content .woocommerce-Address-title h2,
.woocommerce-MyAccount-content .woocommerce-Address-title h3 {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 18px;
	margin: 0 0 10px !important;
}

.woocommerce-MyAccount-content .woocommerce-Address-title .edit {
	font-size: 13px;
	font-weight: 600;
	color: var(--bb-a-blue);
	text-decoration: none;
}

/* ---------- order-card total ----------
   `.bb-ordgrp__total span { display:block }` was also matching WooCommerce's
   currency-symbol span inside wc_price(), which broke "$0.00 paid" onto three
   lines. Only the label is a block; the price stays inline. */

.bb-ordgrp__total .woocommerce-Price-amount,
.bb-ordgrp__total .woocommerce-Price-currencySymbol,
.bb-ordgrp__total bdi {
	display: inline !important;
	white-space: nowrap;
}

.bb-ordgrp__total span.bb-ordgrp__paid {
	display: block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bb-a-muted);
	margin-top: 2px;
}

/* ---------- which subscription this order belongs to ---------- */

.bb-ordgrp__sub {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 9px;
	font-size: 13px;
}

.bb-ordgrp__sub > a {
	font-weight: 600;
	color: var(--bb-a-blue);
	text-decoration: none;
}

.bb-ordgrp__sub > a:hover { text-decoration: underline; }

.bb-ordgrp__subbadge {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 3px 9px;
	border-radius: 3px;
	background: #e8f4e8;
	color: #2f6b34;
}

.bb-ordgrp__subbadge.is-none {
	background: #f2efe8;
	color: var(--bb-a-muted);
}

.bb-ordgrp__subnext { color: var(--bb-a-muted); }

/* ============================================================
   Signed-out /my-account/ — the login view.
   Rendered outside .woocommerce-MyAccount-content, so none of the
   account styling above reaches it. WooCommerce's own form.login
   rules also outrank the shell's, hence the !important centring.
   ============================================================ */

.woocommerce > h2,
.woocommerce-page > h2 {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 24px;
	font-weight: 400;
	text-align: center;
	margin: 0 auto 20px;
	color: var(--bb-a-ink);
}

.woocommerce form.woocommerce-form-login,
.woocommerce-page form.woocommerce-form-login,
form.woocommerce-form-login {
	max-width: 440px !important;
	margin: 0 auto !important;
	float: none !important;
	background: #fff;
	border: 1px solid var(--bb-a-line);
	border-radius: 14px;
	padding: 34px 36px !important;
	box-shadow: 0 6px 22px rgba(46, 74, 122, .07);
}

.woocommerce-form-login .form-row { margin: 0 0 18px; padding: 0; }

.woocommerce-form-login label {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bb-a-ink);
	margin: 0 0 6px;
}

.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="email"],
.woocommerce-form-login input[type="password"] {
	width: 100%;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid var(--bb-a-line) !important;
	border-radius: 8px !important;
	padding: 12px 14px !important;
	font-size: 15px;
	margin: 0 !important;
	color: var(--bb-a-ink);
	transition: border-color .15s, box-shadow .15s;
}

.woocommerce-form-login input:focus {
	outline: none;
	border-color: var(--bb-a-gold) !important;
	box-shadow: 0 0 0 3px rgba(193, 155, 60, .16) !important;
}

/* show/hide password eye */
.woocommerce-form-login .password-input { position: relative; display: block; }
.woocommerce-form-login .show-password-input {
	position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
	opacity: .45; cursor: pointer;
}
.woocommerce-form-login .show-password-input:hover { opacity: .85; }
.woocommerce-form-login .password-input input { padding-right: 42px !important; }

/* remember me */
.woocommerce-form-login .woocommerce-form-login__rememberme {
	display: flex; align-items: center; gap: 8px;
	font-size: 14px; font-weight: 400;
	color: var(--bb-a-muted);
	margin: 0 0 18px;
}
.woocommerce-form-login .woocommerce-form-login__rememberme input { margin: 0; }

/* submit */
.woocommerce-form-login button[type="submit"],
.woocommerce-form-login .woocommerce-form-login__submit {
	width: 100%;
	background: var(--bb-a-gold) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	padding: 14px 24px !important;
	font-size: 15.5px !important;
	font-weight: 600 !important;
	cursor: pointer;
	transition: background .15s;
}
.woocommerce-form-login button[type="submit"]:hover { background: #a9862f !important; }

/* lost password */
.woocommerce-LostPassword {
	text-align: center;
	margin: 16px 0 0 !important;
	font-size: 13.5px;
}
.woocommerce-LostPassword a {
	color: var(--bb-a-muted) !important;
	text-decoration: none !important;
	font-weight: 500;
}
.woocommerce-LostPassword a:hover {
	color: var(--bb-a-gold) !important;
	text-decoration: underline !important;
}

/* notices on the signed-out view */
.woocommerce > .woocommerce-error,
.woocommerce > .woocommerce-message,
.woocommerce > .woocommerce-info {
	max-width: 440px;
	margin: 0 auto 20px !important;
}

/* Admin account-menu styling lives in static-site/styles.css — the nav is
   site-wide, but this stylesheet only loads on account pages. */


/* The shell lays the account area out as `grid-template-columns: 240px 1fr`
   for nav + content. Signed out there is no nav, so the heading and the login
   form land in those two columns and sit off to one side. Span the whole grid
   so `margin: 0 auto` can actually centre them. */
.account-wrap .woocommerce > h2,
.account-wrap .woocommerce > form.woocommerce-form-login,
.account-wrap .woocommerce > .woocommerce-notices-wrapper,
.account-wrap .woocommerce > .woocommerce-error,
.account-wrap .woocommerce > .woocommerce-message,
.account-wrap .woocommerce > .woocommerce-info,
.account-wrap .woocommerce > .woocommerce-form-login,
/* Same on the WordPress-rendered account page (Grave Flowers /findagrave/my-account/ has no .account-wrap). */
body.woocommerce-account:not(.logged-in) .woocommerce > h2,
body.woocommerce-account:not(.logged-in) .woocommerce > form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in) .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
	justify-self: center;
	width: 100%;
}
body.woocommerce-account:not(.logged-in) .woocommerce > h2 { text-align: center; }
body.woocommerce-account:not(.logged-in) .woocommerce > form.woocommerce-form-login { max-width: 460px !important; }

.account-wrap .woocommerce > form.woocommerce-form-login {
	max-width: 460px !important;
}

/* labels were wrapping in the narrow column — give them room to sit on one line */
.woocommerce-form-login label { white-space: normal; line-height: 1.4; }
