/*
 Theme Name: Siempre Florece
 Theme URI: https://siempreflorece.co
 Description: Tema hijo de Astra para Siempre Florece. Diseño editorial, ligero y sin constructor visual.
 Author: Juan Sebastián Valencia G. (JSV-88)
 Template: astra
 Version: 2.0.0
 Text Domain: siempre-florece
*/

/* =========================================================
   1. TOKENS
   ========================================================= */
:root {
  --sf-ink: #2b2b2b;
  --sf-text: #474747;
  --sf-muted: #767676;
  --sf-sage: #5a6d66;
  --sf-sage-dark: #46564f;
  --sf-mint: #e9efed;
  --sf-paper: #f7f8f6;
  --sf-cream: #f4f5f0;
  --sf-gold: #f8d481;
  --sf-line: #e3e5e2;
  --sf-white: #ffffff;
  --sf-bg: #fafaf8; /* fondo general: gris casi imperceptible, más claro que el hover (#f2f3f1) */

  --sf-serif: "Baskervville", Georgia, "Times New Roman", serif;
  --sf-sans: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --sf-wrap: 1440px;
  --sf-gutter: clamp(16px, 4vw, 56px);
  --sf-space-s: 16px;
  --sf-space-m: clamp(32px, 4vw, 48px);
  --sf-space-l: clamp(56px, 7vw, 104px);
}

/* =========================================================
   2. BASE
   ========================================================= */
body,
button,
input,
select,
textarea {
  font-family: var(--sf-sans);
  color: var(--sf-text);
}
body { background: var(--sf-bg); font-size: 16px; line-height: 1.6; }
/* Sin blanco puro en las franjas de Astra (menú y pie) */
body,
.ast-primary-header-bar,
.main-header-bar,
.site-below-footer-wrap,
.site-footer { background-color: var(--sf-bg) !important; }

h1, h2, h3, .sf-serif,
.woocommerce div.product .product_title,
.entry-title {
  font-family: var(--sf-serif);
  font-weight: 400;
  color: var(--sf-ink);
  letter-spacing: -0.005em;
  line-height: 1.15;
}
/* Astra pone 600 en línea (.entry-content :where(h2)): titulares serif siempre en peso normal */
.entry-content :is(h1, h2, h3):not(.sf-kw, .sf-card__title, .sf-news__title, .sf-block-title), body :is(h1, h2, h3) { font-weight: 400; }
h1 { font-size: clamp(32px, 3.6vw, 48px); }
h2 { font-size: clamp(26px, 2.6vw, 38px); }
h3 { font-size: clamp(20px, 1.8vw, 24px); }

a { color: var(--sf-sage); }
a:hover { color: var(--sf-sage-dark); }

/* Esquinas rectas en todo el sitio */
img,
button,
input,
select,
textarea,
.button,
.wp-block-button__link,
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.ast-button,
.menu-toggle {
  border-radius: 0 !important;
}

.sf-wrap {
  max-width: var(--sf-wrap);
  margin: 0 auto;
  padding: 0 var(--sf-gutter);
}
.ast-container { max-width: var(--sf-wrap); }
.tax-product_cat #content > .ast-container,
.single-product #content > .ast-container,
.post-type-archive-product #content > .ast-container { max-width: none; padding-left: 0; padding-right: 0; }

.sf-eyebrow {
  display: block;
  font-family: var(--sf-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sf-muted);
  margin: 0 0 12px;
}
.sf-lead { font-size: 18px; line-height: 1.6; max-width: 720px; margin: 0; }
.sf-section { padding: var(--sf-space-l) 0; }
.sf-section--mint { background: var(--sf-mint); }
.sf-section__head { margin-bottom: var(--sf-space-m); }
.sf-section__head h2 { margin: 0 0 12px; }

/* =========================================================
   3. BOTONES
   ========================================================= */
.sf-btn,
.woocommerce .button.alt,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce #respond input#submit.alt,
.single_add_to_cart_button,
#place_order,
.wc-proceed-to-checkout .checkout-button {
  display: inline-block;
  background: var(--sf-sage) !important;
  color: var(--sf-white) !important;
  border: 1px solid var(--sf-sage) !important;
  font-family: var(--sf-sans);
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 16px 32px !important;
  line-height: 1.2 !important;
  cursor: pointer;
  transition: background-color .2s ease;
}
.sf-btn:hover,
.woocommerce .button.alt:hover,
.single_add_to_cart_button:hover,
#place_order:hover,
.wc-proceed-to-checkout .checkout-button:hover {
  background: var(--sf-sage-dark) !important;
  border-color: var(--sf-sage-dark) !important;
  color: var(--sf-white) !important;
}
.sf-btn--ghost {
  background: transparent !important;
  color: var(--sf-sage) !important;
}
.sf-btn--ghost:hover { color: var(--sf-white) !important; }

.sf-link-arrow {
  font-weight: 600;
  color: var(--sf-ink);
  text-decoration: none;
}
.sf-link-arrow::after { content: " \203A"; }
.sf-link-arrow:hover { color: var(--sf-sage); }

/* =========================================================
   4. BLOQUES REUTILIZABLES
   ========================================================= */

/* 4.1 Fila de momentos (tarjetas verticales con desplazamiento) */
.sf-moments {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, calc((100% - 3 * 24px) / 4));
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.sf-moments::-webkit-scrollbar { display: none; }
.sf-moment { scroll-snap-align: start; text-decoration: none; }
.sf-moment__img {
  aspect-ratio: 2 / 3;
  background: var(--sf-paper);
  overflow: hidden;
}
.sf-moment__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.sf-moment:hover .sf-moment__img img { transform: scale(1.03); }
.sf-moment__label { display: block; margin-top: 14px; font-weight: 600; color: var(--sf-ink); }
.sf-moment__label::after { content: " \203A"; }

/* 4.2 Selección editorial (rejilla con etiqueta sobre la foto) */
.sf-edit {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.sf-edit__item {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  background: var(--sf-paper);
  overflow: hidden;
  text-decoration: none;
}
.sf-edit__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.sf-edit__item:hover img { transform: scale(1.03); }
.sf-edit__label {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 7%;
  background: var(--sf-white);
  color: var(--sf-ink);
  text-align: center;
  font-weight: 600;
  font-size: 15px;
  padding: 14px 12px;
}

/* 4.3 Bloque dividido (texto + imagen) */
.sf-split {
  display: grid;
  grid-template-columns: 5fr 7fr;
  background: var(--sf-mint);
}
.sf-split__text {
  padding: clamp(32px, 5vw, 80px);
  align-self: center;
}
.sf-split__text h2 { margin: 0 0 20px; }
.sf-split__text p { margin: 0 0 28px; max-width: 520px; }
.sf-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 320px; }

/* 4.4 Barra de confianza */
.sf-trust {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border-top: 1px solid var(--sf-line);
  border-bottom: 1px solid var(--sf-line);
  padding: 28px 0;
}
.sf-trust__item strong {
  display: block;
  font-family: var(--sf-serif);
  font-weight: 400;
  font-size: 20px;
  color: var(--sf-ink);
  margin-bottom: 4px;
}
.sf-trust__item span { font-size: 14px; color: var(--sf-muted); }

/* 4.5 Preguntas frecuentes (sin JavaScript) */
.sf-faq { max-width: 880px; margin: 0 auto; }
.sf-faq details { border-bottom: 1px solid var(--sf-line); }
.sf-faq details:first-of-type { border-top: 1px solid var(--sf-line); }
.sf-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 22px 40px 22px 0;
  position: relative;
  font-family: var(--sf-serif);
  font-size: 20px;
  color: var(--sf-ink);
}
.sf-faq summary::-webkit-details-marker { display: none; }
.sf-faq summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 18px;
  font-family: var(--sf-sans);
  font-size: 24px;
  font-weight: 300;
}
.sf-faq details[open] summary::after { content: "\2013"; }
.sf-faq__a { padding: 0 0 24px; max-width: 760px; }
.sf-faq__a p { font-size: 14px; line-height: 1.65; color: var(--sf-text); margin: 0; }
.sf-faq summary:focus { outline: none; }
.sf-faq summary:focus-visible { outline: 1px solid var(--sf-line); outline-offset: 4px; }

/* 4.6 Texto editorial (bloque SEO) */
.sf-prose { max-width: 760px; }
.sf-prose h2 { margin: 0 0 20px; }
.sf-prose h3 { margin: 32px 0 12px; }
.sf-prose p, .sf-prose li { font-size: 17px; }
.sf-prose a { text-decoration: underline; text-underline-offset: 3px; }

/* 4.7 Enlaces a otras categorías */
.sf-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sf-chips a {
  display: inline-block;
  border: 1px solid var(--sf-line);
  padding: 10px 18px;
  color: var(--sf-ink);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
}
.sf-chips a:hover { border-color: var(--sf-sage); color: var(--sf-sage); }

/* =========================================================
   5. TARJETA DE PRODUCTO
   ========================================================= */
