/* Stardust Engine · /tienda/ (the store). Builds on /styles.css tokens. */
.sub .barra { background: rgba(5, 5, 6, .86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-color: var(--linea); }
.sub main { padding-top: calc(var(--barra) + env(safe-area-inset-top, 0px)); }
.sub .seccion { padding-block: clamp(64px, 9vw, 120px); scroll-margin-top: calc(var(--barra) + 24px); }
.sub .pie { padding-top: 40px; padding-bottom: 40px; }
.pie-final a { text-decoration: none; } .pie-final a:hover { color: var(--oro); }

/* ---- header band ---- */
.t-cabeza { position: relative; overflow: hidden; isolation: isolate; border-bottom: 1px solid var(--linea); }
.t-cabeza-fondo { position: absolute; inset: 0 0 0 auto; width: min(62%, 860px); z-index: -1; }
.t-cabeza-fondo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; filter: brightness(.72) saturate(.95); }
.t-cabeza-fondo::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--negro) 0%, rgba(5,5,6,.75) 28%, rgba(5,5,6,.1) 70%), linear-gradient(0deg, var(--negro), transparent 30%); }
.t-cabeza-grid { min-height: min(78svh, 720px); display: grid; align-items: center; padding-block: 72px; }
.t-cabeza-texto { max-width: 560px; }
.t-cabeza h1 { font-size: clamp(2.8rem, 7vw, 5.6rem); font-weight: 100; letter-spacing: .03em; color: var(--oro-claro); }
.t-sub { font-size: 1.2rem; color: var(--tinta-2); margin: 24px 0 0; max-width: 46ch; }
.t-estado { margin: 22px 0 0; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cian); }
.t-estado:empty { display: none; }

/* ---- guarantees ---- */
.t-garantias { background: var(--negro-2); border-bottom: 1px solid var(--linea); }
.t-garantias-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.t-garantias-grid > div { padding: 40px 32px 40px 0; }
.t-garantias-grid > div + div { padding-left: 32px; border-left: 1px solid var(--linea); }
.t-garantias b { font-size: .7rem; color: var(--oro); letter-spacing: .2em; }
.t-garantias h2 { font-size: 1.3rem; font-weight: 300; margin: 10px 0 8px; }
.t-garantias p { margin: 0; color: var(--tinta-2); font-size: .98rem; max-width: 36ch; }

/* ---- filters ---- */
.t-filtros { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 44px; }
.t-filtros button { background: none; border: 1px solid var(--linea); color: var(--tinta-2); min-height: 40px; padding: 0 18px; cursor: pointer;
  font: 400 .7rem/1 var(--mono); letter-spacing: .18em; text-transform: uppercase; transition: border-color .25s, color .25s, background .25s; }
.t-filtros button:hover { border-color: var(--oro); color: var(--tinta); }
.t-filtros button[aria-pressed="true"] { background: var(--oro); border-color: var(--oro); color: var(--negro); }

/* ---- grid ---- */
.t-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 40px 24px; }
.t-producto { min-width: 0; }
.t-producto button { all: unset; display: block; width: 100%; cursor: pointer; }
.t-producto button:focus-visible { outline: 2px solid var(--cian); outline-offset: 4px; }
.t-img { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--negro-2); box-shadow: 0 0 0 1px var(--linea); }
.t-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter .6s; }
.t-producto button:hover .t-img img, .t-producto button:focus-visible .t-img img { transform: scale(1.05); }
.t-sello { white-space: nowrap; line-height: 1.3; position: absolute; top: 12px; left: 12px; padding: 5px 9px; background: rgba(5,5,6,.78); border: 1px solid var(--linea);
  font: 400 .6rem/1 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--cian); }
