/* ============================================================================
   Slide Off Customer Portal — front-end styles (portal.css) 1.0.0

   Scope: body.socp-portal (the My Account page, logged in or out, and the guest
   proof-upload route). The cart / checkout pages only use the .socp-cart-notice
   and .socp-notice rules, which are deliberately left unscoped.

   Tokens come from the site's Customizer CSS (--so-*) with fallbacks, so the portal
   still looks right if that stylesheet is ever renamed. Fonts (Big Shoulders Display,
   Archivo, IBM Plex Mono) are loaded by the site. Headings are uppercase Big Shoulders,
   labels / eyebrows / chips are Archivo caps, numbers and part numbers are Plex Mono,
   primary buttons are yellow with near-black text.
   ============================================================================ */

/* ---------- 0. tokens ---------- */
body.socp-portal,
.socp-cart-notice,
.socp-notice,
.socp-login-intro,
.socp-chip {
	--socp-char: var(--so-char, #15181B);
	--socp-char-deep: var(--so-char-deep, #0B0E11);
	--socp-yellow: var(--so-yellow, #E9B308);
	--socp-yellow-bright: var(--so-yellow-bright, #F5C118);
	--socp-yellow-deep: var(--so-yellow-deep, #9C7300);
	--socp-yellow-ink: var(--so-yellow-ink, #5E4500);
	--socp-yellow-tint: var(--so-yellow-tint, #FBF1CF);
	--socp-yellow-soft: var(--so-yellow-soft, #EDD588);
	--socp-slab: var(--so-slab, #EEEFEF);
	--socp-ink: var(--so-ink, #23272B);
	--socp-muted: var(--so-muted, #5C6267);
	--socp-line: var(--so-line, #D6D9DA);
	--socp-line-strong: var(--so-line-strong, #B6BBBE);
	--socp-r: var(--so-r, 2px);
	--socp-shadow: var(--so-shadow, 0 18px 40px -24px rgba(11, 14, 17, .5));
	--socp-display: var(--so-display, "Big Shoulders Display", "Arial Narrow", Impact, "Helvetica Neue", sans-serif);
	--socp-body: var(--so-body, "Archivo", "Helvetica Neue", Arial, sans-serif);
	--socp-caps: var(--so-body, "Archivo", "Helvetica Neue", Arial, sans-serif);
	--socp-mono: var(--so-mono, "IBM Plex Mono", Menlo, Consolas, monospace);
	--socp-ok: #1E5A32;
	--socp-ok-bg: #E4F1E7;
	--socp-ok-line: #BFDCC6;
	--socp-amber: #C97A12;
	--socp-amber-bg: #FDEBD3;
	--socp-amber-soft: #FEF5EA;
	--socp-amber-ink: #7A3E00;
	--socp-amber-line: #F0C99A;
	--socp-danger: #8A1C1C;
	--socp-danger-bg: #FDECEC;
	--socp-danger-line: #F2C4C4;
	--socp-focus: rgba(233, 179, 8, .55);
}

/* ---------- 1. page hero (page-12 Custom HTML block, see SPEC §10.4) ---------- */
.so-pagehero--portal {
	padding: 44px 0 40px !important;
}

/* ---------- 2. account area type ---------- */
body.socp-portal .woocommerce-MyAccount-content {
	min-width: 0;
	font-family: var(--socp-body);
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--socp-ink);
}

body.socp-portal .woocommerce-MyAccount-content h2,
body.socp-portal .woocommerce-MyAccount-content h3,
body.socp-portal .woocommerce-MyAccount-content legend {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: .01em;
	color: var(--socp-char);
}

body.socp-portal .woocommerce-MyAccount-content h2 {
	font-size: 28px;
	margin: 0 0 14px;
}

body.socp-portal .woocommerce-MyAccount-content h3,
body.socp-portal .woocommerce-MyAccount-content legend {
	font-size: 22px;
	margin: 0 0 10px;
}

body.socp-portal .woocommerce-MyAccount-content p {
	margin: 0 0 14px;
}

body.socp-portal .woocommerce-MyAccount-content fieldset {
	border: 1px solid var(--socp-line);
	padding: 18px 20px 6px;
	margin: 0 0 22px;
}

body.socp-portal .woocommerce-MyAccount-content mark {
	background: var(--socp-yellow-tint);
	color: var(--socp-char);
	padding: 0 4px;
}

/* ---------- 3. navigation card ---------- */
body.socp-portal .woocommerce-MyAccount-navigation {
	align-self: start;
	background: #fff;
	border: 1px solid var(--socp-line-strong);
	border-top: 3px solid var(--socp-yellow);
	border-radius: 0;
	padding: 14px 0 10px;
	margin: 0;
}

body.socp-portal .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.socp-portal .woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

body.socp-portal .woocommerce-MyAccount-navigation li::before,
body.socp-portal .woocommerce-MyAccount-navigation li::after {
	display: none;
}

body.socp-portal .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 22px 11px;
	border-left: 3px solid transparent;
	font-family: var(--socp-caps);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--socp-char) !important;
	text-decoration: none !important;
	background: transparent;
	transition: background .15s, border-color .15s;
}

body.socp-portal .woocommerce-MyAccount-navigation li a:hover,
body.socp-portal .woocommerce-MyAccount-navigation li a:focus-visible {
	background: var(--socp-slab);
	color: var(--socp-char-deep) !important;
}

body.socp-portal .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--socp-yellow-tint);
	border-left-color: var(--socp-yellow);
	color: var(--socp-char-deep) !important;
}

body.socp-portal .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 8px;
	border-top: 1px solid var(--socp-line);
	padding-top: 4px;
}

body.socp-portal .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--socp-muted) !important;
}

/* Blocksy's avatar block above the list: kept, recoloured */
body.socp-portal .woocommerce-account-gravatar {
	padding: 6px 22px 16px;
	margin: 0 0 8px;
	border-bottom: 1px solid var(--socp-line);
	text-align: center;
	font-family: var(--socp-body);
}

body.socp-portal .woocommerce-account-gravatar img {
	max-width: 96px;
	height: auto;
	border-radius: 50%;
	border: 3px solid var(--socp-yellow-tint);
}

body.socp-portal .woocommerce-account-gravatar__display-name {
	display: block;
	margin-top: 8px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 22px;
	line-height: 1.2;
	color: var(--socp-char);
}

body.socp-portal .woocommerce-account-gravatar a {
	font-size: 12.5px;
	color: var(--socp-muted) !important;
}

/* ---------- 4. layout primitives ---------- */
body.socp-portal .socp-section {
	display: block;
	margin: 0 0 32px;
}

body.socp-portal .socp-section:last-child {
	margin-bottom: 0;
}

body.socp-portal .socp-section__title {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 32px;
	line-height: 1.15;
	letter-spacing: .01em;
	color: var(--socp-char);
	margin: 0 0 10px;
}

body.socp-portal .socp-section__intro {
	max-width: 66ch;
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--socp-muted);
}

body.socp-portal .socp-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 22px;
}

body.socp-portal .socp-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 18px 0 0;
}

body.socp-portal .socp-actions:first-child {
	margin-top: 0;
}

/* ---------- 5. cards ---------- */
body.socp-portal .socp-card {
	background: #fff;
	border: 1px solid var(--socp-line-strong);
	border-top: 3px solid var(--socp-yellow);
	border-radius: 0;
	padding: 24px 26px;
	margin: 0 0 22px;
}

body.socp-portal .socp-card--warn {
	border-top-color: var(--socp-amber);
}

body.socp-portal .socp-card--ok {
	border-top-color: var(--socp-ok);
}

body.socp-portal .socp-card > :last-child {
	margin-bottom: 0;
}

body.socp-portal .socp-card__eyebrow {
	display: block;
	margin: 0 0 8px;
	font-family: var(--socp-caps);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--socp-yellow-deep);
}

body.socp-portal .socp-rate-card caption.socp-rate-card__caption {
	display: table-caption;
	caption-side: top;
	margin: 0;
	padding: 0 0 6px;
	text-align: left;
	font-family: var(--socp-caps);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--socp-yellow-deep);
}