.sf-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px 2px; /* 32 px entre filas, 2 px entre columnas */
  margin: 0;
  padding: 0;
  list-style: none;
}
.sf-card {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 0 0 28px;
  transition: background-color .25s ease;
}
/* Hover sutil: fondo gris claro del tamaño de la tarjeta */
.sf-card:hover { background: #f2f3f1; }
.sf-card a { text-decoration: none; color: inherit; }
.sf-card__img {
  display: block;
  aspect-ratio: 1 / 1;
  background: var(--sf-paper);
  overflow: hidden;
  margin-bottom: 14px;
}
.sf-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-card__title {
  font-family: var(--sf-sans);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  margin: 0 0 4px;
  color: var(--sf-text);
}
.sf-card .sf-card__name { display: block; color: var(--sf-text); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Toda la tarjeta lleva a la ficha */
.sf-card .sf-card__name::after { content: ""; position: absolute; inset: 0; }
.sf-card__price { color: var(--sf-text); font-size: 14px; font-weight: 300; }
/* Productos juntos (estilo Minted): 2 px entre columnas y 32 px entre filas. */
.sf-card__title, .sf-card__price { display: block; padding: 0 12px; }
.sf-card__price del { color: var(--sf-muted); margin-right: 6px; }
.sf-card__price ins { text-decoration: none; }

/* Anula el diseño de rejilla de Astra/WooCommerce en nuestras listas */
.woocommerce ul.products.sf-grid,
.woocommerce-page ul.products.sf-grid { display: grid; margin: 0; overflow: hidden; }
.woocommerce ul.products.sf-grid::before,
.woocommerce ul.products.sf-grid::after { display: none; }
.woocommerce ul.products.sf-grid li.product,
.woocommerce-page ul.products.sf-grid li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  text-align: left;
}

/* =========================================================
   6. CATEGORÍA
   ========================================================= */
/* Sin el margen superior de Astra: el contenido arranca cerca del menú */
.tax-product_cat #primary,
.single-product #primary,
.post-type-archive-product #primary { margin-top: 0; }

.sf-breadcrumb { font-size: 13px; color: var(--sf-muted); padding-top: 20px; }
.sf-breadcrumb a { color: var(--sf-muted); text-decoration: none; }
.sf-breadcrumb a:hover { color: var(--sf-sage); }
.sf-breadcrumb .separator { margin: 0 6px; }
.sf-breadcrumb p { margin: 0; }

/* Cabecera: H1 pequeño (palabra clave), titular grande (H2) y descripción discreta.
   El bloque de textos ocupa 2/3 del contenedor (todo el ancho en móvil). */
.sf-cat-head { padding: 14px 0 28px; width: 66.666%; margin: 0 auto; text-align: center; }
.sf-cat-head .sf-kw {
  font-family: var(--sf-sans);
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.02em;
  text-transform: none;
  line-height: 1.4;
  color: var(--sf-muted);
  margin: 0 0 10px;
}
.sf-cat-head .sf-headline { font-size: clamp(28px, 2.8vw, 38px); line-height: 1.2; margin: 0 0 12px; color: var(--sf-sage); }
.sf-cat-head .sf-lead {
  max-width: none;
  font-size: 13px;
  line-height: 1.5;
  color: var(--sf-muted);
}
.sf-cat-head .sf-lead p { margin: 0; }

/* Círculos para afinar la búsqueda */
/* Bloque superior de la categoría (migas, títulos, descripción y círculos) */
.sf-cat-top { background: var(--sf-cream); padding-bottom: 32px; }
.sf-cat-top .sf-cat-head { padding-bottom: 44px; }
.sf-cat-top .sf-cat-head:last-child { padding-bottom: 0; }
.sf-cat-circles { margin: 0; position: relative; }

/* Pastillas: enlaces relacionados bajo los productos (enlazado interno) */
.sf-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.sf-pill {
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  padding: 7px 13px;
  border: 1px solid var(--sf-line);
  border-radius: 999px;
  background: var(--sf-white);
  color: var(--sf-ink);
  text-decoration: none;
}
.sf-pill:hover { border-color: var(--sf-ink); color: var(--sf-ink); }

/* Flechas del carrusel de círculos: solo si no caben todos (escritorio) */
.sf-scroll-btn {
  position: absolute;
  top: 51px;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border-radius: 50% !important;
  border: 1px solid var(--sf-line) !important;
  background: var(--sf-white);
  color: var(--sf-ink);
  font-size: 18px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.sf-scroll-btn:hover { border-color: var(--sf-ink) !important; }
.sf-scroll-btn--prev { left: -18px; }
.sf-scroll-btn--next { right: -18px; }
.sf-cat-circles.is-scrollable .sf-scroll-btn { display: flex; }
.sf-cat-circles .sf-scroll-btn[disabled] { display: none; }

/* Carrusel de pastillas: siempre una sola línea */
.sf-scroller { position: relative; }
.sf-scroller .sf-scroll-btn { top: 50%; width: 32px; height: 32px; font-size: 16px; }
.sf-scroller.is-scrollable .sf-scroll-btn { display: flex; }
.sf-scroller .sf-scroll-btn[disabled] { display: none; }
.sf-scroller .sf-pills {
  flex-wrap: nowrap;
  justify-content: flex-start;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 2px 0;
}
.sf-scroller .sf-pills::-webkit-scrollbar { display: none; }
.sf-scroller .sf-pills li { flex: 0 0 auto; }
.sf-scroller .sf-pills li:first-child { margin-left: auto; }
.sf-scroller .sf-pills li:last-child { margin-right: auto; }
.sf-scroller .sf-pill { white-space: nowrap; }
.sf-circles {
  display: flex;
  gap: 20px;
  margin: 0 -3px;
  padding: 3px 3px 4px; /* espacio para el contorno del hover dentro del área con scroll */
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
}
.sf-circles::-webkit-scrollbar { display: none; }
.sf-circles li { flex: 0 0 auto; width: 112px; }
/* Centrados; si no caben, el carrusel empieza por el primero sin recortarlo */
.sf-circles li:first-child { margin-left: auto; }
.sf-circles li:last-child { margin-right: auto; }
.sf-circles a { display: block; text-align: center; text-decoration: none; color: var(--sf-ink); }
.sf-circles__img {
  display: block;
  width: 96px;
  height: 96px;
  margin: 0 auto 10px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--sf-paper);
  box-shadow: 0 0 0 1px var(--sf-line);
}
.sf-circles__img img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50% !important; }
.sf-circles a:hover .sf-circles__img,
.sf-circles a:focus-visible .sf-circles__img { box-shadow: 0 0 0 2px var(--sf-ink); }
.sf-circles a:focus { outline: none; }
.sf-circles__label { display: block; font-size: 13px; line-height: 1.35; }
.sf-section--top0 { padding-top: 0; }
.sf-section--tight { padding: 0 0 var(--sf-space-l); }
.sf-seen { padding-top: var(--sf-space-m); }
/* Vistos recientemente: franja gris propia (distinta del boletín #e6e8e4) para que destaque */
.sf-seen:not([hidden]) { background: #eceee9; padding: var(--sf-space-m) 0; margin: 0; }

/* Parte inferior de la categoría: fondo gris claro para separarla de los productos */
.sf-cat-bottom { background: #f2f3f1; padding-top: var(--sf-space-l); }
.sf-cat-bottom > .sf-section:first-child { padding-top: 0; }

/* Boletín: franja algo más oscura que la parte inferior */
.sf-news { background: #e6e8e4; padding: 40px 0; }
.sf-news__inner { display: grid; grid-template-columns: 1fr 1.15fr; gap: 24px 56px; align-items: start; }
.sf-news__title { font-family: var(--sf-sans); font-size: 18px; font-weight: 500; line-height: 1.45; color: var(--sf-ink); margin: 0 0 6px; }
.sf-news__sub { font-size: 13px; color: var(--sf-muted); margin: 0; }
.sf-news__fields { display: flex; gap: 12px; }
.sf-news__fields input {
  flex: 1 1 0;
  min-width: 0;
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--sf-line);
  background: var(--sf-white);
  font-family: var(--sf-sans);
  font-size: 15px;
  color: var(--sf-ink);
}
.sf-news__fields input:focus { outline: none; border-color: var(--sf-ink); }
.sf-news__fields .sf-btn { flex: 0 0 auto; height: 52px; padding: 0 24px !important; }
.sf-news__consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: 12px; line-height: 1.5; color: var(--sf-text); cursor: pointer; }
.sf-news__consent input { margin-top: 2px; accent-color: var(--sf-sage); }
.sf-news__consent a { color: var(--sf-text); text-decoration: underline; text-underline-offset: 2px; }
.sf-news__msg { font-size: 15px; color: var(--sf-sage-dark); margin: 0 0 12px; }
.sf-news__msg--error { color: #9b3b30; }
.sf-news__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sf-news + .sf-seo { border-top: 0; }

/* Títulos pequeños de bloque (Vistos recientemente, Enlaces relacionados) */
.sf-block-title { text-align: left; font-family: var(--sf-serif); font-size: clamp(24px, 2vw, 30px); font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--sf-ink); margin: 0 0 22px; }

/* Preguntas frecuentes centradas */
.sf-faq-block .sf-section__head { text-align: center; }
.sf-faq summary { text-align: left; }

/* Vistos recientemente (se rellena en el navegador) */
.sf-seen__list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sf-seen__item { display: block; color: var(--sf-ink); text-decoration: none; }
.sf-seen__item img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; display: block; margin-bottom: 10px; }
.sf-seen__name { display: block; font-size: 13px; line-height: 1.35; }
.sf-seen__price { display: block; font-size: 13px; color: var(--sf-muted); margin-top: 2px; }

