/* ==========================================================================
   Semillas Plantae - Producto
   Sistema de diseno: verde profundo, serif Spectral, sans Public Sans,
   bordes rectos, hairlines en vez de sombras.
   ========================================================================== */

@font-face {
  font-family: 'Spectral';
  src: url('fonts/spectral-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Spectral';
  src: url('fonts/spectral-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Spectral';
  src: url('fonts/spectral-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Public Sans';
  src: url('fonts/public-sans-400.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

:root{
  --sp-bg:#FFFFFF;
  --sp-ink:#1B2620;
  --sp-accent:#3F7D52;
  --sp-green-900:#1B3326;
  --sp-green-700:#2E6644;
  --sp-green-400:#8FD9A8;
  --sp-harvest-sun:#E08A1E;
  --sp-neutral-200:#E7E4DC;
  --sp-neutral-300:#D3CFC2;
  --sp-neutral-400:#B9B6A8;
  --sp-text-strong:#1B2620;
  --sp-text-body:#383D35;
  --sp-text-muted:#6E7268;
  --sp-font-serif:'Spectral', Georgia, serif;
  --sp-font-sans:'Public Sans', system-ui, sans-serif;
  --sp-max-width:1400px;
}

.single-product #primary,
.single-product .content-area{
  max-width:var(--sp-max-width);
  margin:0 auto;
  padding:0 40px;
  background:var(--sp-bg);
  color:var(--sp-text-body);
  font-family:var(--sp-font-sans);
}

/* ---------- Breadcrumb ---------- */
.single-product .woocommerce-breadcrumb{
  padding:24px 0 0;
  margin:0 0 8px;
  font-family:var(--sp-font-sans);
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--sp-text-muted);
  border:none;
}
.single-product .woocommerce-breadcrumb a{
  color:var(--sp-text-muted);
  text-decoration:none;
}
.single-product .woocommerce-breadcrumb a:hover{ color:var(--sp-green-700); }

/* ---------- Layout: gallery + summary ---------- */
.single-product div.product{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
  padding:32px 0 72px;
}
@media (max-width:900px){
  .single-product div.product{ grid-template-columns:1fr; gap:32px; }
}

.single-product div.images,
.single-product .woocommerce-product-gallery{
  margin:0;
}
.single-product .woocommerce-product-gallery__wrapper{
  border:1px solid var(--sp-neutral-200);
  overflow:hidden;
}
/* La foto principal se fuerza a cuadrada (mismo tratamiento que ya se usa en
   las tarjetas de tienda\/categoria y en productos relacionados) para que
   nunca queden franjas blancas arriba, abajo o a los lados cuando la foto
   original del cliente no es cuadrada: se recorta para llenar el espacio
   por completo en vez de mostrarse entera dejando sobrantes en blanco. */
.single-product .woocommerce-product-gallery img{
  border-radius:0 !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:1/1;
  object-fit:cover;
}
.single-product .flex-control-thumbs{
  margin:12px 0 0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.single-product .flex-control-thumbs li img{
  border:2px solid transparent;
  border-radius:0 !important;
  opacity:1;
  cursor:pointer;
  aspect-ratio:1/1;
  object-fit:cover;
  width:100%;
  height:auto;
}
.single-product .flex-control-thumbs li img.flex-active{
  border-color:var(--sp-accent);
}

/* ---------- Summary column ---------- */
.single-product .summary.entry-summary{
  display:flex;
  flex-direction:column;
  margin:0;
}

.single-product .summary .product_title,
.single-product .summary h1.entry-title{
  font-family:var(--sp-font-serif);
  font-weight:700;
  font-size:34px;
  line-height:1.15;
  letter-spacing:.01em;
  text-transform:uppercase;
  color:var(--sp-green-900);
  margin:0 0 14px;
}

.single-product .woocommerce-product-rating{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
}
.single-product .woocommerce-product-rating .star-rating{ color:var(--sp-accent); }
.single-product .woocommerce-product-rating a{
  font-family:var(--sp-font-sans);
  font-size:13px;
  color:var(--sp-text-muted);
  text-decoration:none;
}

.single-product .summary p.price,
.single-product .summary .price{
  font-family:var(--sp-font-serif);
  font-weight:700;
  font-size:28px;
  color:var(--sp-green-900);
  margin:0 0 20px;
}
.single-product .summary p.price del{ color:var(--sp-text-muted); opacity:.7; }
.single-product .summary p.price ins{ text-decoration:none; }

.single-product .woocommerce-product-details__short-description{
  font-family:var(--sp-font-sans);
  font-size:15px;
  line-height:1.7;
  color:var(--sp-text-body);
  margin:0 0 24px;
}

.single-product .stock{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 24px;
  font-family:var(--sp-font-sans);
  font-size:13px;
  font-weight:600;
  color:var(--sp-green-700);
  background:none;
  border:none;
  padding:0;
}
.single-product .stock::before{
  content:'';
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--sp-accent);
  display:block;
}
.single-product .stock.out-of-stock{ color:#B23B2E; }
.single-product .stock.out-of-stock::before{ background:#B23B2E; }

/* ---------- Add to cart form ---------- */
.single-product form.cart{
  display:flex;
  align-items:stretch;
  gap:14px;
  margin:0 0 24px;
  flex-wrap:wrap;
}
.single-product form.cart .quantity{ margin:0; }
.single-product form.cart .qty{
  width:48px;
  height:48px;
  text-align:center;
  border:1px solid var(--sp-neutral-300);
  border-radius:0;
  font-family:var(--sp-font-sans);
  font-size:15px;
  font-weight:600;
  color:var(--sp-text-strong);
}
.single-product form.cart .single_add_to_cart_button,
.single-product form.cart button[type="submit"]{
  flex:1;
  min-width:180px;
  height:48px;
  padding:0 28px;
  border:none;
  border-radius:0 !important;
  background:var(--sp-accent) !important;
  color:#fff !important;
  font-family:var(--sp-font-sans);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
  cursor:pointer;
  transition:background-color .15s ease;
}
.single-product form.cart .single_add_to_cart_button:hover{
  background:var(--sp-green-700) !important;
}

/* ---------- Product meta ---------- */
.single-product .product_meta{
  font-family:var(--sp-font-sans);
  font-size:13px;
  color:var(--sp-text-muted);
  line-height:2;
  border-top:1px solid var(--sp-neutral-200);
  padding-top:20px;
  margin-top:8px;
}
.single-product .product_meta > span{ display:block; }
.single-product .product_meta strong{
  color:var(--sp-text-strong);
  font-weight:600;
}
.single-product .product_meta a{
  color:var(--sp-text-muted);
  text-decoration:none;
}
.single-product .product_meta a:hover{ color:var(--sp-green-700); }

/* ---------- Tabs -> Acordeon ---------- */
.single-product .woocommerce-tabs{
  max-width:var(--sp-max-width);
  border-top:1px solid var(--sp-neutral-200);
  margin:0 0 72px;
  padding:0;
}
.single-product .woocommerce-tabs ul.tabs{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  background:none !important;
  display:block !important;
  width:100% !important;
}
.single-product .woocommerce-tabs ul.tabs::before{ display:none !important; }
.single-product .woocommerce-tabs ul.tabs li{
  display:block !important;
  float:none !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  border-bottom:1px solid var(--sp-neutral-200) !important;
  background:none !important;
  border-radius:0 !important;
}
.single-product .woocommerce-tabs ul.tabs li::before{ display:none !important; content:none !important; }
.single-product .woocommerce-tabs ul.tabs li.active,
.single-product .woocommerce-tabs ul.tabs li:hover{
  background:none !important;
}
.single-product .woocommerce-tabs ul.tabs li a{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  width:100%;
  float:none !important;
  padding:24px 0 !important;
  margin:0 !important;
  font-family:var(--sp-font-serif);
  font-size:17px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--sp-green-900) !important;
  text-decoration:none !important;
  background:none !important;
  border:none !important;
}
.single-product .woocommerce-tabs ul.tabs li a::after{
  content:'+';
  font-family:var(--sp-font-sans);
  font-size:22px;
  color:var(--sp-accent);
  line-height:1;
}
.single-product .woocommerce-tabs ul.tabs li.sp-open a::after{ content:'\2212'; }

.single-product .woocommerce-tabs .woocommerce-Tabs-panel{
  max-width:820px;
  padding:0 0 28px;
  font-family:var(--sp-font-sans);
  font-size:15px;
  line-height:1.75;
  color:var(--sp-text-body);
  display:none;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel.sp-panel-open{
  display:block;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel h2{
  font-family:var(--sp-font-serif);
  color:var(--sp-green-900);
  text-transform:uppercase;
  font-size:16px;
  letter-spacing:.02em;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel hr{
  border:none;
  border-top:1px solid var(--sp-neutral-200);
  margin:20px 0;
}

/* ---------- Reviews ---------- */
.single-product #reviews h2{
  font-family:var(--sp-font-serif);
  color:var(--sp-green-900);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.single-product #reviews .star-rating{ color:var(--sp-accent); }
.single-product #reviews .form-submit input[type="submit"]{
  background:var(--sp-green-900);
  color:#fff;
  border:none;
  border-radius:0;
  padding:13px 28px;
  font-family:var(--sp-font-sans);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
}

/* ---------- Related products ---------- */
.single-product .related.products{
  max-width:var(--sp-max-width);
  margin:0 auto 80px;
  padding:0 40px;
}
.single-product .related.products > h2{
  text-align:center;
  font-family:var(--sp-font-serif);
  font-size:26px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--sp-green-900);
  margin:0 0 44px;
}
.single-product .related.products ul.products{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  list-style:none;
  margin:0;
  padding:0;
}
@media (max-width:900px){
  .single-product .related.products ul.products{ grid-template-columns:repeat(2,1fr); }
}
.single-product .related.products ul.products li.product{
  border:1px solid var(--sp-neutral-200);
  background:#fff;
  padding:0;
  border-radius:0;
}
.single-product .related.products ul.products li.product img{
  border-radius:0 !important;
  aspect-ratio:1/1;
  object-fit:cover;
}
.single-product .related.products ul.products li.product .woocommerce-loop-category__title,
.single-product .related.products ul.products li.product h2,
.single-product .related.products ul.products li.product h3{
  font-family:var(--sp-font-serif);
  font-size:14px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--sp-text-strong);
  margin:8px 16px 6px;
}
.single-product .related.products ul.products li.product .price{
  font-family:var(--sp-font-serif);
  font-weight:700;
  color:var(--sp-green-900);
  margin:0 16px 16px;
  display:block;
}
.single-product .related.products ul.products li.product .button{
  border-radius:0 !important;
  background:var(--sp-accent);
  color:#fff;
  border:none;
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:.08em;
}

/* ---------- Ficha de siembra (campos estructurados) ---------- */
.single-product .sp-sowing-facts{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--sp-neutral-200);
  border:1px solid var(--sp-neutral-200);
  margin:0 0 32px;
}
.single-product .sp-sowing-fact{
  background:#fff;
  padding:16px 18px;
}
/* Odd number of facts (some products don't fill every field, see
   Display::render()) left the last cell alone in a 2-col grid, showing the
   grid's own gap-background color through the empty neighboring cell as a
   blank box — reported on Albahaca Genovesa Aroma, 2026-08-26. Matches only
   when the last child also sits at an odd position, i.e. exactly when the
   total count is odd, so it self-adjusts for every product without PHP
   changes. */
.single-product .sp-sowing-fact:last-child:nth-child(odd){
  grid-column:1 / -1;
}
.single-product .sp-sowing-fact__label{
  margin:0 0 4px;
  font-family:var(--sp-font-sans);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--sp-text-muted);
  display:flex;
  align-items:center;
  gap:5px;
}
/* "?" tooltip icon per field (2026-08-26) — CSS-only, no JS: shows the
   explanation on hover (mouse) or focus (keyboard/touch via tabindex="0"),
   positioned absolute off the icon itself so it floats above the grid
   cell's own boundaries instead of being clipped by it. */
.single-product .sp-sowing-fact__tooltip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--sp-neutral-300);
  color:var(--sp-text-body);
  font-family:var(--sp-font-sans);
  font-size:9px;
  font-weight:700;
  line-height:1;
  text-transform:none;
  letter-spacing:normal;
  cursor:help;
}
.single-product .sp-sowing-fact__tooltip::after{
  content:attr(data-tooltip);
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  width:200px;
  max-width:60vw;
  padding:8px 10px;
  background:var(--sp-green-900);
  color:#fff;
  font-size:11px;
  font-weight:400;
  line-height:1.4;
  text-transform:none;
  letter-spacing:normal;
  border-radius:4px;
  z-index:5;
  opacity:0;
  visibility:hidden;
  transition:opacity .15s ease;
  pointer-events:none;
}
.single-product .sp-sowing-fact__tooltip:hover::after,
.single-product .sp-sowing-fact__tooltip:focus::after{
  opacity:1;
  visibility:visible;
}.single-product .sp-sowing-fact__value{
  margin:0;
  font-family:var(--sp-font-sans);
  font-size:14px;
  font-weight:600;
  color:var(--sp-text-strong);
  text-transform:none;
}

/* ---------- Aviso de "Notificarme cuando haya existencias" (plugin Back In
   Stock Notifier) ----------
   El plugin trae su propio look tipo Bootstrap (barra azul, boton celeste,
   esquinas y sombra redondeadas) que no combina con el resto de la pagina.
   Se sobreescribe con el mismo sistema de diseno de esta pagina (verde de
   marca, Public Sans, bordes rectos, hairlines en vez de sombras) sin tocar
   el plugin ni su plantilla -- misma idea que ya se aplico en las tarjetas
   de cuenta de SINPE: nada de bloques de color tipo "sticker", solo texto
   en verde y una linea/borde fino. */
.single-product .cwginstock-subscribe-form{
  max-width:420px;
  margin:4px 0 32px;
}
.single-product .cwginstock-panel-primary{
  background:#fff !important;
  border:1px solid var(--sp-neutral-200) !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.single-product .cwginstock-panel-heading{
  background:#fff !important;
  border-bottom:1px solid var(--sp-neutral-200) !important;
  padding:16px 20px;
}
.single-product .cwginstock-panel-heading h4{
  margin:0;
  text-align:left !important;
  font-family:var(--sp-font-sans);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--sp-green-900) !important;
}
.single-product .cwginstock-panel-body{
  padding:20px;
}
.single-product .cwginstock-subscribe-form__form .form-group{
  margin:0 0 12px;
}
.single-product .cwginstock-subscribe-form input.cwgstock_name,
.single-product .cwginstock-subscribe-form input.cwgstock_email,
.single-product .cwginstock-subscribe-form input.cwgstock_phone{
  box-sizing:border-box;
  width:100% !important;
  height:44px;
  padding:0 14px;
  background:#fff !important;
  border:1px solid var(--sp-neutral-300) !important;
  border-radius:0 !important;
  text-align:left !important;
  font-family:var(--sp-font-sans);
  font-size:14px;
  color:var(--sp-text-strong) !important;
}
.single-product .cwginstock-subscribe-form input.cwgstock_name::placeholder,
.single-product .cwginstock-subscribe-form input.cwgstock_email::placeholder,
.single-product .cwginstock-subscribe-form input.cwgstock_phone::placeholder{
  color:var(--sp-text-muted);
  opacity:1;
}
.single-product .cwg_iagree_checkbox{
  margin:2px 0 16px;
}
.single-product .cwg_iagree_checkbox label{
  display:flex;
  align-items:flex-start;
  gap:8px;
  cursor:pointer;
  font-family:var(--sp-font-sans);
  font-size:12.5px;
  line-height:1.5;
  color:var(--sp-text-muted);
}
.single-product .cwg_iagree_checkbox_input{
  flex:0 0 auto;
  margin-top:3px;
  accent-color:var(--sp-accent);
  cursor:pointer;
}
.single-product .cwg_iagree_checkbox a{
  color:var(--sp-green-700);
  text-decoration:underline;
}
.single-product .cwgstock_button{
  width:100%;
  height:46px;
  padding:0 20px !important;
  background:var(--sp-accent) !important;
  border:none !important;
  border-radius:0 !important;
  color:#fff !important;
  font-family:var(--sp-font-sans);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
  cursor:pointer;
  transition:background-color .15s ease;
}
.single-product .cwgstock_button:hover{
  background:var(--sp-green-700) !important;
}
.single-product .cwgstock_output{
  margin-top:10px;
  font-family:var(--sp-font-sans);
  font-size:12.5px;
}
.single-product .cwgstock_output .cwginstockerror{
  color:#B23B2E !important;
}
.single-product .cwgstock_output .cwginstocksuccess{
  color:var(--sp-green-700) !important;
}

/* ---------- Badges (uso opcional via shortcode/clase) ---------- */
.sp-badge{
  display:inline-block;
  font-family:var(--sp-font-sans);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#fff;
  background:var(--sp-harvest-sun);
  padding:5px 12px;
  border-radius:0;
}

/* ---------- Reseñas (cusrev_reviews_grid, ver functions.php) ---------- */
.single-product .sp-reviews-wrap{
  padding:8px 0 16px;
}
.single-product .sp-reviews-eyebrow{
  margin:0 0 8px;
  font-family:var(--sp-font-sans);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--sp-green-700);
}
.single-product .sp-reviews-heading{
  margin:0 0 32px;
  font-family:var(--sp-font-serif);
  font-size:34px;
  font-weight:700;
  line-height:1.1;
  color:var(--sp-text-strong);
}

/* Bordes rectos y sin sombra, coherente con el resto de la página de
   producto — el plugin trae esquinas redondeadas y sombras por defecto. */
.single-product .cr-reviews-grid,
.single-product .cr-review-card,
.single-product .cr-summaryBox-wrap,
.single-product .cr-review-form-wrap,
.single-product .ivole-meter{
  border-radius:0 !important;
  box-shadow:none !important;
}
.single-product .cr-review-card{
  border:1px solid var(--sp-neutral-200) !important;
}
.single-product .reviewer-name,
.single-product .woocommerce-review__author{
  font-family:var(--sp-font-sans);
  font-weight:700;
  color:var(--sp-text-strong);
}
.single-product .cr-average-rating span{
  font-family:var(--sp-font-serif);
  color:var(--sp-text-strong);
}
.single-product .cr-add-review-wrap .cr-all-reviews-add-review,
.single-product .cr-reviews-grid .cr-all-reviews-add-review{
  border-radius:0 !important;
  background:var(--sp-green-900) !important;
  font-family:var(--sp-font-sans);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}