body.socp-portal .socp-card__title {
	margin: 0 0 8px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 25px;
	line-height: 1.2;
	color: var(--socp-char);
}

body.socp-portal .socp-card__text {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--socp-ink);
}

body.socp-portal .socp-card a:not(.socp-btn):not(.button) {
	color: var(--socp-yellow-deep);
	font-weight: 600;
}

body.socp-portal .socp-card__eyebrow a {
	color: inherit !important;
	text-decoration: none;
}

body.socp-portal address.socp-card__text {
	font-style: normal;
}

/* a status chip used as a card title (Documents / Company verification cards) */
body.socp-portal .socp-card__title .socp-chip,
body.socp-portal .socp-section__intro .socp-chip {
	font-size: 11px;
	margin-right: 8px;
	vertical-align: middle;
}

/* lists inside cards: held orders waiting for a document, files attached to an answer */
body.socp-portal .socp-held-orders,
body.socp-portal .socp-request-files {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

body.socp-portal .socp-held-orders li,
body.socp-portal .socp-request-files li {
	margin: 0;
	padding: 10px 0;
	border-top: 1px solid var(--socp-line);
	font-size: 14.5px;
	line-height: 1.5;
	list-style: none;
}

body.socp-portal .socp-held-orders li:last-child,
body.socp-portal .socp-request-files li:last-child {
	padding-bottom: 0;
}

body.socp-portal .socp-request-files li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
}

body.socp-portal .socp-request-files small,
body.socp-portal .socp-table small {
	color: var(--socp-muted);
	font-size: 13px;
}

/* one-button forms that sit inside a .socp-actions row (withdraw, cancel request, mark delivered) */
body.socp-portal .socp-inline-form,
body.socp-portal .socp-form--inline {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
}

/* ---------- 6. dashboard ---------- */
body.socp-portal .socp-greeting {
	padding-bottom: 20px;
	border-bottom: 1px solid var(--socp-line);
	margin-bottom: 28px;
}

body.socp-portal .socp-greeting__title {
	font-size: 32px;
	margin-bottom: 8px;
}

body.socp-portal .socp-greeting .socp-section__intro {
	margin-bottom: 8px;
}

body.socp-portal .socp-greeting__switch {
	margin: 0;
	font-size: 13px;
	color: var(--socp-muted);
}

body.socp-portal .socp-greeting__switch a {
	color: var(--socp-yellow-deep);
}

/* attention list */
body.socp-portal .socp-attention__list {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

body.socp-portal .socp-attention__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 18px;
	margin: 0;
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--socp-line-strong);
	border-left: 4px solid var(--socp-yellow);
	list-style: none;
}

body.socp-portal .socp-attention__item--warn {
	border-left-color: var(--socp-amber);
	background: var(--socp-amber-soft);
}

body.socp-portal .socp-attention__item--info {
	border-left-color: var(--socp-yellow);
	background: var(--socp-slab);
}

body.socp-portal .socp-attention__item--ok {
	border-left-color: var(--socp-ok);
	background: var(--socp-ok-bg);
}

body.socp-portal .socp-attention__text {
	flex: 1 1 280px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--socp-ink);
}

/* tiles */
body.socp-portal .socp-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 22px;
}

body.socp-portal .socp-tile {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 150px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid var(--socp-line-strong);
	border-top: 3px solid var(--socp-yellow);
	border-radius: 0;
	color: var(--socp-ink) !important;
	text-decoration: none !important;
	transition: transform .15s, box-shadow .15s, border-color .15s;
}

body.socp-portal a.socp-tile:hover,
body.socp-portal a.socp-tile:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--socp-shadow);
	border-top-color: var(--socp-char);
}

body.socp-portal .socp-tile__eyebrow {
	font-family: var(--socp-caps);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--socp-yellow-deep);
}

body.socp-portal .socp-tile__title {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 24px;
	line-height: 1.2;
	color: var(--socp-char);
}

body.socp-portal .socp-tile__text {
	font-size: 14px;
	line-height: 1.55;
	color: var(--socp-muted);
}

body.socp-portal .socp-tile__cta {
	margin-top: auto;
	padding-top: 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--socp-yellow-deep);
}

body.socp-portal .socp-tile__cta::after {
	content: " \2192";
}

/* welcome checklist */
body.socp-portal .socp-checklist {
	list-style: none;
	margin: 6px 0 12px;
	padding: 0;
}

body.socp-portal .socp-checklist__item {
	position: relative;
	margin: 0 0 8px;
	padding: 0 0 0 30px;
	font-size: 15px;
	line-height: 1.5;
	list-style: none;
}

body.socp-portal .socp-checklist__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 16px;
	height: 16px;
	border: 2px solid var(--socp-yellow);
	border-radius: 50%;
	box-sizing: border-box;
	background: #fff;
	font-family: var(--socp-body);
	font-size: 11px;
	font-weight: 700;
	line-height: 12px;
	text-align: center;
	color: #fff;
}

body.socp-portal .socp-checklist__item a {
	color: var(--socp-yellow-deep);
	font-weight: 600;
}

body.socp-portal .socp-checklist__item--done {
	color: var(--socp-muted);
	text-decoration: line-through;
	text-decoration-color: var(--socp-line-strong);
}

body.socp-portal .socp-checklist__item--done::before {
	content: "\2713";
	background: var(--socp-ok);
	border-color: var(--socp-ok);
}

/* empty state */
body.socp-portal .socp-empty {
	padding: 28px 26px;
	background: var(--socp-slab);
	border: 1px dashed var(--socp-line-strong);
}

body.socp-portal .socp-empty__title {
	margin: 0 0 8px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 28px;
	line-height: 1.2;
	color: var(--socp-char);
}

body.socp-portal .socp-empty__text {
	max-width: 62ch;
	margin: 0 0 6px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--socp-ink);
}

/* ---------- 7. status chips ---------- */
.socp-chip {
	display: inline-block;
	padding: 5px 9px;
	border: 1px solid transparent;
	border-radius: 2px;
	background: var(--socp-slab);
	color: var(--socp-ink);
	font-family: var(--socp-caps);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
	vertical-align: middle;
}

.socp-chip--ok {
	background: var(--socp-ok-bg);
	border-color: var(--socp-ok-line);
	color: var(--socp-ok);
}

