/*
Theme Name: Naos
Theme URI: https://naoscoffee.com
Description: Block theme propio de Naos Coffee Roasters (naosv2). Sistema de diseño en theme.json; lógica en el mu-plugin naos-core.
Author: Naos Coffee
Version: 0.4.4
Requires at least: 7.1
Requires PHP: 8.4
Text Domain: naos
Update URI: false
*/

/* Lo que theme.json no puede expresar. Mantenerlo corto. */

/* Eyebrow: etiqueta en mono, mayúsculas y espaciado amplio (cifras, secciones). */
.is-style-eyebrow,
.naos-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 500;
}

/* Logo en línea: hereda el color del contenedor. */
.naos-logo { display: inline-flex; color: inherit; line-height: 0; }
.naos-logo svg { height: 2.6rem; width: auto; }
@media (max-width: 600px) { .naos-logo svg { height: 2rem; } }

/* Portadas a todo el ancho: el contenido, alineado con el de las secciones. */
.wp-block-cover.alignfull > .wp-block-cover__inner-container { width: min(100%, var(--wp--style--global--wide-size)) !important; margin-inline: auto !important; }
.wp-block-cover.alignfull > .wp-block-cover__inner-container > .alignwide { margin-left: 0 !important; }

/* Cabecera fija y fina. */
.naos-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .naos-header { top: var(--wp-admin--admin-bar--height, 0); }

/* Cabecera en Alborán: los iconos de cuenta y carrito, en cal. */
.naos-header .wc-block-mini-cart__button,
.naos-header .wp-block-woocommerce-customer-account a { color: var(--wp--preset--color--cal); }

/* Pie: listas sin viñeta ni sangría; los legales, en línea y discretos. */
.naos-lista-pie { list-style: none; padding-left: 0; margin-block: 0; }
.naos-lista-pie li { margin-block: 0.45em; }
.naos-lista-pie a { text-decoration: none; }
.naos-lista-pie a:hover { text-decoration: underline; }
.naos-pie-legal { row-gap: 0.5rem; }
.naos-pie-legal .naos-eyebrow { margin: 0; opacity: 0.7; }
.naos-lista-legal { display: flex; flex-wrap: wrap; gap: 0 1.5rem; font-size: var(--wp--preset--font-size--small); opacity: 0.7; }
.naos-lista-legal li { margin: 0; }
.naos-redes .wp-block-social-link-label { font-family: var(--wp--preset--font-family--mono); font-size: 0.9rem !important; letter-spacing: 0.04em; }
.naos-redes a { gap: 0.6rem; }

/* Las páginas anchas acaban en una sección a sangre: la newsletter va pegada. */
/* Si la página acaba en una sección con fondo, la newsletter va pegada a ella: sin el hueco
   del template part ni el margen de la newsletter (que sí se queda tras contenido sin fondo). */
.wp-site-blocks:has(main > .alignfull.has-background:last-child, main > .entry-content > :is(.alignfull.has-background, .wp-block-cover):last-child) > .wp-block-template-part:last-child { margin-block-start: 0; }
.wp-site-blocks:has(main > .alignfull.has-background:last-child, main > .entry-content > :is(.alignfull.has-background, .wp-block-cover):last-child) .naos-newsletter { margin-top: 0 !important; }

/* Newsletter del pie: email y botón en una fila, también en el móvil, con la misma altura y
   la misma forma de píldora; el consentimiento debajo, alineado con el borde del campo. */
.naos-formulario-linea { grid-template-columns: 1fr auto; align-items: end; column-gap: 0.6rem; }
/* La etiqueta trae un margen inferior de las hojas de WooCommerce: sin quitarlo, el botón
   queda 12 px más abajo que el campo. */
.naos-formulario-linea .naos-campo { margin: 0; }
.naos-formulario-linea .naos-campo input { height: 3.25rem; border-radius: 999px; padding: 0 1.25rem; }
.naos-formulario-linea button { height: 3.25rem; padding-block: 0; display: inline-flex; align-items: center; }
.naos-formulario-linea .naos-acepto,
.naos-formulario-linea .naos-formulario-aviso { grid-column: 1 / -1; }
.naos-formulario-linea .naos-formulario-aviso { order: 9; }
@media (max-width: 480px) { .naos-formulario-linea button { padding-inline: 1.1rem; } }

/* Enlace a la ficha o a la entrada (core/read-more) en tarjetas y en la Temporada. */
.naos-ver { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; font-weight: 500; }
.naos-ver:hover { text-decoration: underline; }
.naos-ver.naos-ver-boton { display: inline-block; margin-top: 1rem; padding: 0.9rem 1.6rem; border-radius: 999px; background: var(--wp--preset--color--olivo); color: var(--wp--preset--color--cal); }
.naos-ver.naos-ver-boton:hover { background: var(--wp--preset--color--olivo-claro); color: var(--wp--preset--color--azabache); text-decoration: none; }

/* Tarjetas del cuaderno de bitácora. */
.naos-tarjeta { border-radius: 8px; overflow: hidden; height: 100%; }
.naos-tarjeta > .wp-block-post-featured-image { margin: 0; }
.naos-tarjeta-cuerpo { padding: 1.25rem 1.4rem 1.5rem; }
.naos-tarjeta-cuerpo .wp-block-post-excerpt__excerpt { margin: 0; }

/* Precios y cifras en mono, tabulares. */
.wc-block-components-product-price,
.woocommerce-Price-amount { font-variant-numeric: tabular-nums; }

/* ── Componentes de las páginas (fase 5) ─────────────────────────────────── */

/* Lista con la estrella de la marca como viñeta. */
.naos-lista-estrella { list-style: none; padding-left: 0; }
.naos-lista-estrella li { padding-left: 1.5em; position: relative; margin-block: 0.35em; }
.naos-lista-estrella li::before { content: "✦"; position: absolute; left: 0; color: var(--wp--preset--color--olivo-claro); }

/* Preguntas frecuentes (core/details). */
.naos-pregunta { border-top: 1px solid currentColor; border-color: var(--wp--preset--color--linea); padding-block: 1.1rem; }
.naos-pregunta:last-child { border-bottom: 1px solid var(--wp--preset--color--linea); }
.naos-pregunta summary { cursor: pointer; font-weight: 500; font-size: var(--wp--preset--font-size--large); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.naos-pregunta summary::-webkit-details-marker { display: none; }
.naos-pregunta summary::after { content: "+"; font-family: var(--wp--preset--font-family--mono); color: var(--wp--preset--color--arcilla); }
.naos-pregunta[open] summary::after { content: "−"; }

/* Opiniones. */
.naos-opinion { border: 0; margin: 0; padding: 1.5rem; background: var(--wp--preset--color--blanco); border-radius: 6px; }
.naos-opinion cite { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; font-style: normal; }

/* Botón contorno: hereda el color de la sección (sirve en claro y en oscuro). */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: currentColor; border: 1.5px solid currentColor; }

