/* Menú WhatsApp — Restaurantes: estilos públicos.
   Los colores/fuentes reales los define el bloque <style id="rwa-theme-vars">
   impreso en el <head> según el tema activo (ver RWA_Settings::print_theme_vars).
   Esta hoja añade profundidad, tipografía cuidada y microinteracciones sobre
   esos tokens, respetando cualquier preset o color personalizado. */

[data-rwa-theme] {
	--rwa-bg: #161311;
	--rwa-surface: #211C19;
	--rwa-text: #FAF6F2;
	--rwa-text-2: #B0A398;
	--rwa-accent: #FF5A1F;
	--rwa-accent-2: #FFC53D;
	--rwa-radius: 4px;
	--rwa-font-display: 'Archivo Black', sans-serif;
	--rwa-font-body: 'Inter', sans-serif;
	--rwa-image-ratio: 1/1;

	/* ---- tokens derivados para dar profundidad sin romper el theming ---- */
	--rwa-radius-lg: calc(var(--rwa-radius) + 10px);
	--rwa-radius-sm: calc(var(--rwa-radius) * 0.6);
	--rwa-border: color-mix(in srgb, var(--rwa-text-2) 28%, transparent);
	--rwa-border-soft: color-mix(in srgb, var(--rwa-text-2) 16%, transparent);
	--rwa-shadow-color: color-mix(in srgb, var(--rwa-bg) 80%, black);
	--rwa-shadow-sm: 0 2px 8px var(--rwa-shadow-color);
	--rwa-shadow-md: 0 8px 24px -6px var(--rwa-shadow-color);
	--rwa-shadow-lg: 0 20px 48px -12px var(--rwa-shadow-color);
	--rwa-accent-glow: color-mix(in srgb, var(--rwa-accent) 35%, transparent);
	--rwa-ease: cubic-bezier(.22, 1, .36, 1);

	background: var(--rwa-bg);
	color: var(--rwa-text);
	font-family: var(--rwa-font-body);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

[data-rwa-theme] * { box-sizing: border-box; }

/* ---------- Salvaguardas anti-desbordamiento ---------- */
[data-rwa-theme] {
	max-width: 100%;
	overflow-x: hidden;
}
[data-rwa-theme] img,
[data-rwa-theme] svg {
	max-width: 100%;
	height: auto;
}
[data-rwa-theme] h1,
[data-rwa-theme] h2,
[data-rwa-theme] h3,
[data-rwa-theme] p,
[data-rwa-theme] a,
[data-rwa-theme] span {
	overflow-wrap: break-word;
	word-break: break-word;
}
[data-rwa-theme] table {
	max-width: 100%;
	display: block;
	overflow-x: auto;
}

[data-rwa-theme] h1,
[data-rwa-theme] h2,
[data-rwa-theme] h3 {
	font-family: var(--rwa-font-display);
	color: var(--rwa-text);
	line-height: 1.15;
	letter-spacing: -.01em;
	margin: 0 0 .5em;
}

[data-rwa-theme] ::selection {
	background: var(--rwa-accent);
	color: #fff;
}

/* Foco accesible y consistente en toda la interfaz */
[data-rwa-theme] a:focus-visible,
[data-rwa-theme] button:focus-visible,
[data-rwa-theme] input:focus-visible,
[data-rwa-theme] select:focus-visible,
[data-rwa-theme] textarea:focus-visible {
	outline: 2px solid var(--rwa-accent);
	outline-offset: 2px;
}

@keyframes rwa-fade-up {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes rwa-pop {
	0%   { transform: scale(.8); opacity: 0; }
	60%  { transform: scale(1.05); opacity: 1; }
	100% { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	[data-rwa-theme] * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Fondo a pantalla completa ----------
   .rwa-archive-page, .rwa-cart-page, .rwa-checkout-page y .rwa-single-plato
   tienen un max-width para centrar el CONTENIDO, pero eso dejaba el color
   de fondo encerrado en esa columna angosta, con el blanco del tema del
   sitio a los lados. Este pseudo-elemento estira el color hasta los bordes
   reales de la pantalla, sin tocar el ancho del contenido. */
.rwa-archive-page,
.rwa-cart-page,
.rwa-checkout-page,
.rwa-single-plato {
	position: relative;
	isolation: isolate;
}
.rwa-archive-page::before,
.rwa-cart-page::before,
.rwa-checkout-page::before,
.rwa-single-plato::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	margin-left: -50vw;
	background: var(--rwa-bg);
	z-index: -1;
}

/* ---------- Cabecera de archivo/menú ---------- */
.rwa-archive-header {
	text-align: center;
	padding: .5em 0 .2em;
}
.rwa-archive-header h1 {
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	position: relative;
	display: inline-block;
	padding-bottom: .3em;
}
.rwa-archive-header h1::after {
	content: '';
	position: absolute;
	bottom: 0; left: 50%;
	transform: translateX(-50%);
	width: 56px; height: 4px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--rwa-accent), var(--rwa-accent-2));
}

/* ---------- Botones ---------- */
.rwa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45em;
	background: linear-gradient(155deg, var(--rwa-accent), color-mix(in srgb, var(--rwa-accent) 78%, black));
	color: #fff;
	border: none;
	border-radius: var(--rwa-radius);
	padding: .7em 1.3em;
	font-family: var(--rwa-font-body);
	font-weight: 700;
	font-size: .95rem;
	cursor: pointer;
	text-decoration: none;
	box-shadow: 0 6px 16px -4px var(--rwa-accent-glow);
	transition: transform .2s var(--rwa-ease), box-shadow .2s var(--rwa-ease), opacity .2s ease, filter .2s ease;
}
.rwa-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -4px var(--rwa-accent-glow); filter: brightness(1.04); }
.rwa-btn:active { transform: translateY(0); box-shadow: 0 4px 10px -4px var(--rwa-accent-glow); }
.rwa-btn-large { padding: 1em 1.6em; font-size: 1.05rem; width: 100%; }
.rwa-btn-disabled {
	background: color-mix(in srgb, var(--rwa-text-2) 35%, var(--rwa-surface));
	color: var(--rwa-text-2);
	box-shadow: none;
	cursor: not-allowed;
}
.rwa-btn-disabled:hover { transform: none; }
.rwa-btn-whatsapp {
	background: linear-gradient(155deg, #2CE369, #1DA851);
	color: #06371a;
	box-shadow: 0 6px 16px -4px rgba(37, 211, 102, .45);
}
.rwa-btn-whatsapp:hover { box-shadow: 0 10px 22px -4px rgba(37, 211, 102, .5); }
.rwa-btn-add-to-cart {
	background: linear-gradient(155deg, var(--rwa-accent-2), color-mix(in srgb, var(--rwa-accent-2) 75%, black));
	color: #1a1a1a;
	box-shadow: 0 6px 14px -4px color-mix(in srgb, var(--rwa-accent-2) 45%, transparent);
}
.rwa-btn-outline {
	background: transparent;
	color: var(--rwa-text-2);
	border: 1.5px solid var(--rwa-border);
	box-shadow: none;
}
.rwa-btn-outline:hover {
	border-color: var(--rwa-accent);
	color: var(--rwa-accent);
	background: color-mix(in srgb, var(--rwa-accent) 7%, transparent);
	box-shadow: none;
}
.rwa-btn-outline:active { box-shadow: none; }

/* ---------- Menú: toolbar / filtros ---------- */
.rwa-menu-title { text-align: center; margin-bottom: 1em; }
.rwa-closed-banner {
	background: linear-gradient(120deg, color-mix(in srgb, var(--rwa-accent) 14%, transparent), color-mix(in srgb, var(--rwa-accent) 6%, transparent));
	border: 1px solid color-mix(in srgb, var(--rwa-accent) 55%, transparent);
	color: var(--rwa-text);
	padding: .9em 1.3em;
	border-radius: var(--rwa-radius);
	margin: 0 0 1.4em;
	font-size: .95rem;
	display: flex;
	align-items: center;
	gap: .6em;
}
.rwa-closed-banner::before {
	content: '🕐';
	flex-shrink: 0;
	font-size: 1.1em;
}
.rwa-menu-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: .75em;
	align-items: center;
	margin-bottom: 1.8em;
	background: color-mix(in srgb, var(--rwa-surface) 60%, transparent);
	border: 1px solid var(--rwa-border-soft);
	padding: .7em;
	border-radius: var(--rwa-radius-lg);
}
.rwa-menu-search,
.rwa-filter-select,
.rwa-order-select {
	background: var(--rwa-surface);
	color: var(--rwa-text);
	border: 1px solid var(--rwa-border);
	border-radius: var(--rwa-radius);
	padding: .7em 1em;
	font-family: var(--rwa-font-body);
	max-width: 100%;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.rwa-menu-search:hover, .rwa-filter-select:hover, .rwa-order-select:hover { border-color: color-mix(in srgb, var(--rwa-accent) 50%, var(--rwa-border)); }
.rwa-menu-search:focus, .rwa-filter-select:focus, .rwa-order-select:focus {
	outline: none;
	border-color: var(--rwa-accent);
	box-shadow: 0 0 0 3px var(--rwa-accent-glow);
}
.rwa-menu-search { flex: 1 1 240px; min-width: 0; }
.rwa-menu-filters { display: flex; gap: .5em; flex-wrap: wrap; }
.rwa-filter-select,
.rwa-order-select { flex: 0 1 auto; max-width: 100%; }
@media (max-width: 480px) {
	.rwa-menu-toolbar { flex-direction: column; align-items: stretch; }
	.rwa-menu-search { flex-basis: auto; width: 100%; }
	.rwa-menu-filters { width: 100%; }
	.rwa-filter-select,
	.rwa-order-select { flex: 1 1 100%; width: 100%; }
}

/* ---------- Grid de platos ---------- */
.rwa-menu-grid {
	display: grid;
	grid-template-columns: repeat(var(--rwa-columns, 4), minmax(0, 1fr));
	gap: 1.6em;
}
.rwa-menu-grid.rwa-view-list { grid-template-columns: 1fr; }
@media (max-width: 900px) { .rwa-menu-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rwa-menu-grid { grid-template-columns: 1fr; } }

.rwa-plato-card {
	background: var(--rwa-surface);
	border: 1px solid var(--rwa-border-soft);
	border-radius: var(--rwa-radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
	box-shadow: var(--rwa-shadow-sm);
	transition: transform .3s var(--rwa-ease), box-shadow .3s var(--rwa-ease), border-color .3s ease;
	animation: rwa-fade-up .45s var(--rwa-ease) both;
}
.rwa-plato-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--rwa-shadow-lg);
	border-color: color-mix(in srgb, var(--rwa-accent) 35%, var(--rwa-border-soft));
}
.rwa-menu-grid.rwa-view-list .rwa-plato-card { flex-direction: row; }
.rwa-menu-grid.rwa-view-list .rwa-plato-card:hover { transform: translateY(-2px); }