.socp-chip--warn {
	background: var(--socp-amber-bg);
	border-color: var(--socp-amber-line);
	color: var(--socp-amber-ink);
}

.socp-chip--info {
	background: var(--socp-yellow-tint);
	border-color: var(--socp-yellow-soft);
	color: var(--socp-yellow-ink);
}

.socp-chip--muted {
	background: var(--socp-line);
	border-color: transparent;
	color: var(--socp-muted);
}

.socp-chip--danger {
	background: var(--socp-danger-bg);
	border-color: var(--socp-danger-line);
	color: var(--socp-danger);
}

/* ---------- 8. tables (portal tables + WooCommerce's account tables) ---------- */
body.socp-portal .socp-table,
body.socp-portal .woocommerce-MyAccount-content table.shop_table {
	width: 100%;
	margin: 0 0 24px;
	border-collapse: collapse;
	border: 1px solid var(--socp-line-strong);
	border-radius: 0;
	background: #fff;
	font-family: var(--socp-body);
	font-size: 14.5px;
	line-height: 1.5;
}

body.socp-portal .socp-table th,
body.socp-portal .woocommerce-MyAccount-content table.shop_table th {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--socp-line-strong);
	background: var(--socp-slab);
	font-family: var(--socp-caps);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-align: left;
	color: var(--socp-muted);
	vertical-align: middle;
}

body.socp-portal .socp-table td,
body.socp-portal .woocommerce-MyAccount-content table.shop_table td {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--socp-line);
	vertical-align: top;
	color: var(--socp-ink);
}

body.socp-portal .socp-table tbody th,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tbody th {
	background: transparent;
	border-bottom: 1px solid var(--socp-line);
	font-family: var(--socp-body);
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--socp-char);
	vertical-align: top;
}

body.socp-portal .socp-table tbody tr:last-child td,
body.socp-portal .socp-table tbody tr:last-child th,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tbody tr:last-child td,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tbody tr:last-child th {
	border-bottom: 0;
}

body.socp-portal .socp-table tfoot th,
body.socp-portal .socp-table tfoot td,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tfoot th,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tfoot td {
	border-top: 1px solid var(--socp-line-strong);
	border-bottom: 0;
	background: var(--socp-slab);
	font-weight: 600;
	color: var(--socp-char);
}

body.socp-portal .socp-table tfoot th,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tfoot th {
	font-family: var(--socp-body);
	font-size: 14.5px;
	letter-spacing: 0;
	text-transform: none;
}

body.socp-portal .socp-table tbody tr:hover td,
body.socp-portal .socp-table tbody tr:hover th,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tbody tr:hover td {
	background: rgba(242, 246, 250, .6);
}

body.socp-portal .socp-table__num,
body.socp-portal .socp-table td.socp-table__num,
body.socp-portal .woocommerce-MyAccount-content table.shop_table .woocommerce-orders-table__cell-order-total,
body.socp-portal .woocommerce-MyAccount-content table.shop_table .woocommerce-orders-table__header-order-total,
body.socp-portal .woocommerce-MyAccount-content table.shop_table .product-total,
body.socp-portal .woocommerce-MyAccount-content table.shop_table tfoot td {
	font-variant-numeric: tabular-nums;
	text-align: right;
	white-space: nowrap;
}

body.socp-portal .socp-table a:not(.socp-btn):not(.button),
body.socp-portal .woocommerce-MyAccount-content table.shop_table a:not(.button):not(.socp-btn) {
	color: var(--socp-yellow-deep);
	font-weight: 600;
	text-decoration: none;
}

body.socp-portal .socp-table .socp-chip,
body.socp-portal .woocommerce-MyAccount-content table.shop_table .socp-chip {
	margin: 1px 0;
}

body.socp-portal .woocommerce-MyAccount-content table.shop_table .woocommerce-orders-table__cell-order-actions,
body.socp-portal .socp-table .socp-table__actions {
	white-space: normal;
}

body.socp-portal .woocommerce-MyAccount-content table.shop_table .woocommerce-orders-table__cell-order-actions .button,
body.socp-portal .socp-table .button,
body.socp-portal .socp-table .socp-btn {
	margin: 2px 6px 2px 0;
}

body.socp-portal .woocommerce-pagination {
	display: flex;
	gap: 12px;
	margin: 0 0 24px;
}

/* ---------- 9. forms ---------- */
body.socp-portal .socp-form {
	margin: 0 0 24px;
}

body.socp-portal .socp-form__row,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-form-row,
body.socp-portal .woocommerce-MyAccount-content .form-row,
body.socp-portal form.woocommerce-form-login .form-row,
body.socp-portal form.woocommerce-form-register .form-row {
	display: block;
	float: none;
	width: auto;
	margin: 0 0 16px;
	padding: 0;
}

body.socp-portal .socp-form__row > label,
body.socp-portal .socp-form > label,
body.socp-portal .socp-form fieldset > label,
body.socp-portal .socp-form .socp-field > label,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-form-row > label,
body.socp-portal .woocommerce-MyAccount-content .form-row > label,
body.socp-portal form.woocommerce-form-login .form-row > label,
body.socp-portal form.woocommerce-form-register .form-row > label,
body.socp-portal #add_payment_method .acceptblue-card-wrap label {
	display: block;
	margin: 0 0 6px;
	font-family: var(--socp-caps);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--socp-muted);
}

/* Product names in the Reorder / Buy-again tables are <label>s for the row checkbox: keep them readable. */
body.socp-portal .socp-table label,
body.socp-portal .socp-form .socp-table label {
	display: inline;
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: 0;
	line-height: inherit;
	text-transform: none;
	color: inherit;
}

body.socp-portal .socp-form label .required,
body.socp-portal .woocommerce-MyAccount-content label .required,
body.socp-portal form.woocommerce-form-register label .required {
	color: var(--socp-danger);
	text-decoration: none;
	border: 0;
}

body.socp-portal .socp-form__row--check,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-form__label-for-checkbox,
body.socp-portal form.woocommerce-form-login .woocommerce-form__label-for-checkbox,
body.socp-portal form.woocommerce-form-register .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

body.socp-portal .socp-form__row--check input[type="checkbox"],
body.socp-portal .socp-form__row--check input[type="radio"],
body.socp-portal .socp-form input[type="checkbox"],
body.socp-portal .socp-form input[type="radio"],
body.socp-portal .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 3px 0 0;
	accent-color: var(--socp-char);
	cursor: pointer;
}

body.socp-portal .socp-form__row--check > label,
body.socp-portal .socp-form .socp-form__row--check label,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-form__label-for-checkbox,
body.socp-portal form.woocommerce-form-login .woocommerce-form__label-for-checkbox,
body.socp-portal form.woocommerce-form-register .woocommerce-form__label-for-checkbox,
body.socp-portal .woocommerce-form__label-for-checkbox span {
	display: inline;
	margin: 0;
	font-family: var(--socp-body);
	font-size: 14.5px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
	color: var(--socp-ink);
	cursor: pointer;
}

body.socp-portal .socp-form__row--check > label {
	flex: 1 1 auto;
}

body.socp-portal .socp-form__row--check {
	flex-wrap: wrap;
}

body.socp-portal .socp-form__help {
	display: block;
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--socp-muted);
}

body.socp-portal .socp-form__help a {
	color: var(--socp-yellow-deep);
}