/* Formularios propios (inc/formularios.php). */
.naos-formulario { display: grid; gap: 1rem; }
.naos-campo { display: grid; gap: 0.35rem; }
.naos-campo span { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; }
.naos-campo input, .naos-campo textarea {
	-webkit-appearance: none; appearance: none; box-sizing: border-box; min-width: 0; /* iOS: sin sombra ni esquinas propias */
	font: inherit; font-size: max(1rem, 16px); /* por debajo de 16px, iOS hace zoom al tocar el campo */
	color: var(--wp--preset--color--azabache); background: var(--wp--preset--color--blanco);
	border: 1px solid var(--wp--preset--color--linea); border-radius: 6px; padding: 0.75rem 0.9rem;
}
.naos-campo input:focus, .naos-campo textarea:focus { outline: 2px solid var(--wp--preset--color--olivo-claro); outline-offset: 1px; }
.naos-acepto { display: flex; gap: 0.6rem; align-items: flex-start; font-size: var(--wp--preset--font-size--small); }
.naos-acepto input { margin: 0.3em 0 0; accent-color: var(--wp--preset--color--olivo-claro); }
.naos-campo input::placeholder { color: var(--wp--preset--color--humo); opacity: 1; }
.naos-formulario button { justify-self: start; cursor: pointer; }
.has-alboran-background-color .naos-formulario button,
.has-alboran-noche-background-color .naos-formulario button { background: var(--wp--preset--color--olivo); color: var(--wp--preset--color--cal); }
.has-olivo-background-color .naos-formulario button { background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal); }
.naos-formulario-nota { opacity: 0.75; margin: 0; }
.naos-trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.naos-formulario-aviso { padding: 0.8rem 1rem; border-radius: 6px; font-weight: 500; }
.naos-formulario-aviso.es-ok { background: var(--wp--preset--color--albero-claro); color: var(--wp--preset--color--alboran-noche); }
.naos-formulario-aviso.es-error { background: var(--wp--preset--color--arcilla); color: var(--wp--preset--color--cal); }

/* ── Carrito y checkout de bloques (fase 6): solo lo que theme.json no cubre ── */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select {
	border-radius: 6px !important;
	border-color: var(--wp--preset--color--linea) !important;
	background: var(--wp--preset--color--blanco) !important;
}
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-textarea:focus { outline: 2px solid var(--wp--preset--color--olivo-claro); box-shadow: none !important; }
.wc-block-checkout__sidebar .wc-block-components-panel,
.wc-block-components-sidebar .wc-block-components-totals-wrapper { border-color: var(--wp--preset--color--linea); }
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar { background: var(--wp--preset--color--blanco); border-radius: 8px; padding: 1.25rem !important; }
.wc-block-components-checkout-step__title,
.wc-block-cart__totals-title { font-family: var(--wp--preset--font-family--mono) !important; font-size: var(--wp--preset--font-size--xs) !important; letter-spacing: 0.14em; text-transform: uppercase; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--wp--preset--color--alboran); }
.wc-block-components-notice-banner.is-error { border-color: var(--wp--preset--color--arcilla); }

/* Página de gracias: el recuadro de cómo pagar por BIZUM (naos-core/inc/bizum.php), justo
   debajo del estado. Los datos, en mono y seleccionables de un toque para copiarlos. */
.naos-bizum {
	background: var(--wp--preset--color--alboran);
	color: var(--wp--preset--color--cal);
	border-radius: 20px;
	padding: clamp(1.25rem, 4vw, 2rem);
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
}
.naos-bizum .naos-bizum__aviso { color: var(--wp--preset--color--olivo-claro); margin: 0 0 0.5rem; }
.naos-bizum .naos-bizum__titulo { color: var(--wp--preset--color--cal); font-size: var(--wp--preset--font-size--x-large); margin: 0 0 1.25rem; }
.naos-bizum__datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 1rem; margin: 0 0 1.25rem; }
.naos-bizum__datos div { border-top: 1px solid rgba(242, 237, 227, 0.25); padding-top: 0.6rem; }
.naos-bizum__datos dt { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.75; }
.naos-bizum__datos dd { margin: 0.25rem 0 0; font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--large); font-weight: 500; user-select: all; }
.naos-bizum__texto { font-size: var(--wp--preset--font-size--small); opacity: 0.9; }
.naos-bizum__texto p { margin: 0 0 0.5rem; }
/* Si iOS convierte el teléfono en enlace (la página ya le pide que no: bizum.php), que no
   salga en azul de enlace. */
.naos-bizum a[href^="tel"], .naos-bizum a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; }

/* ── Fotos de complementos con fondo blanco (provisional, hasta recortarlas) ──
   Van sobre una tesela de color y el blanco se funde con ella (multiply). Solo
   en los complementos: las fotos de los cafés tienen fondo propio. */
.product_cat-complementos-del-cafe .wc-block-components-product-image,
.product_cat-complementos-del-cafe .wc-block-woocommerce-product-gallery-large-image,
.product_cat-complementos-del-cafe .wp-block-woocommerce-product-gallery-large-image {
	background: var(--wp--preset--color--albero-claro);
	border-radius: 6px;
}
.product_cat-complementos-del-cafe .wc-block-product-gallery-thumbnails__thumbnail { background: var(--wp--preset--color--albero-claro); border-radius: 6px; }
.product_cat-complementos-del-cafe .wc-block-components-product-image img,
.product_cat-complementos-del-cafe .wp-block-woocommerce-product-gallery-large-image img,
.product_cat-complementos-del-cafe .wc-block-product-gallery-thumbnails__thumbnail img { mix-blend-mode: multiply; }

/* Teléfono obligatorio en la dirección de envío (Rafael, 2026-10-15): se dice para qué. Solo en
   la de envío; en el modo punto el campo está oculto. */
.wc-block-checkout__shipping-fields .wc-block-components-address-form__phone::after {
	content: "Para coordinar la entrega por WhatsApp o llamada."; display: block; margin-top: 0.35rem;
	font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo);
}

