:root{--ink:#112e29;--muted:#58706a;--green:#1f6f63;--green-dark:#113f38;--mint:#dff3ed;--line:#dce9e5;--paper:#f7faf9;--white:#fff;--danger:#a23030;--shadow:0 20px 55px rgba(17,63,56,.11)}.skip-link{position:fixed;z-index:999;top:8px;left:8px;transform:translateY(-150%);padding:.7rem 1rem;color:#fff;background:var(--green-dark);border-radius:8px}.skip-link:focus{transform:none}.store-shell{width:min(1160px,calc(100% - 2rem));margin-inline:auto}
.store-hero{overflow:hidden;color:#fff;background:linear-gradient(135deg,#0d332d,#1f6f63 62%,#399d8a)}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:4rem;min-height:530px;padding-block:5rem}.eyebrow{margin:0 0 .65rem;color:#359887;font-size:.72rem;font-weight:800;letter-spacing:.13em}.store-hero .eyebrow{color:#9be0d2}.store-hero .hero-title{max-width:760px;margin:.2rem 0 1.25rem;font:800 clamp(2.55rem,6vw,5rem)/.98 Montserrat,sans-serif;letter-spacing:-.055em}.hero-copy{max-width:650px;margin:0 0 1.8rem;color:#dcece8;font-size:1.05rem}.nfc-visual{position:relative;display:grid;place-items:center;aspect-ratio:1;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.17),rgba(255,255,255,.03) 62%,transparent 63%)}.nfc-visual span{display:grid;place-items:center;width:42%;aspect-ratio:1;border:2px solid rgba(255,255,255,.78);border-radius:24%;font:800 clamp(1.5rem,4vw,3rem) Montserrat,sans-serif;box-shadow:inset 0 0 35px rgba(255,255,255,.13)}.nfc-visual i{position:absolute;width:62%;aspect-ratio:1;border:2px solid rgba(255,255,255,.22);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(45deg)}.nfc-visual i:nth-child(3){width:78%}.nfc-visual i:nth-child(4){width:94%}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.72rem 1.08rem;border:1px solid transparent;border-radius:11px;font-weight:800;cursor:pointer}.button.primary{color:#fff;background:linear-gradient(135deg,#3fae9a,#1f6f63);box-shadow:0 10px 24px rgba(10,69,59,.2)}.store-hero .button.primary{color:var(--green-dark);background:#fff}.button.ghost{border-color:var(--line);background:#fff}.button.wide{width:100%}.trust-strip{border-bottom:1px solid var(--line);background:#fff}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding-block:1.25rem}.trust-grid span{display:grid;padding-left:1rem;border-left:3px solid #3fae9a}.trust-grid strong{font-size:.84rem}.trust-grid small{color:var(--muted)}
.catalog-section{padding-block:5rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.8rem}.section-heading h2,.page-heading h1{margin:0;font:800 clamp(1.8rem,4vw,3rem) Montserrat,sans-serif;letter-spacing:-.04em}.section-heading>p,.page-heading>p{color:var(--muted)}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.product-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 8px 30px rgba(19,69,61,.06)}.product-art{position:relative;display:grid;place-items:center;aspect-ratio:1.45;overflow:hidden;color:#fff;background:linear-gradient(145deg,#123d36,#2f8879)}.product-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.product-art:before,.product-art:after{content:"";position:absolute;width:70%;aspect-ratio:1;border:1px solid rgba(255,255,255,.18);border-radius:50%}.product-art:has(>img):before,.product-art:has(>img):after{display:none}.product-art:after{width:95%}.product-type{position:absolute;top:1rem;left:1rem;padding:.28rem .55rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(0,0,0,.12);font-size:.66rem;font-weight:800;text-transform:uppercase}.chip-mark{position:relative;z-index:1;display:grid;place-items:center;width:82px;aspect-ratio:1;border:2px solid rgba(255,255,255,.8);border-radius:18px;font:800 1.1rem Montserrat,sans-serif}.product-body{padding:1.15rem}.sku{margin:0 0 .25rem;color:#478176;font:700 .68rem/1.3 ui-monospace,monospace;letter-spacing:.05em}.product-body h3{margin:0;font:800 1.05rem/1.25 Montserrat,sans-serif}.product-description{min-height:3.8em;margin:.65rem 0;color:var(--muted);font-size:.84rem}.product-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:1rem 0}.product-meta>strong,.price-stack strong{font:800 1.28rem Montserrat,sans-serif}.price-stack{display:grid}.price-stack del,.detail-price del{color:var(--muted);font-size:.72em;font-weight:500}.stock{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700}.stock:before{content:"";width:8px;height:8px;border-radius:50%}.stock.available{color:#08755e}.stock.available:before{background:#15a27d}.stock.empty{color:#9b4a3a}.stock.empty:before{background:#cf5a47}.card-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:.55rem}.narrow-page{min-height:65vh;padding-block:2rem 5rem}.breadcrumbs{display:flex;gap:.55rem;margin:0 0 2rem;color:var(--muted);font-size:.78rem}.breadcrumbs a{text-decoration:underline}.page-heading{margin-bottom:1.5rem}.page-heading>p:last-child{margin:.5rem 0}.product-page{padding-block:2rem 4rem}.product-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:3rem;align-items:center}.product-gallery{min-width:0}.product-art-large{aspect-ratio:1.2;border-radius:26px;box-shadow:var(--shadow)}.gallery-thumbs{display:flex;gap:.55rem;overflow-x:auto;padding:.8rem .15rem}.gallery-thumb{flex:0 0 82px;padding:3px;border:2px solid transparent;border-radius:10px;background:#fff;cursor:pointer}.gallery-thumb.active{border-color:var(--green)}.gallery-thumb img{display:block;width:100%;height:58px;object-fit:cover;border-radius:6px}.product-detail-copy h1{margin:.25rem 0 .8rem;font:800 clamp(2rem,5vw,4rem)/1 Montserrat,sans-serif;letter-spacing:-.05em}.detail-description{color:var(--muted);font-size:1.03rem}.detail-price{margin:1.2rem 0 .4rem;font:800 2rem Montserrat,sans-serif}.detail-price small{color:var(--muted);font:500 .8rem Inter,sans-serif}.add-form{display:grid;grid-template-columns:90px 1fr;gap:.65rem;margin-top:1.4rem}.add-form label{grid-column:1/-1;font-size:.75rem;font-weight:800}.add-form input,.quantity-form input,.checkout-form input,.checkout-form textarea{width:100%;min-height:46px;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:10px;background:#fff}.detail-note{margin-top:1.5rem;padding:1rem;border-left:4px solid #3fae9a;background:var(--mint)}.detail-note p{margin:.3rem 0 0;color:var(--muted);font-size:.82rem}
.cart-layout,.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.2rem;align-items:start}.cart-lines,.checkout-form,.order-summary,.order-document{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(17,63,56,.06)}.cart-line{display:grid;grid-template-columns:70px minmax(0,1fr) 110px 100px;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--line)}.cart-line:last-child{border-bottom:0}.mini-art{display:grid;place-items:center;width:70px;height:70px;border-radius:14px;color:#fff;background:linear-gradient(145deg,#123d36,#3fae9a);font-weight:800}.product-thumb{object-fit:cover}.cart-line h2{margin:.1rem 0;font:800 .95rem Montserrat,sans-serif}.cart-line p{margin:0;color:var(--muted);font-size:.76rem}.quantity-form{display:grid;gap:.3rem}.quantity-form label{font-size:.68rem;font-weight:800}.quantity-form input{min-height:38px;padding:.45rem}.text-button{padding:0;border:0;color:var(--green);background:none;font-weight:800;text-decoration:underline;cursor:pointer}.text-button.danger{color:var(--danger)}.line-total{text-align:right}.order-summary{position:sticky;top:94px;padding:1.2rem}.order-summary h2{margin:0 0 1rem;font:800 1.1rem Montserrat,sans-serif}.order-summary>div{display:flex;justify-content:space-between;gap:1rem;margin:.55rem 0}.summary-total{margin:1rem 0!important;padding-top:1rem;border-top:1px solid var(--line);font-size:1.1rem}.order-summary>p{color:var(--muted);font-size:.78rem}.order-summary .button{margin-top:.55rem}.empty-state{display:grid;place-items:center;min-height:360px;padding:3rem;text-align:center;border:1px solid var(--line);border-radius:20px;background:#fff}.empty-state>span{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;color:#fff;background:var(--green);font-size:2rem}.empty-state h1,.empty-state h2{margin:1rem 0 .3rem;font-family:Montserrat,sans-serif}.empty-state p{max-width:500px;color:var(--muted)}
.checkout-form{padding:1.35rem}.checkout-form fieldset{display:grid;gap:.55rem;margin:0 0 1.2rem;padding:0;border:0}.checkout-form legend{margin-bottom:.8rem;font:800 1rem Montserrat,sans-serif}.checkout-form label{font-size:.74rem;font-weight:800}.checkout-form textarea{resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.field-grid>div{display:grid;gap:.55rem}.payment-box,.coupon-box{padding:1rem!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--paper)}.coupon-box small{color:var(--muted);font-size:.72rem}.radio-card{display:flex!important;align-items:flex-start;gap:.7rem}.radio-card input,.consent input{width:18px!important;min-height:18px!important;flex:0 0 18px}.radio-card span{display:grid}.radio-card small{margin-top:.2rem;color:var(--muted);font-weight:500}.consent{display:flex;align-items:flex-start;gap:.65rem;margin:1rem 0;color:var(--muted)}.form-alert{margin-bottom:1rem;padding:.8rem 1rem;border:1px solid #edb7b7;border-radius:10px;color:#922;background:#fff4f4;font-weight:700}.checkout-line{font-size:.8rem}
.order-success{display:grid;place-items:center;padding:2.5rem;text-align:center}.status-icon{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;color:#fff;background:var(--green);font-size:2.2rem}.order-success.cancelado .status-icon,.order-success.cancelled .status-icon,.order-success.expired .status-icon{background:var(--danger)}.order-success h1{margin:.2rem 0 .5rem;font:800 clamp(2rem,6vw,4rem) Montserrat,sans-serif}.order-success>p:last-child{max-width:650px;color:var(--muted)}.order-document{overflow:hidden}.order-document-head{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem 1.25rem;color:#fff;background:var(--green-dark)}.order-document-head div{display:grid}.order-document-head span{color:#a9d0c7;font-size:.7rem;text-transform:uppercase}.order-document section{padding:1.25rem;border-bottom:1px solid var(--line)}.order-document h2{margin:0 0 .8rem;font:800 1rem Montserrat,sans-serif}.order-line,.order-total{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0}.order-line small{display:block;color:var(--muted);font-size:.68rem}.order-total{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:1.12rem}.order-actions{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:1.2rem}.copy-status{flex-basis:100%;min-height:1.5em;text-align:center;color:var(--muted);font-size:.78rem}.cancel-form{flex-basis:100%;text-align:center}.error-state{margin-top:3rem}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;min-height:auto;padding-block:4rem}.nfc-visual{display:none}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-detail{grid-template-columns:1fr}.product-art-large{max-height:460px}.cart-layout,.checkout-layout{grid-template-columns:1fr}.order-summary{position:static}.cart-line{grid-template-columns:64px minmax(0,1fr) 95px}.line-total{grid-column:2/-1}.trust-grid{grid-template-columns:1fr 1fr}.trust-grid span:last-child{grid-column:1/-1}}
@media(max-width:620px){.store-shell{width:min(100% - 1.1rem,1160px)}.store-hero .hero-title{font-size:2.55rem}.hero-grid{padding-block:3.2rem}.trust-grid,.product-grid{grid-template-columns:1fr}.trust-grid span:last-child{grid-column:auto}.catalog-section{padding-block:3rem}.section-heading{display:block}.product-detail{gap:1.3rem}.product-art-large{aspect-ratio:1.25}.cart-line{grid-template-columns:56px minmax(0,1fr);gap:.75rem}.mini-art{width:56px;height:56px}.quantity-form{grid-column:1/-1;grid-template-columns:1fr 90px;align-items:end}.quantity-form label{grid-column:1/-1}.line-total{grid-column:2;text-align:right}.field-grid{grid-template-columns:1fr}.order-document-head{grid-template-columns:1fr}.add-form{grid-template-columns:80px 1fr}}


/* Integración nativa con el lenguaje editorial del sitio principal. */
body.tst-store-page{--accent:#8ff3d9;background:#f3f7f5}.store-hero{background:#0e2e2a;background-image:radial-gradient(circle at 82% 35%,#3fae9a35,transparent 28%),linear-gradient(135deg,#09231e,#1f6f63)}.store-hero .hero-title{font-weight:600}.store-hero .button.primary{border-radius:999px}.catalog-section{max-width:1280px}.product-card{border-radius:12px;box-shadow:none}.product-art{aspect-ratio:16/10}.product-body h3{font-weight:700}.button{border-radius:999px}

@media(max-width:620px){.store-hero .hero-title{font-size:2.7rem}.product-art{aspect-ratio:16/11}}

/* ==========================================================================
   Tienda dentro del sitio principal
   --------------------------------------------------------------------------
   Header, menú hamburguesa, botones flotantes y footer vienen de la home
   (lib/siteChrome.js) junto con su CSS. Esa hoja trae reglas genéricas con
   !important pensadas para la landing (section/nav con padding enorme,
   body verde con texto blanco); aquí se acotan solo al contenido de la tienda.
   ========================================================================== */
body.tst-store-page { background: #f3f7f5; color: var(--ink); }
body.tst-store-page #contenido { position: relative; z-index: 1; padding-top: var(--store-header-h, 89px); color: var(--ink); font-family: Inter, system-ui, sans-serif; line-height: 1.55; background: #f3f7f5; }
:where(body.tst-store-page #contenido) a { color: inherit; text-decoration: none; }
body.tst-store-page #contenido :is(button, input, textarea, select) { font: inherit; }
body.tst-store-page #contenido :is(section, nav) { padding: 0 !important; }
body.tst-store-page #contenido .catalog-section { padding-block: 5rem !important; }
body.tst-store-page #contenido .order-success { padding: 2.5rem !important; }
body.tst-store-page #contenido .order-document section { padding: 1.25rem !important; }
body.tst-store-page #contenido .breadcrumbs { display: flex; margin: 0 0 2rem; }
body.tst-store-page #contenido h1,
body.tst-store-page #contenido h2,
body.tst-store-page #contenido h3 { color: inherit; text-transform: none; }
body.tst-store-page #contenido .store-hero,
body.tst-store-page #contenido .store-hero .hero-title { color: #fff; }
body.tst-store-page #contenido .store-hero .button.primary { color: var(--green-dark); }
body.tst-store-page #contenido .button.primary { color: #fff; }
body.tst-store-page .editorial-header { background: rgba(14, 46, 42, .96); }
.button:focus-visible, #contenido input:focus-visible, #contenido textarea:focus-visible, #contenido button:focus-visible { outline: 3px solid #3fae9a; outline-offset: 3px; }
.store-shell { width: min(1160px, calc(100% - 2rem)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1001; top: 8px; left: 8px; transform: translateY(-150%); padding: .7rem 1rem; color: #fff; background: var(--green-dark); border-radius: 8px; }
.skip-link:focus { transform: none; }

/* Checkout: métodos de pago y WhatsApp */
.payment-box .radio-card { padding: .75rem .8rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; }
.payment-box .radio-card > i { flex: 0 0 22px; margin-top: .1rem; color: var(--green); font-size: 1.15rem; text-align: center; }
.payment-box .radio-card .fa-whatsapp { color: #1da851; }
.payment-box .radio-card:has(input:checked) { border-color: var(--green); box-shadow: 0 0 0 1px var(--green) inset; }
.payment-box .radio-card.is-disabled { cursor: not-allowed; opacity: .72; background: var(--paper); }
.soon-badge { display: inline-block; margin-left: .35rem; padding: .08rem .45rem; border-radius: 999px; color: #0e2e2a; background: #dff3ed; font: 800 .6rem/1.5 Inter, sans-serif; font-style: normal; letter-spacing: .05em; text-transform: uppercase; vertical-align: middle; }
.payment-note { display: flex; gap: .5rem; margin: .3rem 0 0; color: var(--muted); font-size: .76rem; }
.payment-note i { margin-top: .2rem; color: var(--green); }
.button.whatsapp { gap: .5rem; background: linear-gradient(135deg, #25d366, #128c4a); box-shadow: 0 10px 24px rgba(18, 140, 74, .22); }
.order-whatsapp { margin-top: 1.2rem; }
.auto-whatsapp-status { min-height: 1.4em; margin: .6rem 0 0; color: var(--muted); font-size: .8rem; }

@media (max-width: 620px) {
  body.tst-store-page #contenido .catalog-section { padding-block: 3rem !important; }
  body.tst-store-page #contenido .order-success { padding: 1.8rem 0 !important; }
  .store-shell { width: min(100% - 1.5rem, 1160px); }
}

/* Hero en carrusel: una línea de negocio por diapositiva */
.hero-slides { position: relative; display: grid; }
.hero-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateX(18px); transition: opacity .5s ease, transform .5s ease, visibility 0s linear .5s; }
.hero-slide.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .5s ease, transform .5s ease; }
.store-hero .hero-grid { padding-bottom: 6.5rem; }
.nfc-visual span i { font-size: clamp(1.8rem, 5vw, 3.4rem); }
.hero-controls { position: absolute; left: 0; bottom: 2.2rem; z-index: 2; display: flex; align-items: center; gap: .8rem; }
.hero-arrow { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .06); cursor: pointer; transition: background .2s; }
.hero-arrow:hover { background: rgba(255, 255, 255, .16); }
.hero-dots { display: flex; gap: .45rem; }
.hero-dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .35); cursor: pointer; transition: width .25s, background .25s; }
.hero-dot.is-active { width: 28px; background: #8ff3d9; }
@media (prefers-reduced-motion: reduce) { .hero-slide, .hero-slide.is-active { transition: none; transform: none; } }

/* Filtros por categoría */
.category-chips { display: flex; gap: .5rem; margin: -.6rem 0 1.6rem; overflow-x: auto; padding-bottom: .3rem; scrollbar-width: thin; }
.category-chip { flex: 0 0 auto; min-height: 38px; padding: .45rem 1rem; border: 1px solid var(--line); border-radius: 999px; color: var(--green-dark); background: #fff; font-weight: 700; font-size: .82rem; cursor: pointer; }
.category-chip:hover { border-color: #3fae9a; }
.category-chip.is-active { border-color: transparent; color: #fff; background: linear-gradient(135deg, #3fae9a, #1f6f63); }
.product-card[hidden] { display: none; }
.chip-mark i { font-size: 1.9rem; }
.filter-empty { min-height: 260px; }

@media (max-width: 620px) {
  .store-hero .hero-grid { padding-bottom: 5.5rem; }
  .hero-controls { bottom: 1.6rem; }
}

/* Carrito: cantidad con − / + */
.quantity-form { display: grid; gap: .35rem; justify-items: start; }
.quantity-label { font-size: .68rem; font-weight: 800; }
.stepper { display: inline-grid; grid-template-columns: 38px 44px 38px; align-items: center; overflow: hidden; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; }
.stepper button { display: grid; place-items: center; height: 38px; padding: 0; border: 0; color: var(--green); background: transparent; cursor: pointer; }
.stepper button:hover:not(:disabled) { background: var(--mint); }
.stepper button:disabled { color: #b8c7c3; cursor: not-allowed; }
.stepper output { text-align: center; font-weight: 800; }
.stock-limit { color: var(--muted); font-size: .68rem; }
@media (max-width: 620px) { .quantity-form { grid-column: 1 / -1; grid-template-columns: auto 1fr auto; align-items: center; } .quantity-label { grid-column: 1 / -1; } }
body.tst-store-page #contenido:is(.narrow-page, .product-page) { padding-top: calc(var(--store-header-h, 89px) + 2.2rem); }

/* Checkout: aplicar cupón */
.coupon-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
.coupon-row .button { min-height: 46px; }
.coupon-box small.is-error { color: var(--danger); font-weight: 700; }
.coupon-box small.is-ok { color: #08755e; font-weight: 700; }
.summary-discount { color: #08755e; }
.summary-discount small { display: block; color: var(--muted); font-size: .7rem; }
.filter-empty[hidden], .empty-state[hidden] { display: none; }

/* Hero: texto a la izquierda y la foto de cada línea completa a la derecha
   (3:2, sin recortes fuertes ni velo encima). En celular la foto va arriba. */
.store-hero { position: relative; isolation: isolate; background: #0e2e2a; background-image: radial-gradient(rgba(0, 212, 170, .07) 1px, transparent 1.4px); background-size: 28px 28px; }
.hero-bgs { position: absolute; top: 0; right: 0; bottom: 0; left: 54%; z-index: 0; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none !important; object-fit: cover; object-position: center; opacity: 0; transform: scale(1.02); transition: opacity .8s ease, transform 7s ease; }
.hero-bg.is-active { opacity: 1; transform: scale(1); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #0e2e2a 0%, rgba(14, 46, 42, .55) 14%, rgba(14, 46, 42, 0) 38%); pointer-events: none; }
.store-hero .hero-slides { position: relative; z-index: 1; }
.store-hero .hero-grid { grid-template-columns: minmax(0, min(560px, 46vw)); min-height: 540px; }
.store-hero .hero-title { font-size: clamp(2.4rem, 4.2vw, 4.1rem); }
.store-hero .hero-copy { color: #e3f3ee; }
@media (max-width: 900px) {
  .hero-bgs { position: relative; left: auto; top: auto; right: auto; bottom: auto; height: auto; aspect-ratio: 3 / 2; max-height: 62vh; }
  .hero-shade { background: linear-gradient(180deg, rgba(14, 46, 42, 0) 60%, #0e2e2a 100%); }
  .store-hero .hero-grid { grid-template-columns: 1fr; min-height: 0; padding-top: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) { .hero-bg { transition: none; transform: none; } }
.catalog-count { display: flex; align-items: center; gap: .6rem; } .filter-empty .button { margin-top: .6rem; }

/* Seguimiento de pedido */
.trust-grid { grid-template-columns: repeat(4, 1fr); }
.trust-track { display: grid; padding-left: 1rem; border-left: 3px solid #3fae9a; }
.trust-track strong { color: var(--green); font-size: .84rem; }
.trust-track small { color: var(--muted); text-decoration: underline; }
.tracking-layout { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.tracking-form { display: grid; gap: .55rem; }
.tracking-form label { font-size: .74rem; font-weight: 800; }
.tracking-form input { width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1.5px solid var(--line); border-radius: 10px; }
.tracking-help { margin: .4rem 0 0; color: var(--muted); font-size: .78rem; }
.tracking-help a { color: var(--green) !important; text-decoration: underline !important; }
.order-timeline { list-style: none; margin: 0; padding: 0; }
.timeline-step { position: relative; display: grid; grid-template-columns: 34px 1fr; gap: .8rem; padding-bottom: 1.1rem; color: #8a9a96; }
.timeline-step:not(:last-child)::before { content: ""; position: absolute; left: 16px; top: 34px; bottom: 0; width: 2px; background: var(--line); }
.timeline-step.is-done:not(:last-child)::before { background: #3fae9a; }
.timeline-dot { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #8a9a96; background: #eef3f1; font-size: .82rem; }
.timeline-step.is-done { color: var(--ink); }
.timeline-step.is-done .timeline-dot { color: #fff; background: #3fae9a; }
.timeline-step.is-current .timeline-dot { background: var(--green); box-shadow: 0 0 0 5px rgba(63, 174, 154, .22); }
.timeline-step.is-stopped .timeline-dot { background: var(--danger); }
.timeline-step strong { display: block; padding-top: .35rem; font-size: .92rem; }
.timeline-step small { color: var(--muted); font-size: .72rem; }
.timeline-step p { margin: .25rem 0 0; color: var(--muted); font-size: .82rem; }
.timeline-note { padding: .45rem .6rem; border-radius: 8px; color: var(--green-dark) !important; background: var(--mint); }
@media (max-width: 900px) { .tracking-layout { grid-template-columns: 1fr; } .trust-grid { grid-template-columns: 1fr 1fr; } .trust-grid span:last-child { grid-column: auto; } }
@media (max-width: 620px) { .trust-grid { grid-template-columns: 1fr 1fr; gap: .8rem; } }

/* ── Cuentas de clientes ─────────────────────────────────── */
.account-card { max-width: 460px; margin: 0 auto; padding: clamp(1.4rem, 4vw, 2.2rem); border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 10px 34px rgba(17, 63, 56, .08); }
.account-card--center { text-align: center; }
.account-card h1 { margin: .2rem 0 .4rem; font: 800 clamp(1.7rem, 4vw, 2.2rem) Montserrat, sans-serif; letter-spacing: -.03em; }
.account-lead { margin: 0 0 1.2rem; color: var(--muted); }
.account-form { display: grid; gap: .5rem; }
.account-form label { font-size: .74rem; font-weight: 800; }
.account-form label small { color: var(--muted); font-weight: 500; }
.account-form input { width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1.5px solid var(--line); border-radius: 10px; font: inherit; }
.account-form input:disabled { color: var(--muted); background: var(--paper); }
.account-form .button { margin-top: .6rem; }
.account-form h2 { margin: 0 0 .4rem; font: 800 1.05rem Montserrat, sans-serif; }
.account-link { justify-self: end; color: var(--green) !important; font-size: .8rem; text-decoration: underline !important; }
.account-hint { color: var(--muted); font-size: .74rem; }
.account-switch { margin: 1.2rem 0 0; text-align: center; color: var(--muted); font-size: .88rem; }
.account-switch a { color: var(--green) !important; font-weight: 700; text-decoration: underline !important; }
.form-note { margin-bottom: 1rem; padding: .8rem 1rem; border-radius: 10px; color: #08624f; background: #e3f8f1; font-weight: 700; }

.social-login { display: grid; gap: .6rem; }
.social-btn { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .6rem 1rem; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; color: #1f1f1f !important; font-weight: 700; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.social-btn:hover { border-color: #b9cfc9; box-shadow: 0 4px 14px rgba(17, 63, 56, .1); }
.social-btn--facebook { border-color: #1877f2; color: #fff !important; background: #1877f2; }
.social-btn--facebook:hover { background: #166fe5; }
.social-btn--facebook i { font-size: 1.2rem; }
.social-divider { display: flex; align-items: center; gap: .8rem; margin: 1.1rem 0; color: var(--muted); font-size: .78rem; }
.social-divider::before, .social-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }

.account-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.account-verify { display: flex; align-items: center; justify-content: space-between; gap: .8rem; flex-wrap: wrap; margin-bottom: 1rem; padding: .85rem 1rem; border: 1px solid #f0d58a; border-radius: 12px; background: #fff8e6; }
.account-verify p { margin: 0; font-size: .9rem; }
.account-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.2rem; align-items: start; }
.account-orders h2 { margin: 0 0 .8rem; font: 800 1.2rem Montserrat, sans-serif; }
.account-order { margin-bottom: .8rem; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.account-order__head { display: flex; align-items: start; justify-content: space-between; gap: .8rem; flex-wrap: wrap; }
.account-order__head strong { display: block; font: 800 1rem Montserrat, sans-serif; }
.account-order__head small { color: var(--muted); font-size: .76rem; }
.account-order__items { margin: .6rem 0; color: var(--muted); font-size: .88rem; }
.account-order__foot { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.account-order__foot strong { font: 800 1.1rem Montserrat, sans-serif; }
.order-stage { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .65rem; border-radius: 999px; color: #895e08; background: #fff2d3; font-size: .74rem; font-weight: 800; }
.order-stage.stage-pago_confirmado, .order-stage.stage-preparando { color: #1d5fa3; background: #e5f0fc; }
.order-stage.stage-enviado, .order-stage.stage-listo_retiro { color: #6a3fb5; background: #efe8fb; }
.order-stage.stage-entregado { color: #08705a; background: #e3f8f1; }
.order-stage.stage-cancelado, .order-stage.stage-vencido { color: #9b3636; background: #fee9e9; }
.account-side { display: grid; gap: 1rem; }
@media (max-width: 900px) { .account-layout { grid-template-columns: 1fr; } }
.checkout-account { margin: 0 0 1rem; padding: .7rem .9rem; border-radius: 10px; background: var(--mint); color: var(--green-dark); font-size: .86rem; } .checkout-account a { color: var(--green) !important; font-weight: 700; text-decoration: underline !important; }
.account-page .button { gap: .45rem; }

/* Fotos de producto cuadradas (1:1, como un post de Instagram) en tarjetas y ficha. */
.product-art,.product-art-large{aspect-ratio:1/1}

/* Etiqueta de categoría: a la derecha y en verde sólido, para no tapar la foto. */
.product-type{left:auto;right:1rem;z-index:1;border-color:transparent;color:#fff;background:#1f6f63;box-shadow:0 4px 12px rgba(0,0,0,.18)}

/* Cuenta del cliente: pestañas Mi perfil / Mis pedidos. */
.account-tabs{display:flex;gap:.45rem;margin:0 0 1.4rem;padding:.35rem;border:1px solid var(--line);border-radius:999px;background:#fff;width:max-content;max-width:100%;overflow-x:auto}
.account-tabs a{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:.5rem 1.1rem;border-radius:999px;color:#315b53;font-weight:700;font-size:.9rem;text-decoration:none;white-space:nowrap}
.account-tabs a:hover{background:#eef7f4}
.account-tabs a.active{color:#fff;background:linear-gradient(135deg,#3fae9a,#1f6f63)}
.account-single{display:grid;gap:1rem}
.account-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;align-items:start}
@media(max-width:760px){.account-profile-grid{grid-template-columns:1fr}.account-tabs{width:100%}.account-tabs a{flex:1;justify-content:center}}

/* Enlace al manual en productos NFC (catálogo y ficha). */
.nfc-manual-link { display: inline-flex; align-items: center; gap: .4rem; margin-top: .7rem; color: #1f6f63; font-weight: 700; font-size: .84rem; text-decoration: none; }
.nfc-manual-link:hover { text-decoration: underline; }
.nfc-manual-link i { color: #3fae9a; }

/* Servicios por cotización: se distinguen del inventario y no muestran precios ficticios. */
.catalog-quote-categories { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin:0 auto 1.5rem; }
.catalog-quote-categories span { color:var(--muted); font-size:.75rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.catalog-quote-categories a { display:inline-flex; align-items:center; min-height:44px; border:1px solid rgba(63,174,154,.28); border-radius:999px; color:var(--ink); font-size:.82rem; padding:.45rem .72rem; text-decoration:none; }
.catalog-quote-categories a:hover,.catalog-quote-categories a:focus-visible { border-color:var(--green); color:var(--green); outline:none; }

.store-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin:1.5rem 0 2rem}.store-filters label{display:grid;gap:.4rem;flex:1 1 220px;min-width:0}.store-filters input,.store-filters select{width:100%;min-width:0;min-height:48px;padding:.7rem;border:1px solid #8bb8aa;border-radius:5px;font:inherit;background:#fff;color:#173d34}.store-pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1rem;margin:2.5rem 0}.store-pagination p{margin:0}.store-filters :focus-visible,.store-pagination a:focus-visible{outline:3px solid #167b63;outline-offset:3px}
