
/* TOPRESTO Features Showcase — 1.5.1 */
.trfs{
  --trfs-text:#0f172a;
  --trfs-muted:rgba(15,23,42,.66);
  --trfs-border:rgba(15,23,42,.10);
  --trfs-card:rgba(255,255,255,.92);
  --trfs-shadow:0 26px 80px rgba(2,6,23,.10);
  --trfs-shadow2:0 12px 34px rgba(2,6,23,.10);
  --trfs-accent:#1976ff;
  --trfs-accent2:#2aa3ff;
  --trfs-ring:rgba(25,118,255,.22);
  color:var(--trfs-text);
}
.trfs[data-skin="dark"]{
  --trfs-text:rgba(255,255,255,.92);
  --trfs-muted:rgba(255,255,255,.72);
  --trfs-border:rgba(255,255,255,.12);
  --trfs-card:rgba(15,23,42,.60);
  --trfs-shadow:0 30px 95px rgba(0,0,0,.38);
  --trfs-shadow2:0 14px 38px rgba(0,0,0,.28);
  --trfs-ring:rgba(42,163,255,.26);
}

.trfs{padding:18px 0;}
.trfs-header{max-width:1240px;margin:0 auto 14px;padding:0 14px;}
.trfs-title{margin:0 0 6px;font-size:clamp(24px,2.6vw,40px);line-height:1.08;letter-spacing:-.03em;}
.trfs-subtitle{margin:0;color:var(--trfs-muted);font-size:14px;max-width:760px;}
.trfs-wrap{max-width:1240px;margin:0 auto;padding:0 14px;}

.trfs-grid{display:grid;gap:12px;align-items:stretch;}
.trfs-card{
  position:relative;display:flex;gap:14px;padding:16px;border-radius:22px;
  border:1px solid var(--trfs-border);background:var(--trfs-card);box-shadow:var(--trfs-shadow2);
  overflow:hidden;cursor:pointer;outline:none;min-height:116px;
  transform:translateY(12px);opacity:0;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,opacity .28s ease;
}
.trfs-card.is-visible{transform:translateY(0);opacity:1;}
/* Stagger feel */
.trfs-card.is-visible{animation:trfsPop .32s ease both;}
@keyframes trfsPop{from{transform:translateY(10px) scale(.99);}to{transform:translateY(0) scale(1);}}

/* Shine */
.trfs-shine{position:absolute;inset:-1px;pointer-events:none;opacity:0;transition:opacity .22s ease;}
.trfs-shine:before{
  content:""; position:absolute; inset:-140px;
  background:radial-gradient(circle at 30% 20%, rgba(255,255,255,.55), transparent 55%);
  transform:rotate(12deg);
}
.trfs-glow{position:absolute;inset:-120px;background:radial-gradient(circle at 18% 20%,rgba(25,118,255,.18),transparent 52%),radial-gradient(circle at 85% 40%,rgba(42,163,255,.14),transparent 55%);opacity:0;transition:opacity .25s ease;pointer-events:none;}

.trfs-card:hover .trfs-glow,.trfs-card:focus .trfs-glow{opacity:1;}
.trfs-card:hover .trfs-shine,.trfs-card:focus .trfs-shine{opacity:.35;}
.trfs-card:hover,.trfs-card:focus{transform:translateY(-4px);border-color:var(--trfs-ring);box-shadow:var(--trfs-shadow);}