.rwa-plato-card-media {
	position: relative;
	display: block;
	aspect-ratio: var(--rwa-image-ratio);
	overflow: hidden;
	background: color-mix(in srgb, var(--rwa-accent) 8%, var(--rwa-surface));
}
.rwa-menu-grid.rwa-view-list .rwa-plato-card-media { width: 150px; flex-shrink: 0; aspect-ratio: 1/1; }
.rwa-plato-card-media img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .5s var(--rwa-ease), filter .5s ease;
}
.rwa-plato-card:hover .rwa-plato-card-media img { transform: scale(1.08); }
.rwa-plato-card-media::after {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--rwa-surface) 65%, transparent) 100%);
	pointer-events: none;
	opacity: .75;
}
.rwa-plato-card-media-empty {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%; font-size: 2.6rem;
	filter: grayscale(.2) opacity(.85);
}
.rwa-plato-agotado-overlay {
	position: absolute; inset: 0;
	background: color-mix(in srgb, var(--rwa-bg) 70%, black 15%);
	backdrop-filter: blur(1.5px);
	color: #fff; display: flex; align-items: center; justify-content: center;
	font-weight: 700; text-transform: uppercase; font-size: .82rem; letter-spacing: .08em;
	z-index: 2;
}
.rwa-plato-card.is-agotado .rwa-plato-card-media img { filter: grayscale(.6) brightness(.8); }
.rwa-plato-badges { position: absolute; top: .6em; left: .6em; display: flex; gap: .35em; flex-wrap: wrap; z-index: 2; }
.rwa-badge {
	background: var(--rwa-accent-2);
	color: #1a1a1a;
	font-size: .68rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .03em;
	padding: .3em .7em;
	border-radius: 999px;
	box-shadow: 0 3px 8px rgba(0,0,0,.25);
}
.rwa-badge-promo, .rwa-badge-mas_pedido {
	background: linear-gradient(120deg, var(--rwa-accent), color-mix(in srgb, var(--rwa-accent) 70%, black));
	color: #fff;
}