/* El carrito y el checkout de bloques se pintan tras cargar: sin altura reservada, el pie
   salta hacia abajo (CLS 0,4 en Lighthouse). */
.wp-block-woocommerce-cart.is-loading,
.wp-block-woocommerce-checkout.is-loading { min-height: 80vh; }
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { min-height: 60vh; }

/* ── Mi cuenta (templates/page-mi-cuenta.html; lo que no es CSS, en naos-core/inc/cuenta.php) ──
   El shortcode clásico de WooCommerce, alineado con la cabecera: menú a la izquierda (fichas
   en el móvil), contenido a la derecha y tarjetas en blanco roto sobre la cal. Todo bajo
   .naos-cuenta para ganar a las hojas de WooCommerce sin !important. */
.naos-cuenta__cabecera { margin-bottom: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--50); border-bottom: 1px solid var(--wp--preset--color--linea); }
.naos-cuenta__eyebrow { color: var(--wp--preset--color--olivo); margin: 0 0 0.6rem; }
.naos-cuenta__titulo { margin: 0; font-size: clamp(2.25rem, 5vw, 3.25rem); }
.naos-cuenta__contenido { margin-top: 0 !important; }
.naos-cuenta .woocommerce::before,
.naos-cuenta .woocommerce::after { display: none; } /* clearfix de WooCommerce: en una rejilla serían celdas */
main.naos-cuenta .woocommerce { max-width: none; } /* WooCommerce lo deja en 1000 px en los temas de bloques */

/* Con sesión: menú y contenido. */
.naos-cuenta .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: var(--wp--preset--spacing--70); align-items: start;
}
.naos-cuenta .woocommerce-MyAccount-navigation,
.naos-cuenta .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
.naos-cuenta .woocommerce-MyAccount-content { max-width: 56rem; }
.naos-cuenta .woocommerce-MyAccount-content > :first-child,
.naos-cuenta .woocommerce-MyAccount-content > .woocommerce-notices-wrapper:empty + * { margin-top: 0; }
.naos-cuenta .woocommerce-MyAccount-navigation { position: sticky; top: calc(6.5rem + var(--wp-admin--admin-bar--height, 0px)); }
.naos-cuenta .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.naos-cuenta .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
.naos-cuenta .woocommerce-MyAccount-navigation a { display: block; padding: 0.7rem 1rem; border-radius: 8px; color: var(--wp--preset--color--azabache); text-decoration: none; font-weight: 500; }
.naos-cuenta .woocommerce-MyAccount-navigation li a:hover { text-decoration: none; background: var(--wp--preset--color--albero-claro); color: var(--wp--preset--color--alboran-noche); }
.naos-cuenta .woocommerce-MyAccount-navigation li.is-active a { text-decoration: none; background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal); }
.naos-cuenta .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0.75rem !important; padding-top: 0.75rem; border-top: 1px solid var(--wp--preset--color--linea); }
.naos-cuenta .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--wp--preset--color--humo); font-weight: 400; }
@media (max-width: 859px) {
	.naos-cuenta .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--50); }
	.naos-cuenta .woocommerce-MyAccount-navigation { position: static; }
	.naos-cuenta .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0.5rem; }
	.naos-cuenta .woocommerce-MyAccount-navigation a { padding: 0.5rem 0.95rem; border: 1px solid var(--wp--preset--color--linea); border-radius: 999px; font-size: var(--wp--preset--font-size--small); }
	.naos-cuenta .woocommerce-MyAccount-navigation li.is-active a { border-color: var(--wp--preset--color--alboran); }
	.naos-cuenta .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0 !important; padding-top: 0; border-top: 0; }
}

/* Títulos de sección (notas, detalle, direcciones): etiqueta en mono. */
.naos-cuenta .woocommerce-MyAccount-content > h2,
.naos-cuenta .woocommerce-order-details__title,
.naos-cuenta .woocommerce-customer-details h2.woocommerce-column__title,
.naos-cuenta .woocommerce-Address-title h2,
.naos-cuenta .woocommerce-MyAccount-content form > h2 {
	font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); font-weight: 500;
	letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.4; color: var(--wp--preset--color--olivo); margin: 0 0 1rem;
}
.naos-cuenta .woocommerce-MyAccount-content > p:not([class]) { color: var(--wp--preset--color--humo); }
/* Resumen: el saludo y el párrafo de WooCommerce sobran (el saludo es el título; inc/cuenta.php). */
.woocommerce-dashboard .naos-cuenta .woocommerce-MyAccount-content > p:not([class]) { display: none; }

/* Estado del pedido como etiqueta (naos_cuenta_estado). */
.naos-estado {
	display: inline-block; padding: 0.3rem 0.65rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--linea); line-height: 1.2; white-space: nowrap;
	font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 500;
	color: var(--wp--preset--color--humo);
}
.naos-estado--completed { background: var(--wp--preset--color--olivo); border-color: transparent; color: var(--wp--preset--color--cal); }
.naos-estado--processing { background: var(--wp--preset--color--alboran); border-color: transparent; color: var(--wp--preset--color--cal); }
.naos-estado--on-hold,
.naos-estado--pending { background: var(--wp--preset--color--albero-claro); border-color: transparent; color: var(--wp--preset--color--alboran-noche); }
.naos-estado--failed { border-color: var(--wp--preset--color--arcilla); color: var(--wp--preset--color--arcilla); }

/* Cifras de un pedido. */
.naos-pedido-total { display: block; font-family: var(--wp--preset--font-family--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.naos-pedido-total del { opacity: 0.55; font-size: 0.85em; margin-right: 0.35em; }
.naos-pedido-total ins { text-decoration: none; }
.naos-pedido-articulos { display: block; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--humo); }

/* Resumen de un pedido (fecha, estado, total, pago): tarjeta en Alborán, como el de BIZUM. */
.naos-cuenta p:has(> .naos-pedido-resumen) { margin: 0 0 var(--wp--preset--spacing--60); }
.naos-pedido-resumen {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(8rem, 100%), 1fr)); gap: 1rem 1.5rem;
	background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal); border-radius: 16px; padding: clamp(1.25rem, 3vw, 1.75rem);
}
.naos-dato-cuenta { display: grid; gap: 0.45rem; align-content: start; border-top: 1px solid rgba(242, 237, 227, 0.25); padding-top: 0.7rem; }
.naos-dato-cuenta__etiqueta { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.75; }
.naos-dato-cuenta__valor { font-weight: 500; }
.naos-pedido-resumen .naos-pedido-total { font-size: var(--wp--preset--font-size--large); font-weight: 500; }
.naos-pedido-resumen .naos-estado { justify-self: start; }
.naos-pedido-resumen .naos-estado--completed { background: var(--wp--preset--color--olivo-claro); color: var(--wp--preset--color--azabache); }
.naos-pedido-resumen .naos-estado--processing { background: var(--wp--preset--color--cal); color: var(--wp--preset--color--alboran); }
.naos-pedido-resumen .naos-estado--failed { background: var(--wp--preset--color--arcilla); border-color: transparent; color: var(--wp--preset--color--cal); }
.naos-pedido-resumen .naos-estado--cancelled,
.naos-pedido-resumen .naos-estado--refunded { border-color: rgba(242, 237, 227, 0.35); color: var(--wp--preset--color--cal); }

