/* v1.0.2 (cambios: se elimina toggle visual, enlaces subdrawer sin subrayado) */
.ts-root {
  --ts-max:1280px;
  --ts-primary:#6A21BF;
  --ts-secondary:#EA9350;
  --ts-grad:linear-gradient(90deg,#6A21BF,#EA9350);
  --ts-bg:#f5f7fb;
  --ts-surface:#ffffff;
  --ts-text:#1f2734;
  --ts-soft:#5d6673;
  --ts-radius:26px;
  --ts-ease:cubic-bezier(.4,0,.2,1);
  --ts-shadow-sm:0 4px 14px -6px rgba(0,0,0,.15);
  --ts-shadow-card:0 18px 46px -22px rgba(0,0,0,.45);
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ts-text);
  background:var(--ts-bg);
}
.ts-root * { box-sizing:border-box; }
.visually-hidden {
  position:absolute !important; width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important; overflow:hidden !important;
  clip:rect(0 0 0 0) !important; white-space:nowrap !important; border:0 !important;
}

/* Hero */
.ts-hero { width:100%; background:var(--ts-bg); padding:120px 2rem 30px; }
@media (max-width:900px){ .ts-hero { padding:110px 1.2rem 24px; } }
.ts-hero-inner { max-width:var(--ts-max); margin:0 auto; text-align:center; }
.ts-title-gradient { font-size:clamp(2.4rem,3.8vw,3.4rem); line-height:1.05; font-weight:800; background:var(--ts-grad); -webkit-background-clip:text; color:transparent; letter-spacing:.6px; }
.ts-subtitle { margin:.9rem auto 0; font-size:1rem; line-height:1.55; color:var(--ts-soft); max-width:760px; }

