/* =============================================================
   Excellent — Cuenta del cliente
   Autenticación (acceder / crear cuenta / recuperar clave) y panel
   del cliente (resumen, pedidos, direcciones, datos).
   Todo tokenizado: ver assets/css/tokens.css
   ============================================================= */

/* -------------------------------------------------------------
   Contenedor de las páginas de cuenta
   Bricks imprime el contenido en #brx-content sin contenedor propio
   y antepone el título de la página: lo neutralizamos.
   ------------------------------------------------------------- */
.woocommerce-account #brx-content > h1 { display: none; }
.woocommerce-account #brx-content { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
/* Bricks pone display:flex en .woocommerce y el bloque de cuenta encogía al
   ancho de su contenido en lugar de ocupar la columna. */
.woocommerce-account .woocommerce { display: block; width: 100%; }

/* Sin sesión el acceso es a sangre completa (foto editorial + formulario). */
.woocommerce-account:not(.logged-in) .site-main { padding-block: 0; }
.woocommerce-account:not(.logged-in) #brx-content { max-width: none; padding-inline: 0; }

/* WooCommerce enmarca sus formularios (borde punteado gris + radio + padding).
   No encaja con el layout editorial: los devolvemos a caja limpia. */
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.lost_reset_password,
.woocommerce-account form.edit-account,
.woocommerce-account .woocommerce-address-fields { border: 0; padding: 0; margin: 0; border-radius: 0; }
.woocommerce-account .col2-set .col-1, .woocommerce-account .col2-set .col-2 { width: 100%; float: none; }
/* WooCommerce centra el contenido de sus formularios; aquí todo va alineado a la izquierda.
   Bricks además los pone en flex-column con gap:10px, que se sumaba a los márgenes de
   cada campo: dentro del formulario todo separaba 10px más que fuera. Volvemos a flujo
   de bloque para que el único responsable del ritmo sean los tokens de espaciado.
   Se acota a .auth/.account: si se aplicara a todo form de la página, pisaría al
   buscador de la cabecera (.search-bar form, misma especificidad y cargado antes). */
.auth form, .account form { display: block; }
.auth form, .auth form p, .account form, .account form p { text-align: left; }

/* Medidor de fuerza de contraseña (lo inyecta WooCommerce por JS). */
.woocommerce-account .woocommerce-password-strength {
	margin: var(--space-1) 0 0; padding: var(--space-1) var(--space-2); border-radius: var(--radius);
	font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--tracking-mid);
	border-left: 3px solid var(--c-muted); background: var(--c-off-soft); color: var(--c-off);
}
.woocommerce-account .woocommerce-password-strength.short,
.woocommerce-account .woocommerce-password-strength.bad { border-left-color: var(--c-sale); background: var(--c-err-soft); color: var(--c-sale); }
.woocommerce-account .woocommerce-password-strength.good { border-left-color: var(--c-wait); background: var(--c-wait-soft); color: var(--c-wait); }
.woocommerce-account .woocommerce-password-strength.strong { border-left-color: var(--c-ok); background: var(--c-ok-soft); color: var(--c-ok); }
.woocommerce-account .woocommerce-password-hint { display: block; margin: var(--space-1) 0 0; font-size: var(--fs-xs); color: var(--c-muted); line-height: 1.6; }

/* Avisos de Woo: contenidos y separados del contenido. */
.woocommerce-account .woocommerce-notices-wrapper:not(:empty) { margin-bottom: var(--space-4); }
.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper:not(:empty) { max-width: var(--container); margin-inline: auto; padding: var(--space-4) var(--gutter) 0; }

/* =============================================================
   Campos de formulario (compartidos por cuenta y autenticación)
   ============================================================= */
/* WooCommerce/Bricks traen label{margin-bottom:5px}, que se sumaba al gap del
   contenedor: la separación etiqueta↔campo salía 14px en vez de los 8.75 del
   token, y descuadraba el ritmo de todos los formularios. */