/* Resumen de la cuenta: último pedido y accesos. */
.naos-cuenta-intro { color: var(--wp--preset--color--humo); margin: 0 0 1.5rem; }
.naos-cuenta-ultimo { background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal); border-radius: 16px; padding: clamp(1.25rem, 3vw, 1.75rem); margin: 0 0 1rem; }
.naos-cuenta-ultimo > .naos-eyebrow { color: var(--wp--preset--color--olivo-claro); margin: 0 0 1rem; }
.naos-cuenta-ultimo .naos-pedido-resumen { padding: 0; border-radius: 0; background: none; }
.naos-cuenta-ultimo p { margin: 0 0 1rem; }
.naos-cuenta-ultimo__ver { display: inline-block; margin-top: 1.25rem; padding: 0.7rem 1.4rem; border-radius: 999px; background: var(--wp--preset--color--olivo); color: var(--wp--preset--color--cal) !important; text-decoration: none; font-weight: 500; }
.naos-cuenta-ultimo__ver:hover { background: var(--wp--preset--color--olivo-claro); color: var(--wp--preset--color--azabache) !important; }
.naos-cuenta-accesos { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.naos-cuenta-acceso {
	position: relative; display: grid; gap: 0.35rem; align-content: start; padding: 1.25rem 2.75rem 1.35rem 1.35rem;
	background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 12px;
	color: var(--wp--preset--color--azabache); text-decoration: none; transition: border-color 0.15s, transform 0.15s;
}
.naos-cuenta-acceso::after { content: "→"; position: absolute; top: 1.1rem; right: 1.2rem; color: var(--wp--preset--color--olivo); font-size: 1.1rem; }
.naos-cuenta-acceso:hover { border-color: var(--wp--preset--color--olivo-claro); transform: translateY(-1px); color: var(--wp--preset--color--azabache); }
.naos-cuenta-acceso .naos-eyebrow { color: var(--wp--preset--color--olivo); }
.naos-cuenta-acceso__valor { font-size: 1.2rem; font-weight: 500; line-height: 1.2; color: var(--wp--preset--color--alboran); overflow-wrap: anywhere; }
.naos-cuenta-acceso__texto { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo); }

/* Pedidos: tabla en tarjeta; en el móvil, una tarjeta por pedido. */
.naos-cuenta table.woocommerce-orders-table {
	width: 100%; margin: 0; border: 1px solid var(--wp--preset--color--linea); border-radius: 12px; border-collapse: separate; border-spacing: 0;
	background: var(--wp--preset--color--blanco); overflow: hidden;
}
.naos-cuenta table.woocommerce-orders-table :is(th, td) { padding: 1rem 1.1rem; border: 0; border-top: 1px solid var(--wp--preset--color--linea); vertical-align: middle; text-align: left; font-weight: 400; line-height: 1.4; }
.naos-cuenta table.woocommerce-orders-table thead th {
	border-top: 0; padding-block: 0.8rem; color: var(--wp--preset--color--humo);
	font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500;
}
.naos-cuenta table.woocommerce-orders-table tbody tr:hover { background: color-mix(in srgb, var(--wp--preset--color--albero-claro) 30%, transparent); }
.naos-cuenta .woocommerce-orders-table__cell-order-number a { font-family: var(--wp--preset--font-family--mono); font-weight: 600; color: var(--wp--preset--color--alboran); text-decoration: none; }
.naos-cuenta .woocommerce-orders-table__cell-order-number a:hover { text-decoration: underline; }
.naos-cuenta .woocommerce-orders-table__cell-order-date { color: var(--wp--preset--color--humo); font-size: var(--wp--preset--font-size--small); }
.naos-cuenta .woocommerce-orders-table__cell-order-actions,
.naos-cuenta .woocommerce-orders-table__header-order-actions { text-align: right !important; white-space: nowrap; }
.naos-cuenta .woocommerce-orders-table__cell-order-date { white-space: nowrap; }
/* WooCommerce apila los botones (display: block) con un selector de cuatro clases. */
.naos-cuenta .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a.button { display: inline-block; margin: 0.15rem 0 0.15rem 0.35rem; padding: 0.5rem 1.05rem; font-size: var(--wp--preset--font-size--small); line-height: 1.2; text-align: center; }
.naos-cuenta .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a.button.pay { background: var(--wp--preset--color--olivo); }
.naos-cuenta .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a.button.cancel { background: transparent; color: var(--wp--preset--color--humo); text-decoration: underline; text-underline-offset: 0.2em; padding-inline: 0.5rem; }
@media (max-width: 768px) {
	.naos-cuenta table.woocommerce-orders-table { border: 0; border-radius: 0; background: none; overflow: visible; }
	.naos-cuenta table.woocommerce-orders-table tbody { display: grid; gap: 0.75rem; }
	.naos-cuenta table.woocommerce-orders-table tbody tr {
		display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.4rem 1rem; align-items: center;
		padding: 1rem 1.1rem; background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 12px;
	}
	.naos-cuenta table.woocommerce-orders-table.shop_table_responsive tbody tr :is(th, td) { display: block; padding: 0; border: 0; background: none; text-align: left !important; }
	.naos-cuenta table.woocommerce-orders-table tbody :is(th, td)::before { display: none; }
	.naos-cuenta .woocommerce-orders-table__cell-order-number { grid-area: 1 / 1; font-size: var(--wp--preset--font-size--large); }
	.naos-cuenta .woocommerce-orders-table__cell-order-status { grid-area: 1 / 2; justify-self: end; }
	.naos-cuenta .woocommerce-orders-table__cell-order-date { grid-area: 2 / 1; }
	.naos-cuenta .woocommerce-orders-table__cell-order-total { grid-area: 2 / 2; text-align: right !important; }
	.naos-cuenta .woocommerce-orders-table__cell-order-actions { grid-column: 1 / -1; display: flex !important; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; padding-top: 0.75rem !important; border-top: 1px solid var(--wp--preset--color--linea) !important; }
	.naos-cuenta .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a.button { flex: 1 1 auto; margin: 0; }
	.naos-cuenta .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a.button.cancel { flex: 0 0 auto; }
	.naos-cuenta .woocommerce-orders-table__cell-order-date { white-space: normal; }
}

