﻿/**
 * novo-equipment-archive.css
 *
 * Equipment Archive widget styles: filter bar, brand tabs, product cards,
 * modality thumbnails, availability dots, pagination, loading overlay.
 *
 * Loaded only on pages containing the equipment archive Elementor widget,
 * via Widget_Novo_Equipment_Archive::get_style_depends().
 *
 * Source extracted from: novo-singles.css
 * Do NOT add these rules back to novo-singles.css.
 *
 * @package novo
 */
/* ── Equipment Archive ────────────────────────────────────────── */
.novo-equipment-archive {}

/* Wider container on desktop only */
@media (min-width: 1100px) {
	.novo-equipment-archive .container {
		max-width: 1500px;
		padding-left: 32px;
		padding-right: 32px;
	}
}
.filter-bar {
	background: #fff;
	border-bottom: 1px solid var(--novo-border);
	box-shadow: 0 2px 10px rgba(11,57,84,.05);
	position: sticky;
	top: 0;
	z-index: 100;
}
.filter-inner {
	display: flex;
	align-items: center;
	gap: 0;
	overflow-x: auto;
	scrollbar-width: none;
	min-height: 58px;
}
.filter-inner::-webkit-scrollbar { display: none; }
.cat-tabs {
	display: flex;
	align-items: center;
	border-right: 1px solid var(--novo-border);
	flex-shrink: 0;
}
.cat-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 18px 16px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--novo-grey-tx);
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	cursor: pointer;
	transition: color .2s, border-color .2s;
}
.cat-tab:hover { color: var(--novo-navy); }
.cat-tab.active { color: var(--novo-orange); border-bottom-color: var(--novo-orange); }
.cat-tab-count {
	font-size: 11px;
	font-weight: 600;
	color: var(--novo-grey-tx);
	background: var(--novo-grey-bg);
	border-radius: 999px;
	padding: 2px 7px;
	min-width: 20px;
	text-align: center;
}
.cat-tab.active .cat-tab-count { background: rgba(245,109,13,.12); color: var(--novo-orange); }

/* ── Brand tabs (top-bar button filters) ────────────────────── */
.brand-tabs {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 10px 16px;
	border-right: 1px solid var(--novo-border);
	flex-shrink: 0;
	overflow-x: auto;
	scrollbar-width: none;
}
.brand-tabs::-webkit-scrollbar { display: none; }
.brand-tab {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 500;
	color: var(--novo-grey-tx);
	background: #fff;
	border: 1.5px solid var(--novo-border, #EEF2F6);
	border-radius: 999px;
	white-space: nowrap;
	cursor: pointer;
	flex-shrink: 0;
	transition: color .15s, border-color .15s, background .15s;
}
.brand-tab:hover { border-color: var(--novo-navy); color: var(--novo-navy); }
.brand-tab.active {
	background: var(--novo-orange, #F56D0D);
	border-color: var(--novo-orange, #F56D0D);
	color: #fff;
}
.brand-tab-count {
	font-size: 11px;
	font-weight: 600;
	background: rgba(0,0,0,.07);
	border-radius: 999px;
	padding: 1px 6px;
	min-width: 18px;
	text-align: center;
}
.brand-tab.active .brand-tab-count { background: rgba(255,255,255,.22); }
.filter-controls { display: flex; align-items: center; gap: 8px; padding: 0 16px; flex-shrink: 0; }
.filter-select {
	padding: 7px 32px 7px 12px;
	border: 1.5px solid var(--novo-border);
	border-radius: 8px;
	font-size: 13px;
	color: var(--novo-navy);
	background: #fff url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%230B3954' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;
	appearance: none;
	cursor: pointer;
	outline: none;
	transition: border-color .2s;
}
.filter-select:focus { border-color: var(--novo-orange); }
.filter-count { margin-left: auto; font-size: 12.5px; color: var(--novo-grey-tx); padding: 0 16px; flex-shrink: 0; white-space: nowrap; }
.active-filters { background: var(--novo-grey-bg); padding: 8px 0; }
.active-filters .container { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.af-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 12px;
	background: rgba(245,109,13,.10);
	border: 1px solid rgba(245,109,13,.25);
	border-radius: 999px;
	font-size: 12px;
	color: var(--novo-orange);
}
.af-chip button { background: none; border: none; cursor: pointer; color: inherit; padding: 0; font-size: 11px; }
.af-clear { background: none; border: none; font-size: 12.5px; color: var(--novo-grey-tx); cursor: pointer; text-decoration: underline; margin-left: auto; }
.catalogue-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 32px;
	padding: 32px 0 60px;
}
.sidebar { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 16px; }
.sidebar-card {
	background: #fff;
	border-radius: 16px;
	border: 1px solid var(--novo-border);
	overflow: hidden;
}
.sidebar-head {
	padding: 12px 16px;
	font-size: 11.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--novo-grey-tx);
	border-bottom: 1px solid var(--novo-border);
}
.sidebar-body { padding: 10px 0; }
.check-list { list-style: none; margin: 0; padding: 0; }
.check-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 16px;
	cursor: pointer;
	transition: background .15s;
}
.check-item:hover { background: var(--novo-grey-bg); }
.check-left { display: flex; align-items: center; }
.check-box {
	width: 16px; height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--novo-border);
	border-radius: 4px;
	flex-shrink: 0;
	background: #fff;
	transition: background .2s, border-color .2s;
	position: relative;
}
.check-box.checked {
	background: var(--novo-orange);
	border-color: var(--novo-orange);
}
.check-box.checked::after {
	content: '';
	position: absolute;
	inset: 3px 3px 4px;
	border-bottom: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg) translate(-1px,-2px);
}
.check-label { flex: 1; font-size: 13px; color: var(--novo-navy); display: flex; align-items: center; }
.check-label > i { color: var(--novo-orange); font-size: 11px; margin-right: 5px; flex-shrink: 0; }
.check-count {
	font-size: 11px;
	color: var(--novo-grey-tx);
	background: var(--novo-grey-bg);
	padding: 2px 7px;
	border-radius: 999px;
}
.check-item.active .check-label { color: var(--novo-orange); font-weight: 600; }
.check-item.active .check-count { background: rgba(245,109,13,.10); color: var(--novo-orange); }