.auth label, .account label { margin: 0; }

.field { display: flex; flex-direction: column; gap: var(--space-1); margin-bottom: var(--space-3); }
.field__label { font-family: var(--font-body); font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-ink); line-height: 1.2; }
.field__label .req { color: var(--c-gold); }
.field__hint { font-size: var(--fs-xs); color: var(--c-muted); }
.field__input {
	width: 100%; height: var(--field-h); padding: 0 var(--field-pad-x);
	border: var(--field-border) solid var(--c-line); border-radius: var(--radius); background: var(--c-white);
	font-family: var(--font-body); font-size: var(--fs-base); color: var(--c-ink);
	transition: border-color .2s var(--ease);
}
.field__input::placeholder { color: var(--c-muted); }
.field__input:hover { border-color: var(--c-body); }
.field__input:focus { outline: none; border-color: var(--c-ink); }
.field--half { flex: 1 1 12rem; }
.field-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* Casilla + enlace de utilidad bajo el formulario */
.field-check { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--fs-sm); color: var(--c-body); cursor: pointer; }
.field-check input { width: 1rem; height: 1rem; accent-color: var(--c-ink); margin: 0; }

/* Botón a ancho completo del formulario */
.btn--block { display: flex; width: 100%; height: var(--field-h); padding-block: 0; justify-content: center; }

/* =============================================================
   Autenticación — split: foto editorial + panel de formulario
   ============================================================= */
.auth { display: grid; grid-template-columns: 1.05fr .95fr; min-height: var(--auth-min-h); }

/* --- Columna visual --- */
.auth__visual { position: relative; overflow: hidden; background: var(--c-soft); display: flex; align-items: flex-end; }
.auth__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.auth__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,20,20,.72), rgba(20,20,20,.12) 55%, rgba(20,20,20,.28)); }
.auth__visual-body { position: relative; z-index: 2; padding: clamp(var(--space-3), 4vw, var(--space-6)); color: var(--c-white); max-width: 34rem; }
.auth__visual-body .eyebrow { color: var(--c-gold-soft); }
.auth__claim { color: var(--c-white); font-size: var(--fs-h2); margin: var(--space-1) 0 var(--space-2); letter-spacing: var(--tracking-tight); }
.auth__note { color: var(--c-white); opacity: .82; font-size: var(--fs-sm); margin: 0; }

/* --- Columna del formulario --- */
.auth__panel { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: clamp(var(--space-4), 5vw, var(--space-6)) clamp(var(--space-3), 4vw, var(--space-5)); background: var(--c-bg); }
.auth__inner { width: 100%; max-width: var(--auth-panel-max); }
.auth__logo { display: block; width: 8.5rem; margin: 0 0 var(--space-5); }

/* Pestañas Acceder / Crear cuenta */
.auth__tabs { display: flex; gap: var(--space-4); border-bottom: var(--hairline) solid var(--c-line); margin-bottom: var(--space-4); }
.auth__tab {
	appearance: none; background: none; border: 0; border-bottom: var(--focus-w) solid transparent;
	padding: 0 0 var(--space-2); cursor: pointer;
	font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 700;
	letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-muted);
	transition: color .2s var(--ease), border-color .2s var(--ease);
}
.auth__tab:hover { color: var(--c-ink); }
.auth__tab.is-active { color: var(--c-ink); border-bottom-color: var(--c-gold); }

/* Paneles: sin JS se muestran los dos, uno tras otro. */
.auth__pane + .auth__pane { margin-top: var(--space-5); padding-top: var(--space-5); border-top: var(--hairline) solid var(--c-line); }
.auth--js .auth__pane { display: none; margin: 0; padding: 0; border-top: 0; }
.auth--js .auth__pane.is-active { display: block; }
.auth--js .auth__pane-title { display: none; }