/* Cómo pedir factura y la vuelta a la lista (inc/cuenta.php). */
.naos-cuenta-factura { position: relative; margin: var(--wp--preset--spacing--50) 0 0; padding-left: 1.5rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo); }
.naos-cuenta-factura::before { content: "✦"; position: absolute; left: 0; color: var(--wp--preset--color--olivo-claro); }
.naos-cuenta-factura a { color: var(--wp--preset--color--alboran); }
.naos-cuenta-volver { margin: var(--wp--preset--spacing--50) 0 0; }
.naos-cuenta-volver a { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; font-weight: 500; }
.naos-cuenta-volver a:hover { text-decoration: underline; }

/* Un pedido: notas de la tienda, detalle y direcciones, en tarjetas. */
.naos-cuenta .woocommerce-OrderUpdates { list-style: none; margin: 0 0 var(--wp--preset--spacing--60); padding: 0; display: grid; gap: 0.75rem; }
.naos-cuenta .woocommerce-OrderUpdate { margin: 0; padding: 1rem 1.25rem; background: var(--wp--preset--color--albero-claro); border-left: 4px solid var(--wp--preset--color--olivo); border-radius: 12px; }
.naos-cuenta .woocommerce-OrderUpdate :is(.comment_container, .comment-text) { margin: 0; padding: 0; border: 0; }
.naos-cuenta .woocommerce-OrderUpdate .meta { margin: 0 0 0.35rem; font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--humo); }
.naos-cuenta .woocommerce-OrderUpdate .description p { margin: 0; }
.naos-cuenta .woocommerce-OrderUpdate .clear { display: none; }
.naos-cuenta .woocommerce-order-details { margin: 0 0 var(--wp--preset--spacing--50); padding: clamp(1.25rem, 3vw, 2rem); background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 16px; }
.naos-cuenta table.order_details { width: 100%; margin: 0; border: 0; border-collapse: collapse; border-radius: 0; }
.naos-cuenta table.shop_table.order_details :is(th, td) { padding: 0.85rem 0; border: 0; border-top: 1px solid var(--wp--preset--color--linea); background: none; text-align: left; vertical-align: top; font-weight: 400; line-height: 1.45; }
.naos-cuenta table.order_details thead th { border-top: 0; padding-top: 0; color: var(--wp--preset--color--humo); font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; }
.naos-cuenta table.order_details :is(td, th):last-child { text-align: right; padding-left: 1rem; }
.naos-cuenta table.order_details .product-name a { color: var(--wp--preset--color--azabache); text-decoration: none; font-weight: 500; }
.naos-cuenta table.order_details .product-name a:hover { text-decoration: underline; }
.naos-cuenta table.order_details .product-quantity { font-family: var(--wp--preset--font-family--mono); font-weight: 400; color: var(--wp--preset--color--humo); white-space: nowrap; }
.naos-cuenta table.order_details .wc-item-meta { margin: 0.35rem 0 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo); }
.naos-cuenta table.order_details .wc-item-meta :is(li, p) { margin: 0; display: inline; }
.naos-cuenta table.order_details .woocommerce-Price-amount { font-weight: 500; font-family: var(--wp--preset--font-family--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.naos-cuenta table.order_details tfoot th { color: var(--wp--preset--color--humo); font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; padding-top: 1rem; }
.naos-cuenta table.order_details tfoot td small { display: block; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--humo); }
.naos-cuenta table.order_details tfoot del { opacity: 0.55; margin-right: 0.35em; font-family: var(--wp--preset--font-family--mono); }
.naos-cuenta table.order_details tfoot ins { text-decoration: none; }
.naos-cuenta .order-again { margin: 1.25rem 0 0; }
.naos-cuenta .order-again .button { background: transparent; color: var(--wp--preset--color--alboran); border: 1.5px solid currentColor; padding: 0.6rem 1.3rem; font-size: var(--wp--preset--font-size--small); }
.naos-cuenta .order-again .button:hover { background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal); border-color: var(--wp--preset--color--alboran); }

/* Direcciones: las del pedido y las de la cuenta, en dos tarjetas. */
.naos-cuenta .col2-set { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; margin: 0; }
.naos-cuenta .col2-set::before,
.naos-cuenta .col2-set::after { display: none; }
.naos-cuenta .col2-set :is(.col-1, .col-2) { float: none; width: auto; max-width: none; margin: 0; }
.naos-cuenta :is(.woocommerce-customer-details .woocommerce-column, .woocommerce-Address) { padding: 1.25rem 1.35rem; background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 12px; }
.naos-cuenta .woocommerce-customer-details { margin: 0; }
.naos-cuenta .woocommerce-customer-details address,
.naos-cuenta .woocommerce-Address address { margin: 0; padding: 0; border: 0; font-style: normal; line-height: 1.6; }
.naos-cuenta .woocommerce-customer-details address p { margin: 0.5rem 0 0; }
/* Direcciones de la cuenta: título, dirección y, abajo, «Editar…» (el texto del enlace es largo). */
.naos-cuenta .woocommerce-Address { display: flex; flex-direction: column; gap: 0.75rem; }
.naos-cuenta .woocommerce-Address-title { display: contents; }
.naos-cuenta .addresses .woocommerce-Address-title.title::before,
.naos-cuenta .addresses .woocommerce-Address-title.title::after { display: none; } /* clearfix: con «contents» serían huecos */
.naos-cuenta .woocommerce-Address-title h2 { order: 1; float: none; margin: 0; }
.naos-cuenta .woocommerce-Address address { order: 2; }
.naos-cuenta .addresses .woocommerce-Address-title .edit { order: 3; display: block; margin: auto 0 0; padding-top: 0.75rem; border-top: 1px solid var(--wp--preset--color--linea); float: none; font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 500; white-space: nowrap; }
.naos-cuenta .woocommerce-Address-title .edit:hover { text-decoration: underline; }