/* a help line inside or right after a checkbox row sits under the label, aligned with it */
body.socp-portal .socp-form__row--check > .socp-form__help {
	flex: 1 1 100%;
	margin: 2px 0 0 28px;
}

body.socp-portal .socp-form__row--check + .socp-form__help {
	margin-left: 28px;
}

/* rows portal.js hides (request form) must stay hidden despite the display rules above */
body.socp-portal .socp-form__row[hidden],
body.socp-portal .socp-form__help[hidden],
body.socp-portal .socp-form [hidden],
body.socp-portal .woocommerce-MyAccount-content [hidden] {
	display: none !important;
}

/* inputs: same treatment as the site's .so-form, with Blocksy's 40px field cap lifted.
   Stepper inputs are excluded here so the .socp-stepper rules below win. */
body.socp-portal .socp-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not(.socp-stepper__input),
body.socp-portal .socp-form select,
body.socp-portal .socp-form textarea,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-Input:not(.socp-stepper__input),
body.socp-portal .woocommerce-MyAccount-content .input-text:not(.socp-stepper__input),
body.socp-portal .woocommerce-MyAccount-content select,
body.socp-portal .woocommerce-MyAccount-content .select2-container .select2-selection--single,
body.socp-portal form.woocommerce-form-login .input-text,
body.socp-portal form.woocommerce-form-register .input-text,
body.socp-portal form.woocommerce-form-register select {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto !important;
	min-height: 46px;
	box-sizing: border-box;
	margin: 0;
	padding: 12px 14px !important;
	border: 1px solid var(--socp-line-strong) !important;
	border-radius: var(--socp-r) !important;
	background: #fff;
	box-shadow: none;
	font-family: var(--socp-body);
	font-size: 15px;
	line-height: 1.4 !important;
	color: var(--socp-ink);
}

body.socp-portal .woocommerce-MyAccount-content .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
	color: var(--socp-ink);
}

body.socp-portal .woocommerce-MyAccount-content .select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
	right: 8px;
}

body.socp-portal .socp-form textarea,
body.socp-portal .woocommerce-MyAccount-content textarea {
	min-height: 120px;
	resize: vertical;
}

body.socp-portal .socp-form input:focus,
body.socp-portal .socp-form select:focus,
body.socp-portal .socp-form textarea:focus,
body.socp-portal .woocommerce-MyAccount-content .input-text:focus,
body.socp-portal .woocommerce-MyAccount-content select:focus,
body.socp-portal form.woocommerce-form-login .input-text:focus,
body.socp-portal form.woocommerce-form-register .input-text:focus {
	outline: 2px solid var(--socp-focus);
	outline-offset: 1px;
	border-color: var(--socp-yellow-deep) !important;
}

body.socp-portal .socp-form select:disabled,
body.socp-portal .socp-form input:disabled,
body.socp-portal .socp-form option:disabled {
	color: var(--socp-muted);
	background: var(--socp-slab);
}

body.socp-portal .socp-form input[type="file"] {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 44px;
	padding: 6px 0;
	font-family: var(--socp-body);
	font-size: 14px;
	color: var(--socp-ink);
}

/* honeypot */
.socp-hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none;
}

/* dropzone */
body.socp-portal .socp-dropzone {
	position: relative;
	padding: 28px 20px;
	border: 1px dashed var(--socp-line-strong);
	border-radius: var(--socp-r);
	background: var(--socp-slab);
	text-align: center;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}

body.socp-portal .socp-dropzone:hover,
body.socp-portal .socp-dropzone.is-dragover {
	border-color: var(--socp-yellow-deep);
	background: var(--socp-yellow-tint);
}

body.socp-portal .socp-dropzone__title {
	margin: 0 0 4px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 23px;
	line-height: 1.2;
	color: var(--socp-char);
}

body.socp-portal .socp-dropzone__text,
body.socp-portal .socp-dropzone p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--socp-muted);
}

body.socp-portal .socp-dropzone input[type="file"] {
	display: block;
	max-width: 440px;
	margin: 14px auto 0;
	padding: 8px 10px;
	background: #fff;
	border: 1px solid var(--socp-line);
	border-radius: var(--socp-r);
}

body.socp-portal .socp-dropzone label {
	cursor: pointer;
}

body.socp-portal .socp-file-name {
	display: block;
	min-height: 1em;
	margin: 10px 0 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--socp-char);
	word-break: break-word;
}

body.socp-portal .socp-file-name:empty {
	display: none;
}

body.socp-portal .socp-file-name.is-error {
	color: var(--socp-danger);
}

/* stepper (± buttons, 44px targets) */
body.socp-portal .socp-stepper {
	display: inline-flex;
	align-items: stretch;
	overflow: hidden;
	border: 1px solid var(--socp-line-strong);
	border-radius: var(--socp-r);
	background: #fff;
	vertical-align: middle;
}

body.socp-portal .socp-stepper__btn,
body.socp-portal .socp-stepper .socp-stepper__btn.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px !important;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--socp-slab) !important;
	color: var(--socp-char) !important;
	font-family: var(--socp-body) !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
}

body.socp-portal .socp-stepper__btn:hover,
body.socp-portal .socp-stepper__btn:focus-visible {
	background: var(--socp-yellow-tint) !important;
}

body.socp-portal .socp-form .socp-stepper__input,
body.socp-portal .socp-stepper__input {
	display: inline-block;
	width: 64px !important;
	min-width: 64px;
	height: 44px !important;
	min-height: 0;
	margin: 0;
	padding: 0 6px !important;
	border: 0 !important;
	border-left: 1px solid var(--socp-line) !important;
	border-right: 1px solid var(--socp-line) !important;
	border-radius: 0 !important;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.socp-portal .socp-stepper__input::-webkit-inner-spin-button,
body.socp-portal .socp-stepper__input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.socp-portal .socp-stepper__input:focus {
	outline: 2px solid var(--socp-focus);
	outline-offset: -2px;
}

/* ---------- 10. buttons ---------- */
/* Every .socp-btn also carries the class "button" so the theme's link recolour rule skips it. */
body.socp-portal .socp-btn,
body.socp-portal .socp-btn.button,
body.socp-portal .woocommerce-MyAccount-content .button,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-Button,
body.socp-portal .woocommerce-MyAccount-content button[type="submit"],
body.socp-portal .woocommerce-MyAccount-content input[type="submit"],
body.socp-portal form.woocommerce-form-login .button,
body.socp-portal form.woocommerce-form-register .button,
body.socp-portal .socp-form button[type="submit"],
body.socp-portal .socp-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	margin: 0;
	padding: 0 26px !important;
	border: 1px solid var(--socp-yellow) !important;
	border-radius: var(--socp-r) !important;
	background: var(--socp-yellow) !important;
	color: var(--socp-char) !important;
	font-family: var(--socp-body) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	text-align: center;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap;
	box-shadow: none !important;
	cursor: pointer;
	transition: background .18s, border-color .18s, color .18s;
}