.auth__pane-title { font-size: var(--fs-h4); margin: 0 0 var(--space-2); }
.auth__lead { font-size: var(--fs-sm); color: var(--c-body); margin: 0 0 var(--space-4); }
.auth__utils { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-4); }
.auth__link { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-ink); border-bottom: var(--hairline) solid var(--c-line); padding-bottom: var(--space-05); }
.auth__link:hover { color: var(--c-gold); border-color: var(--c-gold); }
/* El texto legal lo imprime WooCommerce justo antes del botón: le damos el mismo
   aire arriba y abajo que al resto del formulario. */
.woocommerce-account .woocommerce-privacy-policy-text { margin: var(--space-3) 0; }
.auth__legal,
.woocommerce-account .woocommerce-privacy-policy-text p { font-size: var(--fs-xs); color: var(--c-muted); margin: 0; line-height: 1.6; text-align: left; }
/* El aviso de privacidad ya lleva el margen en su contenedor; este va suelto. */
.auth__legal { margin-top: var(--space-3); }
.auth__legal a,
.woocommerce-account .woocommerce-privacy-policy-text a { color: var(--c-body); border-bottom: var(--hairline) solid var(--c-line); }
.auth__legal a:hover,
.woocommerce-account .woocommerce-privacy-policy-text a:hover { color: var(--c-gold); }

/* Ventajas de crear cuenta */
.auth__perks { list-style: none; margin: var(--space-4) 0 0; padding: var(--space-3) 0 0; border-top: var(--hairline) solid var(--c-line); display: grid; gap: var(--space-1); }
.auth__perks li { position: relative; padding-left: var(--space-3); font-size: var(--fs-sm); color: var(--c-body); }
.auth__perks li::before { content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; background: var(--c-gold); }

/* Variante centrada: recuperar / restablecer contraseña */
.auth--single { display: block; min-height: 0; padding-block: var(--space-6); }
.auth--single .auth__inner { margin-inline: auto; }
.auth--single .auth__panel { padding: 0; }

/* =============================================================
   Shell de la cuenta (con sesión iniciada)
   ============================================================= */
/* La cabecera separa con su borde inferior; no necesita además el hueco grande
   de columna (--account-gap), que dejaba casi 100px de aire muerto arriba.
   El padding superior es mínimo a propósito: .site-main ya aporta --section-y
   (50px) por encima, y sumar aquí otro tanto duplicaba el aire de entrada. */
.account__head { padding-block: var(--space-1) var(--space-2); border-bottom: var(--hairline) solid var(--c-line); margin-bottom: var(--space-3); }
.account__title { font-size: var(--fs-h3); margin: var(--space-05) 0 var(--space-1); letter-spacing: var(--tracking-tight); }
.account__headrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-1) var(--space-3); }
.account__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); font-size: var(--fs-sm); color: var(--c-muted); margin: 0; }
/* El separador cuelga del elemento anterior: si la línea se parte, no queda
   un "·" suelto abriendo la línea siguiente. */
.account__meta span:not(:last-child)::after { content: "·"; margin-left: var(--space-2); color: var(--c-line); }
.account__logout { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-ink); border-bottom: var(--hairline) solid var(--c-line); padding-bottom: var(--space-05); }
.account__logout:hover { color: var(--c-sale); border-color: var(--c-sale); }

.account__layout { display: grid; grid-template-columns: var(--account-nav-w) minmax(0, 1fr); gap: var(--account-gap); padding-bottom: var(--space-6); align-items: start; }

/* --- Navegación lateral --- */
/* Bricks pinta el <nav> con un gris propio (#f5f6f7) que no es de la paleta.
   Lo asumimos como panel deliberado usando el token del proyecto. */