/* Texto SEO al final: pequeño, gris claro, a dos columnas */
.sf-seo { background: var(--sf-bg); padding: 56px 0 64px; }
.sf-seo__text {
  columns: 2;
  column-gap: 56px;
  color: var(--sf-muted);
  font-size: 12px;
  line-height: 1.65;
}
.sf-seo__text h2 {
  font-family: var(--sf-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--sf-text);
  margin: 0 0 12px;
  break-after: avoid;
}
.sf-seo__text h3 {
  font-family: var(--sf-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--sf-text);
  margin: 20px 0 8px;
  break-after: avoid;
}
.sf-seo__text p, .sf-seo__text li { font-size: 12px; margin: 0 0 10px; }
.sf-seo__text ul { margin: 0 0 10px; padding-left: 16px; }
.sf-seo__text a { color: var(--sf-text); text-decoration: underline; text-underline-offset: 2px; }

.sf-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin: var(--sf-space-m) 0 28px;
  font-size: 14px;
  color: var(--sf-muted);
}
.sf-toolbar .woocommerce-ordering { margin: 0; }
.sf-toolbar select {
  border: 1px solid var(--sf-line);
  background: var(--sf-white);
  padding: 10px 14px;
  font-size: 14px;
}
.sf-toolbar .woocommerce-result-count { margin: 0; }

/* Aire bajo la rejilla de la categoría, haya o no paginador */
body.archive .sf-wrap > ul.products { margin-bottom: var(--sf-space-l) !important; }
.woocommerce-pagination { margin: 0 0 var(--sf-space-l); }
.woocommerce-pagination ul.page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 0;
}
.woocommerce-pagination ul.page-numbers li { margin: 0; padding: 0; border: 0; }
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  font-size: 14px;
  color: var(--sf-ink);
  text-decoration: none;
  border: 1px solid transparent;
}
.woocommerce-pagination .page-numbers a:hover { border-color: var(--sf-line); }
.woocommerce-pagination .page-numbers span.current { border-color: var(--sf-ink); }

/* =========================================================
   7. FICHA DE PRODUCTO (proporciones de referencia: Minted)
   Bloque centrado: galería 560 px + columna de compra 380 px.
   ========================================================= */
.sf-product { padding-bottom: var(--sf-space-l); }
.sf-pdp-shell { max-width: 1000px; margin: 0 auto; padding: 0 var(--sf-gutter); box-sizing: content-box; }
.sf-back { display: inline-block; font-size: 12px; font-weight: 500; color: var(--sf-muted); text-decoration: none; margin: 20px 0 14px; }
.sf-back::before { content: "\2039  "; }
.sf-back:hover { color: var(--sf-ink); }

.sf-pdp {
  display: grid;
  grid-template-columns: minmax(0, 560px) minmax(0, 380px);
  justify-content: space-between;
  gap: 56px;
  align-items: start;
}
.sf-pdp__gallery { position: sticky; top: 24px; }
.woocommerce .sf-pdp .summary,
.woocommerce .sf-pdp .sf-pdp__gallery { width: auto !important; float: none !important; margin: 0 !important; }
.sf-pdp__main { aspect-ratio: 1 / 1; background: var(--sf-paper); overflow: hidden; }
.sf-pdp__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-pdp__thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.sf-pdp__thumb {
  width: 80px;
  height: 80px;
  padding: 0;
  border: 1px solid transparent !important;
  background: var(--sf-paper);
  cursor: pointer;
  overflow: hidden;
}
.sf-pdp__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .7; }
.sf-pdp__thumb[aria-current="true"] { border-color: var(--sf-ink) !important; }
.sf-pdp__thumb[aria-current="true"] img,
.sf-pdp__thumb:hover img { opacity: 1; }

/* Columna de compra */
.sf-pdp__info { font-size: 14px; }
.sf-pdp__info .product_title { font-size: 28px; line-height: 1.15; margin: 0 0 6px; }
.sf-pdp__sub {
  display: block;
  font-family: var(--sf-sans);
  font-size: 13px;
  line-height: 1.5;
  color: var(--sf-muted);
  margin-top: 8px;
  letter-spacing: 0;
}
.sf-pdp__price { font-size: 18px; color: var(--sf-ink); margin: 14px 0 16px; }
.sf-pdp__price del { color: var(--sf-muted); font-size: 15px; margin-right: 8px; }
.sf-pdp__price ins { text-decoration: none; }
.sf-pdp__excerpt { font-size: 13px; line-height: 1.55; color: var(--sf-text); margin-bottom: 22px; }
.sf-pdp__excerpt ul { margin: 0 0 0 16px; padding: 0; }
.sf-pdp__excerpt li { margin-bottom: 2px; }
.sf-pdp__excerpt li p { margin: 0; }
.sf-pdp__excerpt p:empty { display: none; }

/* Etiquetas de cada opción: cursiva serif + valor elegido (estilo Minted) */
.sf-pdp .variations label,
.sf-pdp .wpcpo-option-name,
.sf-pdp .sf-field-label {
  display: block;
  font-family: var(--sf-serif);
  font-style: italic;
  font-size: 16px;
  font-weight: 400;
  color: var(--sf-ink);
  margin: 0 0 10px;
}
.sf-pdp .wpcpo-option-name strong { font-weight: 400; }
.sf-pdp .wpcpo-option-name > span { font-style: normal; color: var(--sf-muted); margin-left: 2px; }
.sf-var-value { font-family: var(--sf-sans); font-style: normal; font-size: 14px; color: var(--sf-text); margin-left: 6px; }