.trfs-ico-wrap{
  width:58px;height:58px;border-radius:18px;
  background:linear-gradient(135deg,var(--trfs-accent),var(--trfs-accent2));
  box-shadow:0 14px 30px rgba(25,118,255,.18);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  transition:transform .22s ease, filter .22s ease;
}
.trfs-card:hover .trfs-ico-wrap,.trfs-card:focus .trfs-ico-wrap{transform:translateY(-2px) scale(1.03);filter:saturate(1.08);}
.trfs-ico{font-size:26px;width:26px;height:26px;color:#fff;line-height:1;}

.trfs-content{min-width:0;flex:1 1 auto;}
.trfs-card-title{margin:0 0 6px;font-size:16px;line-height:1.25;letter-spacing:-.01em;}
.trfs-card-mini{
  margin:0;color:var(--trfs-muted);font-size:13px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.trfs-card-mini--empty{opacity:.55}

/* Small trailing icon */
.trfs-arrow{position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:12px;border:1px solid var(--trfs-border);background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease,background .2s ease;}
.trfs[data-skin="dark"] .trfs-arrow{background:rgba(15,23,42,.45);}
.trfs-card:hover .trfs-arrow,.trfs-card:focus .trfs-arrow{opacity:1;transform:translateX(0);}
.trfs-arrow .dashicons{color:var(--trfs-muted);}

/* Bubble overlay */
.trfs-bubble{
  position:fixed;left:0;top:0;
  z-index:2147483647;
  width:min(460px, calc(100vw - 24px));
  pointer-events:none;
  opacity:0;transform:scale(.985);
  transition:opacity .14s ease, transform .14s ease;
}
.trfs-bubble.is-open{opacity:1;transform:scale(1);}
.trfs-bubble-inner{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(15,23,42,.92);
  color: rgba(255,255,255,.92);
  box-shadow: 0 26px 90px rgba(0,0,0,.45);
  overflow:hidden;
}
.trfs-bubble-media{
  aspect-ratio:16/9;background:rgba(0,0,0,.28);
  display:flex;align-items:center;justify-content:center;position:relative;
}
.trfs-bubble-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;
  transition:opacity var(--trfs-tr, 320ms) ease, transform var(--trfs-tr, 320ms) ease;
  transform:translateX(0);
}
.trfs[data-transition="slide"] .trfs-bubble-img{transform:translateX(10px);}
.trfs-bubble-img.is-show{opacity:1;transform:translateX(0);}
.trfs-bubble-empty{font-size:12px;color:rgba(255,255,255,.72);padding:10px;position:relative;z-index:2;}
.trfs-bubble-dots{position:absolute;left:10px;bottom:10px;display:flex;gap:6px;z-index:3;}
.trfs-bubble-dots i{width:7px;height:7px;border-radius:99px;background:rgba(255,255,255,.32);}
.trfs-bubble-dots i.is-on{background:rgba(255,255,255,.82);}
.trfs-bubble-text{padding:12px 12px 14px;}
.trfs-bubble-h{font-weight:950;letter-spacing:-.01em;margin-bottom:6px;}
.trfs-bubble-p{font-size:13px;line-height:1.55;color:rgba(255,255,255,.78);white-space:pre-line;}
.trfs-bubble-arrow{
  position:absolute;width:14px;height:14px;background:rgba(15,23,42,.92);
  transform:rotate(45deg);
  border-left:1px solid rgba(255,255,255,.12);
  border-top:1px solid rgba(255,255,255,.12);
  left:18px;top:-7px;
}

/* Modal overlay (ported to body; fixes "site visible under") */
.trfs-modal{
  position:fixed;inset:0;
  display:none;
  z-index:2147483000;
}
.trfs-modal.is-open{display:block;}
.trfs-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.70);}
.trfs-modal-card{
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:min(1020px,calc(100% - 22px));
  max-height:calc(100% - 22px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:22px;border:1px solid rgba(255,255,255,.12);
  background:rgba(15,23,42,.94);
  padding:16px;color:rgba(255,255,255,.92);
  box-shadow:0 40px 120px rgba(0,0,0,.55);
}
.trfs-modal-close{position:sticky;top:0;margin-left:auto;display:block;width:40px;height:40px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font-size:22px;cursor:pointer;}
.trfs-modal-title{font-weight:950;font-size:18px;margin:8px 0 6px;}
.trfs-modal-desc{color:rgba(255,255,255,.78);font-size:13px;line-height:1.55;margin-bottom:12px;white-space:pre-line;}
.trfs-modal-media{
  border-radius:16px;border:1px solid rgba(255,255,255,.12);
  overflow:hidden;background:rgba(0,0,0,.25);
  aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative;
}
.trfs-modal-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;
  transition:opacity var(--trfs-tr, 320ms) ease, transform var(--trfs-tr, 320ms) ease;
  transform:translateX(0);
}
.trfs[data-transition="slide"] .trfs-modal-img{transform:translateX(10px);}
.trfs-modal-img.is-show{opacity:1;transform:translateX(0);}
.trfs-modal-empty{color:rgba(255,255,255,.72);font-size:12px;padding:10px;position:relative;z-index:2;}
.trfs-modal-dots{position:absolute;left:10px;bottom:10px;display:flex;gap:6px;z-index:3;}
.trfs-modal-dots i{width:7px;height:7px;border-radius:99px;background:rgba(255,255,255,.32);}
.trfs-modal-dots i.is-on{background:rgba(255,255,255,.82);}

/* scroll lock helper (iOS safe) */
body.trfs-lock{position:fixed;left:0;right:0;overflow:hidden;width:100%;}

/* Mobile */
@media (max-width: 980px){
  .trfs-grid{grid-template-columns:1fr !important;}
  .trfs-card{min-height:unset;}
  .trfs-bubble{display:none !important;}
}
@media (max-width: 640px){
  .trfs-card{padding:14px;border-radius:18px;}
  .trfs-ico-wrap{width:52px;height:52px;border-radius:16px;}
  .trfs-ico{font-size:24px;width:24px;height:24px;}
  .trfs-arrow{display:none;}
}