.account-nav { position: sticky; top: var(--space-3); background: var(--c-soft); }
/* El selector desplegable solo existe en móvil y solo si el JS lo activa. */
.account-nav__toggle { display: none; }
.account-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.account-nav li + li { border-top: var(--hairline) solid var(--c-line); }
.account-nav a {
	display: flex; align-items: center; gap: var(--space-2);
	padding: var(--space-2) var(--space-3);
	font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 700;
	letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-body);
	/* Bricks fija line-height:60px a los enlaces dentro de <nav>: lo neutralizamos. */
	line-height: 1.3;
	transition: color .2s var(--ease), background-color .2s var(--ease);
}
.account-nav a:hover { color: var(--c-ink); background: var(--c-white); }
.account-nav .is-active > a { background: var(--c-white); box-shadow: inset 3px 0 0 var(--c-gold); }
.account-nav__ic { flex: none; width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.account-nav .is-active > a { color: var(--c-ink); }
.account-nav .is-active > a .account-nav__ic { color: var(--c-gold); }
.account-nav .woocommerce-MyAccount-navigation-link--customer-logout { border-top: var(--hairline) solid var(--c-line); }
.account-nav .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--c-muted); }
.account-nav .woocommerce-MyAccount-navigation-link--customer-logout a:hover { color: var(--c-sale); }

/* =============================================================
   Panel de resumen (dashboard)
   ============================================================= */
.acc-section + .acc-section { margin-top: var(--space-5); }
.acc-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.acc-section__title { font-size: var(--fs-h5); margin: 0; }

/* Cifras del cliente */
.acc-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); }
.acc-stat { border: var(--hairline) solid var(--c-line); padding: var(--account-card-pad); }
.acc-stat__label { display: block; font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-muted); margin-bottom: var(--space-1); }
.acc-stat__value { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: 900; line-height: 1; color: var(--c-ink); letter-spacing: var(--tracking-tight); }
.acc-stat__foot { display: block; font-size: var(--fs-xs); color: var(--c-muted); margin-top: var(--space-1); }
.acc-stat--accent { background: var(--c-ink); border-color: var(--c-ink); }
.acc-stat--accent .acc-stat__label { color: var(--c-gold-soft); }
.acc-stat--accent .acc-stat__value, .acc-stat--accent .acc-stat__foot { color: var(--c-white); }
.acc-stat--accent .acc-stat__foot { opacity: .7; }

/* Accesos rápidos */
.acc-quick { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2); }
.acc-quick__card { display: flex; align-items: flex-start; gap: var(--space-2); border: var(--hairline) solid var(--c-line); padding: var(--account-card-pad); transition: border-color .2s var(--ease); }
.acc-quick__card:hover { border-color: var(--c-ink); }
.acc-quick__ic { flex: none; width: 22px; height: 22px; stroke: var(--c-gold); stroke-width: 1.5; fill: none; stroke-linecap: round; stroke-linejoin: round; margin-top: 2px; }
.acc-quick__title { display: block; font-family: var(--font-display); font-size: var(--fs-h6); font-weight: 900; text-transform: uppercase; color: var(--c-ink); line-height: 1.15; margin-bottom: var(--space-05); }
.acc-quick__desc { display: block; font-size: var(--fs-sm); color: var(--c-body); line-height: 1.5; }

/* Estado vacío */
.acc-empty { border: var(--hairline) solid var(--c-line); padding: clamp(var(--space-4), 6vw, var(--space-6)); text-align: center; }
.acc-empty__title { font-size: var(--fs-h5); margin: 0 0 var(--space-1); }
.acc-empty__text { font-size: var(--fs-sm); color: var(--c-body); max-width: 34rem; margin: 0 auto var(--space-3); }

/* =============================================================
   Pastillas de estado del pedido
   ============================================================= */
.acc-status {
	display: inline-flex; align-items: center; gap: var(--space-1); flex: none;
	padding: .38em .7em; border-radius: var(--radius);
	font-family: var(--font-body); font-size: var(--fs-2xs); font-weight: 700;
	letter-spacing: var(--tracking-mid); text-transform: uppercase; line-height: 1;
	background: var(--c-off-soft); color: var(--c-off);
}
.acc-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.acc-status--completed { background: var(--c-ok-soft); color: var(--c-ok); }
.acc-status--processing, .acc-status--on-hold, .acc-status--pending { background: var(--c-wait-soft); color: var(--c-wait); }
.acc-status--failed { background: var(--c-err-soft); color: var(--c-sale); }