/* Formularios de la cuenta (datos, direcciones, acceso): como los del checkout. */
.naos-cuenta .woocommerce form .form-row { margin: 0 0 1.1rem; padding: 0; }
.naos-cuenta .woocommerce form .form-row label { display: block; margin: 0 0 0.35rem; font-size: var(--wp--preset--font-size--small); font-weight: 500; line-height: 1.4; }
.naos-cuenta .woocommerce form .form-row label.screen-reader-text { position: absolute; }
.naos-cuenta .woocommerce form :is(.required, abbr.required) { color: var(--wp--preset--color--arcilla); text-decoration: none; border: 0; }
.naos-cuenta .woocommerce form :is(.input-text, select, textarea),
.naos-cuenta .select2-container .select2-selection--single {
	-webkit-appearance: none; appearance: none; box-sizing: border-box; width: 100%; height: auto; min-height: 3rem;
	font: inherit; font-size: max(1rem, 16px); color: var(--wp--preset--color--azabache); line-height: 1.4;
	background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 6px; padding: 0.7rem 0.9rem;
}
.naos-cuenta .woocommerce form :is(.input-text, select, textarea):focus { outline: 2px solid var(--wp--preset--color--olivo-claro); outline-offset: 1px; }
.naos-cuenta .select2-container .select2-selection--single { display: flex; align-items: center; padding-block: 0; padding-right: 2.25rem; }
.naos-cuenta .woocommerce form .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--wp--preset--color--azabache); }
.naos-cuenta .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 0.5rem; transform: translateY(-50%); }
.naos-cuenta .woocommerce form .form-row :is(em, .description) { display: block; margin-top: 0.35rem; font-style: normal; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--humo); }
.naos-cuenta .woocommerce form fieldset { margin: 1.5rem 0; padding: 1.25rem 1.35rem 0.25rem; border: 1px solid var(--wp--preset--color--linea); border-radius: 12px; }
.naos-cuenta .woocommerce form legend { padding: 0 0.5rem; font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; color: var(--wp--preset--color--olivo); }
.naos-cuenta .woocommerce form .show-password-input { top: 50%; transform: translateY(-50%); right: 0.75rem; }
.naos-cuenta .woocommerce :is(.woocommerce-EditAccountForm, .woocommerce-address-fields) .button { margin-top: 0.5rem; }

/* Sin sesión: acceso y contraseña olvidada, en una tarjeta. */
.naos-cuenta .woocommerce:not(:has(> .woocommerce-MyAccount-navigation)) { max-width: 30rem; }
.naos-cuenta .woocommerce:not(:has(> .woocommerce-MyAccount-navigation)) > h2 { font-size: var(--wp--preset--font-size--large); margin: 0 0 1rem; }
.naos-cuenta .woocommerce form:is(.login, .lost_reset_password) {
	margin: 0; padding: clamp(1.25rem, 4vw, 2rem); background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 16px;
}
.naos-cuenta .woocommerce form.lost_reset_password > p:first-child { margin-top: 0; color: var(--wp--preset--color--humo); }
.naos-cuenta .woocommerce form.lost_reset_password .form-row-first { float: none; width: 100%; }
.naos-cuenta .woocommerce form.login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
.naos-cuenta .woocommerce form.login .form-row:has(.woocommerce-form-login__submit)::before,
.naos-cuenta .woocommerce form.login .form-row:has(.woocommerce-form-login__submit)::after { display: none; } /* clearfix: en flex serían huecos */
.naos-cuenta .woocommerce form.login .woocommerce-form-login__rememberme { order: 2; margin: 0; font-weight: 400; display: inline-flex; align-items: center; gap: 0.45rem; }
.naos-cuenta .woocommerce form.login .woocommerce-form-login__rememberme input { accent-color: var(--wp--preset--color--olivo); }
.naos-cuenta .woocommerce form.login .woocommerce-form-login__submit { float: none; margin: 0; }
.naos-cuenta .woocommerce form.login .lost_password { margin: 0.25rem 0 0; font-size: var(--wp--preset--font-size--small); }
.naos-cuenta .naos-login-nota { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--linea); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo); }

/* ── Fondos de marca: estilos «Fondo: …» del bloque Grupo (functions.php) ────
   El dibujo (assets/fondos/*.svg, de scripts/fondos/generar.py) es una máscara: se
   pinta con --naos-fondo-tinta (el color del texto de la sección; en las estrellas,
   olivo claro) a --naos-fondo-opacidad, sobre el fondo y bajo el contenido. Sirven en
   cualquier color de sección. Otra tinta: clase adicional naos-fondo-acento o
   naos-fondo-texto en el Grupo. */
[class*="is-style-fondo-"] { position: relative; isolation: isolate; }
[class*="is-style-fondo-"]::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: var(--naos-fondo-tinta, currentColor);
	opacity: var(--naos-fondo-opacidad, 0.12);
}
.is-style-fondo-rayado { --naos-fondo-opacidad: 0.07; }
.is-style-fondo-rayado::before { -webkit-mask: url(assets/fondos/rayado.svg) 0 0 / 40px repeat; mask: url(assets/fondos/rayado.svg) 0 0 / 40px repeat; }
.is-style-fondo-estrellas { --naos-fondo-opacidad: 0.3; --naos-fondo-tinta: var(--wp--preset--color--olivo-claro); }
.is-style-fondo-estrellas::before { -webkit-mask: url(assets/fondos/estrellas.svg) 0 0 / 120px repeat; mask: url(assets/fondos/estrellas.svg) 0 0 / 120px repeat; }
.is-style-fondo-constelacion { --naos-fondo-opacidad: 0.6; --naos-fondo-tinta: var(--wp--preset--color--olivo-claro); }
.is-style-fondo-constelacion::before { -webkit-mask: url(assets/fondos/constelacion.svg) right center / contain no-repeat; mask: url(assets/fondos/constelacion.svg) right center / contain no-repeat; }
.is-style-fondo-portulano { --naos-fondo-opacidad: 0.16; }
.is-style-fondo-portulano::before { -webkit-mask: url(assets/fondos/portulano.svg) center / cover no-repeat; mask: url(assets/fondos/portulano.svg) center / cover no-repeat; }
.is-style-fondo-reticula { --naos-fondo-opacidad: 0.14; }
.is-style-fondo-reticula::before { -webkit-mask: url(assets/fondos/reticula.svg) 0 0 / 120px repeat; mask: url(assets/fondos/reticula.svg) 0 0 / 120px repeat; }
.is-style-fondo-marejada { --naos-fondo-opacidad: 0.13; }
.is-style-fondo-marejada::before { -webkit-mask: url(assets/fondos/marejada.svg) 0 0 / 120px 24px repeat; mask: url(assets/fondos/marejada.svg) 0 0 / 120px 24px repeat; }
.is-style-fondo-red { --naos-fondo-opacidad: 0.11; }
.is-style-fondo-red::before { -webkit-mask: url(assets/fondos/red.svg) 0 0 / 32px repeat; mask: url(assets/fondos/red.svg) 0 0 / 32px repeat; }
.naos-fondo-acento { --naos-fondo-tinta: var(--wp--preset--color--olivo-claro); }
.naos-fondo-texto { --naos-fondo-tinta: currentColor; }