/* Formulario */
.sf-pdp form.cart { margin: 0 0 24px; }
.sf-pdp .variations { border: 0; margin: 0; width: 100%; }
.sf-pdp .variations tr { display: block; margin-bottom: 22px; }
.sf-pdp .variations th,
.sf-pdp .variations td { display: block; padding: 0; border: 0; text-align: left; background: none; }
.sf-pdp .variations select { width: 100%; height: 44px; border: 1px solid var(--sf-line); padding: 0 14px; background: var(--sf-white); }
.sf-pdp .variations select.sf-has-swatches { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.sf-pdp .reset_variations { display: none !important; }
.sf-pdp .single_variation_wrap .woocommerce-variation-price { display: none; }
.sf-pdp .woocommerce-variation-availability { font-size: 13px; color: var(--sf-muted); }

.sf-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.sf-swatch {
  flex: 1 1 0;
  min-width: 0;
  height: 44px;
  border: 1px solid var(--sf-line) !important;
  background: var(--sf-white);
  color: var(--sf-ink);
  font-size: 13px;
  font-weight: 500;
  padding: 0 10px;
  cursor: pointer;
}
.sf-swatch:hover { border-color: var(--sf-ink) !important; }
.sf-swatch[aria-pressed="true"] { border-color: var(--sf-ink) !important; box-shadow: inset 0 0 0 1px var(--sf-ink); }
.sf-swatch:disabled { opacity: .35; cursor: not-allowed; }

/* Opciones de producto (WPC): fecha y hora, base y extras */
.sf-pdp .wpcpo-wrapper { margin: 0; }
.sf-pdp .wpcpo-option { margin: 0 0 22px; padding: 0; border: 0; }

/* Entrega, franja, dedicatoria y anónimo (campos propios del tema) */
.sf-delivery { margin: 0 0 8px; }
.sf-field { margin: 0 0 20px; padding: 0; border: 0; min-width: 0; }
.sf-field__label { display: block; font-family: var(--sf-serif); font-style: italic; font-size: 16px; font-weight: 400; color: var(--sf-ink); margin: 0 0 10px; padding: 0; }
.sf-field__opt { font-family: var(--sf-sans); font-style: normal; font-size: 12px; color: var(--sf-muted); }
.sf-field__input {
  width: 100%;
  border: 1px solid var(--sf-line);
  background: var(--sf-white);
  padding: 11px 14px;
  font-family: var(--sf-sans);
  font-size: 14px;
  color: var(--sf-ink);
}
input.sf-field__input { height: 44px; padding-top: 0; padding-bottom: 0; }
.sf-field__input:focus { outline: none; border-color: var(--sf-ink); }
textarea.sf-field__input { resize: vertical; min-height: 84px; line-height: 1.5; }
.sf-field__count { display: block; text-align: right; font-size: 11px; color: var(--sf-muted); margin-top: 4px; }
.sf-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sf-slots .sf-field__label { grid-column: 1 / -1; }
.sf-slot { position: relative; cursor: pointer; }
.sf-slot input { position: absolute; opacity: 0; }
.sf-slot span { display: block; border: 1px solid var(--sf-line); background: var(--sf-white); padding: 11px 10px; font-size: 13px; text-align: center; color: var(--sf-text); }
.sf-slot input:checked + span { border-color: var(--sf-ink); box-shadow: inset 0 0 0 1px var(--sf-ink); color: var(--sf-ink); }
.sf-slot input:focus-visible + span { outline: 1px solid var(--sf-sage); outline-offset: 2px; }
.sf-slot input:disabled + span { color: #b9bbb7; background: var(--sf-bg); cursor: not-allowed; text-decoration: line-through; }
.sf-delivery__msg { font-size: 13px; color: #9b3b30; margin: -8px 0 12px; }
.sf-delivery__msg.is-info { color: var(--sf-sage-dark); }
.sf-delivery__note { font-size: 12px; line-height: 1.55; color: var(--sf-muted); margin: -4px 0 22px; }
.sf-delivery__note a { color: var(--sf-text); text-decoration: underline; text-underline-offset: 2px; }
.sf-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--sf-text); margin: -6px 0 22px; cursor: pointer; }
.sf-check input { margin-top: 3px; accent-color: var(--sf-sage); }
.sf-pdp .wpcpo-option-form .form-row { margin: 0; padding: 0; }
.sf-pdp .wpcpo-option-date-time-picker input {
  width: 100%;
  height: 44px;
  border: 1px solid var(--sf-line);
  padding: 0 14px;
  font-size: 14px;
  background: var(--sf-white);
  color: var(--sf-ink);
}
.sf-pdp .wpcpo-option-date-time-picker input { border-color: var(--sf-line) !important; }
.sf-pdp .wpcpo-option-date-time-picker input:focus { border-color: var(--sf-ink) !important; outline: none; }
.sf-pdp .wpcpo-option-radio .form-row,
.sf-pdp .wpcpo-option-checkbox .form-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.sf-option-card {
  position: relative;
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  border: 1px solid var(--sf-line);
  background: var(--sf-white);
  padding: 0 0 10px;
  margin: 0;
  cursor: pointer;
  text-align: center;
}
.sf-option-card input { position: absolute; opacity: 0; pointer-events: none; }
.sf-option-card:hover { border-color: var(--sf-ink); }
.sf-option-card.sf-card-selected { border-color: var(--sf-ink); box-shadow: inset 0 0 0 1px var(--sf-ink); }
.sf-card-img { width: 100%; aspect-ratio: 1 / 1; background: var(--sf-paper); display: flex; align-items: center; justify-content: center; overflow: hidden; margin-bottom: 8px; }
.sf-card-img img { width: 100%; height: 100%; object-fit: cover; }
.sf-card-placeholder span { font-family: var(--sf-serif); font-size: 22px; color: var(--sf-sage); }
.sf-card-body { display: flex; flex-direction: column; padding: 0 6px; }
.sf-card-name { font-size: 12px; font-weight: 500; line-height: 1.3; color: var(--sf-ink); }
.sf-card-price { font-size: 12px; color: var(--sf-muted); margin-top: 2px; }
.sf-card-check {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 18px;
  height: 18px;
  background: var(--sf-white);
  border: 1px solid var(--sf-line);
  color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
}
.sf-card-selected .sf-card-check { background: var(--sf-ink); border-color: var(--sf-ink); color: var(--sf-white); }
.sf-pdp .wpcpo-option-radio { margin-bottom: 8px; }
.sf-base-note { font-size: 12px; color: var(--sf-muted); margin: 0 0 22px; }
.sf-base-note-icon { display: none; }

/* Botón */
.sf-pdp form.cart .quantity { display: none !important; }

/* Total con extras (resumen de WPC): solo la línea "Total" */
.sf-pdp .wpcpo-total { margin: 0 0 12px; }
.sf-pdp .wpcpo-total ul { list-style: none; margin: 0; padding: 0; }
.sf-pdp .wpcpo-total li:not(.wpcpo-subtotal) { display: none; }
.sf-pdp .wpcpo-subtotal { display: block; border-top: 1px solid var(--sf-line); padding: 14px 0 4px; }
.sf-pdp .wpcpo-clear { display: none; }
.sf-pdp .wpcpo-subtotal-amount { display: flex; justify-content: space-between; align-items: baseline; font-size: 0; }
.sf-pdp .wpcpo-subtotal-amount::before { content: "Total"; font-family: var(--sf-serif); font-style: italic; font-size: 16px; color: var(--sf-ink); }
.sf-pdp .wpcpo-subtotal-amount .amount { font-size: 18px; color: var(--sf-ink); font-weight: 400; }
.sf-pdp .woocommerce-variation-add-to-cart { display: block; }
.sf-pdp form.cart:not(.variations_form) { display: block; }
.sf-pdp form.cart .single_add_to_cart_button {
  width: 100% !important;
  float: none !important;
  height: 48px;
  padding: 0 !important;
  margin: 4px 0 0 !important;
  font-size: 13px !important;
  letter-spacing: 0.12em;
}
.sf-pdp form.cart .single_add_to_cart_button.disabled { opacity: .5; }

/* Datos de servicio bajo el botón */
.sf-facts { border-top: 1px solid var(--sf-line); margin: 0; padding: 0; list-style: none; }
.sf-facts li { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--sf-line); font-size: 13px; }
.sf-facts em { font-family: var(--sf-serif); font-size: 15px; color: var(--sf-ink); min-width: 84px; }
.sf-facts a { color: var(--sf-ink); }

/* Detalles y relacionados */
/* Bloques de texto + foto bajo la compra (referencia: Interflora) */
.sf-story { padding: var(--sf-space-l) 0 0; }
.sf-story__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--sf-gutter);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 72px;
  align-items: start;
}
.sf-story__text { max-width: 560px; }
.sf-story__text h2 { font-size: clamp(26px, 2.4vw, 34px); line-height: 1.2; margin: 0 0 22px; }
.sf-story__text h2 ~ h2,
.sf-story__text h3 {
  font-family: var(--sf-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--sf-sage-dark);
  margin: 28px 0 8px;
}
.sf-story__text p, .sf-story__text li { font-size: 15px; line-height: 1.7; color: var(--sf-text); margin: 0 0 12px; }
.sf-story__text a { color: var(--sf-ink); }
.sf-story__media { margin: 0; position: sticky; top: 96px; aspect-ratio: 4 / 5; overflow: hidden; background: var(--sf-paper); }
.sf-story__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-story--delivery { padding-bottom: var(--sf-space-l); }
.sf-story--delivery .sf-story__inner { align-items: center; }
.sf-story--delivery .sf-story__media { position: static; aspect-ratio: 1 / 1; }

