/* ===== refixo.de – Custom Styles ===== */
:root {
  --rfx-primary: #0d6efd;
  --rfx-yellow: #ffc107;
  --rfx-radius: .75rem;
}

/* Logo */
.rfx-logo { font-size: 1.5rem; font-weight: 900; letter-spacing: -.5px; }
.rfx-logo-re   { color: #198754; }
.rfx-logo-fixo { color: #212529; }
.rfx-logo-de   { color: #6c757d; font-size: .85em; }
.rfx-logo-footer .rfx-logo-fixo { color: #fff; }

/* Header */
.rfx-header { z-index: 1030; }
.rfx-header-search { max-width: 420px; }

/* Hero */
.rfx-hero {
  background: linear-gradient(135deg, #0d6efd 0%, #0056b3 100%);
  padding: 5rem 0;
}
.rfx-hero .text-white-75 { color: rgba(255,255,255,.8); }

/* Autocomplete */
.rfx-autocomplete {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: var(--rfx-radius);
  z-index: 1050;
  max-height: 360px;
  overflow-y: auto;
  text-align: left;
}
.rfx-autocomplete-item {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .65rem 1rem;
  cursor: pointer;
  border-bottom: 1px solid #f1f3f5;
  text-decoration: none;
  color: #212529;
  font-size: .93rem;
}
.rfx-autocomplete-item:last-child { border-bottom: none; }
.rfx-autocomplete-item:hover { background: #f0f7ff; color: var(--rfx-primary); }
.rfx-autocomplete-item .rfx-ac-icon {
  font-size: 1.1rem;
  width: 1.25rem;
  flex-shrink: 0;
  padding-top: .15rem;
  color: #6c757d;
}
.rfx-autocomplete-item:hover .rfx-ac-icon { color: var(--rfx-primary); }
.rfx-autocomplete-item .rfx-ac-body { flex: 1; min-width: 0; }
.rfx-autocomplete-item .rfx-ac-name { display: block; font-weight: 600; line-height: 1.3; }
.rfx-autocomplete-item .rfx-ac-cat { display: block; font-size: .72rem; color: #6c757d; margin-top: .1rem; }
.rfx-autocomplete-item:hover .rfx-ac-cat { color: #5a9fd4; }

/* Hero Search */
.rfx-search-hero .input-group { border-radius: .75rem; }
.rfx-search-hero .form-control:focus { box-shadow: none; }
.rfx-search-hero .rfx-autocomplete { margin-top: 2px; }

/* Category Slider */
.rfx-cat-track-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  margin: 0 44px;
}
.rfx-cat-track-wrap::-webkit-scrollbar { display: none; }
.rfx-cat-track {
  display: flex;
  gap: 1rem;
}
.rfx-cat-item {
  flex: 0 0 calc((100% - 4rem) / 5);
  min-width: 0;
  scroll-snap-align: start;
}
.rfx-cat-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #dee2e6;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #212529;
  transition: background .2s, color .2s;
}
.rfx-cat-nav:hover { background: var(--rfx-primary); color: #fff; border-color: var(--rfx-primary); }
.rfx-cat-nav:disabled { opacity: .35; pointer-events: none; }
.rfx-cat-prev { left: 0; }
.rfx-cat-next { right: 0; }

@media (max-width: 991px) {
  .rfx-cat-item { flex: 0 0 calc((100% - 2rem) / 3); }
}
@media (max-width: 575px) {
  .rfx-cat-item { flex: 0 0 calc((100% - 1rem) / 2); }
  .rfx-cat-track-wrap { margin: 0 36px; }
}

/* Category Cards */
.rfx-category-card {
  border-radius: var(--rfx-radius) !important;
  transition: transform .2s, box-shadow .2s;
}
.rfx-category-card:hover { transform: translateY(-4px); box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.12) !important; }

/* Device Cards */
.rfx-device-card {
  border-radius: var(--rfx-radius) !important;
  transition: transform .15s;
}
.rfx-device-card:hover { transform: translateY(-3px); }
.rfx-device-img { max-height: 80px; object-fit: contain; }
.rfx-device-detail-img { max-height: 220px; object-fit: contain; }

/* Steps */
.rfx-step-icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

/* Service Checkbox */
.rfx-service-check { cursor: pointer; border-radius: .5rem; margin-bottom: .25rem; }
.rfx-service-check:has(.rfx-service-input:checked) { background: #f0f7ff; border-color: var(--rfx-primary) !important; }

/* Variant Badge */
.rfx-variant-badge input:checked + span {
  background-color: var(--rfx-primary) !important;
  color: white !important;
  border-color: var(--rfx-primary) !important;
}

/* Result Cards */
.rfx-result-card { border-radius: var(--rfx-radius) !important; }
.rfx-result-card.rfx-premium { border-left: 4px solid var(--rfx-yellow) !important; }
.rfx-total-price { font-size: 1.4rem; color: var(--rfx-primary); }

/* Shop Logo */
.rfx-shop-logo { width: 52px; height: 52px; object-fit: contain; border-radius: .5rem; }
.rfx-shop-logo-placeholder {
  width: 52px; height: 52px;
  border-radius: .5rem;
  font-size: 1.5rem;
}

/* Dashboard Sidebar */
.rfx-sidebar { border-radius: var(--rfx-radius) !important; overflow: hidden; }
.rfx-sidebar .nav-link { border-radius: .5rem; margin-bottom: .1rem; padding: .5rem .75rem; }
.rfx-sidebar .nav-link.active { background: #e7f1ff; color: var(--rfx-primary) !important; }
.rfx-sidebar .nav-link:hover:not(.active) { background: #f8f9fa; }

/* Credit Packages */
.rfx-credit-pkg { border-radius: var(--rfx-radius) !important; transition: border-color .2s; }
.rfx-credit-pkg:hover { border-color: var(--rfx-primary) !important; }

/* Sticky Summary */
.rfx-sticky-summary { position: sticky; top: 90px; border-radius: var(--rfx-radius) !important; }

/* Footer */
.rfx-footer { border-top: 3px solid #0d6efd; }
.rfx-footer-link:hover { color: #fff !important; }

/* Suppress native search decorations */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { display: none; }

/* Misc */
.shadow-sm { box-shadow: 0 .1rem .5rem rgba(0,0,0,.07) !important; }

@media (max-width: 576px) {
  .rfx-hero { padding: 3rem 0; }
  .rfx-hero h1 { font-size: 1.8rem; }
}