/* ── Manifiesto, banco de secciones (/templates/) y muestrario de marca (/branding/) ── */
.naos-manifiesto { font-weight: 500; line-height: 1.15; letter-spacing: -0.02em; text-wrap: balance; }
.naos-indice { list-style: none; padding-left: 0; margin-top: var(--wp--preset--spacing--50); columns: 3 14rem; column-gap: 2rem; }
.naos-indice li { break-inside: avoid; margin-block: 0.4em; }
.naos-indice a { text-decoration: none; }
.naos-indice a:hover { text-decoration: underline; }
.naos-ficha { border-top: 1px solid var(--wp--preset--color--linea); }
/* Saltos del índice: que la cabecera fija (y la barra de admin) no tape el destino. */
.wp-block-group[id] { scroll-margin-top: calc(6rem + var(--wp-admin--admin-bar--height, 0px)); }
.naos-tesela > * { margin-block: 0; }
.naos-muestra-logo svg { display: block; width: min(100%, 22rem); height: auto; }
.naos-muestra-estrella svg { display: block; width: 6rem; height: auto; }
.naos-muestra-texto { margin-top: 0.2em; line-height: 1.15; }
.naos-cifras { font-family: var(--wp--preset--font-family--mono); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; }
.naos-iconos { display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: 1rem; margin-top: var(--wp--preset--spacing--50); }
.naos-icono { margin: 0; padding: 1.5rem 1rem 1rem; background: var(--wp--preset--color--blanco); border-radius: 6px; display: grid; justify-items: center; gap: 0.8rem; }
.naos-icono img { width: 48px; height: 48px; }
.naos-icono-glifo { font-size: 40px; line-height: 48px; color: var(--wp--preset--color--olivo-claro); }
.naos-icono figcaption { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.12em; text-transform: uppercase; text-align: center; }

/* ── Fichas de café con historia (patterns/cafe-*.php, de scripts/productos/generar.py) ── */
.naos-foto img { border-radius: 6px; width: 100%; }
.naos-foto { margin: 0; }

/* Datos del lote: etiqueta en mono y valor, separados por una línea fina. */
.naos-datos { gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.naos-dato { border-top: 1px solid #F2EDE333; padding-top: var(--wp--preset--spacing--30); }
.naos-dato > * { margin-block: 0; }
.naos-dato > * + * { margin-top: 0.35rem; }

/* Portada con foto de la finca: degradado para que el texto se lea abajo. */
.naos-portada-cafe .wp-block-cover__background { background: linear-gradient(to top, var(--wp--preset--color--alboran-noche) 0%, transparent 85%) !important; opacity: 0.9 !important; }

/* Cifras: en mono, como manda la marca. */
.naos-cifra-gigante { font-family: var(--wp--preset--font-family--mono); font-size: clamp(4.5rem, 12vw, 9rem); line-height: 1; letter-spacing: -0.04em; margin-bottom: 0; }
.naos-cifras-cafe { gap: var(--wp--preset--spacing--50); margin-top: var(--wp--preset--spacing--60); }
.naos-cifra { border-top: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 25%, transparent); padding-top: var(--wp--preset--spacing--30); }
.naos-cifra > * { margin-block: 0; }
.naos-cifra > * + * { margin-top: 0.4rem; }
.naos-cifra-valor { font-family: var(--wp--preset--font-family--mono); font-size: clamp(1.35rem, 2vw, 1.75rem); white-space: nowrap; font-variant-numeric: tabular-nums; line-height: 1.1; letter-spacing: -0.02em; }

/* Proceso: la explicación se queda fija a la izquierda mientras bajan los pasos. */
@media (min-width: 782px) {
	.naos-proceso-intro { position: sticky; top: calc(7rem + var(--wp-admin--admin-bar--height, 0px)); align-self: flex-start; }
}
.naos-claves { gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--50); }
.naos-clave { padding: 1.1rem 1.25rem; border-radius: 6px; background: var(--wp--preset--color--cal); }
.naos-clave > * { margin-block: 0; }
.naos-clave > * + * { margin-top: 0.3rem; }
.naos-clave-valor { font-weight: 500; line-height: 1.1; letter-spacing: -0.01em; }
.naos-clave-nota { opacity: 0.8; }
.naos-clave-destacada .naos-clave-nota { opacity: 1; }   /* sobre olivo, a 0.8 no llega a 4,5:1 */
.naos-clave-destacada { background: var(--wp--preset--color--olivo); color: var(--wp--preset--color--cal); }

/* Pasos en vertical: línea fina, un punto por paso y el de fermentación, relleno. */
.naos-pasos { counter-reset: paso; }
.naos-paso { position: relative; padding: 0 0 var(--wp--preset--spacing--60) 2.75rem; }
.naos-paso > * { margin-block: 0; }
.naos-paso > * + * { margin-top: 0.6rem; }
.naos-paso > .naos-foto { margin-top: var(--wp--preset--spacing--40); }
.naos-paso::before { content: ""; position: absolute; left: calc(0.55rem - 0.5px); top: 1.5rem; bottom: 0.3rem; width: 1px; background: currentColor; opacity: 0.22; }
.naos-paso:last-child { padding-bottom: 0; }
.naos-paso:last-child::before { display: none; }
.naos-paso::after { content: ""; position: absolute; left: 0; top: 0.1rem; width: 1.1rem; height: 1.1rem; box-sizing: border-box; border-radius: 50%; border: 1.5px solid var(--wp--preset--color--olivo); }
.naos-paso-fermenta::after { background: var(--wp--preset--color--olivo); box-shadow: 0 0 0 6px color-mix(in srgb, var(--wp--preset--color--olivo) 22%, transparent); }
.naos-chip { display: inline-block; padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--wp--preset--color--olivo); color: var(--wp--preset--color--cal); font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; }