/* Parte inferior de la ficha */
.sf-pdp-bottom .sf-related__head { text-align: center; }
.sf-related__head h2 { font-size: clamp(26px, 2.4vw, 34px); margin: 0 0 6px; }
.sf-related__head p { font-size: 14px; color: var(--sf-muted); margin: 0; }
/* Carrusel de "También te puede gustar": 4 a la vista, desliza para ver más */
.sf-scroller--products .sf-scroll-btn { top: 38%; width: 40px; height: 40px; font-size: 20px; }
.woocommerce .sf-scroller--products ul.products.sf-grid {
  display: flex;
  gap: 2px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.sf-scroller--products ul.products.sf-grid::-webkit-scrollbar { display: none; }
.woocommerce .sf-scroller--products ul.products.sf-grid li.product { flex: 0 0 calc((100% - 6px) / 4); scroll-snap-align: start; }

/* Barra fija de compra */
.sf-buybar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  background: var(--sf-bg);
  border-top: 1px solid var(--sf-line);
  box-shadow: 0 -6px 20px rgba(0, 0, 0, .05);
  transform: translateY(100%);
  transition: transform .3s ease;
}
.sf-buybar.is-visible { transform: translateY(0); }
.sf-buybar__inner { max-width: 1000px; margin: 0 auto; padding: 12px var(--sf-gutter); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.sf-buybar__info { display: flex; align-items: center; gap: 14px; min-width: 0; }
.sf-buybar__info img { width: 48px; height: 48px; object-fit: cover; flex: 0 0 auto; }
.sf-buybar__info strong { display: block; font-family: var(--sf-serif); font-weight: 400; font-size: 17px; color: var(--sf-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sf-buybar__price { display: block; font-size: 13px; color: var(--sf-text); }
.sf-buybar__btn { flex: 0 0 auto; min-width: 260px; }
/* El botón flotante de WhatsApp sube para no tapar la barra */
.ht-ctc { transition: bottom .3s ease; }
body.sf-buybar-on .ht-ctc { bottom: 84px !important; }
#ast-scroll-top { transition: bottom .3s ease; }
body.sf-buybar-on #ast-scroll-top { bottom: 84px !important; }

/* Garantías: tres columnas con icono, fondo crema */
.sf-promises { background: var(--sf-cream); padding: 64px 0; }
.sf-promises__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; text-align: center; }
.sf-promise__icon { width: 52px; height: 52px; fill: none; stroke: var(--sf-sage); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; margin: 0 auto 18px; display: block; }
.sf-promise__title { font-size: 24px; line-height: 1.25; margin: 0 0 10px; }
.sf-promise p { font-size: 14px; line-height: 1.65; color: var(--sf-text); max-width: 340px; margin: 0 auto; }

/* Ocultar elementos de WooCommerce que no usamos en la ficha */
.sf-product .woocommerce-tabs,
.sf-product .product_meta { display: none; }

@media (max-width: 900px) {
  .sf-pdp { grid-template-columns: 1fr; gap: 28px; }
  .sf-pdp__gallery { position: static; }
  .sf-pdp__thumbs { gap: 8px; }
  .sf-pdp__thumb { width: 64px; height: 64px; }
}

/* =========================================================
   8. CARRITO Y CHECKOUT
   ========================================================= */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content { background: var(--sf-white); }
.woocommerce table.shop_table { border: 1px solid var(--sf-line); border-radius: 0; }
.woocommerce table.shop_table th { font-weight: 600; color: var(--sf-ink); }
.woocommerce-checkout #payment { background: var(--sf-paper) !important; border-radius: 0 !important; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection {
  border: 1px solid var(--sf-line) !important;
  border-radius: 0 !important;
  padding: 12px 14px;
  min-height: 48px;
}
#billing_company_field { display: none !important; }
.wc-proceed-to-checkout .checkout-button,
#place_order { width: 100%; text-align: center; }

/* =========================================================
   9. RESPONSIVE
   ========================================================= */
@media (max-width: 1024px) {
  .sf-grid, .sf-edit { grid-template-columns: repeat(3, 1fr); }
  .sf-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .sf-grid, .sf-edit { grid-template-columns: repeat(2, 1fr); gap: 20px 2px; }
  .sf-card { padding: 0 0 20px; }
  .sf-card__title, .sf-card__price { padding: 0 8px; }
  .sf-edit { gap: 12px; }
  .sf-moments { grid-auto-columns: 62%; gap: 14px; }
  .sf-cat-head { width: 100%; }
  .sf-cat-circles.is-scrollable .sf-scroll-btn { display: none; }
  .sf-circles { gap: 12px; }
  .sf-circles li { width: 84px; }
  .sf-circles__img { width: 72px; height: 72px; }
  .sf-circles__label { font-size: 12px; }
  .sf-split { grid-template-columns: 1fr; }
  .sf-split__media { order: -1; }
  .sf-toolbar { flex-direction: column; align-items: flex-start; }
  .sf-edit__label { font-size: 13px; padding: 10px 8px; }
  .sf-faq summary { font-size: 18px; }
  .sf-seen__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .sf-seo__text { columns: 1; }
  .sf-story__inner { grid-template-columns: 1fr; gap: 28px; }
  .sf-story__media { position: static; order: -1; }
  .sf-promises__grid { grid-template-columns: 1fr; gap: 36px; }
  .woocommerce .sf-scroller--products ul.products.sf-grid li.product { flex-basis: 70%; }
  .sf-buybar__info { display: none; }
  .sf-buybar__inner { justify-content: center; padding: 10px 16px; }
  .sf-buybar__btn { width: 100%; min-width: 0; }
  .sf-scroller.is-scrollable .sf-scroll-btn { display: none; }
  .sf-news__inner { grid-template-columns: 1fr; }
  .sf-news__fields { flex-direction: column; }
}


/* =========================================================
   CARRITO Y PAGO
   ========================================================= */
.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header { text-align: center; margin: 32px 0 28px; }
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title { font-size: clamp(28px, 3vw, 38px); }
.woocommerce-cart .site-content > .ast-container,
.woocommerce-checkout .site-content > .ast-container { max-width: 1160px; }

/* Carrito: lista a la izquierda, resumen a la derecha */
.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 0 56px;
  align-items: start;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart .cart-collaterals { width: auto; position: sticky; top: 96px; }
.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none; }

.woocommerce-cart table.shop_table.cart { border: 0; border-top: 1px solid var(--sf-line); border-radius: 0; margin: 0; display: block; }
.woocommerce-cart table.shop_table.cart thead { display: none; }
.woocommerce-cart table.shop_table.cart tbody { display: block; }
.woocommerce-cart table.shop_table.cart tr.cart_item {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  grid-template-areas: "thumb name subtotal" "thumb qty remove";
  gap: 6px 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--sf-line);
}
.woocommerce-cart table.shop_table.cart tr.cart_item td { display: block; padding: 0; border: 0; background: none; text-align: left; }
.woocommerce-cart table.shop_table.cart td::before { display: none !important; }
.woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 96px !important; height: 96px; object-fit: cover; max-width: none; }
.woocommerce-cart table.cart td.product-name { grid-area: name; font-size: 14px; color: var(--sf-text); }
.woocommerce-cart table.cart td.product-name > a { font-family: var(--sf-serif); font-size: 18px; color: var(--sf-ink); text-decoration: none; display: block; margin-bottom: 6px; line-height: 1.3; }
.woocommerce-cart table.cart td.product-name dl.variation { margin: 0; font-size: 12px; color: var(--sf-muted); display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; }
.woocommerce-cart table.cart td.product-name dl.variation dt { font-weight: 500; color: var(--sf-text); margin: 0; }
.woocommerce-cart table.cart td.product-name dl.variation dd { margin: 0; }
.woocommerce-cart table.cart td.product-name dl.variation dd p { margin: 0; }
.woocommerce-cart table.cart td.product-price { display: none !important; }
.woocommerce-cart table.cart td.product-quantity { grid-area: qty; align-self: end; }
.woocommerce-cart table.cart td.product-quantity .qty { width: 64px; height: 36px; border: 1px solid var(--sf-line); text-align: center; }
.woocommerce-cart table.cart td.product-subtotal { grid-area: subtotal; font-size: 15px; color: var(--sf-ink); text-align: right; white-space: nowrap; }
.woocommerce-cart table.cart td.product-remove { grid-area: remove; align-self: end; text-align: right; }
.woocommerce-cart table.cart td.product-remove a.remove {
  width: auto !important; height: auto !important; line-height: 1 !important;
  font-size: 0 !important; color: var(--sf-muted) !important; background: none !important; border: 0 !important;
  text-decoration: underline; text-underline-offset: 2px;
}
.woocommerce-cart table.cart td.product-remove a.remove::after { content: "Quitar"; font-size: 12px; }
.woocommerce-cart table.cart td.product-remove a.remove > *,
.woocommerce-cart table.cart td.product-remove a.remove::before { display: none !important; }
.woocommerce-cart table.cart td.product-remove a.remove:hover { color: var(--sf-ink) !important; }

/* Fila de cupón y actualizar */
.woocommerce-cart table.cart tr:not(.cart_item) { display: block; }
.woocommerce-cart table.cart td.actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 20px 0 0; border: 0; background: none; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; float: none; }
.woocommerce-cart table.cart td.actions .coupon label { display: none; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 200px !important; height: 42px; border: 1px solid var(--sf-line); padding: 0 12px; font-size: 13px; background: var(--sf-white); }
.woocommerce-cart table.cart td.actions .button {
  height: 42px; padding: 0 18px !important; font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase;
  background: transparent !important; color: var(--sf-ink) !important; border: 1px solid var(--sf-ink) !important; border-radius: 0 !important; font-weight: 500;
}
.woocommerce-cart table.cart td.actions .button[name="update_cart"] { border-color: var(--sf-line) !important; color: var(--sf-muted) !important; }
.woocommerce-cart table.cart td.actions .button[disabled] { opacity: .5; }

/* Resumen */
.woocommerce-cart .cart_totals,
.woocommerce-checkout #order_review { background: var(--sf-white); border: 1px solid var(--sf-line); padding: 28px; }
.woocommerce-cart .cart_totals { display: flex; flex-direction: column; }
.woocommerce-cart .cart_totals h2 { order: -1; font-size: 24px; margin: 0 0 16px !important; padding: 0 !important; background: none !important; border: 0 !important; }
.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-checkout #order_review table.shop_table { border: 0; margin: 0; border-radius: 0; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { padding: 12px 0; border-top: 1px solid var(--sf-line); background: none; font-size: 14px; vertical-align: top; }
.woocommerce-cart .cart_totals th,
.woocommerce-checkout #order_review tfoot th { font-weight: 500; color: var(--sf-text); width: 40%; }
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td,
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td { font-size: 17px; color: var(--sf-ink); font-weight: 600; }
.woocommerce ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce ul#shipping_method li { margin: 0 0 8px; padding: 0; display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.4; }
.woocommerce ul#shipping_method li input { flex: 0 0 auto; margin: 2px 0 0 !important; position: static !important; accent-color: var(--sf-sage); }
.woocommerce ul#shipping_method li label { margin: 0 !important; padding: 0 !important; text-indent: 0 !important; display: inline !important; }
.woocommerce-shipping-destination,
.woocommerce-shipping-calculator { display: none; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 20px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: block; width: 100%; text-align: center; margin: 0; border-radius: 0 !important; }

/* Aviso de envío gratis */
.sf-freeship { margin: 0 0 18px; font-size: 13px; color: var(--sf-text); }
.sf-freeship p { margin: 0 0 8px; }
.sf-freeship strong { color: var(--sf-ink); font-weight: 600; }
.sf-freeship__bar { display: block; height: 4px; background: var(--sf-line); }
.sf-freeship__bar span { display: block; height: 100%; background: var(--sf-sage); }