/* =============================================================
   Pedidos — listado en tarjetas
   ============================================================= */
/* Dos pedidos por fila: en la columna de contenido (~1090px) cada tarjeta queda
   en ~535px, suficiente para leerse sin huecos y con la mitad de scroll. */
.acc-orders { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); align-items: start; }
/* Fila 1: fotos · identificación · total. Fila 2: estado · acción.
   La columna de datos absorbe el sobrante, así no queda vacío central. */
.acc-order {
	border: var(--hairline) solid var(--c-line); padding: var(--account-card-pad);
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
	gap: var(--space-2) var(--space-2); align-items: center;
	transition: border-color .2s var(--ease);
}
/* Colocación explícita: con el pedido en 5 elementos, dejar que la rejilla
   los coloque sola parte la tarjeta en tres filas. */
.acc-order__thumbs { grid-column: 1; grid-row: 1; }
.acc-order__info { grid-column: 2; grid-row: 1; }
.acc-order__total { grid-column: 3; grid-row: 1; justify-self: end; }
.acc-order .acc-status { grid-column: 1 / 3; grid-row: 2; justify-self: start; }
.acc-order__actions { grid-column: 3; grid-row: 2; justify-self: end; }
.acc-order:hover { border-color: var(--c-ink); }
.acc-order__thumbs { display: flex; }
.acc-order__thumbs img { width: 48px; height: 60px; object-fit: cover; background: var(--c-soft); border: var(--hairline) solid var(--c-white); }
.acc-order__thumbs img + img { margin-left: calc(var(--space-2) * -1); }
.acc-order__more { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 60px; margin-left: calc(var(--space-2) * -1); background: var(--c-soft); border: var(--hairline) solid var(--c-white); font-size: var(--fs-xs); font-weight: 700; color: var(--c-body); }
.acc-order__info { display: flex; flex-direction: column; gap: var(--space-05); min-width: 0; }
.acc-order__num { font-family: var(--font-display); font-size: var(--fs-h6); font-weight: 900; text-transform: uppercase; color: var(--c-ink); line-height: 1.1; }
.acc-order__meta { font-size: var(--fs-xs); letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-muted); }
.acc-order__total { font-family: var(--font-display); font-size: var(--fs-h6); font-weight: 900; color: var(--c-ink); white-space: nowrap; }
.acc-order__actions { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.acc-order__actions .btn { padding: .8em 1.5em; }

/* Paginación de pedidos */
.acc-pagination { display: flex; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-4); }

/* =============================================================
   Pedido individual (detalle)
   ============================================================= */
.acc-order-detail__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-4); }
.acc-back { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-muted); margin-bottom: var(--space-2); }
.acc-back:hover { color: var(--c-ink); }

/* Seguimiento del pedido: hitos marcados sobre un raíl. Con solo líneas no se
   distinguía un tramo recorrido de una simple separación. */
.acc-track { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.acc-track__step { position: relative; text-align: center; }
/* El tramo pertenece al hito que llega a él, así se colorea con su mismo estado. */
.acc-track__step::before {
	content: ""; position: absolute; top: 13px; left: -50%; right: 50%;
	margin-inline: var(--space-2); height: 2px; background: var(--c-line);
}
.acc-track__step:first-child::before { display: none; }
.acc-track__step.is-done::before { background: var(--c-gold); }

.acc-track__marker {
	position: relative; z-index: 1;
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%;
	border: 2px solid var(--c-line); background: var(--c-bg); color: var(--c-white);
	transition: background-color .2s var(--ease), border-color .2s var(--ease);
}
.acc-track__marker svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.acc-track__step.is-done .acc-track__marker { border-color: var(--c-gold); background: var(--c-gold); }
/* Halo en el hito actual: dice de un vistazo dónde está el pedido. */
.acc-track__step.is-current .acc-track__marker { box-shadow: 0 0 0 5px var(--c-gold-soft); }

.acc-track__label { display: block; margin-top: var(--space-1); font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-muted); }
.acc-track__step.is-done .acc-track__label { color: var(--c-ink); }
.acc-track__now { display: block; margin-top: var(--space-05); font-size: var(--fs-2xs); color: var(--c-gold); letter-spacing: var(--tracking-mid); }