body.socp-portal .socp-btn:hover,
body.socp-portal .socp-btn:focus-visible,
body.socp-portal .woocommerce-MyAccount-content .button:hover,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-Button:hover,
body.socp-portal .woocommerce-MyAccount-content button[type="submit"]:hover,
body.socp-portal .woocommerce-MyAccount-content input[type="submit"]:hover,
body.socp-portal form.woocommerce-form-login .button:hover,
body.socp-portal form.woocommerce-form-register .button:hover,
body.socp-portal .socp-form button[type="submit"]:hover {
	background: var(--socp-yellow-bright) !important;
	border-color: var(--socp-yellow-bright) !important;
	color: var(--socp-char) !important;
}

body.socp-portal .socp-form button.socp-btn--line,
body.socp-portal .socp-form input.socp-btn--line,
body.socp-portal .woocommerce-MyAccount-content button.socp-btn--line,
body.socp-portal .socp-btn.socp-btn--line,
body.socp-portal .woocommerce-MyAccount-content .socp-btn--line,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-Address-title .edit,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-MyAccount-paymentMethods .button {
	background: #fff !important;
	border-color: var(--socp-char) !important;
	color: var(--socp-char) !important;
}

body.socp-portal .socp-form button.socp-btn--line:hover,
body.socp-portal .socp-form input.socp-btn--line:hover,
body.socp-portal .woocommerce-MyAccount-content button.socp-btn--line:hover,
body.socp-portal .socp-btn.socp-btn--line:hover,
body.socp-portal .socp-form button.socp-btn--line:focus-visible,
body.socp-portal .socp-form input.socp-btn--line:focus-visible,
body.socp-portal .woocommerce-MyAccount-content button.socp-btn--line:focus-visible,
body.socp-portal .socp-btn.socp-btn--line:focus-visible,
body.socp-portal .woocommerce-MyAccount-content .socp-btn--line:hover,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button:hover,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-Address-title .edit:hover,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-MyAccount-paymentMethods .button:hover {
	background: var(--socp-slab) !important;
	border-color: var(--socp-char) !important;
	color: var(--socp-char) !important;
}

body.socp-portal .socp-form button.socp-btn--small,
body.socp-portal .socp-form input.socp-btn--small,
body.socp-portal .woocommerce-MyAccount-content button.socp-btn--small,
body.socp-portal .socp-btn.socp-btn--small,
body.socp-portal .woocommerce-MyAccount-content .socp-btn--small,
body.socp-portal .woocommerce-MyAccount-content table.shop_table .button,
body.socp-portal .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
	min-height: 36px;
	padding: 0 14px !important;
	font-size: 14px !important;
}

body.socp-portal .socp-form button.socp-btn--danger,
body.socp-portal .socp-form input.socp-btn--danger,
body.socp-portal .woocommerce-MyAccount-content button.socp-btn--danger,
body.socp-portal .socp-btn.socp-btn--danger,
body.socp-portal .woocommerce-MyAccount-content .socp-btn--danger {
	background: var(--socp-danger) !important;
	border-color: var(--socp-danger) !important;
	color: #fff !important;
}

body.socp-portal .socp-form button.socp-btn--danger:hover,
body.socp-portal .socp-form input.socp-btn--danger:hover,
body.socp-portal .woocommerce-MyAccount-content button.socp-btn--danger:hover,
body.socp-portal .socp-btn.socp-btn--danger:hover,
body.socp-portal .woocommerce-MyAccount-content .socp-btn--danger:hover {
	background: #6E1414 !important;
	border-color: #6E1414 !important;
}

body.socp-portal .socp-btn:disabled,
body.socp-portal .socp-btn[aria-disabled="true"],
body.socp-portal .socp-form button[type="submit"]:disabled,
body.socp-portal .woocommerce-MyAccount-content .button:disabled,
body.socp-portal .woocommerce-MyAccount-content button[type="submit"]:disabled {
	opacity: .55;
	cursor: not-allowed;
}

body.socp-portal .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
	float: none;
	margin-left: auto;
}

/* ---------- 11. notices ---------- */
.socp-notice,
.socp-cart-notice {
	display: block;
	margin: 0 0 22px;
	padding: 16px 20px;
	border: 1px solid var(--socp-line-strong);
	border-left: 4px solid var(--socp-yellow);
	border-radius: 0;
	background: #fff;
	font-family: var(--socp-body);
	font-size: 15px;
	line-height: 1.55;
	color: var(--socp-ink);
}

.socp-notice--warn,
.socp-cart-notice--warn {
	border-left-color: var(--socp-amber);
	background: var(--socp-amber-soft);
}

.socp-notice--info,
.socp-cart-notice--info {
	border-left-color: var(--socp-yellow);
	background: var(--socp-slab);
}

.socp-notice--ok,
.socp-cart-notice--ok {
	border-left-color: var(--socp-ok);
	background: var(--socp-ok-bg);
}

.socp-notice p,
.socp-cart-notice p {
	margin: 0 0 8px;
}

.socp-notice p:last-child,
.socp-cart-notice p:last-child {
	margin-bottom: 0;
}

.socp-notice__title,
.socp-cart-notice__title {
	margin: 0 0 6px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 22px;
	line-height: 1.2;
	color: var(--socp-char);
}

.socp-notice ul,
.socp-cart-notice ul {
	margin: 6px 0 0 18px;
	padding: 0;
}

.socp-notice li,
.socp-cart-notice li {
	margin: 0 0 4px;
}

.socp-notice a:not(.socp-btn),
.socp-cart-notice a:not(.socp-btn) {
	color: var(--socp-yellow-deep);
	font-weight: 600;
}

.socp-notice .socp-btn,
.socp-cart-notice .socp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin: 10px 8px 0 0;
	padding: 0 18px !important;
	border: 1px solid var(--socp-yellow) !important;
	border-radius: var(--socp-r) !important;
	background: var(--socp-yellow) !important;
	color: var(--socp-char) !important;
	font-family: var(--socp-body) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}

.socp-notice .socp-btn:hover,
.socp-cart-notice .socp-btn:hover {
	background: var(--socp-yellow-bright) !important;
	border-color: var(--socp-yellow-bright) !important;
	color: var(--socp-char) !important;
}

/* hosts injected above the Cart / Checkout blocks (socp_footer_inject) */
#socp-reorder-notice,
#socp-account-notice {
	display: block;
	margin: 18px 0 0;
}

/* the order-received "One more step" block and other notices that carry card parts
   outside the account page (no body.socp-portal there) */
.socp-notice .socp-card__title {
	margin: 0 0 8px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 25px;
	line-height: 1.2;
	color: var(--socp-char);
}

.socp-notice .socp-card__text {
	margin: 0 0 10px;
	font-size: 15px;
	line-height: 1.6;
}

.socp-notice .socp-form__help {
	display: block;
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--socp-muted);
}

.socp-notice .socp-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 12px 0 0;
}

.socp-notice .socp-actions .socp-btn {
	margin: 0;
}

.socp-thankyou {
	margin: 0 0 28px;
}

/* WooCommerce's own notices inside the portal: same card, no icons */
body.socp-portal .woocommerce-message,
body.socp-portal .woocommerce-info,
body.socp-portal .woocommerce-error,
body.socp-portal .woocommerce-notice {
	display: block;
	margin: 0 0 22px;
	padding: 16px 20px !important;
	border: 1px solid var(--socp-line-strong);
	border-left: 4px solid var(--socp-yellow);
	border-radius: 0;
	background: #fff;
	font-family: var(--socp-body);
	font-size: 15px;
	line-height: 1.55;
	color: var(--socp-ink);
	list-style: none;
}