/* Complementos */
.sf-compl { margin: 44px 0 0; }
.sf-compl__title { font-size: 22px; margin: 0 0 18px; }
.sf-compl__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; }
.sf-compl__item { position: relative; padding: 0 0 14px; display: flex; flex-direction: column; gap: 4px; transition: background-color .25s ease; }
.sf-compl__item:hover { background: #f2f3f1; }
.sf-compl__item img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; margin-bottom: 8px; }
.sf-compl__name { font-size: 13px; color: var(--sf-text); padding: 0 10px; }
.sf-compl__price { font-size: 13px; font-weight: 300; color: var(--sf-text); padding: 0 10px; }
.sf-compl__add { margin: 6px 10px 0; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--sf-sage-dark); text-decoration: none; }
.sf-compl__add::after { content: ""; position: absolute; inset: 0; }
.sf-compl__add:hover { color: var(--sf-ink); }

/* Avisos en carrito y pago */
.woocommerce-cart .woocommerce-message,
.woocommerce-checkout .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-checkout .woocommerce-error { border: 1px solid var(--sf-line) !important; border-radius: 0 !important; background: var(--sf-white) !important; color: var(--sf-text) !important; font-size: 14px; box-shadow: none !important; }
.woocommerce-cart .woocommerce-message::before,
.woocommerce-checkout .woocommerce-message::before { color: var(--sf-sage) !important; }
.woocommerce-cart .woocommerce-message .button.wc-forward { display: none !important; }

/* Carrito vacío */
.woocommerce-cart .cart-empty { text-align: center; font-family: var(--sf-serif); font-size: 22px; border: 0 !important; background: none !important; padding: 24px 0 8px !important; }
.woocommerce-cart .cart-empty::before { display: none; }
.woocommerce-cart .return-to-shop { text-align: center; }

/* Pago: datos a la izquierda, pedido a la derecha */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 0 56px;
  align-items: start;
}
.woocommerce-checkout form.checkout > * { grid-column: 1; }
.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px; font-size: 24px; }
.woocommerce-checkout form.checkout > .sf-freeship { grid-column: 2; grid-row: 2; }
.woocommerce-checkout #order_review_heading { border: 0 !important; padding: 0 !important; background: none !important; }
.woocommerce-checkout #order_review ul#shipping_method li { justify-content: flex-start; text-align: left; }
.woocommerce-checkout #order_review td:has(#shipping_method) { text-align: left; }
.woocommerce-checkout #payment .payment_method_wompi img { max-height: 28px; width: auto; margin: 0 0 0 8px; vertical-align: middle; }
.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 3 / span 6; position: sticky; top: 96px; }
.woocommerce-checkout form.checkout > #customer_details,
.woocommerce-checkout form.checkout > #order_review,
.woocommerce-checkout form.checkout > #order_review_heading { width: auto !important; float: none !important; margin-left: 0; margin-right: 0; }
.woocommerce-checkout #customer_details { grid-row: 1 / span 8; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; max-width: none; padding: 0; }
.woocommerce-checkout #customer_details .col-2 { margin-top: 36px; }
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #ship-to-different-address { font-family: var(--sf-serif); font-size: 24px; font-weight: 400; color: var(--sf-ink); margin: 0 0 16px; padding: 0; border: 0; }
.woocommerce-checkout #ship-to-different-address label { cursor: default; font-size: inherit; }
.woocommerce-checkout #ship-to-different-address input { display: none; }
.woocommerce-checkout .woocommerce-additional-fields > h3 { display: none; }
.woocommerce-checkout .sf-hidden-field { display: none !important; }
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { font-size: 13px; color: var(--sf-text); margin: 0 0 6px; line-height: 1.3; }
.woocommerce form .form-row .required { color: var(--sf-muted); text-decoration: none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  border: 1px solid var(--sf-line) !important; border-radius: 0 !important; background: var(--sf-white) !important;
  padding: 0 14px; height: 46px; font-size: 14px; color: var(--sf-ink); box-shadow: none !important;
}
.woocommerce form .form-row textarea { height: 90px; padding: 12px 14px; line-height: 1.5; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--sf-ink) !important; outline: none; }
.woocommerce form .form-row .description { font-size: 12px; color: var(--sf-muted); margin-top: 4px; }
.woocommerce-checkout .checkout-inline-error-message { font-size: 12px; color: #9b3b30; margin: 4px 0 0; }
.sf-pickup-note { font-size: 13px; color: var(--sf-sage-dark); background: var(--sf-mint); padding: 12px 14px; margin: 0 0 14px; }

/* Pedido y pago */
.woocommerce-checkout #order_review .product-name { color: var(--sf-ink); }
.woocommerce-checkout #order_review .product-name dl.variation { font-size: 12px; color: var(--sf-muted); margin: 4px 0 0; }
.woocommerce-checkout #order_review .product-name dl.variation p { margin: 0; }
.woocommerce-checkout #payment { background: none !important; border-radius: 0; margin-top: 8px; }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 12px 0 !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--sf-paper) !important; border-radius: 0; font-size: 13px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 12px 0 0 !important; }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; border-radius: 0 !important; }
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--sf-muted); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: none; border: 0; padding: 0 0 16px; font-size: 13px; color: var(--sf-text); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.woocommerce-checkout form.checkout_coupon { border: 1px solid var(--sf-line) !important; border-radius: 0; padding: 16px; }

@media (max-width: 900px) {
  .woocommerce-cart .woocommerce:has(.woocommerce-cart-form),
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
  .woocommerce-cart .cart-collaterals { position: static; margin-top: 32px; }
  .woocommerce-checkout form.checkout > #order_review_heading,
  .woocommerce-checkout form.checkout > .sf-freeship,
  .woocommerce-checkout form.checkout > #order_review { grid-column: 1; grid-row: auto; position: static; }
  .woocommerce-checkout #customer_details { grid-row: auto; margin-bottom: 32px; }
  .sf-compl__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce-cart table.shop_table.cart tr.cart_item { grid-template-columns: 76px minmax(0, 1fr) auto; }
  .woocommerce-cart table.cart td.product-thumbnail img { width: 76px !important; height: 76px; }
}


/* =========================================================
   CABECERA Y PIE
   ========================================================= */
.sf-header__wrap { max-width: var(--sf-wrap); margin: 0 auto; padding: 0 var(--sf-gutter); }
.sf-ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.sf-ico--brand { fill: currentColor; stroke: none; transform: scale(.9); }
.sf-header { background: var(--sf-bg); border-bottom: 1px solid var(--sf-line); position: sticky; top: -37px; z-index: 40; }
body.admin-bar .sf-header { top: -5px; } /* 32 px de la barra de WordPress */

/* Cabecera al estilo Minted (medidas tomadas de minted.com, 27 oct 2026):
   franja de anuncios 36 px, fila del logo 61 px, fila del menú 64 px. */
.sf-header { background: var(--sf-bg); border-bottom: 1px solid var(--sf-line); position: sticky; top: -91px; z-index: 40; }
body.admin-bar .sf-header { top: -59px; } /* 32 px de la barra de WordPress */

/* Franja de anuncios (verde del logo) */
.sf-promo { background: var(--sf-sage); color: #fff; height: 30px; position: relative; overflow: hidden; }
.sf-promo__item { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; padding: 0 16px; font-size: 12px; letter-spacing: .01em; text-align: center; opacity: 0; transition: opacity .5s ease; }
.sf-promo__item.is-active { opacity: 1; }

/* Fila del logo: pestañas a la izquierda, logo al centro, WhatsApp y carrito a la derecha */
.sf-header__main { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 61px; gap: 16px; }
.sf-navrow { border-top: 1px solid var(--sf-line); }
.sf-header__left { display: flex; align-items: center; gap: 6px; justify-self: start; }
.sf-header__right { display: flex; align-items: center; gap: 14px; justify-self: end; }
.sf-tabs { display: flex; gap: 14px; }
.sf-tab { font-size: 12px; font-weight: 500; letter-spacing: .5px; text-transform: uppercase; color: var(--sf-muted); text-decoration: none; padding: 2px 0; border-bottom: 1px solid transparent; }
.sf-tab:hover { color: var(--sf-ink); }
.sf-tab.is-active { color: var(--sf-ink); border-bottom-color: var(--sf-ink); }
.sf-logo { display: block; line-height: 0; }
.sf-logo__img { height: 26px; width: auto; display: block; }
.sf-header__wa { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--sf-ink); text-decoration: none; }
.sf-header__wa .sf-ico { width: 18px; height: 18px; }
.sf-header__wa:hover { color: var(--sf-sage); }
.sf-header__sep { width: 1px; height: 32px; background: var(--sf-line); }
.sf-iconbtn { display: inline-flex; align-items: center; gap: 8px; background: none !important; border: 0 !important; padding: 4px !important; color: var(--sf-ink) !important; font-size: 13px; text-decoration: none; cursor: pointer; position: relative; box-shadow: none !important; }
.sf-iconbtn .sf-ico { width: 24px; height: 24px; }
.sf-iconbtn:hover { color: var(--sf-sage) !important; }
.sf-menu-toggle { display: none !important; }
.sf-cart-count { position: absolute; top: -2px; right: -6px; min-width: 17px; height: 17px; border-radius: 9px; background: var(--sf-sage); color: var(--sf-white); font-size: 10px; line-height: 17px; text-align: center; padding: 0 4px; }

