/*
Theme Name: la tienda viral
Template: blocksy
Author: la tienda viral
Description: Tema hijo de Blocksy. Ficha de producto tipo landing de conversion (v0.7): barra de confianza, hero con bullets y swatches, secciones Ideal para / ¿Para quien es? / comparativa / garantia / FAQ. Sin pestañas ni relacionados aleatorios.
Version: 0.7.0
*/

:root{
  --ltv-bg:#faf7f2;
  --ltv-surface:#ffffff;
  --ltv-ink:#1f1f1f;
  --ltv-muted:#6f6a63;
  --ltv-faint:#9c968c;
  --ltv-beige:#e6dcc6;
  --ltv-border:#ece3d3;
  --ltv-border-2:#e0d5bf;
  --ltv-cta:#1f1f1f;
  --ltv-cta-hover:#3a3a3a;
  --ltv-accent:#ff6b4a;
  --ltv-good:#2e9e5b;
  --ltv-green-soft:#e9f4ea;
  --ltv-green-line:#cfe6d4;
  --ltv-red-soft:#fdecea;
  --ltv-red:#e0483a;
  --ltv-star:#f4b400;
  --ltv-r:14px;
  --ltv-r-lg:18px;
  --ltv-shadow-sm:0 1px 2px rgba(29,26,23,.05);
  --ltv-shadow:0 2px 6px rgba(29,26,23,.05), 0 18px 40px -30px rgba(29,26,23,.30);
  --ltv-display:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ltv-sec:1080px;
}

body.single-product{ background:var(--ltv-bg); color:var(--ltv-ink); overflow-x:hidden; font-family:var(--ltv-display); }
body.single-product h1, body.single-product h2, body.single-product h3, body.single-product .ltv-sec h2{ font-family:var(--ltv-display); }
body.single-product .woocommerce-breadcrumb,
body.single-product .ct-breadcrumbs,
body.single-product .product_meta{ display:none !important; }
/* subtitulo lo pintamos nosotros (.ltv-subtitle) -> ocultar el que repite Blocksy */
body.single-product .summary .woocommerce-product-details__short-description{ display:none !important; }
/* fuera productos relacionados aleatorios */
body.single-product .related.products,
body.single-product .up-sells.products{ display:none !important; }
body.single-product div.product{ max-width:1120px; margin-inline:auto; }
body.single-product div.product .summary.entry-summary{ display:flex; flex-direction:column; gap:0; padding-top:8px; }
@media (min-width:1000px){ body.single-product div.product .summary.entry-summary{ padding-top:22px; } }