.rwa-plato-card-body { padding: 1.1em 1.1em 1.2em; display: flex; flex-direction: column; gap: .45em; flex: 1; min-width: 0; }
.rwa-plato-card-title { font-size: 1.08rem; margin: 0; }
.rwa-plato-card-title a { color: var(--rwa-text); text-decoration: none; transition: color .15s ease; }
.rwa-plato-card-title a:hover { color: var(--rwa-accent); }
.rwa-plato-picante { font-size: .85rem; margin: 0; letter-spacing: .05em; }
.rwa-plato-card-excerpt { color: var(--rwa-text-2); font-size: .89rem; margin: 0; line-height: 1.5; }
.rwa-plato-card-detail {
	width: 100%;
	padding: .55em 1em;
	font-size: .82rem;
	font-weight: 600;
}
.rwa-plato-card-footer { margin-top: auto; padding-top: .4em; display: flex; align-items: center; justify-content: space-between; gap: .6em; flex-wrap: wrap; }
.rwa-plato-price { display: flex; flex-direction: column; }
.rwa-price-regular { text-decoration: line-through; color: var(--rwa-text-2); font-size: .8rem; }
.rwa-price-current { font-weight: 800; font-size: 1.12rem; color: var(--rwa-text); }
.rwa-no-results { color: var(--rwa-text-2); grid-column: 1/-1; text-align: center; padding: 3em 1em; }
.rwa-menu-pagination { display: flex; justify-content: center; gap: .4em; margin-top: 2em; }
.rwa-menu-pagination button {
	background: var(--rwa-surface); color: var(--rwa-text); border: 1px solid var(--rwa-border);
	border-radius: var(--rwa-radius); padding: .5em .9em; cursor: pointer;
	font-weight: 600; transition: all .15s ease;
}
.rwa-menu-pagination button:hover { border-color: var(--rwa-accent); transform: translateY(-1px); }
.rwa-menu-pagination button.is-active { background: linear-gradient(155deg, var(--rwa-accent), color-mix(in srgb, var(--rwa-accent) 78%, black)); color: #fff; border-color: transparent; box-shadow: 0 4px 12px -3px var(--rwa-accent-glow); }

/* ---------- Ficha individual de plato ---------- */
.rwa-single-plato {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 3em;
	max-width: 1100px;
	margin: 0 auto;
	padding: 2.5em 1em;
}
@media (max-width: 800px) { .rwa-single-plato { grid-template-columns: 1fr; gap: 1.6em; } }
.rwa-single-plato-media img {
	width: 100%; border-radius: var(--rwa-radius-lg); object-fit: cover; aspect-ratio: var(--rwa-image-ratio);
	box-shadow: var(--rwa-shadow-md);
}
.rwa-single-plato-gallery { display: flex; gap: .6em; margin-top: .7em; flex-wrap: wrap; }
.rwa-gallery-thumb img {
	width: 66px; height: 66px; object-fit: cover; border-radius: var(--rwa-radius-sm);
	border: 2px solid transparent; transition: border-color .15s ease, transform .15s ease; cursor: pointer;
}
.rwa-gallery-thumb img:hover { border-color: var(--rwa-accent); transform: translateY(-2px); }
.rwa-single-plato-title { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.rwa-single-plato-price { font-size: 1.5rem; font-weight: 800; margin-bottom: 1em; color: var(--rwa-accent); }
.rwa-single-plato-desc { color: var(--rwa-text-2); margin-bottom: 1.2em; line-height: 1.6; }
.rwa-single-plato-meta { list-style: none; padding: 0; margin: 0 0 1.2em; font-size: .92rem; color: var(--rwa-text-2); display: flex; flex-direction: column; gap: .4em; }
.rwa-single-plato-meta li { padding: .2em 0; border-bottom: 1px dashed var(--rwa-border-soft); }
.rwa-single-plato-meta strong { color: var(--rwa-text); }
.rwa-single-plato-extras, .rwa-single-plato-nota-entrega {
	font-size: .9rem; color: var(--rwa-text-2); margin-bottom: 1.1em;
	background: color-mix(in srgb, var(--rwa-surface) 70%, transparent);
	border: 1px solid var(--rwa-border-soft); padding: .8em 1em; border-radius: var(--rwa-radius);
}
.rwa-single-plato-add { display: flex; gap: .7em; margin-bottom: 1em; flex-wrap: wrap; }
.rwa-qty-input {
	width: 76px; padding: .7em; border-radius: var(--rwa-radius); border: 1px solid var(--rwa-border);
	background: var(--rwa-surface); color: var(--rwa-text); text-align: center; font-weight: 700;
}
.rwa-nota-input {
	flex: 1 1 200px; padding: .7em; border-radius: var(--rwa-radius); border: 1px solid var(--rwa-border);
	background: var(--rwa-surface); color: var(--rwa-text);
}
.rwa-single-plato-bajo-pedido { font-size: .85rem; color: var(--rwa-text-2); font-style: italic; }

/* ---------- Carrito ---------- */
.rwa-cart-page { max-width: 900px; margin: 0 auto; padding: 2.5em 1em; }
.rwa-cart-page > h1 { text-align: center; }
.rwa-cart-empty {
	text-align: center; color: var(--rwa-text-2); padding: 4em 1em;
	background: var(--rwa-surface); border: 1px dashed var(--rwa-border); border-radius: var(--rwa-radius-lg);
}
.rwa-cart-empty::before { content: '🛒'; display: block; font-size: 2.6rem; margin-bottom: .4em; opacity: .7; }
.rwa-cart-list { list-style: none; padding: 0; margin: 0 0 1.5em; display: flex; flex-direction: column; gap: 1em; }
.rwa-cart-item {
	display: grid;
	grid-template-columns: 68px 1fr auto auto auto;
	grid-template-areas: "thumb info qty subtotal remove";
	gap: 1em;
	align-items: center;
	background: var(--rwa-surface);
	border: 1px solid var(--rwa-border-soft);
	padding: .9em;
	border-radius: var(--rwa-radius);
	max-width: 100%;
	box-shadow: var(--rwa-shadow-sm);
	transition: box-shadow .2s ease, border-color .2s ease;
}
.rwa-cart-item:hover { box-shadow: var(--rwa-shadow-md); border-color: var(--rwa-border); }
.rwa-cart-item-thumb { grid-area: thumb; }
.rwa-cart-item-info { grid-area: info; display: flex; flex-direction: column; min-width: 0; }
.rwa-cart-item-qty { grid-area: qty; }
.rwa-cart-item-subtotal { grid-area: subtotal; }
.rwa-cart-item-remove { grid-area: remove; }
.rwa-cart-item-thumb img, .rwa-cart-item-thumb span { width: 68px; height: 68px; border-radius: var(--rwa-radius-sm); object-fit: cover; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; }
.rwa-cart-item-name { color: var(--rwa-text); text-decoration: none; font-weight: 700; }
.rwa-cart-item-name:hover { color: var(--rwa-accent); }
.rwa-cart-item-nota { font-size: .8rem; color: var(--rwa-text-2); margin: .2em 0 0; font-style: italic; }
.rwa-cart-item-price { font-size: .85rem; color: var(--rwa-text-2); }
.rwa-cart-item-qty { display: flex; align-items: center; gap: .35em; }
.rwa-qty-btn {
	width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--rwa-border); background: var(--rwa-bg);
	color: var(--rwa-text); cursor: pointer; flex-shrink: 0; font-weight: 700; transition: all .15s ease;
}
.rwa-qty-btn:hover { border-color: var(--rwa-accent); color: var(--rwa-accent); }
.rwa-cart-item-qty input { width: 46px; text-align: center; background: var(--rwa-bg); border: 1px solid var(--rwa-border); border-radius: var(--rwa-radius-sm); color: var(--rwa-text); padding: .35em; }
.rwa-cart-item-subtotal { font-weight: 800; white-space: nowrap; color: var(--rwa-text); }
.rwa-cart-item-remove { background: none; border: none; color: var(--rwa-text-2); font-size: 1.3rem; cursor: pointer; flex-shrink: 0; transition: color .15s ease, transform .15s ease; }
.rwa-cart-item-remove:hover { color: var(--rwa-accent); transform: scale(1.15); }

@media (max-width: 640px) {
	.rwa-cart-item {
		grid-template-columns: 56px 1fr auto;
		grid-template-areas:
			"thumb info remove"
			"qty qty subtotal";
		row-gap: .7em;
	}
	.rwa-cart-item-thumb img, .rwa-cart-item-thumb span { width: 56px; height: 56px; }
	.rwa-cart-item-subtotal { justify-self: end; }
}
.rwa-cart-summary {
	background: var(--rwa-surface); border: 1px solid var(--rwa-border-soft);
	padding: 1.4em; border-radius: var(--rwa-radius-lg); box-shadow: var(--rwa-shadow-sm);
}
.rwa-cart-total { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.3rem; margin-bottom: 1em; font-weight: 700; }
.rwa-cart-total strong { color: var(--rwa-accent); font-size: 1.35rem; }
.rwa-cart-note { font-size: .8rem; color: var(--rwa-text-2); margin-top: .9em; text-align: center; }

/* ---------- Checkout ---------- */
.rwa-checkout-page { max-width: 1100px; margin: 0 auto; padding: 2.5em 1em; }
.rwa-checkout-header { text-align: center; margin-bottom: 1.6em; }
.rwa-checkout-note { color: var(--rwa-text-2); font-size: .9rem; }
.rwa-checkout-error {
	background: color-mix(in srgb, var(--rwa-accent) 14%, transparent);
	border: 1px solid var(--rwa-accent); border-radius: var(--rwa-radius);
	padding: .9em 1.3em; margin-bottom: 1.4em;
}
.rwa-checkout-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2em; align-items: start; }
@media (max-width: 800px) { .rwa-checkout-grid { grid-template-columns: 1fr; } }
.rwa-form-section {
	background: var(--rwa-surface); border: 1px solid var(--rwa-border-soft);
	padding: 1.4em; border-radius: var(--rwa-radius-lg); margin-bottom: 1.4em;
	box-shadow: var(--rwa-shadow-sm);
}
.rwa-form-section-title {
	font-size: 1.1rem; display: flex; align-items: center; gap: .5em;
	padding-bottom: .5em; border-bottom: 1px solid var(--rwa-border-soft); margin-bottom: 1em;
}
.rwa-field { margin-bottom: 1.1em; }
.rwa-field:last-child { margin-bottom: 0; }
.rwa-field label { display: block; margin-bottom: .4em; font-weight: 700; font-size: .9rem; }
.rwa-field input, .rwa-field textarea {
	width: 100%; padding: .8em; border-radius: var(--rwa-radius); border: 1px solid var(--rwa-border);
	background: var(--rwa-bg); color: var(--rwa-text); font-family: var(--rwa-font-body);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.rwa-field input:focus, .rwa-field textarea:focus {
	outline: none; border-color: var(--rwa-accent); box-shadow: 0 0 0 3px var(--rwa-accent-glow);
}
.rwa-field-row { display: flex; gap: 1em; flex-wrap: wrap; }
.rwa-field-row .rwa-field { flex: 1 1 200px; min-width: 0; }
.rwa-required { color: var(--rwa-accent); }
.rwa-delivery-options { display: flex; gap: 1em; flex-wrap: wrap; margin-bottom: 1em; }
.rwa-delivery-option {
	flex: 1 1 180px; display: flex; align-items: center; gap: .7em;
	background: var(--rwa-bg); border: 2px solid var(--rwa-border-soft); border-radius: var(--rwa-radius);
	padding: .9em; cursor: pointer; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.rwa-delivery-option:hover { transform: translateY(-2px); }
.rwa-delivery-option.is-selected, .rwa-delivery-option:has(input:checked) {
	border-color: var(--rwa-accent);
	box-shadow: 0 4px 14px -4px var(--rwa-accent-glow);
}
.rwa-delivery-option input { position: absolute; opacity: 0; pointer-events: none; }
.rwa-delivery-icon { font-size: 1.5rem; flex-shrink: 0; }
.rwa-delivery-text { min-width: 0; }
.rwa-delivery-text small { color: var(--rwa-text-2); display: block; font-size: .78rem; }
.rwa-delivery-radio {
	width: 19px;
	height: 19px;
	border-radius: 50%;
	border: 2px solid var(--rwa-text-2);
	margin-left: auto;
	flex-shrink: 0;
	transition: border-color .2s ease;
}
.rwa-delivery-option.is-selected .rwa-delivery-radio,
.rwa-delivery-option:has(input:checked) .rwa-delivery-radio {
	border-color: var(--rwa-accent);
	box-shadow: inset 0 0 0 3px var(--rwa-surface), inset 0 0 0 100px var(--rwa-accent);
}
.rwa-checkout-summary {
	background: var(--rwa-surface); border: 1px solid var(--rwa-border-soft);
	padding: 1.4em; border-radius: var(--rwa-radius-lg); position: sticky; top: 1em;
	box-shadow: var(--rwa-shadow-sm);
}
.rwa-checkout-summary ul { list-style: none; padding: 0; margin: 0 0 1.1em; display: flex; flex-direction: column; gap: .9em; }
.rwa-checkout-summary li { display: grid; grid-template-columns: 50px 1fr auto; gap: .8em; align-items: center; }
.rwa-summary-thumb { width: 50px; height: 50px; border-radius: var(--rwa-radius-sm); object-fit: cover; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rwa-summary-item-info { display: flex; flex-direction: column; min-width: 0; }
.rwa-summary-item-subtotal { white-space: nowrap; font-weight: 700; }
.rwa-summary-item-name { font-weight: 700; font-size: .9rem; }
.rwa-summary-item-qty { font-size: .8rem; color: var(--rwa-text-2); }
.rwa-summary-item-nota { font-size: .75rem; color: var(--rwa-text-2); font-style: italic; }
.rwa-checkout-total { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.25rem; font-weight: 700; border-top: 1px solid var(--rwa-border-soft); padding-top: .9em; }
.rwa-checkout-total strong { color: var(--rwa-accent); font-size: 1.3rem; }

/* ---------- Pantalla de éxito ---------- */
.rwa-order-success { text-align: center; max-width: 480px; margin: 3.5em auto; padding: 2.5em 1.5em; background: var(--rwa-surface); border-radius: var(--rwa-radius-lg); box-shadow: var(--rwa-shadow-md); }
.rwa-success-icon { font-size: 3.4rem; color: var(--rwa-accent-2); display: inline-block; animation: rwa-pop .5s var(--rwa-ease) both; }

/* ---------- Mini carrito flotante ---------- */
.rwa-minicart-toggle {
	position: fixed; top: 16px; right: 16px; z-index: 99999;
	background: linear-gradient(155deg, var(--rwa-accent, #FF5A1F), color-mix(in srgb, var(--rwa-accent, #FF5A1F) 75%, black));
	color: #fff;
	border: none; border-radius: 50%; width: 54px; height: 54px; cursor: pointer; font-size: 21px;
	box-shadow: 0 8px 20px -4px var(--rwa-accent-glow, rgba(255,90,31,.4)); display: flex; align-items: center; justify-content: center;
	transition: transform 0.2s var(--rwa-ease, ease), box-shadow .2s ease;
}
.rwa-minicart-toggle:hover { transform: scale(1.08) rotate(-4deg); }
.rwa-minicart-count {
	position: absolute; top: -4px; right: -4px; background: var(--rwa-accent-2, #FFC53D); color: #1a1a1a; font-size: 11px;
	font-weight: 800; border-radius: 50%; width: 21px; height: 21px; line-height: 21px; box-shadow: 0 0 0 2px var(--rwa-bg, #161311);
}
.rwa-minicart-panel {
	position: fixed; top: 0; right: -380px; width: 380px; max-width: 92vw; height: 100%;
	background: var(--rwa-surface, #211C19); color: var(--rwa-text, #FAF6F2); box-shadow: -8px 0 32px rgba(0,0,0,0.35);
	z-index: 100000; transition: right 0.3s var(--rwa-ease, ease); padding: 28px 24px; overflow-y: auto;
	display: flex; flex-direction: column; font-family: var(--rwa-font-body);
}
.rwa-minicart-panel.is-open { right: 0; }
.rwa-minicart-panel h3 { margin: 0 0 20px; font-size: 18px; font-family: var(--rwa-font-display); }
.rwa-minicart-items { flex: 1; }
.rwa-minicart-items p { color: var(--rwa-text-2, #B0A398); font-size: 14px; text-align: center; padding: 2em 0; }
.rwa-minicart-item {
	display: flex; gap: 12px; margin-bottom: 14px; padding-bottom: 14px; align-items: center;
	border-bottom: 1px solid color-mix(in srgb, var(--rwa-text-2, #B0A398) 20%, transparent);
}
.rwa-minicart-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.rwa-minicart-item img { width: 52px; height: 52px; object-fit: cover; border-radius: var(--rwa-radius-sm, 4px); flex-shrink: 0; }
.rwa-minicart-item-info { flex: 1; min-width: 0; }
.rwa-minicart-item-name { display: block; font-weight: 700; font-size: .9rem; }
.rwa-minicart-item-qty { font-size: .8rem; color: var(--rwa-text-2, #B0A398); }
.rwa-minicart-item-nota { font-size: .75rem; color: var(--rwa-text-2, #B0A398); font-style: italic; margin: 2px 0 0; }
.rwa-minicart-remove { background: none; border: none; font-size: 18px; cursor: pointer; color: var(--rwa-text-2, #B0A398); line-height: 1; padding: 4px; flex-shrink: 0; transition: color .15s ease; }
.rwa-minicart-remove:hover { color: var(--rwa-accent, #FF5A1F); }
.rwa-minicart-close {
	position: absolute; top: 20px; right: 20px; background: color-mix(in srgb, var(--rwa-text-2, #B0A398) 15%, transparent);
	border: none; border-radius: 50%; width: 32px; height: 32px; font-size: 18px; cursor: pointer; color: var(--rwa-text, #FAF6F2);
	display: flex; align-items: center; justify-content: center; transition: background .15s ease;
}
.rwa-minicart-close:hover { background: color-mix(in srgb, var(--rwa-accent, #FF5A1F) 25%, transparent); }
.rwa-minicart-total { padding-top: 16px; margin-top: 4px; border-top: 2px solid color-mix(in srgb, var(--rwa-accent, #FF5A1F) 40%, transparent); font-size: 17px; font-weight: 700; display: flex; justify-content: space-between; }
.rwa-minicart-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); backdrop-filter: blur(2px); z-index: 99998; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.rwa-minicart-overlay.is-open { opacity: 1; pointer-events: auto; }