/* Artículos del pedido */
.acc-items { border-top: var(--hairline) solid var(--c-line); }
.acc-item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: var(--space-2) var(--space-3); align-items: center; padding: var(--space-3) 0; border-bottom: var(--hairline) solid var(--c-line); }
.acc-item__media { width: 72px; aspect-ratio: 3 / 4; overflow: hidden; background: var(--c-soft); }
.acc-item__media img { width: 100%; height: 100%; object-fit: cover; }
.acc-item__brand { display: block; font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-muted); margin-bottom: var(--space-05); }
.acc-item__name { display: block; font-family: var(--font-body); font-size: var(--fs-base); font-weight: 600; color: var(--c-ink); }
.acc-item__meta { display: block; font-size: var(--fs-xs); color: var(--c-muted); margin-top: var(--space-05); }
.acc-item__price { font-weight: 700; color: var(--c-ink); white-space: nowrap; }

/* Totales */
.acc-totals { list-style: none; margin: var(--space-3) 0 0; padding: 0; margin-left: auto; max-width: 22rem; }
.acc-totals li { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-1) 0; font-size: var(--fs-sm); color: var(--c-body); }
.acc-totals li strong { font-weight: 600; color: var(--c-body); }
.acc-totals .acc-totals__grand { border-top: var(--hairline) solid var(--c-line); margin-top: var(--space-1); padding-top: var(--space-2); font-family: var(--font-display); font-size: var(--fs-h5); font-weight: 900; text-transform: uppercase; color: var(--c-ink); }
.acc-totals .acc-totals__grand strong { font-weight: 900; color: var(--c-ink); }

/* =============================================================
   Direcciones y datos
   ============================================================= */
.acc-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2); }
.acc-card { border: var(--hairline) solid var(--c-line); padding: var(--account-card-pad); display: flex; flex-direction: column; gap: var(--space-2); }
.acc-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); }
.acc-card__title { font-size: var(--fs-h6); margin: 0; }
.acc-card__edit { font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-ink); border-bottom: var(--hairline) solid var(--c-line); padding-bottom: var(--space-05); }
.acc-card__edit:hover { color: var(--c-gold); border-color: var(--c-gold); }
.acc-card address { font-style: normal; font-size: var(--fs-sm); color: var(--c-body); line-height: 1.7; margin: 0; }
.acc-card__empty { font-size: var(--fs-sm); color: var(--c-muted); margin: 0; }

/* Formularios de la cuenta (datos, direcciones) */
.acc-form { max-width: 40rem; }
.acc-form__group { border: 0; margin: 0 0 var(--space-4); padding: 0; }
.acc-form__legend { display: block; width: 100%; font-family: var(--font-display); font-size: var(--fs-h6); font-weight: 900; text-transform: uppercase; color: var(--c-ink); padding: 0 0 var(--space-2); margin-bottom: var(--space-3); border-bottom: var(--hairline) solid var(--c-line); }
.acc-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
/* Grupos independientes (datos personales / contraseña) uno al lado del otro:
   aprovecha el ancho de la columna y evita una página que solo se scrollea. */
.acc-form.acc-form--split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--account-gap); align-items: start; max-width: none; }
.acc-form--split .acc-form__actions { grid-column: 1 / -1; }
.acc-form__note { font-size: var(--fs-xs); color: var(--c-muted); margin: 0 0 var(--space-3); }
/* Si la nota cierra el grupo, su margen se sumaba al del grupo y dejaba el doble
   de aire antes del botón. */
