/* ========== FLOATING ACTIONS ========== */
.floating-actions{
  position:fixed; top:50%; right:14px; transform:translateY(-50%);
  z-index:9990; display:flex; flex-direction:column; gap:10px;
  align-items:flex-end; pointer-events:none;
}
.floating-actions .fab{
  pointer-events:auto; display:inline-flex; align-items:center; justify-content:center;
  gap:8px; padding:12px 16px; min-height:48px; border-radius:50px;
  font-size:.88rem; font-weight:700; text-decoration:none; color:#fff!important;
  box-shadow:0 6px 20px rgba(0,0,0,.22); transition:transform .2s, box-shadow .2s;
  white-space:nowrap; touch-action:manipulation; border:none; cursor:pointer;
}
.fab:active{transform:scale(.96)}
.fab-book{ background:linear-gradient(135deg,#0ea5e9,#0284c7); }
.fab-quote{ background:linear-gradient(135deg,#8b5cf6,#7c3aed); }
.fab-track{ background:linear-gradient(135deg,#10b981,#059669); }
.fab-install{
  background:linear-gradient(135deg,#0d9488 0%,#0f766e 50%,#115e59 100%);
  display:none;
  box-shadow:0 6px 20px rgba(13,148,136,.35);
  position:relative; overflow:hidden;
}
.fab-install::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transform:translateX(-100%);
  animation:installShine 3.5s ease-in-out infinite;
}
@keyframes installShine{ 0%{transform:translateX(-100%)} 40%,100%{transform:translateX(100%)} }
.fab-install:hover{ box-shadow:0 8px 24px rgba(13,148,136,.45); transform:translateY(-1px); }
.fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
.fab-icon svg{ width:20px; height:20px; flex-shrink:0; }
.fab-text{display:inline!important}
.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;
}
@media(max-width:640px){
  .floating-actions{
    top:auto; bottom:88px; right:10px; left:10px;
    transform:none; flex-direction:row; justify-content:space-between; gap:6px;
  }
  .floating-actions .fab{
    flex:1; justify-content:center; align-items:center;
    flex-direction:column; gap:3px;
    padding:9px 4px; font-size:.68rem; min-height:58px;
    border-radius:14px; white-space:normal; line-height:1.2;
  }
  .fab-text{display:block!important; font-size:.65rem; font-weight:700;}
  .fab-icon svg{ width:20px; height:20px; }
}
@media(max-width:380px){
  .floating-actions{ gap:4px; right:6px; left:6px; bottom:84px; }
  .floating-actions .fab{ padding:8px 2px; font-size:.62rem; min-height:56px; border-radius:12px; }
  .fab-text{font-size:.58rem;}
  .fab-icon svg{ width:18px; height:18px; }
}

/* ========== MODERN HERO ========== */
.search-section{
  position:relative; overflow:hidden; padding:48px 0 28px;
  background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 50%,#1e40af 100%); color:#fff;
}
.hero-bg-anim{
  position:absolute; inset:0; opacity:0.15;
  background:radial-gradient(circle at 20% 50%,#3b82f6 0%,transparent 50%),
             radial-gradient(circle at 80% 20%,#8b5cf6 0%,transparent 40%),
             radial-gradient(circle at 40% 80%,#06b6d4 0%,transparent 40%);
  animation:heroPulse 12s ease-in-out infinite alternate;
}
@keyframes heroPulse{ 0%{transform:scale(1)} 100%{transform:scale(1.1) translate(-2%,2%)} }
.hero-badge{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.15);color:#fff;
  padding:6px 14px;border-radius:30px;font-size:.78rem;font-weight:600;
  margin-bottom:14px;border:1px solid rgba(255,255,255,.25);
}
.search-title{font-size:1.7rem;line-height:1.25;margin-bottom:10px;font-weight:800}
.search-sub{font-size:.95rem;opacity:.9;margin-bottom:8px}
.search-box{ background:#fff;border-radius:18px;padding:16px; box-shadow:0 20px 40px rgba(0,0,0,.25);margin-top:20px; }
.search-row{display:flex;align-items:center;margin-bottom:12px}
.input-icon{padding:0 12px;display:flex;align-items:center;color:#64748b}
.input-icon svg{width:20px;height:20px}
.filter-row{display:flex;flex-direction:column;gap:10px}
.filter-row .form-control,.filter-row .form-select{width:100%;border-radius:10px}
.search-btn{width:100%;padding:13px;border-radius:10px;font-weight:700}
.popular-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px;align-items:center}
.pop-label{color:rgba(255,255,255,.7);font-size:.8rem}
.pop-tag{ background:rgba(255,255,255,.18);color:#fff;padding:5px 13px; border-radius:20px;font-size:.78rem;text-decoration:none; }
.pop-tag:hover{background:rgba(255,255,255,.3)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:22px}
.hero-actions .btn{ padding:13px 24px;font-weight:700;border-radius:50px;font-size:.95rem; text-decoration:none;display:inline-flex;align-items:center;gap:6px; }
.trust-bar{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:14px 0 6px;font-size:.82rem;opacity:.95}

/* Hero Banner Slider */
.hero-banner-slider{ position:relative; margin:22px 0 0; border-radius:18px; overflow:hidden; box-shadow:0 12px 36px rgba(0,0,0,.28); }
.hero-banner-track{ display:flex; transition:transform .55s cubic-bezier(0.25,0.8,0.25,1); will-change:transform; }
.hero-banner-slide{ flex:0 0 100%; min-width:100%; box-sizing:border-box; position:relative; color:#fff; min-height:200px; display:flex; align-items:center; justify-content:center; text-align:center; padding:28px 20px 36px; }
@media(min-width:768px){ .hero-banner-slide{min-height:240px;padding:36px 40px 44px} }
.hero-banner-inner{position:relative;z-index:1;max-width:560px;margin:0 auto}
.hero-banner-kicker{ display:inline-flex;align-items:center;gap:6px; font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase; background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22); padding:5px 12px;border-radius:999px;margin-bottom:12px; }
.hero-banner-kicker svg{width:16px;height:16px}
.hero-banner-title{ margin:0 0 8px;font-size:1.35rem;font-weight:800;line-height:1.25; }
@media(min-width:768px){.hero-banner-title{font-size:1.75rem}}
.hero-banner-sub{ margin:0 0 18px;font-size:.88rem;opacity:.92;line-height:1.45; }
.hero-banner-cta{ display:inline-flex;align-items:center;gap:6px; background:#fff;color:#0f172a;font-weight:700;font-size:.9rem; padding:12px 22px;border-radius:50px;text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.15); }
.hero-banner-nav{ position:absolute;top:50%;transform:translateY(-50%); width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.92); border:0;color:#0f172a;font-size:1.5rem;font-weight:700; display:flex;align-items:center;justify-content:center; cursor:pointer;z-index:5;box-shadow:0 4px 14px rgba(0,0,0,.18); }
.hero-banner-nav.prev{left:10px}
.hero-banner-nav.next{right:10px}
.hero-banner-dots{ position:absolute;bottom:12px;left:0;right:0; display:flex;justify-content:center;gap:7px;z-index:5; }
.hero-banner-dots span{ width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4); cursor:pointer;transition:all .25s; }
.hero-banner-dots span.active{ background:#fff;width:22px;border-radius:10px; }

/* Stats */
.stats-section{padding:28px 0}
.stats-bar{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;text-align:center}
.stat-num{font-size:1.5rem;font-weight:800;color:var(--primary,#0f766e)}
.stat-label{font-size:.78rem;color:var(--text-muted,#64748b)}

/* Categories */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cat-chip{
  display:flex;flex-direction:column;align-items:center;padding:18px 8px;
  border:1px solid var(--border,#e2e8f0);border-radius:14px;text-decoration:none;
  background:#fff;transition:.2s;
}
.cat-chip:hover{border-color:var(--primary,#0f766e);transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.cat-chip-icon{ margin-bottom:8px; color:#0f766e; display:flex;align-items:center;justify-content:center; }
.cat-chip-icon svg{ width:28px; height:28px; }
.cat-chip-name{font-size:.82rem;font-weight:600;text-align:center;color:var(--text,#0f172a)}
.shop-cat-grid{grid-template-columns:1fr}
.shop-chip{flex-direction:row;justify-content:flex-start;padding:16px;gap:14px}
.shop-chip-icon{ color:#0f766e; }

/* Steps */
.steps-grid{display:flex;flex-direction:column;gap:20px}
.step-item{display:flex;gap:14px;align-items:flex-start}
.step-num{
  width:42px;height:42px;background:var(--primary,#0f766e);color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:700;flex-shrink:0;font-size:1.1rem;
}
.step-content h3{font-size:1.05rem;margin-bottom:4px}
.step-content p{font-size:.85rem;color:var(--text-muted,#64748b);margin:0}

/* Vendor / Product Cards */
.vendor-card{
  background:#fff;border-radius:18px;overflow:hidden;
  border:1px solid var(--border,#e2e8f0);
  box-shadow:0 6px 20px rgba(0,0,0,.06);
  display:flex;flex-direction:column;height:100%;
  transition:transform .25s, box-shadow .25s;
}
.vendor-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(0,0,0,.12)}
.vendor-card-img{
  position:relative;height:150px;
  background:linear-gradient(135deg,#0f766e,#0d9488);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;overflow:hidden;
}
.vendor-card-img img{width:100%;height:100%;object-fit:cover}
.vendor-avatar{
  width:68px;height:68px;background:rgba(255,255,255,.2);color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.7rem;font-weight:700;
}
.vendor-badges{position:absolute;top:10px;left:10px;display:flex;flex-wrap:wrap;gap:5px;z-index:2}
.vendor-badge{font-size:.68rem;padding:4px 8px;border-radius:6px;font-weight:600;color:#fff;display:inline-flex;align-items:center;gap:3px}
.badge-featured{background:#f59e0b}
.badge-verified{background:#10b981}
.vendor-card-body{padding:16px;flex:1;display:flex;flex-direction:column}
.vendor-name a{font-weight:700;font-size:1.02rem;color:var(--text,#0f172a);text-decoration:none}
.vendor-cat{font-size:.82rem;color:var(--text-muted,#64748b);margin:4px 0}
.vendor-location{ font-size:.78rem;color:#475569;margin:5px 0 8px; display:flex;align-items:flex-start;gap:4px;line-height:1.35; }
.vendor-location svg{ width:14px; height:14px; flex-shrink:0; margin-top:2px; }
.vendor-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:12px}
.vendor-actions .btn{
  flex:1 1 auto;min-width:70px;text-align:center;font-size:.78rem;
  padding:9px 8px;min-height:40px;border-radius:10px;
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;
}
.vendor-actions .btn svg{ width:14px; height:14px; }

/* ========== SLIDER ========== */
.vendor-slider-wrapper{
  position:relative;
  overflow:hidden;
  margin:0 -8px;
  padding:10px 0 36px;
}
.vendor-slider{
  display:flex;
  transition:transform .5s cubic-bezier(0.25,0.8,0.25,1);
  will-change:transform;
}
.vendor-slide{
  flex:0 0 100%;
  max-width:100%;
  padding:0 8px;
  box-sizing:border-box;
}
.slider-btn{
  position:absolute;top:42%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;background:#fff;
  border:1px solid #e2e8f0;box-shadow:0 4px 14px rgba(0,0,0,.12);
  font-size:1.7rem;color:#0f172a;display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:10;transition:all .2s;
}
.slider-btn:hover{background:var(--primary,#0f766e);color:#fff;border-color:var(--primary,#0f766e)}
.slider-btn.prev{left:6px}
.slider-btn.next{right:6px}
.slider-dots{display:flex;justify-content:center;gap:6px;margin-top:16px}
.slider-dots span{ width:8px;height:8px;border-radius:50%;background:#cbd5e1;cursor:pointer;transition:all .25s; }
.slider-dots span.active{background:var(--primary,#0f766e);width:24px;border-radius:10px}
@media (min-width:576px){.vendor-slide{flex:0 0 50%;max-width:50%}}
@media (min-width:900px){.vendor-slide{flex:0 0 33.333%;max-width:33.333%}}
@media (min-width:1200px){.vendor-slide{flex:0 0 25%;max-width:25%}}

/* Scrap / Plans */
.scrap-cta{background:linear-gradient(135deg,#064e3b,#065f46);color:#fff;padding:50px 16px}
.scrap-icon{ margin-bottom:12px; display:flex;justify-content:center; }
.scrap-icon svg{ width:48px; height:48px; }
.scrap-cta h2{font-size:1.5rem;font-weight:800;margin-bottom:10px}
.scrap-cta p{opacity:.9;margin-bottom:22px;font-size:.95rem}
.scrap-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.scrap-join{color:#fff!important;border-color:#fff!important}
.grid-3{display:grid;grid-template-columns:1fr;gap:18px}
.card-featured{border:2px solid var(--primary,#0f766e)!important}
.popular-ribbon{background:var(--primary,#0f766e);color:#fff;text-align:center;padding:7px;font-size:.8rem;font-weight:700}
.plan-price{font-size:1.9rem;font-weight:800;color:var(--primary,#0f766e);margin:10px 0}
.plan-price span{font-size:.85rem;color:var(--text-muted,#64748b);font-weight:400}
.plan-feature{font-size:.85rem;padding:4px 0;color:var(--text-muted,#64748b);display:flex;align-items:center;gap:6px}
.plan-feature svg{ width:14px; height:14px; color:#0f766e; flex-shrink:0; }
.featured-group{margin-bottom:52px}
.featured-group:last-child{margin-bottom:0}

/* Empty state */
.empty-state{
  padding:40px 20px;text-align:center;background:#fff;border-radius:16px;
  border:1px dashed #cbd5e1;
}
.empty-state .icon{font-size:2.5rem;margin-bottom:10px}
.empty-state h3{font-size:1.1rem;margin-bottom:6px}
.empty-state p{color:#64748b;font-size:.9rem;margin-bottom:16px}

/* Mobile polish */
@media(max-width:640px){
  .search-section{padding:36px 0 22px}
  .search-title{font-size:1.55rem}
  .hero-actions{gap:10px}
  .hero-actions .btn{padding:12px 18px;font-size:.9rem}
  .search-box{padding:14px}
  .hero-banner-slide{min-height:190px;padding:24px 16px 34px}
  .hero-banner-title{font-size:1.25rem}
  .hero-banner-nav{width:36px;height:36px;font-size:1.3rem}
  .stats-section{padding:22px 0}
  .stat-num{font-size:1.35rem}
  .cat-chip{padding:16px 6px}
  .vendor-card-img{height:140px}
  .vendor-actions .btn{min-height:42px;font-size:.76rem}
}
@media(min-width:576px){
  .stats-bar{grid-template-columns:repeat(4,1fr)}
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .shop-cat-grid{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .filter-row{flex-direction:row;flex-wrap:wrap}
  .filter-row .form-control,.filter-row .form-select{flex:1;min-width:130px}
  .search-btn{width:auto;white-space:nowrap}
  .search-title{font-size:2rem}
}
@media(min-width:768px){
  .search-title{font-size:2.3rem}
  .cat-grid{grid-template-columns:repeat(4,1fr)}
  .steps-grid{flex-direction:row;justify-content:space-between}
  .step-item{flex:1;flex-direction:column;text-align:center;align-items:center}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .shop-cat-grid{grid-template-columns:repeat(3,1fr)}
}