body.socp-portal .woocommerce-message {
	background: var(--socp-yellow-tint);
}

body.socp-portal .woocommerce-info {
	background: var(--socp-slab);
}

body.socp-portal .woocommerce-error {
	border-left-color: var(--socp-danger);
	background: var(--socp-danger-bg);
}

body.socp-portal .woocommerce-message::before,
body.socp-portal .woocommerce-info::before,
body.socp-portal .woocommerce-error::before,
body.socp-portal .woocommerce-message::after,
body.socp-portal .woocommerce-info::after,
body.socp-portal .woocommerce-error::after {
	display: none;
}

body.socp-portal .woocommerce-error li {
	margin: 0 0 6px;
	list-style: none;
}

body.socp-portal .woocommerce-error li:last-child {
	margin-bottom: 0;
}

body.socp-portal .woocommerce-message .button,
body.socp-portal .woocommerce-info .button {
	float: none;
	margin: 0 12px 0 0;
	min-height: 38px;
	padding: 0 16px !important;
	border: 1px solid var(--socp-yellow) !important;
	border-radius: var(--socp-r) !important;
	background: var(--socp-yellow) !important;
	color: var(--socp-char) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}

body.socp-portal .woocommerce-message a:not(.button),
body.socp-portal .woocommerce-info a:not(.button),
body.socp-portal .woocommerce-error a:not(.button) {
	color: var(--socp-yellow-deep);
	font-weight: 600;
}

/* ---------- 12. orders ---------- */
body.socp-portal .socp-status-help {
	display: block;
	margin-top: 5px;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	color: var(--socp-muted);
	white-space: normal;
}

body.socp-portal .socp-order-card {
	margin: 0 0 12px;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid var(--socp-line-strong);
}

body.socp-portal .socp-order-card__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 12px;
	margin: 0 0 8px;
}

body.socp-portal .socp-order-card__number {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 23px;
	line-height: 1.2;
	color: var(--socp-char);
}

body.socp-portal .socp-order-card__number a {
	color: var(--socp-char);
	text-decoration: none;
}

body.socp-portal .socp-order-card__meta {
	font-size: 13.5px;
	color: var(--socp-muted);
}

body.socp-portal .socp-order-card__items {
	margin: 0 0 6px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--socp-ink);
}

body.socp-portal .socp-order-card .socp-actions {
	margin-top: 12px;
}

/* key/value list like the site's .so-glance. Works with a flat <dl><dt><dd>… and with
   pairs wrapped in <div> (the wrapper dissolves into the grid). */
body.socp-portal .socp-kv {
	display: grid;
	grid-template-columns: minmax(120px, 160px) minmax(0, 1fr);
	column-gap: 12px;
	row-gap: 0;
	margin: 0 0 12px;
	font-size: 14.5px;
	line-height: 1.45;
}

body.socp-portal .socp-kv > div {
	display: contents;
}

body.socp-portal .socp-kv dt,
body.socp-portal .socp-kv dd {
	margin: 0;
	padding: 8px 0;
	border-bottom: 1px solid var(--socp-line);
	min-width: 0;
}

body.socp-portal .socp-kv dt {
	font-weight: 500;
	color: var(--socp-muted);
}

body.socp-portal .socp-kv dd {
	font-weight: 500;
	color: var(--socp-ink);
	word-break: break-word;
}

body.socp-portal .socp-kv dt:last-of-type,
body.socp-portal .socp-kv dd:last-of-type {
	border-bottom: 0;
	padding-bottom: 0;
}

body.socp-portal .socp-kv dd a {
	color: var(--socp-yellow-deep);
	font-weight: 600;
}

body.socp-portal .socp-kv dd.socp-table__num {
	text-align: left;
}

/* WooCommerce view-order / addresses pages */
body.socp-portal .woocommerce-order-details,
body.socp-portal .woocommerce-customer-details {
	margin: 0 0 28px;
}

body.socp-portal .woocommerce-order-details__title,
body.socp-portal .woocommerce-column__title {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 28px;
	line-height: 1.2;
	color: var(--socp-char);
	margin: 0 0 12px;
}

body.socp-portal .woocommerce-customer-details address,
body.socp-portal .woocommerce-Address address {
	padding: 16px 18px;
	border: 1px solid var(--socp-line);
	background: var(--socp-slab);
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--socp-ink);
}

body.socp-portal .woocommerce-columns--addresses,
body.socp-portal .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 22px;
	margin: 0 0 24px;
}

body.socp-portal .woocommerce-columns--addresses::before,
body.socp-portal .woocommerce-columns--addresses::after,
body.socp-portal .woocommerce-Addresses::before,
body.socp-portal .woocommerce-Addresses::after {
	display: none;
}

body.socp-portal .woocommerce-columns--addresses .woocommerce-column,
body.socp-portal .woocommerce-Addresses .woocommerce-Address {
	float: none;
	width: auto;
	max-width: none;
	margin: 0;
}

body.socp-portal .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 10px;
}

body.socp-portal .woocommerce-Address-title h2,
body.socp-portal .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 22px;
}

/* saved-cards table status column */
body.socp-portal .payment-method-status .socp-chip {
	margin: 4px 0;
}

/* ---------- 13. login / register screen (logged out) ---------- */
.socp-login-intro {
	margin: 0 0 26px;
	padding: 20px 24px;
	border: 1px solid var(--socp-line-strong);
	border-top: 3px solid var(--socp-yellow);
	background: #fff;
	font-family: var(--socp-body);
	color: var(--socp-ink);
}

.socp-login-intro__eyebrow {
	margin: 0 0 6px;
	font-family: var(--socp-caps);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--socp-yellow-deep);
}

.socp-login-intro__text {
	max-width: 72ch;
	margin: 0;
	font-size: 15.5px;
	line-height: 1.6;
}

body.socp-portal #customer_login {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 26px;
	margin: 0 0 30px;
}

body.socp-portal #customer_login::before,
body.socp-portal #customer_login::after {
	display: none;
}

body.socp-portal #customer_login .u-column1,
body.socp-portal #customer_login .u-column2,
body.socp-portal :not(.u-column1) > form.woocommerce-form-login {
	float: none;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 24px 26px;
	background: #fff;
	border: 1px solid var(--socp-line-strong);
	border-top: 3px solid var(--socp-yellow);
	font-family: var(--socp-body);
	color: var(--socp-ink);
}

body.socp-portal :not(.u-column1) > form.woocommerce-form-login {
	max-width: 560px;
	margin-bottom: 30px;
}

body.socp-portal #customer_login h2,
body.socp-portal.woocommerce-account:not(.logged-in) .woocommerce > h2 {
	margin: 0 0 16px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 30px;
	line-height: 1.15;
	color: var(--socp-char);
}

body.socp-portal form.woocommerce-form-login,
body.socp-portal form.woocommerce-form-register {
	font-family: var(--socp-body);
	font-size: 15px;
	color: var(--socp-ink);
}

body.socp-portal form.woocommerce-form-register p {
	margin: 0 0 14px;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--socp-muted);
}