.acc-form__group > .acc-form__note:last-child { margin-bottom: 0; }

/* Campos que WooCommerce genera con su propio marcado (editar dirección) */
.woocommerce-account .woocommerce-address-fields .form-row,
.woocommerce-account .woocommerce-EditAccountForm .form-row { display: flex; flex-direction: column; gap: var(--space-1); margin: 0 0 var(--space-3); padding: 0; float: none; width: 100%; }
.woocommerce-account .woocommerce-address-fields label,
.woocommerce-account .woocommerce-EditAccountForm label { font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-ink); }
.woocommerce-account .woocommerce-address-fields .form-row input.input-text,
.woocommerce-account .woocommerce-address-fields .form-row select,
.woocommerce-account .woocommerce-address-fields .select2-selection--single {
	height: var(--field-h); padding: 0 var(--field-pad-x); border: var(--field-border) solid var(--c-line); border-radius: var(--radius);
	font-family: var(--font-body); font-size: var(--fs-base); color: var(--c-ink); background: var(--c-white);
}
.woocommerce-account .woocommerce-address-fields .form-row input.input-text:focus,
.woocommerce-account .woocommerce-address-fields .form-row select:focus { outline: none; border-color: var(--c-ink); }
.woocommerce-account .woocommerce-address-fields .select2-selection__rendered { line-height: calc(var(--field-h) - var(--field-border) * 2) !important; padding-left: 0 !important; }
.woocommerce-account .woocommerce-address-fields .select2-selection__arrow { height: var(--field-h); }
/* WooCommerce ya marca qué campos son de media línea (nombre/apellido) con
   form-row-first/last: los aprovechamos en vez de apilarlo todo a ancho completo. */