/* Galería de la finca: fotos verticales, sin hueco blanco. */
.naos-galeria-finca.wp-block-gallery { gap: var(--wp--preset--spacing--30); }
@media (max-width: 781px) { .naos-galeria-finca.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--preset--spacing--30) / 2); } }

/* ── Puntos de venta (naos-core/inc/puntos.php): la página del QR, el aviso del checkout y
   el de la página de gracias. Pensado para el móvil: se paga de pie, en el local. ── */
.naos-punto { max-width: 40rem; margin-inline: auto; padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--70); }
/* En el móvil, casi a todo el ancho: 12 px a cada lado (el margen global es de 20). */
@media (max-width: 34rem) {
	.naos-pagina-punto .wp-block-post-content.has-global-padding { padding-inline: 0.75rem; }
	.naos-punto { padding-top: var(--wp--preset--spacing--50); }
	.naos-punto__producto { column-gap: 0.75rem; padding: 0.65rem; }
}
.naos-punto__punto { color: var(--wp--preset--color--olivo); margin: 0 0 0.5rem; }
.naos-punto__titulo { font-size: clamp(1.9rem, 7vw, 2.6rem); line-height: 1.05; letter-spacing: -0.02em; font-weight: 500; color: var(--wp--preset--color--alboran); margin: 0 0 0.75rem; }
.naos-punto__intro { color: var(--wp--preset--color--humo); margin: 0 0 1.5rem; }
.naos-punto__productos { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: 0.75rem; }
.naos-punto__producto {
	display: grid; grid-template-columns: 4.5rem 1fr; grid-template-areas: "foto info" "foto cantidad"; column-gap: 0.9rem; row-gap: 0.5rem; align-items: center;
	background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 12px; padding: 0.75rem;
}
.naos-punto__foto { grid-area: foto; width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 8px; align-self: start; }
.naos-punto__info { grid-area: info; min-width: 0; }
.naos-punto__nombre { font-size: 1.15rem; line-height: 1.2; font-weight: 600; margin: 0; }
.naos-punto__notas { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo); margin: 0.15rem 0 0.2rem; }
.naos-punto__precio { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--small); margin: 0; }
.naos-punto__precio span { color: var(--wp--preset--color--humo); }
.naos-punto__precio del { color: var(--wp--preset--color--humo); margin-right: 0.35rem; }
.naos-punto__precio ins { text-decoration: none; font-weight: 600; }
.naos-punto__cantidad { grid-area: cantidad; display: flex; align-items: center; gap: 0.25rem; }
.naos-punto__cantidad button {
	width: 2.5rem; height: 2.5rem; padding: 0; border-radius: 999px; cursor: pointer; touch-action: manipulation;
	border: 1.5px solid var(--wp--preset--color--alboran); background: transparent; color: var(--wp--preset--color--alboran); font-size: 1.3rem; line-height: 1;
}
.naos-punto__cantidad input {
	width: 2.75rem; padding: 0; border: 0; background: transparent; text-align: center; -moz-appearance: textfield; appearance: textfield;
	font-family: var(--wp--preset--font-family--mono); font-size: max(1.15rem, 16px); color: var(--wp--preset--color--azabache);
}
.naos-punto__cantidad input::-webkit-inner-spin-button, .naos-punto__cantidad input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
@media (min-width: 34rem) {
	.naos-punto__producto { grid-template-columns: 4.5rem 1fr auto; grid-template-areas: "foto info cantidad"; }
}
.naos-punto__descuento { background: var(--wp--preset--color--albero-claro); border-radius: 12px; padding: 1rem 1.1rem; margin: 0 0 1.25rem; }
.naos-punto__descuento input { width: 1.2rem; height: 1.2rem; flex: none; }
.naos-punto__pagar {
	position: sticky; bottom: 0.75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 0.85rem 0.85rem 0.85rem 1.25rem; border-radius: 16px; background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal);
	box-shadow: 0 8px 24px rgba(19, 38, 47, 0.25);
}
.naos-punto__total { margin: 0; display: grid; line-height: 1.2; }
.naos-punto__total .naos-eyebrow { color: var(--wp--preset--color--olivo-claro); }
.naos-punto__total strong { font-family: var(--wp--preset--font-family--mono); font-size: 1.4rem; font-weight: 500; }
.naos-punto__pagar button { background: var(--wp--preset--color--olivo); color: var(--wp--preset--color--cal); border: 0; border-radius: 999px; padding: 0.9rem 2rem; font-weight: 600; cursor: pointer; }
.naos-punto__pagar button:disabled { opacity: 0.45; cursor: not-allowed; }
.naos-punto__nota { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humo); margin: 1.25rem 0 0; }
.naos-punto-aviso { background: var(--wp--preset--color--alboran); color: var(--wp--preset--color--cal); border-radius: 12px; padding: 1rem 1.25rem; margin-block: 0 var(--wp--preset--spacing--50); }
.naos-punto-aviso p { margin: 0; }
.naos-punto-aviso .naos-eyebrow { color: var(--wp--preset--color--olivo-claro); margin-bottom: 0.3rem; }
.naos-punto-aviso a { color: inherit; text-underline-offset: 0.2em; }
/* En la página del QR, sin la newsletter del pie: ya está la casilla del descuento. */
.naos-pagina-punto .naos-newsletter { display: none; }
/* Checkout en modo punto: ni país (siempre España), ni notas, ni «volver al carrito». */
.naos-modo-punto .wc-block-components-address-form__country,
.naos-modo-punto .wc-block-checkout__order-notes,
.naos-modo-punto .wc-block-components-checkout-return-to-cart-button { display: none !important; }
/* Gracias de un pedido del punto: sin las direcciones (no hay ninguna). */
.naos-pedido-punto .wc-block-order-confirmation-address-wrapper { display: none; }

/* ── Aviso de envíos (parts/header.html): franja discreta sobre la cabecera, no fija. Fuera en
   la página del QR del punto de venta, donde se paga en el local. ── */
.naos-aviso-envio { margin: 0; padding: 0.45rem var(--wp--preset--spacing--40); line-height: 1.35; }
.naos-pagina-punto .naos-aviso-envio { display: none; }