body.socp-portal form.woocommerce-form-login .form-row:last-of-type,
body.socp-portal form.woocommerce-form-register .form-row:last-of-type {
	margin-bottom: 0;
}

body.socp-portal form.woocommerce-form-login .woocommerce-form-login__rememberme {
	margin: 0 0 14px;
}

body.socp-portal .woocommerce-LostPassword {
	margin: 12px 0 0;
	font-size: 14px;
}

body.socp-portal .woocommerce-LostPassword a,
body.socp-portal .lost_reset_password a {
	color: var(--socp-yellow-deep);
	font-weight: 600;
}

/* register column: firm fields printed by the Company module */
body.socp-portal form.woocommerce-form-register select {
	appearance: auto;
}

/* ---------- 14. add-card page ---------- */
/* accept.blue's template prints a hidden save_payment_method=on plus a label about subscriptions; drop the label. */
body.socp-portal .ab-save-payment-wrap label,
body.socp-portal.socp-endpoint-add-payment-method .ab-save-payment-wrap,
body.socp-portal.socp-endpoint-add-payment-method .acceptblue-card-wrap .ab-save-payment-wrap {
	display: none !important;
}

body.socp-portal #add_payment_method .woocommerce-PaymentMethods {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
}

body.socp-portal #add_payment_method .woocommerce-PaymentMethod {
	margin: 0 0 12px;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid var(--socp-line-strong);
	list-style: none;
}

body.socp-portal #add_payment_method .woocommerce-PaymentMethod > label {
	display: inline-block;
	margin: 0 0 0 8px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 22px;
	color: var(--socp-char);
}

body.socp-portal #add_payment_method .woocommerce-PaymentMethod > input[type="radio"] {
	accent-color: var(--socp-char);
}

body.socp-portal #add_payment_method .payment_box {
	margin: 0;
	padding: 14px 0 0;
	background: transparent;
	border: 0;
}

body.socp-portal #add_payment_method .payment_box::before {
	display: none;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap {
	padding: 8px 0 0;
	border-radius: 0;
	max-width: 480px;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap input[type="text"],
body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-card-wrap input[type="text"],
body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-expire-cvv-wrap input[type="text"] {
	height: 46px !important;
	min-height: 46px;
	padding: 0 12px !important;
	border: 1px solid var(--socp-line-strong) !important;
	border-radius: var(--socp-r) !important;
	background: #fff;
	font-family: var(--socp-body);
	font-size: 18px !important;
	font-variant-numeric: tabular-nums;
	letter-spacing: .04em !important;
	color: var(--socp-ink);
	box-sizing: border-box;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap input[type="text"]::placeholder {
	font-size: 16px !important;
	letter-spacing: .04em !important;
	color: #A8B3C0;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap input[type="text"]:focus {
	outline: 2px solid var(--socp-focus);
	outline-offset: 1px;
	border-color: var(--socp-yellow-deep) !important;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-card-block {
	display: flex;
	align-items: center;
	gap: 8px;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap #ab-card {
	flex: 1 1 auto;
	max-width: none;
	border-radius: var(--socp-r) !important;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-thumb-place {
	margin: 0;
	border-color: var(--socp-line);
	background: #fff;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-error-message {
	position: static;
	transform: none;
	margin-top: 4px;
	font-size: 13px;
	color: var(--socp-danger);
}

body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-card-wrap {
	margin: 0 0 18px;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-expire-cvv-wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 0;
}

body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-expire-cvv-wrap > div {
	width: auto;
	margin: 0;
}

body.socp-portal #add_payment_method .form-row {
	margin: 18px 0 0;
}

body.socp-portal .socp-add-card-note {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--socp-muted);
}

/* ---------- 15. guest upload route ---------- */
/* The page is built from the site's own .so-sec / .so-wrap sections (full-width hero), so
   nothing here constrains the width; only the two-column body and type need care. */
body.socp-portal-guest .socp-guest {
	font-family: var(--socp-body);
	color: var(--socp-ink);
}

body.socp-portal-guest .socp-guest .so-sec:not(.so-pagehero) {
	padding-top: 40px;
	padding-bottom: 56px;
}

body.socp-portal-guest .socp-guest .socp-grid {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
	gap: 28px;
	margin-bottom: 28px;
}

body.socp-portal-guest .socp-guest .socp-grid > .socp-section {
	margin-bottom: 0;
}

body.socp-portal-guest .socp-guest .socp-section__title {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 32px;
	color: var(--socp-char);
	margin: 0 0 10px;
}

body.socp-portal-guest .socp-guest .socp-card__title {
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 25px;
	line-height: 1.2;
	color: var(--socp-char);
	margin: 0 0 8px;
}

body.socp-portal-guest .socp-guest .socp-notice strong {
	display: block;
	margin: 0 0 4px;
	font-family: var(--socp-display);
	text-transform: uppercase;
	font-weight: 800;
	font-size: 22px;
	color: var(--socp-char);
}

/* ---------- 16. mobile ---------- */
@media (max-width: 782px) {
	body.socp-portal .woocommerce-MyAccount-navigation,
	body.socp-portal .woocommerce-MyAccount-content {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.socp-portal .woocommerce-MyAccount-navigation {
		position: static;
		margin: 0 0 22px;
		padding: 8px 8px 2px;
	}

	body.socp-portal .woocommerce-account-gravatar {
		display: none;
	}

	body.socp-portal .woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: 6px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 6px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	body.socp-portal .woocommerce-MyAccount-navigation li {
		flex: 0 0 auto;
		scroll-snap-align: start;
		margin: 0;
		border: 0;
		padding: 0;
	}

	body.socp-portal .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}

	body.socp-portal .woocommerce-MyAccount-navigation li a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 0 14px;
		border: 1px solid var(--socp-line-strong);
		border-radius: var(--socp-r);
		white-space: nowrap;
	}

	body.socp-portal .woocommerce-MyAccount-navigation li.is-active a {
		border-color: var(--socp-yellow);
		background: var(--socp-yellow-tint);
	}

	body.socp-portal .socp-section__title,
	body.socp-portal .woocommerce-MyAccount-content h2 {
		font-size: 24px;
	}

	body.socp-portal .socp-greeting__title {
		font-size: 26px;
	}

	body.socp-portal .socp-tiles,
	body.socp-portal .socp-grid,
	body.socp-portal #customer_login,
	body.socp-portal .woocommerce-columns--addresses,
	body.socp-portal .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	body.socp-portal .socp-tile {
		min-height: 0;
	}

	body.socp-portal-guest .socp-guest .socp-grid {
		grid-template-columns: 1fr;
	}

	body.socp-portal .socp-attention__item {
		flex-direction: column;
		align-items: stretch;
	}

	body.socp-portal .socp-attention__item .socp-btn {
		width: 100%;
	}

	body.socp-portal .socp-kv > div {
		grid-template-columns: 1fr;
		gap: 2px;
	}

	body.socp-portal .socp-card,
	body.socp-portal .socp-empty,
	body.socp-portal #customer_login .u-column1,
	body.socp-portal #customer_login .u-column2,
	body.socp-portal :not(.u-column1) > form.woocommerce-form-login {
		padding: 20px 18px;
	}

	body.socp-portal .socp-dropzone {
		padding: 22px 14px;
	}

	body.socp-portal #add_payment_method .acceptblue-card-wrap {
		max-width: none;
	}
}