/* Fila del menú: categorías de la sección + buscador */
.sf-navrow__inner { display: flex; align-items: center; gap: 24px; height: 44px; transition: height .25s ease; }
.sf-navrow__logo, .sf-navrow__cart { display: none; }
.sf-navrow__logo-img { height: 18px; width: auto; display: block; }
.sf-nav { flex: 1; min-width: 0; }
.sf-nav__head, .sf-nav__tabs { display: none; }
.sf-menu { display: flex; justify-content: flex-start; gap: 0 40px; margin: 0; padding: 0; list-style: none; }
.sf-menu > li { position: relative; margin: 0; }
.sf-menu > li > a { display: flex; align-items: center; height: 44px; font-size: 13px; color: var(--sf-ink); text-decoration: none; transition: height .25s ease; }
.sf-menu > li > a:hover, .sf-menu > li.current-menu-item > a, .sf-menu > li.current-menu-ancestor > a { color: var(--sf-sage); }
.sf-menu .sub-menu {
  position: absolute; left: -22px; top: 100%;
  min-width: 220px; margin: 0; padding: 10px 0; list-style: none;
  background: var(--sf-bg); border: 1px solid var(--sf-line); box-shadow: 0 10px 24px rgba(0,0,0,.06);
  opacity: 0; visibility: hidden; transition: opacity .15s ease; z-index: 50;
}
.sf-menu > li:hover > .sub-menu, .sf-menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; }
.sf-menu .sub-menu a { display: block; padding: 7px 22px; font-size: 13px; color: var(--sf-text); text-decoration: none; white-space: nowrap; }
.sf-menu .sub-menu a:hover { color: var(--sf-ink); background: #f2f3f1; }
.sf-searchbox { display: flex; align-items: center; gap: 8px; width: 220px; border-bottom: 1px solid var(--sf-line); padding: 4px 0; margin: 0; }
.sf-searchbox .sf-ico { width: 16px; height: 16px; color: var(--sf-muted); }
.sf-searchbox input[type=search] { flex: 1; min-width: 0; border: 0 !important; background: none !important; padding: 0 !important; height: 20px; font-size: 13px; color: var(--sf-ink); box-shadow: none !important; outline: none; }

/* Al bajar: solo queda la fila del menú, más baja, con logo pequeño y carrito */
body.sf-scrolled .sf-navrow__inner { height: 44px; }
body.sf-scrolled .sf-menu > li > a { height: 44px; }
body.sf-scrolled .sf-navrow__logo, body.sf-scrolled .sf-navrow__cart { display: block; line-height: 0; }
body.sf-scrolled .sf-menu { gap: 0 32px; }

/* Pie */
.sf-footer { background: #f2f3f1; border-top: 1px solid var(--sf-line); color: var(--sf-text); font-size: 13px; }
.sf-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.sf-footer__logo img { height: 30px; width: auto; display: block; margin-bottom: 18px; }
.sf-footer__brand p { max-width: 300px; line-height: 1.65; margin: 0; }
.sf-footer__title { font-family: var(--sf-sans); font-size: 13px; font-weight: 600; letter-spacing: 0; color: var(--sf-ink); margin: 4px 0 14px; }
.sf-footer__links { list-style: none; margin: 0; padding: 0; }
.sf-footer__links li { margin: 0 0 9px; }
.sf-footer__links a, .sf-footer__links span { color: var(--sf-text); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.sf-footer__links a:hover { color: var(--sf-ink); text-decoration: underline; text-underline-offset: 3px; }
.sf-footer__links .sf-ico { width: 16px; height: 16px; color: var(--sf-sage); }
.sf-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid var(--sf-line); padding-top: 18px; padding-bottom: 22px; font-size: 12px; color: var(--sf-muted); }
.sf-footer__bottom p { margin: 0; }
.sf-footer__social { display: flex; gap: 6px; }
.sf-footer__social a { color: var(--sf-muted); display: inline-flex; padding: 4px; }
.sf-footer__social a:hover { color: var(--sf-ink); }
.sf-footer__social .sf-ico { width: 18px; height: 18px; }
/* Quita restos del pie y la cabecera de Astra */
.site-footer:not(.sf-footer) .ast-small-footer, .ast-footer-overlay { display: none; }

@media (max-width: 900px) {
  .sf-header { top: -30px; }
  body.admin-bar .sf-header { top: -30px; }
  .sf-promo__item { font-size: 12px; }
  .sf-header__main { grid-template-columns: auto 1fr auto; height: 56px; padding-left: 12px; padding-right: 12px; }
  .sf-header__main .sf-logo { justify-self: center; }
  .sf-tabs, .sf-header__wa, .sf-header__sep { display: none !important; }
  .sf-menu-toggle { display: inline-flex !important; }
  .sf-logo__img { height: 22px; }
  .sf-navrow__inner { height: auto; padding-top: 8px; padding-bottom: 10px; }
  .sf-searchbox { width: 100%; }
  body.sf-scrolled .sf-navrow { display: none; }
  .sf-nav {
    position: fixed; inset: 0 auto 0 0; width: min(86vw, 360px); background: var(--sf-bg); z-index: 1000;
    transform: translateX(-100%); transition: transform .25s ease; overflow-y: auto; border: 0; box-shadow: 0 0 40px rgba(0,0,0,.15); flex: none;
  }
  .sf-nav.is-open { transform: translateX(0); }
  body.sf-nav-open { overflow: hidden; }
  .sf-nav__head { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px 10px 20px; border-bottom: 1px solid var(--sf-line); }
  .sf-nav__title { font-family: var(--sf-serif); font-size: 20px; }
  .sf-menu { flex-direction: column; gap: 0; }
  .sf-menu > li { border-bottom: 1px solid var(--sf-line); }
  .sf-menu > li > a { height: auto; padding: 15px 20px; font-size: 15px; }
  .sf-menu .sub-menu { position: static; opacity: 1; visibility: visible; display: none; border: 0; box-shadow: none; padding: 0 0 10px; background: none; }
  .sf-menu > li.is-open > .sub-menu { display: block; }
  .sf-menu .sub-menu a { padding: 8px 32px; }
  .sf-nav__tabs { display: flex; flex-direction: column; padding: 16px 20px; gap: 12px; font-size: 14px; }
  .sf-nav__tabs a { color: var(--sf-text); text-decoration: none; }
  .sf-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; padding-top: 40px; }
  .sf-footer__brand { grid-column: 1 / -1; }
  .sf-footer__bottom { flex-direction: column; align-items: flex-start; }
}
/* Sin hueco entre el final de la página y el pie */
.single-product div.product.sf-product { padding-bottom: 0 !important; }
.single-product #primary, .tax-product_cat #primary, .post-type-archive-product #primary { margin-bottom: 0 !important; }

/* =========================================================
   HOME
   ========================================================= */
.sf-home-page .entry-content { margin: 0; }
.sf-home-page .site-content > .ast-container { max-width: none; padding: 0; }
.sf-home-page #primary { margin: 0 !important; padding: 0; }
.sf-home-page .entry-header { display: none; }
.sf-home-page .site-main, .sf-home-page .site-main > article { padding: 0 !important; margin: 0 !important; }

/* 1. Banner: textos + slider */
.sf-hero {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: 40px;
  align-items: center;
  max-width: none;
  margin: 0;
  padding: 56px 34px;
}
.sf-hero .sf-kw { font-family: var(--sf-serif); font-size: clamp(20px, 1.5vw, 26px); font-weight: 400; letter-spacing: 0; line-height: 1.2; color: var(--sf-text); margin: 0 0 14px; }
.sf-hero__title { font-size: clamp(32px, 2.8vw, 50px); line-height: 1.16; margin: 0 0 22px; }
.entry-content .sf-hero__intro { font-size: 13px; line-height: 1.65; color: var(--sf-text); margin: 0 0 28px; max-width: 620px; }
.sf-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.sf-hero__wa { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--sf-ink); text-decoration: underline; text-underline-offset: 3px; }
.sf-hero__wa .sf-ico { width: 18px; height: 18px; }
.sf-slider { position: relative; aspect-ratio: 2.8 / 1; overflow: hidden; background: var(--sf-paper); }
.sf-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility .7s; color: #fff; text-decoration: none; }
.sf-slide.is-active { opacity: 1; visibility: visible; }
.sf-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sf-slide__caption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 48px 28px 22px;
  background: linear-gradient(transparent, rgba(0,0,0,.45));
  display: flex; flex-direction: column; gap: 4px;
}
.sf-slide__caption strong { font-family: var(--sf-serif); font-weight: 400; font-size: 24px; line-height: 1.2; }
.sf-slide__caption span { font-size: 13px; opacity: .95; }
.sf-slider__dots { position: absolute; right: 20px; bottom: 20px; display: flex; gap: 8px; z-index: 2; }
.sf-slider__dot { width: 8px; height: 8px; border-radius: 50% !important; padding: 0 !important; border: 1px solid #fff !important; background: transparent !important; cursor: pointer; }
.sf-slider__dot.is-active { background: #fff !important; }

/* 2. Confianza */
.sf-home__trust { border-top: 1px solid var(--sf-line); border-bottom: 1px solid var(--sf-line); }
.sf-home__trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.sf-home__trust-grid > div { padding: 22px 16px; text-align: center; border-left: 1px solid var(--sf-line); }
.sf-home__trust-grid > div:first-child { border-left: 0; }
.sf-home__trust-grid strong { display: block; font-family: var(--sf-serif); font-weight: 400; font-size: 18px; color: var(--sf-ink); margin-bottom: 4px; }
.sf-home__trust-grid span { font-size: 12px; color: var(--sf-muted); }

/* Títulos de sección */
.sf-home__title { font-size: clamp(24px, 2.2vw, 30px); text-align: center; margin: 0 0 28px; }
.sf-home__title--left { text-align: left; margin-bottom: 14px; }
.sf-home__circles .sf-circles li:first-child { margin-left: auto; }
.sf-home__circles .sf-circles li:last-child { margin-right: auto; }

/* 6. Dos tarjetas */
.sf-home__duo { padding: var(--sf-space-l) 0 0; }
.sf-home__duo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sf-home__card { background: var(--sf-cream); padding: 44px 40px; }
.sf-home__card h2 { font-size: 26px; line-height: 1.25; margin: 0 0 14px; }
.sf-home__card p { font-size: 14px; line-height: 1.7; color: var(--sf-text); margin: 0 0 22px; max-width: 520px; }

/* 7. Visítanos */
.sf-home__visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.sf-home__visit-grid p { font-size: 14px; line-height: 1.7; color: var(--sf-text); max-width: 520px; }
.sf-home__visit-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.sf-home__visit-list li { display: flex; gap: 14px; align-items: flex-start; font-size: 14px; color: var(--sf-text); }
.sf-home__visit-list .sf-ico { width: 20px; height: 20px; color: var(--sf-sage); margin-top: 2px; }
.sf-home__visit-list strong { display: block; font-family: var(--sf-serif); font-weight: 400; font-size: 17px; color: var(--sf-ink); margin-bottom: 2px; }
.sf-home__visit-list a { color: var(--sf-ink); }

/* 8. Historia: foto a la izquierda */
.sf-home__story { padding-top: 0; }
.sf-home__story .sf-story__media { aspect-ratio: 4 / 5; }

/* 9. Las otras webs */
.sf-home__fronts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.sf-front { position: relative; display: block; overflow: hidden; color: var(--sf-ink); text-decoration: none; background: var(--sf-bg); }
.sf-front img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .6s ease; }
.sf-front:hover img { transform: scale(1.03); }
.sf-front__label { display: block; text-align: center; padding: 16px 10px; font-family: var(--sf-serif); font-size: 19px; }

@media (max-width: 900px) {
  .sf-hero { grid-template-columns: 1fr; gap: 24px; padding: 24px 16px 40px; }
  .sf-hero .sf-slider { order: -1; aspect-ratio: 4 / 3; }
  .sf-home__trust-grid { grid-template-columns: 1fr 1fr; }
  .sf-home__trust-grid > div:nth-child(3) { border-left: 0; }
  .sf-home__trust-grid > div:nth-child(n+3) { border-top: 1px solid var(--sf-line); }
  .sf-home__duo-grid, .sf-home__visit-grid { grid-template-columns: 1fr; gap: 20px; }
  .sf-home__card { padding: 32px 24px; }
  .sf-home__fronts-grid { grid-template-columns: 1fr; }
}
.sf-home-page article.page { padding-top: 0 !important; margin: 0 !important; }
.sf-hero { padding-top: 28px; }
.sf-home a { text-decoration: none; }
.sf-home .sf-hero__wa, .sf-home .sf-home__visit-list a, .sf-home .sf-prose a { text-decoration: underline; text-underline-offset: 3px; }
.sf-home .sf-related__head { text-align: center; }
.sf-home .sf-circles a, .sf-home .sf-front, .sf-home .sf-card a, .sf-home .sf-btn { text-decoration: none !important; }
/* Revisión móvil (27 oct) */
.sf-header .sf-logo__img { height: 26px !important; width: auto !important; max-width: none; }
.sf-navrow__logo-img { height: 18px !important; width: auto !important; }
.sf-footer__logo img { height: 30px !important; width: auto !important; }
.sf-field__input { box-sizing: border-box; max-width: 100%; }
.woocommerce-cart .return-to-shop .button {
  background: var(--sf-sage) !important; color: #fff !important; border: 0 !important; border-radius: 0 !important;
  font-size: 13px !important; letter-spacing: .08em; text-transform: uppercase; padding: 14px 28px !important;
}
@media (max-width: 900px) {
  .sf-header .sf-logo__img { height: 22px !important; }
  .sf-promo__item { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; line-height: 30px; }
}
@media (max-width: 900px) {
  .woocommerce-cart table.cart td.product-name { text-align: left !important; }
  .woocommerce-cart table.cart td.product-name > a { font-size: 16px; }
}
.sf-home .sf-related__more { text-align: center; margin: 36px 0 0; }

/* =========================================================
   LANDING DE SERVICIO (Al por mayor, Bodas): contenido en HTML con clases sf-lp-*
   ========================================================= */
.sf-lp h1 { font-size: clamp(30px, 2.8vw, 44px); line-height: 1.18; color: var(--sf-sage); margin: 0 0 18px; }
.sf-lp h2 { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.2; margin: 0 0 18px; text-align: left; }
.sf-lp h3 { font-size: 19px; line-height: 1.3; margin: 0 0 8px; }
.sf-lp p, .sf-lp li { font-size: 14px; line-height: 1.7; color: var(--sf-text); }
.sf-lp img { display: block; width: 100%; height: auto; object-fit: cover; }
.sf-lp ul { list-style: none; margin: 0; padding: 0; }
.sf-lp-cta-row { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 26px; }
.sf-lp-hero {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 40px; align-items: center;
  padding: 56px 34px; background: var(--sf-cream);
}
.sf-lp .sf-lp-lead { font-family: var(--sf-sans); font-size: 15px; font-weight: 400; line-height: 1.65; color: var(--sf-text); margin: 0 0 14px; }
.sf-lp .sf-lp-sign { font-family: var(--sf-serif); font-style: italic; font-size: 17px; color: var(--sf-ink); margin: 0; }
.sf-lp-hero__media img { aspect-ratio: 2.2 / 1; }
.sf-lp-section { padding: var(--sf-space-l) 0; }
.sf-lp-section--grey { background: #f2f3f1; }
.sf-lp .sf-lp-eyebrow { font-family: var(--sf-sans); font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--sf-sage); margin: 0 0 8px; }
.sf-lp-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin-top: 8px !important; }
.sf-lp-duo img { aspect-ratio: 4 / 3; }
.sf-lp-duo h3 { margin: 14px 0 0; }
.sf-lp-split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.sf-lp-split__media img { aspect-ratio: 4 / 3; }
.sf-lp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 2px; margin-top: 8px !important; }
.sf-lp-card img { aspect-ratio: 1; margin-bottom: 14px; }
.sf-lp-card > div { padding: 0 12px 0 0; }
.sf-lp-card p { font-size: 13px; color: var(--sf-muted); margin: 0; }
.sf-lp-prose > * { max-width: 820px; }
.sf-lp-prose p { margin: 0 0 14px; }
.sf-lp-band { background: var(--sf-sage); padding: var(--sf-space-m) 0; }
.sf-lp-band h2, .sf-lp-band p { color: #fff; }
.sf-lp-band p { max-width: 720px; margin: 0 0 22px; }
.sf-lp-band .sf-btn { background: #fff !important; color: var(--sf-sage) !important; border-color: #fff !important; }
@media (max-width: 900px) {
  .sf-lp-hero { grid-template-columns: 1fr; gap: 24px; padding: 24px 16px 40px; }
  .sf-lp-hero__media { order: -1; }
  .sf-lp-hero__media img { aspect-ratio: 4 / 3; }
  .sf-lp-split { grid-template-columns: 1fr; gap: 24px; }
  .sf-lp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 2px; }
}
.sf-lp figure { margin: 0; }
.sf-lp figcaption { font-size: 12px; color: var(--sf-muted); margin-top: 8px; }
.sf-lp-split--rev .sf-lp-split__media { order: -1; }
.sf-lp-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; margin-top: 32px; }
.sf-lp-gallery img { aspect-ratio: 4 / 5; }
.sf-lp-prose h2 { margin-top: 36px; }
.sf-lp-prose h2:first-child { margin-top: 0; }
.sf-lp-prose h3 { margin-top: 22px; }
@media (max-width: 900px) {
  .sf-lp-split--rev .sf-lp-split__media { order: 0; }
  .sf-lp-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sf-lp-hero:not(:has(.sf-lp-hero__media)) { grid-template-columns: minmax(0, 1fr); }
.sf-lp-hero:not(:has(.sf-lp-hero__media)) .sf-lp-hero__text { max-width: 820px; }