.woocommerce-account .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-2); margin-bottom: var(--space-3); }
.woocommerce-account .woocommerce-address-fields__field-wrapper .form-row { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-first { grid-column: 1; }
.woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-last { grid-column: 2; }
.woocommerce-account .woocommerce-address-fields h3, .woocommerce-account .woocommerce-EditAccountForm h3 { font-size: var(--fs-h6); }

/* =============================================================
   Foco visible (a11y)
   Los campos ya avisan del foco poniendo su borde en tinta, así que el anillo
   extra se leía como un segundo borde alrededor del campo. Se les quita a ellos
   y se conserva en enlaces y botones, que no tienen otra señal de foco.
   ============================================================= */
.woocommerce-account a:focus-visible,
.woocommerce-account button:focus-visible { outline: var(--focus-w) solid var(--c-gold); outline-offset: 2px; }
.woocommerce-account input:focus,
.woocommerce-account input:focus-visible,
.woocommerce-account select:focus,
.woocommerce-account select:focus-visible,
.woocommerce-account textarea:focus,
.woocommerce-account textarea:focus-visible { outline: none; box-shadow: none; }
/* Refuerzo del borde en foco para que la señal siga siendo evidente. */
.field__input:focus,
.woocommerce-account .woocommerce-address-fields .form-row input.input-text:focus,
.woocommerce-account .woocommerce-address-fields .form-row select:focus { border-color: var(--c-ink); }

/* =============================================================
   Responsive
   ============================================================= */
@media (max-width: 1024px) {
	.auth { grid-template-columns: 1fr; }
	.auth__visual { min-height: 20rem; }
	.account__layout { grid-template-columns: 1fr; gap: var(--space-4); }
	/* --- Navegación como selector de sección ---
	   En cuanto la navegación deja de ir en columna, una fila de cinco opciones
	   se parte en varias líneas y deja de leerse como un menú (pasaba ya a 769px).
	   En vez de pelear con el punto exacto en que cabe, aquí es siempre un
	   desplegable, que además dice en qué sección estás.
	   La clase la añade el JS: sin él la lista queda visible y todo sigue navegable. */
	.account-nav { position: static; }
	.account-nav--collapsible .account-nav__toggle { display: flex; }
	.account-nav--collapsible .account-nav__list { display: none; }
	.account-nav--collapsible.is-open .account-nav__list { display: flex; }

	.account-nav__toggle {
		width: 100%; align-items: center; justify-content: space-between; gap: var(--space-2);
		padding: var(--space-2) var(--space-3); border: 0; background: var(--c-soft);
		cursor: pointer; text-align: left; font-family: var(--font-body); color: var(--c-ink);
	}
	.account-nav__toggle-in { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
	.account-nav__toggle .account-nav__ic { stroke: var(--c-gold); }
	.account-nav__toggle-text { display: flex; flex-direction: column; gap: var(--space-05); }
	.account-nav__toggle-eyebrow { font-size: var(--fs-2xs); font-weight: 600; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--c-muted); line-height: 1; }
	.account-nav__toggle-current { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-mid); text-transform: uppercase; color: var(--c-ink); line-height: 1.2; }
	.account-nav__caret { flex: none; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s var(--ease); }
	.account-nav--collapsible.is-open .account-nav__caret { transform: rotate(180deg); }

	/* La lista desplegada: en blanco sobre el panel, para que se lea como panel abierto. */
	.account-nav__list { border-top: var(--hairline) solid var(--c-line); }
	.account-nav a { background: var(--c-white); }

	/* Con la navegación arriba, el contenido ocupa todo el ancho: un pedido por
	   fila pero en una sola línea, que aprovecha mejor ese ancho. */
	.acc-orders { grid-template-columns: 1fr; }
	.acc-order { grid-template-columns: auto minmax(0, 1fr) auto auto auto; gap: var(--space-2) var(--space-3); }
	.acc-order__thumbs, .acc-order__info, .acc-order__total,
	.acc-order .acc-status, .acc-order__actions { grid-column: auto; grid-row: auto; justify-self: auto; }
}

@media (max-width: 900px) {
	.acc-quick, .acc-cards { grid-template-columns: 1fr; }
	/* Sin ancho para dos columnas, los grupos del formulario vuelven a apilarse. */
	.acc-form.acc-form--split { display: block; max-width: 40rem; }
}

@media (max-width: 768px) {
	.auth { min-height: 0; }
	.auth__visual { min-height: 15rem; }
	.acc-stats { grid-template-columns: 1fr; }
	/* Foto + datos en la primera fila, estado y total en la segunda,
	   y la acción a lo ancho al final. */
	.acc-order { grid-template-columns: auto minmax(0, 1fr); }
	.acc-order .acc-status { justify-self: start; }
	.acc-order__total { justify-self: end; }
	.acc-order__actions { grid-column: 1 / -1; }
	.acc-order__actions .btn { flex: 1; justify-content: center; }
	.acc-order__actions .btn { flex: 1; justify-content: center; }
	/* En vertical: marcador a la izquierda, etiqueta al lado, y el tramo
	   ocupando el hueco que queda por encima de cada marcador. */
	.acc-track { grid-auto-flow: row; grid-auto-columns: auto; }
	.acc-track__step { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 0 var(--space-2); text-align: left; padding-top: var(--space-3); }
	.acc-track__step:first-child { padding-top: 0; }
	.acc-track__step::before { top: 0; left: 13px; right: auto; width: 2px; height: var(--space-3); margin-inline: 0; }
	.acc-track__label { margin-top: 0; }
	.acc-track__now { grid-column: 2; }
	.acc-totals { max-width: none; }
}

@media (max-width: 560px) {
	.account__title { font-size: var(--fs-h3); }
	.acc-item { grid-template-columns: 56px minmax(0, 1fr); }
	.acc-item__media { width: 56px; }
	.acc-item__price { grid-column: 2; text-align: left; }
}