/* stacked tables (WooCommerce's data-title markup), in case the theme drops WC's smallscreen styles */
@media (max-width: 768px) {
	body.socp-portal .socp-table.shop_table_responsive thead,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive thead {
		display: none;
	}

	body.socp-portal .socp-table.shop_table_responsive,
	body.socp-portal .socp-table.shop_table_responsive tbody,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody {
		display: block;
		width: 100%;
	}

	body.socp-portal .socp-table.shop_table_responsive tbody tr,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody tr {
		display: block;
		border-bottom: 2px solid var(--socp-line-strong);
	}

	body.socp-portal .socp-table.shop_table_responsive tbody tr:last-child,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody tr:last-child {
		border-bottom: 0;
	}

	body.socp-portal .socp-table.shop_table_responsive tbody td,
	body.socp-portal .socp-table.shop_table_responsive tbody th,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody th {
		display: block;
		width: 100%;
		box-sizing: border-box;
		padding: 10px 14px;
		border-bottom: 1px solid var(--socp-line);
		text-align: right;
	}

	body.socp-portal .socp-table.shop_table_responsive tbody tr:last-child td,
	body.socp-portal .socp-table.shop_table_responsive tbody tr:last-child th,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody tr:last-child td,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody tr:last-child th {
		border-bottom: 1px solid var(--socp-line);
	}

	body.socp-portal .socp-table.shop_table_responsive tbody td[data-title]::before,
	body.socp-portal .socp-table.shop_table_responsive tbody th[data-title]::before,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td[data-title]::before,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody th[data-title]::before {
		content: attr(data-title);
		float: left;
		padding: 3px 12px 0 0;
		font-family: var(--socp-caps);
		font-size: 10px;
		font-weight: 600;
		letter-spacing: .12em;
		text-transform: uppercase;
		color: var(--socp-muted);
	}

	body.socp-portal .socp-table.shop_table_responsive tbody td.socp-table__actions,
	body.socp-portal .socp-table.shop_table_responsive tbody td.actions,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td.woocommerce-orders-table__cell-order-actions,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td.payment-method-actions {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		text-align: left;
	}

	body.socp-portal .socp-table.shop_table_responsive tbody td.socp-table__actions::before,
	body.socp-portal .socp-table.shop_table_responsive tbody td.actions::before,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td.woocommerce-orders-table__cell-order-actions::before,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td.payment-method-actions::before {
		display: none;
	}

	body.socp-portal .socp-table.shop_table_responsive tbody td .button,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td .button {
		margin: 0;
	}

	body.socp-portal .socp-table.shop_table_responsive tbody td .socp-status-help,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tbody td .socp-status-help {
		clear: both;
		text-align: right;
	}

	body.socp-portal .socp-table.shop_table_responsive tfoot th,
	body.socp-portal .socp-table.shop_table_responsive tfoot td,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tfoot th,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tfoot td {
		display: block;
		width: 100%;
		box-sizing: border-box;
		text-align: right;
	}

	body.socp-portal .socp-table.shop_table_responsive tfoot tr,
	body.socp-portal .woocommerce-MyAccount-content table.shop_table_responsive tfoot tr {
		display: block;
	}
}

@media (max-width: 480px) {
	body.socp-portal .socp-actions .socp-btn,
	body.socp-portal .socp-actions .button,
	body.socp-portal .socp-actions .socp-inline-form,
	body.socp-portal .socp-actions .socp-form--inline,
	body.socp-portal .socp-empty .socp-btn,
	body.socp-portal .socp-form button[type="submit"],
	body.socp-portal form.woocommerce-form-login .button,
	body.socp-portal form.woocommerce-form-register .button {
		width: 100%;
	}

	body.socp-portal .socp-table .socp-actions .socp-btn,
	body.socp-portal .socp-table .socp-actions .socp-inline-form {
		width: auto;
	}

	body.socp-portal .socp-kv {
		grid-template-columns: 1fr;
	}

	body.socp-portal .socp-kv dt {
		padding-bottom: 0;
		border-bottom: 0;
	}

	body.socp-portal .socp-kv dt:last-of-type {
		padding-bottom: 0;
	}

	body.socp-portal .socp-greeting__title {
		font-size: 24px;
	}

	body.socp-portal #add_payment_method .acceptblue-card-wrap .ab-expire-cvv-wrap {
		grid-template-columns: 1fr;
	}
}

/* ---------- 17. reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	body.socp-portal *,
	.socp-notice,
	.socp-cart-notice {
		transition: none !important;
		animation: none !important;
	}

	body.socp-portal .woocommerce-MyAccount-navigation ul {
		scroll-behavior: auto;
	}

	body.socp-portal a.socp-tile:hover {
		transform: none;
	}
}

/* ---------- 18. Slide Off additions ---------- */
/* page 12 carries the full-bleed hero, so the utilities plugin zeroes Blocksy's vertical padding
   (body.so-flush); the account area brings its own. */
body.socp-portal.so-flush .entry-content > .woocommerce {
	padding: 44px 0 72px;
}

body.socp-portal .socp-num,
body.socp-portal .socp-sku,
body.socp-portal .woocommerce-orders-table__cell-order-number a,
body.socp-portal .socp-order-card__number,
body.socp-portal .socp-invoices-table th[scope="row"] a {
	font-family: var(--socp-mono);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0;
	text-transform: none;
}

body.socp-portal .socp-sku {
	font-size: 12.5px;
	color: var(--socp-char);
	background: var(--socp-slab);
	padding: 1px 5px;
	border-radius: 2px;
	white-space: nowrap;
}

body.socp-portal .socp-card__title.socp-num {
	font-family: var(--socp-display);
	font-size: 36px;
	line-height: 1;
	letter-spacing: .01em;
}

body.socp-portal .socp-table__actions .socp-actions {
	margin: 0;
	gap: 6px;
}

body.socp-portal .socp-invoices__toolbar {
	margin: 0 0 14px;
}

body.socp-portal .socp-invoices__toolbar .socp-status-help {
	flex: 1 1 220px;
	display: inline;
	margin: 0;
}

body.socp-portal .socp-planned {
	display: block;
	margin: 12px 0 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--socp-char);
}

/* Buy again → "Add by part number" */
body.socp-portal .socp-sku-form__row {
	display: grid;
	grid-template-columns: minmax(180px, 1.6fr) minmax(90px, .6fr) auto;
	gap: 14px;
	align-items: end;
}

body.socp-portal .socp-sku-form__row .socp-form__row {
	margin: 0;
}

body.socp-portal .socp-sku-form__go .socp-btn {
	min-height: 48px;
}

body.socp-portal .socp-sku-form input[name="socp_sku"] {
	font-family: var(--socp-mono);
	text-transform: uppercase;
	letter-spacing: .04em;
}

body.socp-portal .socp-tile--static {
	background: var(--socp-slab);
}

@media (max-width: 640px) {
	body.socp-portal .socp-sku-form__row {
		grid-template-columns: 1fr;
	}

	body.socp-portal.so-flush .entry-content > .woocommerce {
		padding: 28px 0 56px;
	}
}