/* Availability coloured dots */
.avail-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	display: inline-block;
	margin-right: 6px;
	flex-shrink: 0;
}
.avail-in-stock  { background: #1fa463; }
.avail-pending,
.avail-incoming  { background: #F56D0D; }
.avail-reserved  { background: #6480a0; }
.avail-sold      { background: #7A90A0; }

.catalogue-main {}
.novo-equipment-archive .product-grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 24px;
}
.product-card {
	background: #fff;
	border-radius: 20px;
	border: 1px solid var(--novo-border);
	overflow: hidden;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
.product-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(11,57,84,.10);
	border-color: var(--novo-orange);
}
.pc-thumb-link { display: block; text-decoration: none; }
.pc-thumb-wrap { position: relative; }
.pc-wishlist {
	position: absolute;
	top: 8px; right: 8px;
	z-index: 2;
	width: 32px; height: 32px;
	border-radius: 50%;
	border: none;
	background: rgba(255,255,255,.88);
	backdrop-filter: blur(4px);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--novo-navy);
	font-size: 14px;
	transition: background .2s, color .2s;
}
.pc-wishlist:hover,
.pc-wishlist[aria-pressed="true"] { background: var(--novo-orange); color: #fff; }
.pc-thumb {
	position: relative;
	aspect-ratio: 16/9;
	background: var(--novo-grey-bg);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pc-thumb--ct    { background: linear-gradient(135deg, #1a2f4a 0%, #0B3954 100%); }
.pc-thumb--mri   { background: linear-gradient(135deg, #1a3348 0%, #103a56 100%); }
.pc-thumb--xray  { background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); }
.pc-thumb--carm  { background: linear-gradient(135deg, #243050 0%, #162244 100%); }
.pc-thumb--cath  { background: linear-gradient(135deg, #1c2840 0%, #0e1c34 100%); }
.pc-thumb--us    { background: linear-gradient(135deg, #1e3456 0%, #0B3954 100%); }
.pc-thumb--mammo { background: linear-gradient(135deg, #302040 0%, #201432 100%); }
/* Full taxonomy-slug aliases so the renderer's raw slug always matches */
.pc-thumb--cath-lab   { background: linear-gradient(135deg, #1c2840 0%, #0e1c34 100%); }
.pc-thumb--c-arm      { background: linear-gradient(135deg, #243050 0%, #162244 100%); }
.pc-thumb--ultrasound { background: linear-gradient(135deg, #1e3456 0%, #0B3954 100%); }
.pc-thumb--x-ray      { background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); }
.pc-thumb--mobile-xr  { background: linear-gradient(135deg, #1a2a3a 0%, #0d1e2e 100%); }
.pc-thumb--pet-ct     { background: linear-gradient(135deg, #2a1a3a 0%, #1a0d2e 100%); }
.pc-avail {
	position: absolute;
	top: 10px; left: 10px;
	font-size: 11px;
	font-weight: 600;
	padding: 3px 10px;
	border-radius: 999px;
}
.pc-avail.in-stock  { background: rgba(40,180,100,.85);  color: #fff; }
.pc-avail.incoming,
.pc-avail.pending  { background: rgba(240,180,0,.85);   color: #fff; }
.pc-avail.reserved { background: rgba(100,120,160,.85); color: #fff; }
.pc-avail.sold     { background: rgba(220,60,60,.80);   color: #fff; }
.pc-new-badge {
	position: absolute;
	top: 10px; right: 10px;
	background: var(--novo-orange);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 999px;
}
.pc-body { padding: 14px 16px 8px; }
.pc-brand-row { margin-bottom: 4px; }
.pc-brand { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--novo-orange); }
.pc-name { font-size: 15px; font-weight: 700; color: var(--novo-navy); margin: 0 0 4px; line-height: 1.3; }
.pc-name a { text-decoration: none; color: inherit; }
.pc-year { font-size: 12.5px; color: var(--novo-grey-tx); margin: 0; }
.pc-year-label { font-weight: 600; opacity: .7; margin-right: 2px; }
.pc-foot {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px 14px;
}
.pc-rq-price {
	flex: 1;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--novo-navy);
	border: 1.5px solid var(--novo-border);
	padding: 8px 12px;
	border-radius: 999px;
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
	transition: background .2s, color .2s, border-color .2s;
}
.pc-rq-price:hover { background: var(--novo-orange); color: #fff; border-color: var(--novo-orange); }
.pc-foot .pc-btn.btn {
	flex: 1;
	text-align: center;
	justify-content: center;
	font-size: 13px !important;
	padding: 8px 12px !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	line-height: 1;
}

.no-results {
	text-align: center;
	padding: 60px 20px;
	color: var(--novo-grey-tx);
}
.no-results i { font-size: 48px; opacity: .3; margin-bottom: 16px; display: block; }
.no-results h3 { color: var(--novo-navy); margin-bottom: 6px; }
.load-more-wrap { text-align: center; margin-top: 32px; }

/* FAQ styles live in novo-widgets.css — single source of truth */


@media (max-width: 680px) {
  .novo-equipment-archive .product-grid { grid-template-columns: 1fr; }
}

/* ── Mobile responsive: equipment archive ─────────────────── */

/* Filters toggle button — hidden on desktop */
.mob-filter-toggle {
  display: none;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: var(--novo-navy);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  flex-shrink: 0;
  white-space: nowrap;
}
.mob-filter-toggle i { font-size: 11px; }

/* Header/close/apply buttons — hidden on desktop */
.mob-filter-header { display: none; }
.mob-filter-apply-wrap { display: none; }
.mob-filter-backdrop { display: none; }

/* ── Tablet (≤1024px) ─────────────────────────────── */
@media (max-width: 1024px) {
  .catalogue-layout {
    grid-template-columns: 200px 1fr;
    gap: 20px;
  }
}

/* ── Stacked layout (≤768px) ─────────────────────── */
@media (max-width: 768px) {
  .catalogue-layout {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 16px 0 40px;
  }

  /* Sidebar: hidden by default, toggled open */
  .sidebar {
    display: none;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding: 16px 0;
  }
  .sidebar.mob-open {
    display: grid;
  }

  /* Filter bar adjustments */
  .filter-inner {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 0;
    scrollbar-width: none;
    gap: 0;
  }
  .filter-inner::-webkit-scrollbar { display: none; }

  .brand-tabs {
    border-right: none;
    overflow-x: auto;
    flex: 1 1 auto;
    padding: 8px 12px;
    scrollbar-width: none;
  }
  .brand-tabs::-webkit-scrollbar { display: none; }

  .filter-controls { display: none; }
  .filter-count { display: none; }

  .mob-filter-toggle { display: inline-flex; margin: 0 12px 0 4px; }

  /* Mobile filter row between filter-bar and products */
  .mob-filter-row {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--novo-border);
    margin-bottom: 16px;
  }
  .mob-filter-count {
    font-size: 13px;
    color: var(--novo-grey-tx);
  }

  /* Cards: single column, clean layout */
  .novo-equipment-archive .product-grid { grid-template-columns: 1fr; gap: 16px; }

  .pc-foot {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
  .pc-rq-price { flex: 1; text-align: center; }
  .pc-btn.btn  { flex: 1; text-align: center; }
}

/* ── Small phones (≤480px) ───────────────────────── */
@media (max-width: 480px) {
  .sidebar { grid-template-columns: 1fr; }
  .pc-thumb { aspect-ratio: 4/3; }
}
/* ── Equipment Archive: loading overlay ─────────────────────── */
.novo-equipment-archive .product-grid { position: relative; }
.novo-equipment-archive .product-grid.is-loading::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.70);
	z-index: 10;
	border-radius: inherit;
}

/* ── Equipment Archive: pagination bar ──────────────────────── */
.eq-pagination {
	display: flex;
	align-items: center;
	gap: 4px;
	justify-content: center;
	margin-top: 2rem;
	flex-wrap: wrap;
}
.eq-pag-num,
.eq-pag-prev,
.eq-pag-next {
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 10px;
	border: 1px solid var(--novo-border, #EEF2F6);
	border-radius: 8px;
	background: #fff;
	color: var(--novo-navy, #0B3954);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background .15s, border-color .15s;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.eq-pag-num:hover:not(:disabled),
.eq-pag-prev:hover:not(:disabled),
.eq-pag-next:hover:not(:disabled) {
	border-color: var(--novo-orange, #F56D0D);
	color: var(--novo-orange, #F56D0D);
}
.eq-pag-num.active,
.eq-pag-num[aria-current="page"] {
	background: var(--novo-orange, #F56D0D);
	border-color: var(--novo-orange, #F56D0D);
	color: #fff;
	font-weight: 700;
	cursor: default;
}
.eq-pag-prev:disabled,
.eq-pag-next:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}
.eq-pag-ellipsis {
	display: inline-flex;
	align-items: center;
	min-width: 1.5rem;
	justify-content: center;
	color: var(--novo-grey-tx, #7A90A0);
	pointer-events: none;
	user-select: none;
}