/* ---- barra de confianza ---- */
.ltv-annbar{ display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; background:var(--ltv-ink); color:#fff; font-size:13px; font-weight:600; letter-spacing:.005em; padding:11px 16px; text-align:center; }
.ltv-annbar .d{ opacity:.35; }
@media (max-width:640px){ .ltv-annbar{ font-size:11px; gap:9px; } .ltv-annbar .d{ display:none; } }

/* ---- logo de marca (site-wide) ---- */
.ltv-logo-link{ display:inline-flex !important; align-items:center; gap:10px; text-decoration:none !important; line-height:1; }
.ltv-logo-link svg{ width:38px; height:38px; flex:none; display:block; }
.ltv-logo-link .wm{ font-family:var(--ltv-display); font-weight:800; font-size:23px; letter-spacing:-.02em; }
.ltv-logo-link .wm .lt{ color:var(--ltv-ink); }
.ltv-logo-link .wm .lv{ color:var(--ltv-accent); }
@media (max-width:600px){ .ltv-logo-link svg{ width:32px; height:32px; } .ltv-logo-link .wm{ font-size:19px; } }

/* ---- footer (marca + tagline) ---- */
.ltv-footer .brand{ display:flex; flex-direction:column; gap:3px; }
.ltv-footer .brand small{ font-size:12px; color:var(--ltv-faint); }

/* ---- menos hueco superior en movil ---- */
@media (max-width:782px){ body.single-product div.product{ padding-top:2px; } }

/* ---- galeria ---- */
body.single-product .woocommerce-product-gallery{ position:relative; border-radius:var(--ltv-r-lg); overflow:hidden; background:var(--ltv-surface); border:1px solid var(--ltv-border); box-shadow:var(--ltv-shadow); }
.ltv-trend{ position:absolute; top:16px; left:16px; z-index:3; background:var(--ltv-accent); color:#fff; font-size:12.5px; font-weight:800; padding:8px 14px; border-radius:999px; box-shadow:0 8px 18px -8px var(--ltv-accent); }

/* ---- buy box ---- */
body.single-product .product_title.entry-title{ font-size:clamp(26px,3.6vw,36px); font-weight:800; letter-spacing:-.02em; line-height:1.12; color:var(--ltv-ink); margin:14px 0 0; text-wrap:balance; }
.ltv-subtitle{ margin:12px 0 0; }
.ltv-subtitle p{ color:var(--ltv-muted); font-size:16px; line-height:1.55; margin:0; }
body.single-product .summary .price{ margin:18px 0 0 !important; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
body.single-product .summary .price .woocommerce-Price-amount{ font-size:32px; font-weight:800; color:var(--ltv-ink); letter-spacing:-.02em; line-height:1; }
body.single-product .summary .price del{ opacity:1; text-decoration:none; }
body.single-product .summary .price del .woocommerce-Price-amount{ font-size:18px; color:var(--ltv-faint); text-decoration:line-through; font-weight:600; }
body.single-product .summary .price ins{ text-decoration:none; background:none; }
body.single-product .summary .price ins .woocommerce-Price-amount{ font-size:32px; font-weight:800; color:var(--ltv-ink); }
.ltv-off{ display:inline-flex; align-items:center; background:var(--ltv-accent); color:#fff; font-size:12.5px; font-weight:800; padding:5px 9px; border-radius:7px; align-self:center; }
.ltv-tax{ font-size:13px; color:var(--ltv-muted); margin:9px 0 0; }
.ltv-tax b{ color:var(--ltv-ink); font-weight:700; }

.ltv-bullets{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:9px; }
.ltv-bullets li{ position:relative; padding-left:26px; font-size:14.5px; color:var(--ltv-ink); line-height:1.4; }
.ltv-bullets li::before{ content:"✓"; position:absolute; left:0; top:0; width:18px; height:18px; border-radius:50%; background:var(--ltv-green-soft); color:var(--ltv-good); font-size:11px; font-weight:800; display:grid; place-items:center; }

/* ---- variaciones -> swatches ---- */
body.single-product .variations{ margin:20px 0 0; border:0; }
body.single-product .variations td, body.single-product .variations th{ padding:0; border:0; display:block; }
body.single-product .variations label{ font-family:var(--ltv-display); font-weight:700; color:var(--ltv-ink); font-size:14px; margin:0 0 8px; }
body.single-product .reset_variations{ font-size:12px; color:var(--ltv-muted); }
.ltv-swatches{ display:flex; flex-wrap:wrap; gap:10px; margin:2px 0 4px; }
.ltv-swatch{ display:inline-flex; align-items:center; gap:9px; background:var(--ltv-surface); border:1.5px solid var(--ltv-border-2); border-radius:12px; padding:9px 14px 9px 10px; cursor:pointer; font-family:var(--ltv-display); font-weight:600; font-size:14px; color:var(--ltv-ink); transition:border-color .12s, box-shadow .12s; }
.ltv-swatch .chip{ width:22px; height:22px; border-radius:50%; border:1px solid rgba(0,0,0,.12); box-shadow:inset 0 1px 2px rgba(255,255,255,.4); }
.ltv-swatch:hover{ border-color:var(--ltv-faint); }
.ltv-swatch.active{ border-color:var(--ltv-ink); box-shadow:0 0 0 1px var(--ltv-ink); }

/* ---- cantidad + CTA ---- */
body.single-product form.cart.variations_form{ display:block; margin:18px 0 0; }
body.single-product form.cart:not(.variations_form),
body.single-product .woocommerce-variation-add-to-cart{ display:flex; gap:12px; align-items:stretch; margin:16px 0 0; }
body.single-product form.cart .quantity{ flex:none; display:inline-flex; }
body.single-product .quantity input.qty{ border:1.5px solid var(--ltv-border-2); border-radius:12px; padding:0 12px; width:74px; background:var(--ltv-surface); font-weight:700; text-align:center; }
body.single-product .single_add_to_cart_button.button,
body.single-product .single_add_to_cart_button.button.alt{ flex:1; display:flex; align-items:center; justify-content:center; gap:8px; text-align:center; background:var(--ltv-cta) !important; color:#fff !important; font-family:var(--ltv-display); font-weight:700; font-size:16.5px; border:0; border-radius:13px; padding:17px 20px; text-transform:none; text-shadow:none; box-shadow:0 14px 30px -16px rgba(25,22,17,.6); transition:transform .14s, background .14s; }
body.single-product .single_add_to_cart_button.button:hover{ background:var(--ltv-cta-hover) !important; transform:translateY(-2px); }
body.single-product .woocommerce-variation-price{ margin:0 0 6px; }
body.single-product .single_variation .price{ margin:0 !important; }

.ltv-micro{ font-size:12.5px; color:var(--ltv-muted); margin:12px 0 0; }

/* ---- tarjeta de garantias (4-up) ---- */
.ltv-trust{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:22px 0 0; padding:0; }
.ltv-trust li{ background:var(--ltv-surface); border:1px solid var(--ltv-border); border-radius:var(--ltv-r); padding:14px 12px; text-align:center; box-shadow:var(--ltv-shadow-sm); }
.ltv-trust .ic{ font-size:20px; display:block; margin-bottom:6px; }
.ltv-trust b{ display:block; font-size:12.5px; font-weight:700; color:var(--ltv-ink); line-height:1.2; }
.ltv-trust li > span:last-child{ display:block; font-size:11px; color:var(--ltv-muted); margin-top:3px; line-height:1.3; }
@media (max-width:560px){ .ltv-trust{ grid-template-columns:repeat(2,1fr); } }

/* ---- secciones ---- */
.ltv-sec{ max-width:var(--ltv-sec); margin:44px auto 0; padding:0 20px; }
.ltv-sec h2{ font-size:clamp(22px,2.6vw,27px); font-weight:800; letter-spacing:-.02em; color:var(--ltv-ink); text-align:center; margin:0 0 26px; }
.ltv-card{ background:var(--ltv-surface); border:1px solid var(--ltv-border); border-radius:var(--ltv-r-lg); box-shadow:var(--ltv-shadow-sm); }

/* beneficios */
.ltv-benefits{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:600px){ .ltv-benefits{ grid-template-columns:1fr 1fr; } }
@media (min-width:880px){ .ltv-benefits{ grid-template-columns:repeat(3,1fr); } }
.ltv-benefit{ display:flex; gap:14px; align-items:flex-start; background:var(--ltv-surface); border:1px solid var(--ltv-border); border-radius:var(--ltv-r); padding:20px; box-shadow:var(--ltv-shadow-sm); }
.ltv-benefit .bi{ flex:none; width:46px; height:46px; border-radius:50%; display:grid; place-items:center; font-size:22px; background:var(--ltv-beige); border:1px solid rgba(0,0,0,.05); }
.ltv-benefit b{ display:block; font-size:15.5px; font-weight:700; color:var(--ltv-ink); margin-bottom:5px; line-height:1.25; }
.ltv-benefit span{ font-size:13.5px; color:var(--ltv-muted); line-height:1.5; }

/* como funciona */
.ltv-steps{ display:grid; grid-template-columns:1fr; gap:18px; }
@media (min-width:640px){ .ltv-steps{ grid-template-columns:repeat(3,1fr); } }
.ltv-step{ position:relative; background:var(--ltv-surface); border:1px solid var(--ltv-border); border-radius:var(--ltv-r); padding:26px 18px 20px; text-align:center; box-shadow:var(--ltv-shadow-sm); }
.ltv-step .num{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); width:28px; height:28px; border-radius:50%; background:var(--ltv-accent); color:#fff; font-weight:800; font-size:14px; display:grid; place-items:center; }
.ltv-step .bi{ font-size:34px; display:block; margin:2px 0 8px; }
.ltv-step b{ display:block; font-size:16px; color:var(--ltv-ink); margin-bottom:5px; }
.ltv-step span{ font-size:13.5px; color:var(--ltv-muted); line-height:1.5; }

/* descripcion + ideal para */
.ltv-desc-grid{ display:grid; grid-template-columns:1fr; gap:20px; }
@media (min-width:820px){ .ltv-desc-grid{ grid-template-columns:1.08fr .92fr; } .ltv-desc-grid.solo{ grid-template-columns:1fr; } }
.ltv-descbox, .ltv-idealbox{ padding:24px; }
.ltv-descbox h3, .ltv-idealbox h3{ font-size:18px; font-weight:800; color:var(--ltv-ink); margin:0 0 12px; }
.ltv-descbox p{ font-size:15px; color:var(--ltv-muted); line-height:1.65; margin:0 0 12px; }
.ltv-descbox p:last-child{ margin-bottom:0; }
.ltv-ideal{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:460px){ .ltv-ideal{ grid-template-columns:1fr; } }
.ltv-ideal-i{ display:flex; gap:11px; align-items:flex-start; background:var(--ltv-bg); border:1px solid var(--ltv-border); border-radius:var(--ltv-r); padding:14px; }
.ltv-ideal-i .bi{ font-size:22px; flex:none; }
.ltv-ideal-i b{ display:block; font-size:14px; color:var(--ltv-ink); font-weight:700; margin-bottom:2px; }
.ltv-ideal-i span{ font-size:12.5px; color:var(--ltv-muted); line-height:1.4; }

/* ¿para quien es? */
.ltv-forwho{ display:grid; grid-template-columns:1fr; gap:20px; }
@media (min-width:760px){ .ltv-forwho{ grid-template-columns:1fr 1fr; } }
.ltv-forwho .ltv-card{ padding:22px 24px; }
.ltv-forwho .hd{ display:block; font-size:16px; font-weight:800; margin:0 0 14px; }
.fw-yes{ border-color:var(--ltv-green-line); background:linear-gradient(180deg,var(--ltv-green-soft),#fff 55%); }
.fw-no{ border-color:#f0d3cf; background:linear-gradient(180deg,var(--ltv-red-soft),#fff 55%); }
.fw-yes .hd{ color:var(--ltv-good); } .fw-no .hd{ color:var(--ltv-red); }
.ltv-forwho ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ltv-forwho li{ position:relative; padding-left:26px; font-size:14.5px; color:var(--ltv-ink); line-height:1.4; }
.fw-yes li::before{ content:"✓"; color:var(--ltv-good); }
.fw-no li::before{ content:"✕"; color:var(--ltv-red); }
.ltv-forwho li::before{ position:absolute; left:2px; top:0; font-weight:800; }

/* comparativa */
.ltv-compare .ltv-tablewrap{ overflow-x:auto; border:1px solid var(--ltv-border); border-radius:var(--ltv-r-lg); box-shadow:var(--ltv-shadow-sm); background:var(--ltv-surface); }
.ltv-compare table{ width:100%; border-collapse:collapse; font-size:14.5px; min-width:520px; }
.ltv-compare th, .ltv-compare td{ padding:15px 18px; text-align:left; border-bottom:1px solid var(--ltv-border); }
.ltv-compare thead th{ font-weight:700; font-size:14px; color:var(--ltv-muted); text-align:center; }
.ltv-compare thead th:first-child{ text-align:left; }
.ltv-compare thead th.us{ background:var(--ltv-ink); color:#fff; border-radius:10px 10px 0 0; }
.ltv-compare td.us{ text-align:center; font-weight:700; color:var(--ltv-ink); background:rgba(46,158,91,.06); }
.ltv-compare td:last-child{ text-align:center; color:var(--ltv-muted); }
.ltv-compare td:first-child{ color:var(--ltv-ink); font-weight:600; }
.ltv-compare tbody tr:last-child td{ border-bottom:0; }

/* compra sin riesgo */
.ltv-guarantee{ display:flex; align-items:center; gap:18px; background:var(--ltv-green-soft); border:1px solid var(--ltv-green-line); border-radius:var(--ltv-r-lg); padding:22px 26px; }
.ltv-guarantee .g-ic{ font-size:34px; flex:none; }
.ltv-guarantee b{ display:block; font-size:17px; color:var(--ltv-ink); margin-bottom:4px; font-weight:800; }
.ltv-guarantee span{ font-size:14px; color:var(--ltv-muted); line-height:1.5; }

/* reseñas */
.ltv-review-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:680px){ .ltv-review-grid{ grid-template-columns:1fr 1fr; } }
.ltv-review{ background:var(--ltv-surface); border:1px solid var(--ltv-border); border-radius:var(--ltv-r); padding:18px; box-shadow:var(--ltv-shadow-sm); }
.ltv-review .top{ display:flex; align-items:center; gap:11px; margin-bottom:9px; }
.ltv-review .av{ width:38px; height:38px; border-radius:50%; flex:none; display:grid; place-items:center; font-weight:800; color:#fff; background:var(--ltv-ink); font-size:15px; }
.ltv-review .who b{ font-size:14.5px; color:var(--ltv-ink); display:block; line-height:1.2; }
.ltv-review .who .ver{ font-size:11px; color:var(--ltv-good); font-weight:700; }
.ltv-review .stars{ color:var(--ltv-star); font-size:14px; letter-spacing:1px; margin-bottom:7px; }
.ltv-review p{ font-size:14px; color:var(--ltv-muted); line-height:1.55; margin:0; }

/* faq */
.ltv-faq-grid{ display:grid; grid-template-columns:1fr; gap:0 40px; }
@media (min-width:760px){ .ltv-faq-grid{ grid-template-columns:1fr 1fr; } }
.ltv-faq details{ border-bottom:1px solid var(--ltv-border); }
.ltv-faq summary{ font-weight:700; font-size:15px; color:var(--ltv-ink); padding:16px 34px 16px 2px; cursor:pointer; list-style:none; position:relative; }
.ltv-faq summary::-webkit-details-marker{ display:none; }
.ltv-faq summary::after{ content:"⌄"; position:absolute; right:8px; top:44%; transform:translateY(-50%); font-size:18px; color:var(--ltv-muted); transition:transform .2s; }
.ltv-faq details[open] summary::after{ transform:translateY(-50%) rotate(180deg); }
.ltv-faq details p{ margin:0 2px 16px; font-size:14px; color:var(--ltv-muted); line-height:1.6; }

/* footer profesional */
.ltv-footer{ margin-top:52px; background:var(--ltv-bg); border-top:1px solid var(--ltv-border); }
.ltv-footer .in{ max-width:1120px; margin:0 auto; padding:22px 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.ltv-footer span{ font-size:13px; color:var(--ltv-muted); }
.ltv-footer nav{ display:flex; gap:20px; flex-wrap:wrap; }
.ltv-footer nav a{ font-size:13px; color:var(--ltv-muted); text-decoration:none; }
.ltv-footer nav a:hover{ color:var(--ltv-ink); }

/* sticky */
.ltv-sticky{ position:fixed; left:0; right:0; bottom:0; z-index:1000; background:rgba(255,255,255,.96); backdrop-filter:saturate(1.4) blur(12px); border-top:1px solid var(--ltv-border); box-shadow:0 -8px 30px -18px rgba(29,26,23,.4); transform:translateY(120%); transition:transform .3s cubic-bezier(.4,0,.2,1); }
.ltv-sticky.is-visible{ transform:translateY(0); }
.ltv-sticky .in{ max-width:1120px; margin:0 auto; padding:11px 20px; display:flex; align-items:center; gap:18px; }
.ltv-sticky .pr b{ font-size:18px; font-weight:800; color:var(--ltv-ink); line-height:1; display:block; }
.ltv-sticky .pr span{ font-size:10.5px; color:var(--ltv-good); display:block; margin-top:3px; font-weight:600; }
.ltv-sticky .ltv-buy{ margin-left:auto; display:inline-flex; align-items:center; gap:7px; background:var(--ltv-cta); color:#fff; font-weight:700; font-size:15px; border:0; border-radius:12px; padding:14px 28px; cursor:pointer; }
.ltv-sticky .ltv-buy::after{ content:"→"; }
body.single-product{ padding-bottom:96px; }

@media (prefers-reduced-motion:reduce){ *{ transition:none !important; } }