/* Search & Filters */
.ts-search-filters { margin:2.4rem auto 0; max-width:var(--ts-max); display:flex; flex-direction:column; gap:1.4rem; align-items:center; }
.ts-search-bar { position:relative; background:#fff; border:1px solid #e3e6ec; border-radius:60px; display:flex; align-items:center; gap:.75rem; padding:.78rem 1.6rem; width:min(820px,100%); box-shadow:var(--ts-shadow-sm); transition:.35s var(--ts-ease); }
.ts-search-bar:focus-within { border-color:var(--ts-primary); box-shadow:0 4px 20px -6px rgba(106,33,191,.35); }
.ts-icon-search { width:20px;height:20px;stroke:#7d8590;stroke-width:2;fill:none; }
.ts-search-bar input { flex:1;font-size:.95rem;border:0;background:transparent;outline:none; }
.ts-search-clear { border:0;background:transparent;cursor:pointer;padding:.35rem;display:flex;align-items:center;justify-content:center;color:#7d8590;transition:.3s; }
.ts-search-clear:hover { color:var(--ts-primary); }
.ts-search-clear svg { width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none; }

.ts-filter-pills { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; max-width:960px; }
.ts-pill { border:1px solid #e2e5eb; background:#fff; color:var(--ts-text); padding:.55rem 1.05rem; font-size:.72rem; font-weight:600; letter-spacing:.6px; text-transform:uppercase; border-radius:40px; cursor:pointer; transition:.35s var(--ts-ease); display:inline-flex; align-items:center; gap:.4rem; }
.ts-pill:hover { border-color:var(--ts-primary); color:var(--ts-primary); }
.ts-pill-active { background:var(--ts-grad); color:#fff; border-color:transparent; box-shadow:0 6px 16px -6px rgba(106,33,191,.4); }

/* Grid */
.ts-grid-section { padding:30px 2rem 110px; }
@media (max-width:900px){ .ts-grid-section { padding:24px 1.2rem 90px; } }
.ts-grid { max-width:var(--ts-max); margin:0 auto; display:grid; gap:2.1rem 1.9rem; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.ts-fallback { grid-column:1/-1; text-align:center; color:var(--ts-soft); }

/* Card */
.ts-card { position:relative; height:320px; border-radius:var(--ts-radius); overflow:hidden; background:#0e1115; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; box-shadow:var(--ts-shadow-card); cursor:pointer; isolation:isolate; transition:.55s var(--ts-ease); }
.ts-card[aria-expanded="true"] { outline:2px solid rgba(234,147,80,.55); }
.ts-card:hover { transform:translateY(-8px); box-shadow:0 30px 70px -24px rgba(0,0,0,.6); }
.ts-card-media { position:absolute; inset:0; z-index:0; overflow:hidden; }
.ts-card-bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(.68) saturate(1.1); transition:.7s var(--ts-ease); }
.ts-card:hover .ts-card-bg { filter:brightness(.78) saturate(1.2); }
.ts-card-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,.25)); z-index:1; opacity:.9; transition:.6s; }
.ts-card:hover .ts-card-overlay { opacity:.85; }

.ts-card-badge { position:absolute; top:12px; left:12px; z-index:4; background:rgba(255,255,255,.14); color:#fff; font-size:.6rem; font-weight:600; letter-spacing:.6px; padding:.42rem .7rem; border-radius:24px; backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.25); text-transform:uppercase; }

.ts-card-content { position:relative; z-index:5; padding:1.2rem 1.15rem 1.05rem; width:100%; pointer-events:none; }
.ts-card-title { margin:0 0 .55rem; font-size:1.15rem; font-weight:700; letter-spacing:.4px; line-height:1.1; color:#fff !important; text-shadow:0 3px 8px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.4); }
.ts-card-sub { margin:0 0 .85rem; font-size:.62rem; letter-spacing:.55px; text-transform:uppercase; font-weight:600; opacity:.9; color:#f0f4f8; text-shadow:0 2px 4px rgba(0,0,0,.4); }
.ts-card-cta { display:inline-flex; align-items:center; gap:.45rem; font-size:.65rem; font-weight:600; letter-spacing:.55px; text-transform:uppercase; padding:.55rem .9rem; border-radius:28px; background:rgba(255,255,255,.16); backdrop-filter:blur(4px); color:#fff; transition:.4s; pointer-events:auto; }
.ts-card-cta .ts-arrow { transition:.4s; transform:translateX(0); }
.ts-card:hover .ts-card-cta .ts-arrow { transform:translateX(6px); }
.ts-card-cta:hover { background:rgba(255,255,255,.24); }

/* Subdrawer */
.ts-subdrawer { position:absolute; left:0; right:0; bottom:0; transform:translateY(100%); background:rgba(10,12,16,.82); backdrop-filter:blur(10px) saturate(140%); border-top:1px solid rgba(255,255,255,.14); padding:1.05rem .95rem 1.15rem; display:flex; flex-direction:column; gap:.55rem; opacity:0; visibility:hidden; transition:.55s var(--ts-ease); z-index:6; }
.ts-card[data-open="true"] .ts-subdrawer { transform:translateY(0); opacity:1; visibility:visible; }
.ts-subdrawer-heading { margin:0 0 .15rem; font-size:.6rem; letter-spacing:.55px; font-weight:700; opacity:.7; text-transform:uppercase; }
.ts-subdrawer a {
  color:#fff;
  text-decoration:none;
  font-size:.72rem;
  letter-spacing:.4px;
  font-weight:600;
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.45rem .65rem;
  border-radius:10px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  transition:.35s;
}
.ts-subdrawer a:hover,
.ts-subdrawer a:focus-visible {
  background:rgba(255,255,255,.18);
  outline:none;
  text-decoration:none;
}

/* Empty / Toast */
.ts-empty { grid-column:1/-1; text-align:center; font-size:.9rem; font-weight:600; padding:2.2rem 1rem; color:var(--ts-soft); }
.ts-toast-container { position:fixed; top:110px; left:50%; transform:translateX(-50%); z-index:400; pointer-events:none; display:flex; flex-direction:column; gap:.5rem; }
.ts-toast { background:#fff; border:1px solid rgba(106,33,191,.25); padding:.7rem 1rem; font-size:.75rem; border-radius:12px; font-weight:600; box-shadow:0 10px 28px -16px rgba(0,0,0,.35); animation: tsToastIn .35s var(--ts-ease); pointer-events:auto; }
@keyframes tsToastIn { from{opacity:0;transform:translateY(-6px);} to{opacity:1;transform:none;} }

/* Focus */
.ts-card:focus-visible,
.ts-card-cta:focus-visible,
.ts-subdrawer a:focus-visible,
.ts-pill:focus-visible {
  outline:3px solid var(--ts-secondary);
  outline-offset:3px;
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .ts-card, .ts-card-bg, .ts-card-overlay, .ts-subdrawer,
  .ts-pill, .ts-search-bar, .ts-toast { transition:none !important; animation:none !important; }
}