.t-sello.oro { color: var(--oro); }
.t-linea { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 16px; }
.t-linea b { font: 300 1.12rem/1.3 var(--sans); color: var(--tinta); }
.t-linea span { font: 400 .8rem/1 var(--mono); color: var(--oro); white-space: nowrap; }
.t-desc { margin: 6px 0 0; font-size: .92rem; line-height: 1.55; color: var(--tinta-3); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.t-aviso { margin: 48px 0 0; font-size: .68rem; letter-spacing: .12em; color: var(--tinta-3); }

/* ---- jewellery ---- */
.t-joyeria { background: radial-gradient(ellipse 60% 70% at 25% 50%, rgba(214,178,110,.08), transparent 70%), var(--negro); }
.t-joyeria-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.t-joyeria-img { margin: 0; box-shadow: 0 0 0 1px var(--linea); }
.correo-t { margin-top: 24px; font-size: .8rem; color: var(--oro); }
.correo-t a { color: var(--oro-claro); }

/* ---- questions ---- */
.t-preguntas h2 { margin-bottom: 32px; }
.t-preguntas details { border-top: 1px solid var(--linea); }
.t-preguntas details:last-child { border-bottom: 1px solid var(--linea); }
.t-preguntas summary { cursor: pointer; list-style: none; padding: 22px 40px 22px 0; position: relative; font: 300 1.15rem/1.4 var(--sans); }
.t-preguntas summary::-webkit-details-marker { display: none; }
.t-preguntas summary::after { content: "+"; position: absolute; right: 4px; top: 18px; font: 200 1.6rem/1 var(--sans); color: var(--oro); transition: transform .3s; }
.t-preguntas details[open] summary::after { transform: rotate(45deg); }
.t-preguntas details p { margin: 0 0 24px; color: var(--tinta-2); max-width: 64ch; }

/* ---- product dialog ---- */
.t-ficha { width: min(1040px, calc(100vw - 32px)); max-height: calc(100svh - 32px); padding: 0; border: 1px solid var(--linea); background: var(--negro-2); color: var(--tinta); overflow: auto; }
.t-ficha::backdrop { background: rgba(5,5,6,.82); backdrop-filter: blur(6px); }
.t-ficha .cerrar { position: absolute; top: 14px; right: 14px; z-index: 2; background: rgba(5,5,6,.6); }
.t-ficha-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.t-ficha figure { margin: 0; position: relative; background: var(--negro); }
.t-ficha figure img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.t-ficha figcaption { position: absolute; left: 12px; bottom: 12px; font-size: .6rem; letter-spacing: .14em; color: var(--tinta-2); background: rgba(5,5,6,.7); padding: 5px 8px; }
.t-ficha-texto { padding: clamp(28px, 4vw, 48px); min-width: 0; }
.t-cat { font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: var(--oro); margin: 0 0 12px; }
.t-ficha h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); padding-right: 40px; }
.t-precio { font: 400 1.05rem/1 var(--mono); color: var(--oro-claro); margin: 14px 0 20px; }
.t-ficha-texto > p#fDesc { color: var(--tinta-2); margin: 0; }
.t-rasgos { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 8px; }
.t-rasgos li { font: 400 .78rem/1.5 var(--mono); color: var(--tinta-2); padding-left: 20px; position: relative; }
.t-rasgos li::before { content: ""; position: absolute; left: 0; top: .7em; width: 10px; height: 1px; background: var(--cian); }
.boton[aria-disabled="true"] { opacity: .55; cursor: default; pointer-events: none; }
.t-nota { margin-top: 18px; line-height: 1.6; }

@media (max-width: 860px) {
  .t-cabeza-fondo { width: 100%; opacity: .55; }
  .t-cabeza-grid { min-height: 0; padding-block: 64px 56px; }
  .t-garantias-grid { grid-template-columns: 1fr; }
  .t-garantias-grid > div, .t-garantias-grid > div + div { padding: 26px 0; border-left: 0; }
  .t-garantias-grid > div + div { border-top: 1px solid var(--linea); }
  .t-joyeria-grid, .t-ficha-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .t-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
  .t-linea { flex-direction: column; gap: 4px; }
  .t-linea b { font-size: 1rem; }
  .t-desc { display: none; }
}
.sub .pie { border-top: 0; } .sub .pie-final { margin-top: 0; }
.t-estado a { color: var(--oro-claro); }
