/*
 * Theme Name: Toplifter Child
 * Theme URI: https://toplifter.si
 * Description: Toplifter child tema za Astra — katalog brez košarice (samo prikaz + povpraševanje). Industrial B2B design.
 * Author: Toplifter d.o.o.
 * Author URI: https://toplifter.si
 * Template: astra
 * Version: 1.0.0
 * Text Domain: toplifter-child
 * License: Proprietary
 */

/* ===================================================================
   DESIGN TOKENS  — industrial + modern clean B2B
   =================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  /* Brand */
  --red:          #E03830;
  --red-hover:    #C92E27;
  --red-tint:     #FFF1F0;

  /* Industrial neutrals */
  --ink:          #0F1115;
  --ink-2:        #1A1D24;
  --ink-3:        #2A2E37;
  --steel:        #5A6170;
  --steel-2:      #8B919E;
  --line:         #E5E3DE;
  --line-2:       #D7D4CC;

  /* Surfaces */
  --paper:        #F6F4F0;
  --paper-2:      #EFEDE7;
  --white:        #FFFFFF;

  /* Accent */
  --signal:       #F2C200;

  /* Typography */
  --display:      'Archivo', 'Helvetica Neue', system-ui, sans-serif;
  --body:         'Manrope', 'Helvetica Neue', system-ui, sans-serif;
  --mono:         'JetBrains Mono', ui-monospace, monospace;

  /* Layout */
  --container:    1320px;
  --gutter:       clamp(20px, 4vw, 48px);
  --radius:       4px;
  --radius-lg:    8px;

  /* Header height (used by sticky filters) */
  --header-h:     80px;
}

/* ===================================================================
   RESET / BASE
   =================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
  font-family: var(--body);
  color: var(--ink);
  background: var(--white);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; border: none; background: none; }
p { margin: 0 0 1em; }

/* ===================================================================
   TYPOGRAPHY
   =================================================================== */
.display, h1, h2, h3 {
  font-family: var(--display);
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.02;
  margin: 0;
}
h1 { font-size: clamp(40px, 6.5vw, 88px); font-weight: 900; letter-spacing: -0.025em; }
h2 { font-size: clamp(32px, 4vw, 56px); }
h3 { font-size: clamp(22px, 2vw, 28px); font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; }

.eyebrow {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--steel);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.eyebrow::before {
  content: '';
  width: 22px; height: 1px;
  background: var(--red);
}
.eyebrow.center::before { display: none; }
.mono { font-family: var(--mono); }

/* ===================================================================
   ASTRA OVERRIDES — remove all default chrome we replace
   =================================================================== */
#masthead,
.ast-header-break-point,
.site-footer,
.ast-above-header,
.ast-below-header,
.ast-breadcrumbs-wrapper,
.woocommerce-breadcrumb,
.ast-woo-shop-pagination { display: none !important; }

/* Remove WC default notices we don't want */
.woocommerce-message,
.woocommerce-info { display: none !important; }

/* Clean body/page wrapper margins */
#page, .ast-container, #content { max-width: none !important; padding: 0 !important; margin: 0 !important; }
#primary { max-width: none; padding: 0; }
.entry-content { margin: 0; padding: 0; }
.ast-page-builder-template #content .ast-container { padding: 0 !important; }

/* ===================================================================
   LAYOUT UTILITIES
   =================================================================== */
.tl-container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.tl-container--wide { max-width: 1480px; margin: 0 auto; padding: 0 var(--gutter); }

.tl-section { padding: clamp(64px, 9vw, 120px) 0; }
.tl-section--tight { padding: clamp(48px, 6vw, 80px) 0; }
.tl-section--ink { background: var(--ink); color: var(--white); }
.tl-section--paper { background: var(--paper); }

.tl-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 32px;
  margin-bottom: 56px;
}
.tl-section-head h2 { max-width: 720px; }
.tl-section-head .lead { color: var(--steel); max-width: 440px; font-size: 16px; margin: 12px 0 0; }

/* Grids */
.tl-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.tl-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tl-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

@media (max-width: 900px) {
  .tl-grid-3, .tl-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .tl-grid-2, .tl-grid-3, .tl-grid-4 { grid-template-columns: 1fr; }
}

/* ===================================================================
   BUTTONS
   =================================================================== */
.tl-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 20px;
  font-family: var(--body);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: 1px solid transparent;
  border-radius: var(--radius);
  white-space: nowrap;
  transition: all .15s;
  cursor: pointer;
}
.tl-btn--primary { background: var(--red); color: var(--white); }
.tl-btn--primary:hover { background: var(--red-hover); color: var(--white); }
.tl-btn--ink { background: var(--ink); color: var(--white); }
.tl-btn--ink:hover { background: var(--ink-3); color: var(--white); }
.tl-btn--ghost { background: transparent; color: var(--ink); border-color: var(--line-2); }
.tl-btn--ghost:hover { border-color: var(--ink); }
.tl-btn--light { background: var(--white); color: var(--ink); }
.tl-btn--light:hover { background: var(--paper); }
.tl-btn--lg { height: 52px; padding: 0 28px; font-size: 14.5px; }
.tl-btn--sm { height: 36px; padding: 0 14px; font-size: 12.5px; }
.tl-btn .arrow { width: 16px; height: 16px; transition: transform .2s; }
.tl-btn:hover .arrow { transform: translateX(3px); }

/* ===================================================================
   BADGE
   =================================================================== */
.tl-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 10px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: var(--ink);
  color: var(--white);
  border-radius: 2px;
}
.tl-badge--red { background: var(--red); }
.tl-badge--outline { background: transparent; color: var(--ink); border: 1px solid var(--line-2); }
.tl-badge--paper { background: var(--paper); color: var(--ink); }

/* ===================================================================
   UTILITY BAR (top dark bar)
   =================================================================== */
.tl-utility {
  background: var(--ink);
  color: #C9CDD6;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 8px 0;
}
.tl-utility .tl-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.tl-utility-links { display: flex; gap: 20px; align-items: center; }
.tl-utility-links a { display: inline-flex; align-items: center; gap: 6px; transition: color .15s; }
.tl-utility-links a:hover { color: var(--white); }
.tl-utility-right { display: flex; gap: 20px; align-items: center; color: var(--steel-2); }
.tl-utility-right strong { color: var(--white); font-weight: 600; }

@media (max-width: 720px) {
  .tl-utility-links { display: none; }
  .tl-utility-right { font-size: 11px; }
}

/* ===================================================================
   SITE HEADER
   =================================================================== */
.tl-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 var(--line);
}
.tl-header-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  height: var(--header-h);
}
.tl-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  text-decoration: none;
}
.tl-brand-logo { height: 28px; width: auto; }

.tl-main-nav {
  display: flex;
  gap: 4px;
  margin-left: auto;
  list-style: none;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}
.tl-main-nav li { margin: 0; }
.tl-main-nav a {
  font-weight: 600;
  font-size: 14.5px;
  padding: 10px 14px;
  border-radius: var(--radius);
  color: var(--ink);
  position: relative;
  transition: background .15s;
  display: block;
}
.tl-main-nav a:hover { background: var(--paper); }
.tl-main-nav a.current,
.tl-main-nav a[aria-current="page"] { color: var(--red); }
.tl-main-nav a.current::after,
.tl-main-nav a[aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 14px; right: 14px;
  bottom: 4px;
  height: 2px;
  background: var(--red);
}

.tl-header-cta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Hamburger */
.tl-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  transition: background .15s;
  margin-left: auto;
}
.tl-hamburger:hover { background: var(--paper); }
.tl-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: all .2s;
}
.tl-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tl-hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.tl-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile nav drawer */
.tl-mobile-nav {
  display: none;
  position: fixed;
  inset: 0;
  top: calc(var(--header-h) + 0px);
  background: var(--white);
  z-index: 99;
  padding: 24px var(--gutter) 48px;
  overflow-y: auto;
  border-top: 1px solid var(--line);
  transform: translateX(100%);
  transition: transform .25s ease;
}
.tl-mobile-nav.is-open {
  display: block;
  transform: translateX(0);
}
.tl-mobile-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.tl-mobile-nav ul li { border-bottom: 1px solid var(--line); }
.tl-mobile-nav ul a {
  display: block;
  padding: 16px 0;
  font-size: 18px;
  font-weight: 700;
  font-family: var(--display);
  color: var(--ink);
}
.tl-mobile-nav ul a:hover { color: var(--red); }
.tl-mobile-nav .tl-mobile-cta {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (max-width: 768px) {
  .tl-main-nav,
  .tl-header-cta { display: none; }
  .tl-hamburger { display: flex; }
  :root { --header-h: 64px; }
}

/* ===================================================================
   BREADCRUMBS
   =================================================================== */
.tl-crumbs {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--steel);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 0;
  flex-wrap: wrap;
}
.tl-crumbs a:hover { color: var(--ink); }
.tl-crumbs .sep { color: var(--line-2); }
.tl-crumbs .current { color: var(--ink); }

/* ===================================================================
   FOOTER
   =================================================================== */
.tl-footer {
  background: var(--ink);
  color: #C9CDD6;
  padding: 80px 0 24px;
  font-size: 14.5px;
}
.tl-footer-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.4fr;
  gap: 48px;
  padding-bottom: 56px;
  border-bottom: 1px solid #23262E;
}
.tl-footer-top h4 {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--steel-2);
  margin: 0 0 18px;
}
.tl-footer-top ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tl-footer-top a { color: #C9CDD6; transition: color .15s; }
.tl-footer-top a:hover { color: var(--white); }
.tl-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 24px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--steel);
  flex-wrap: wrap;
  gap: 12px;
}
.tl-footer-bottom a { color: var(--steel); transition: color .15s; }
.tl-footer-bottom a:hover { color: var(--white); }
.tl-footer-bottom-links { display: flex; gap: 24px; flex-wrap: wrap; }

.tl-footer-brand-block .tl-brand-logo { height: 32px; filter: brightness(0) invert(1); }
.tl-footer-brand-block p { color: var(--steel-2); margin-top: 16px; max-width: 320px; line-height: 1.6; }
.tl-footer-socials { display: flex; gap: 8px; margin-top: 20px; }
.tl-footer-socials a {
  width: 36px; height: 36px;
  border: 1px solid #2A2E37;
  border-radius: var(--radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--steel-2);
  transition: border-color .15s, color .15s;
}
.tl-footer-socials a:hover { border-color: var(--red); color: var(--white); }

/* Newsletter form */
.tl-footer-newsletter form {
  display: flex;
  margin-top: 8px;
  border: 1px solid #2A2E37;
  border-radius: var(--radius);
  overflow: hidden;
}
.tl-footer-newsletter input {
  flex: 1;
  background: transparent;
  border: 0;
  padding: 12px 14px;
  color: var(--white);
  font: inherit;
  font-size: 13px;
  outline: none;
}
.tl-footer-newsletter input::placeholder { color: var(--steel); }
.tl-footer-newsletter button {
  background: var(--red);
  color: var(--white);
  border: 0;
  padding: 0 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.tl-footer-newsletter button:hover { background: var(--red-hover); }

/* Bonitetna ocena blok */
.tl-bonitet {
  margin-top: 24px;
  padding: 14px;
  border: 1px solid #2A2E37;
  border-radius: var(--radius);
  display: flex;
  gap: 12px;
  align-items: center;
}
.tl-bonitet-grade {
  width: 42px; height: 42px;
  background: #0B6E27;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  font-family: var(--mono);
  font-weight: 600;
  font-size: 11px;
  color: #fff;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.tl-bonitet-lbl { font-size: 12px; color: var(--steel-2); font-family: var(--mono); letter-spacing: 0.06em; text-transform: uppercase; }
.tl-bonitet-val { font-weight: 700; color: var(--white); }

@media (max-width: 1024px) {
  .tl-footer-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .tl-footer-top { grid-template-columns: 1fr; gap: 32px; }
  .tl-footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ===================================================================
   TRUST STRIP
   =================================================================== */
.tl-trust-strip {
  background: var(--ink);
  color: var(--white);
  padding: 22px 0;
  border-top: 1px solid #23262E;
}
.tl-trust-inner {
  display: flex;
  align-items: center;
  gap: 40px;
  flex-wrap: wrap;
  justify-content: space-between;
}
.tl-trust-item { display: flex; align-items: center; gap: 12px; font-size: 13.5px; }
.tl-trust-item .icon {
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(224,56,48,0.12);
  color: var(--red);
  border-radius: var(--radius);
  flex-shrink: 0;
}
.tl-trust-item strong { display: block; font-weight: 700; }
.tl-trust-item .label { color: var(--steel-2); font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; }

/* ===================================================================
   FLOATING INQUIRY CTA
   =================================================================== */
.tl-float-cta {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 200;
  background: var(--red);
  color: var(--white);
  height: 52px;
  padding: 0 22px;
  border-radius: 26px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  box-shadow: 0 12px 30px rgba(224,56,48,0.35), 0 2px 6px rgba(0,0,0,0.1);
  transition: transform .15s, background .15s;
  text-decoration: none;
}
.tl-float-cta:hover { background: var(--red-hover); color: var(--white); transform: translateY(-2px); }
@media (max-width: 480px) {
  .tl-float-cta span { display: none; }
  .tl-float-cta { padding: 0; width: 52px; justify-content: center; border-radius: 50%; }
}

/* ===================================================================
   PAGE HERO (subpages)
   =================================================================== */
.tl-page-hero {
  background: var(--ink);
  color: var(--white);
  padding: 80px 0 96px;
  position: relative;
  overflow: hidden;
}
.tl-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, transparent 0 28px, rgba(255,255,255,0.02) 28px 29px);
  pointer-events: none;
}
.tl-page-hero h1 { font-size: clamp(40px, 5.5vw, 76px); }
.tl-page-hero .lead { color: var(--steel-2); max-width: 600px; margin-top: 20px; font-size: 17px; }
.tl-page-hero .tl-crumbs { color: var(--steel-2); padding: 0 0 28px; }
.tl-page-hero .tl-crumbs a:hover { color: var(--white); }
.tl-page-hero .tl-crumbs .sep { color: var(--ink-3); }
.tl-page-hero .tl-crumbs .current { color: var(--white); }
.tl-page-hero-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: end;
}
.tl-page-hero-stats { display: flex; flex-direction: column; gap: 18px; }
.tl-page-hero-stats .stat { padding: 16px 20px; border-left: 2px solid var(--red); }
.tl-page-hero-stats .num { font-family: var(--display); font-weight: 800; font-size: 32px; line-height: 1; }
.tl-page-hero-stats .lbl { color: var(--steel-2); font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; margin-top: 6px; }
@media (max-width: 768px) {
  .tl-page-hero-grid { grid-template-columns: 1fr; }
  .tl-page-hero-stats { display: none; }
}

/* ===================================================================
   CATEGORY PILLS (sticky filter bar)
   =================================================================== */
.tl-cat-bar {
  background: var(--white);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: var(--header-h);
  z-index: 50;
}
.tl-cat-pills {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 16px 0;
  scrollbar-width: none;
}
.tl-cat-pills::-webkit-scrollbar { display: none; }
.tl-pill {
  background: var(--white);
  border: 1px solid var(--line);
  padding: 9px 16px;
  border-radius: 99px;
  font-weight: 600;
  font-size: 13.5px;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  transition: all .15s;
  cursor: pointer;
}
.tl-pill:hover { border-color: var(--ink); }
.tl-pill.is-active,
.tl-pill[aria-pressed="true"] { background: var(--ink); color: var(--white); border-color: var(--ink); }
.tl-pill--red { border-color: var(--red); color: var(--red); }
.tl-pill--red.is-active { background: var(--red); border-color: var(--red); color: var(--white); }
.tl-pill .count {
  font-family: var(--mono);
  font-size: 11px;
  opacity: .65;
}

/* ===================================================================
   CATALOG LAYOUT (sidebar + results)
   =================================================================== */
.tl-catalog-grid {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 40px;
  align-items: start;
}

/* Sidebar */
.tl-filter-sidebar {
  position: sticky;
  top: calc(var(--header-h) + 57px);
  max-height: calc(100vh - var(--header-h) - 80px);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tl-filter-group {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.tl-filter-group:last-child { border-bottom: 0; }
.tl-filter-label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--steel);
  margin-bottom: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tl-filter-label button {
  font-size: 11px;
  color: var(--red);
  font-family: var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: underline;
}

/* Search input */
.tl-search-input {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  padding: 0 12px;
  transition: border-color .15s;
}
.tl-search-input:focus-within { border-color: var(--ink); }
.tl-search-input svg { flex-shrink: 0; color: var(--steel); }
.tl-search-input input {
  border: 0;
  padding: 11px 0;
  width: 100%;
  font: inherit;
  font-size: 14px;
  color: var(--ink);
  background: transparent;
  outline: none;
}
.tl-search-input input::placeholder { color: var(--steel-2); }

/* Checkboxes */
.tl-check {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  cursor: pointer;
  font-size: 14px;
  user-select: none;
  line-height: 1.3;
}
.tl-check input { display: none; }
.tl-check-box {
  width: 18px; height: 18px;
  border: 2px solid var(--line-2);
  border-radius: 3px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .15s, background .15s;
}
.tl-check.is-checked .tl-check-box,
.tl-check input:checked ~ .tl-check-box {
  background: var(--ink);
  border-color: var(--ink);
}
.tl-check-box::after {
  content: '';
  width: 5px; height: 9px;
  border: 2px solid transparent;
  border-top: none;
  border-left: none;
  transform: rotate(45deg) translateY(-1px);
  display: none;
}
.tl-check.is-checked .tl-check-box::after { border-color: white; display: block; }
.tl-check span { flex: 1; }
.tl-check em { font-style: normal; font-family: var(--mono); font-size: 11px; color: var(--steel-2); margin-left: auto; }

/* Help card in sidebar */
.tl-help-card {
  background: var(--paper);
  border-radius: var(--radius-lg);
  padding: 24px 20px;
  margin-top: 24px;
}
.tl-help-card .icon {
  width: 44px; height: 44px;
  background: var(--white);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--red);
  margin-bottom: 14px;
}
.tl-help-card h4 { font-size: 15px; margin-bottom: 8px; font-family: var(--display); }
.tl-help-card p { font-size: 13px; color: var(--steel); margin-bottom: 14px; }
.tl-help-card .phone-link { display: block; margin-top: 10px; font-family: var(--mono); font-size: 13px; color: var(--ink); font-weight: 600; }
.tl-help-card .phone-link:hover { color: var(--red); }

/* Toolbar (sort/view) */
.tl-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.tl-toolbar-left {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--steel);
  display: flex;
  align-items: center;
  gap: 8px;
}
.tl-toolbar-left strong { color: var(--ink); font-size: 15px; }
.tl-toolbar-left .sep { color: var(--line-2); }
.tl-toolbar-right { display: flex; align-items: center; gap: 12px; }
.tl-sort {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--steel);
}
.tl-sort select {
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  padding: 7px 10px;
  font: inherit;
  font-size: 13px;
  color: var(--ink);
  background: var(--white);
  outline: none;
  cursor: pointer;
}
.tl-view-toggle { display: flex; gap: 4px; }
.tl-view-btn {
  width: 34px; height: 34px;
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--steel);
  border: 1px solid var(--line-2);
  transition: all .15s;
}
.tl-view-btn.is-active,
.tl-view-btn:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* Product grid */
.tl-prod-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.tl-prod-grid.is-list {
  grid-template-columns: 1fr;
}

@media (max-width: 1200px) {
  .tl-catalog-grid { grid-template-columns: 240px 1fr; gap: 28px; }
  .tl-prod-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .tl-catalog-grid { grid-template-columns: 1fr; }
  .tl-filter-sidebar {
    position: static;
    max-height: none;
    display: none;
  }
  .tl-filter-sidebar.is-open { display: flex; }
  .tl-prod-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .tl-prod-grid { grid-template-columns: 1fr; }
}

/* Mobile filter toggle */
.tl-filter-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 16px;
  transition: border-color .15s;
}
.tl-filter-toggle:hover { border-color: var(--ink); }
@media (max-width: 900px) { .tl-filter-toggle { display: flex; } }

/* ===================================================================
   PRODUCT CARD
   =================================================================== */
.tl-product-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color .15s, transform .15s;
  text-decoration: none;
  color: inherit;
  position: relative;
}
.tl-product-card:hover { border-color: var(--ink); transform: translateY(-2px); }

.tl-product-card .tl-card-img {
  aspect-ratio: 1/1;
  width: 100%;
  overflow: hidden;
  background: var(--paper-2);
  position: relative;
}
.tl-product-card .tl-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s;
}
.tl-product-card:hover .tl-card-img img { transform: scale(1.03); }
.tl-product-card .tl-card-ribbons {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 2;
}

.tl-product-card .tl-card-body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.tl-product-card .tl-card-sku {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: var(--steel);
  text-transform: uppercase;
}
.tl-product-card .tl-card-title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.25;
  color: var(--ink);
  min-height: 40px;
}
.tl-product-card .tl-card-specs {
  display: flex;
  gap: 10px;
  font-size: 12px;
  color: var(--steel);
  font-family: var(--mono);
  flex-wrap: wrap;
}
.tl-product-card .tl-card-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.tl-product-card .tl-inquiry-link {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 600;
  transition: text-decoration .1s;
}
.tl-product-card .tl-inquiry-link:hover { text-decoration: underline; }

/* List view card */
.tl-prod-grid.is-list .tl-product-card {
  flex-direction: row;
}
.tl-prod-grid.is-list .tl-product-card .tl-card-img {
  width: 200px;
  aspect-ratio: 1/1;
  flex-shrink: 0;
}
.tl-prod-grid.is-list .tl-product-card .tl-card-body {
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 560px) {
  .tl-prod-grid.is-list .tl-product-card { flex-direction: column; }
  .tl-prod-grid.is-list .tl-product-card .tl-card-img { width: 100%; }
}

/* Pagination */
.tl-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
}
.tl-page-btn {
  height: 40px;
  padding: 0 16px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
  transition: all .15s;
  cursor: pointer;
}
.tl-page-btn:hover { border-color: var(--ink); }
.tl-page-btn:disabled { opacity: .4; cursor: not-allowed; }
.tl-page-nums { display: flex; gap: 4px; }
.tl-page-num {
  width: 40px; height: 40px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink);
  transition: all .15s;
  cursor: pointer;
}
.tl-page-num.is-active { background: var(--ink); color: var(--white); border-color: var(--ink); }
.tl-page-num:hover:not(.is-active) { border-color: var(--ink); }

/* ===================================================================
   SINGLE PRODUCT PAGE
   =================================================================== */
.tl-product-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
  padding: 32px 0 64px;
}

/* Gallery */
.tl-gallery { display: flex; flex-direction: column; gap: 12px; }
.tl-gallery-main {
  aspect-ratio: 1/1;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  background: var(--paper-2);
  cursor: zoom-in;
}
.tl-gallery-main img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.tl-gallery-tools {
  position: absolute;
  bottom: 16px;
  right: 16px;
  display: flex;
  gap: 8px;
}
.tl-gtool {
  height: 34px;
  padding: 0 12px;
  background: rgba(15,17,21,0.7);
  color: var(--white);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  backdrop-filter: blur(4px);
  transition: background .15s;
}
.tl-gtool:hover { background: rgba(15,17,21,0.9); }

.tl-gallery-thumbs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scrollbar-width: none;
}
.tl-gallery-thumbs::-webkit-scrollbar { display: none; }
.tl-thumb {
  width: 80px; height: 80px;
  border: 2px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  flex-shrink: 0;
  background: var(--paper-2);
  cursor: pointer;
  transition: border-color .15s;
  padding: 0;
}
.tl-thumb.is-active,
.tl-thumb:hover { border-color: var(--ink); }
.tl-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Product info panel */
.tl-product-info { display: flex; flex-direction: column; gap: 0; }
.tl-info-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.tl-info-sku { font-family: var(--mono); font-size: 11.5px; color: var(--steel); letter-spacing: 0.06em; margin-bottom: 12px; text-transform: uppercase; }
.tl-product-title { font-size: clamp(32px, 3.5vw, 48px); font-weight: 900; line-height: 1.02; letter-spacing: -0.02em; margin-bottom: 14px; }
.tl-product-lead { color: var(--steel); max-width: 520px; font-size: 16px; line-height: 1.6; margin-bottom: 24px; }

/* Key specs row */
.tl-spec-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 28px;
}
.tl-spec-row-item {
  padding: 16px 14px;
  border-right: 1px solid var(--line);
  text-align: center;
}
.tl-spec-row-item:last-child { border-right: 0; }
.tl-spec-row-val {
  font-family: var(--display);
  font-weight: 800;
  font-size: 26px;
  line-height: 1;
  letter-spacing: -0.02em;
}
.tl-spec-row-val small { font-size: 13px; font-weight: 600; color: var(--steel); margin-left: 2px; }
.tl-spec-row-lbl { font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--steel); margin-top: 6px; }

/* Stock row */
.tl-stock-row { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.tl-stock-item { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.tl-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.tl-dot--green { background: #22C55E; }
.tl-dot--red { background: var(--red); }
.tl-dot--yellow { background: var(--signal); }
.tl-stock-item strong { font-weight: 700; }
.tl-stock-item .tl-mono { font-family: var(--mono); font-size: 12px; color: var(--steel); }

/* CTAs — NO cart, only inquiry */
.tl-cta-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}
.tl-cta-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 56px;
  background: var(--red);
  color: var(--white);
  font-family: var(--body);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: var(--radius);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s;
}
.tl-cta-primary:hover { background: var(--red-hover); color: var(--white); }
.tl-cta-secondary {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tl-cta-secondary .tl-btn { flex: 1; justify-content: center; min-width: 130px; }

/* Assurances */
.tl-assurance-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  margin-top: 20px;
}
.tl-assurance { display: flex; align-items: flex-start; gap: 10px; }
.tl-assurance svg { flex-shrink: 0; color: var(--ink); margin-top: 2px; }
.tl-assurance strong { display: block; font-size: 13px; font-weight: 700; }
.tl-assurance span { display: block; font-size: 12px; color: var(--steel); }

@media (max-width: 900px) {
  .tl-product-hero { grid-template-columns: 1fr; gap: 32px; }
  .tl-spec-row { grid-template-columns: repeat(2, 1fr); }
  .tl-spec-row-item:nth-child(2) { border-right: 0; }
}

/* ===================================================================
   PRODUCT TABS
   =================================================================== */
.tl-tabs-bar {
  background: var(--paper);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
  scrollbar-width: none;
}
.tl-tabs-bar::-webkit-scrollbar { display: none; }
.tl-tabs-inner { display: flex; gap: 0; }
.tl-tab {
  height: 52px;
  padding: 0 22px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--steel);
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  cursor: pointer;
  transition: color .15s, border-color .15s;
  background: transparent;
}
.tl-tab:hover { color: var(--ink); }
.tl-tab.is-active { color: var(--ink); border-bottom-color: var(--red); }

.tl-tab-panel { display: none; }
.tl-tab-panel.is-active { display: block; }

/* Specs table */
.tl-spec-table {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 16px;
}
.tl-spec-section h4 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--steel);
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.tl-spec-section dl { margin: 0; }
.tl-spec-section dt, .tl-spec-section dd { padding: 7px 0; border-bottom: 1px solid var(--paper-2); }
.tl-spec-section dt { float: left; clear: left; font-size: 13px; color: var(--steel); width: 50%; }
.tl-spec-section dd { margin-left: 50%; font-size: 13px; font-weight: 600; font-family: var(--mono); }

@media (max-width: 900px) {
  .tl-spec-table { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .tl-spec-table { grid-template-columns: 1fr; }
}

/* Description content */
.tl-content-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
  align-items: start;
}
.tl-content-main { font-size: 15.5px; line-height: 1.75; }
.tl-content-main h2 { font-size: clamp(24px, 2.5vw, 36px); margin-bottom: 20px; margin-top: 0; }
.tl-content-main h3 { margin-top: 40px; margin-bottom: 14px; font-size: 20px; }
.tl-check-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.tl-check-list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14.5px;
  line-height: 1.5;
}
.tl-check-list li::before {
  content: '';
  width: 18px; height: 18px;
  background: var(--ink);
  border-radius: 50%;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
  background-size: 12px;
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 2px;
}

/* Side card (dimensions/download) */
.tl-side-card {
  background: var(--paper);
  border-radius: var(--radius-lg);
  padding: 24px;
  border: 1px solid var(--line);
  position: sticky;
  top: calc(var(--header-h) + 20px);
}
.tl-side-card h4 { font-size: 14px; font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.08em; color: var(--steel); margin-bottom: 16px; }
.tl-dim-list { display: flex; flex-direction: column; gap: 0; margin-top: 16px; }
.tl-dim-list dt, .tl-dim-list dd { padding: 7px 0; border-bottom: 1px solid var(--line); }
.tl-dim-list dt { font-size: 12px; color: var(--steel); float: left; clear: left; width: 55%; }
.tl-dim-list dd { margin-left: 55%; font-family: var(--mono); font-size: 12px; font-weight: 600; }
.tl-download-link {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 600;
  transition: opacity .15s;
}
.tl-download-link:hover { opacity: .75; }

@media (max-width: 900px) {
  .tl-content-grid { grid-template-columns: 1fr; }
  .tl-side-card { position: static; }
}

/* ===================================================================
   RELATED PRODUCTS
   =================================================================== */
.tl-related { padding: clamp(48px, 6vw, 80px) 0; }

/* ===================================================================
   HOMEPAGE SECTIONS
   =================================================================== */

/* Hero */
.tl-home-hero {
  background: var(--ink);
  color: var(--white);
  position: relative;
  overflow: hidden;
  padding: 100px 0 120px;
}
.tl-home-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, transparent 0 28px, rgba(255,255,255,0.02) 28px 29px);
  pointer-events: none;
}
.tl-home-hero-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
}
.tl-home-hero h1 { color: var(--white); margin-bottom: 24px; }
.tl-home-hero .lead {
  font-size: 18px;
  color: var(--steel-2);
  max-width: 540px;
  margin-bottom: 36px;
  line-height: 1.65;
}
.tl-home-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.tl-home-hero-image {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--ink-3);
  position: relative;
}
.tl-home-hero-image img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }

@media (max-width: 900px) {
  .tl-home-hero { padding: 64px 0 80px; }
  .tl-home-hero-grid { grid-template-columns: 1fr; }
  .tl-home-hero-image { display: none; }
}

/* Category tiles */
.tl-cat-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.tl-cat-tile {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: var(--ink);
  transition: border-color .15s, transform .15s;
  background: var(--white);
}
.tl-cat-tile:hover { border-color: var(--ink); transform: translateY(-3px); }
.tl-cat-tile-img {
  aspect-ratio: 4/3;
  background: var(--paper-2);
  overflow: hidden;
}
.tl-cat-tile-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.tl-cat-tile:hover .tl-cat-tile-img img { transform: scale(1.04); }
.tl-cat-tile-body { padding: 18px 18px 20px; }
.tl-cat-tile-body h3 { font-size: 17px; margin-bottom: 6px; }
.tl-cat-tile-body p { font-size: 13px; color: var(--steel); margin: 0; line-height: 1.5; }
.tl-cat-tile-link { display: flex; align-items: center; gap: 6px; margin-top: 12px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--red); font-weight: 600; }

@media (max-width: 900px) {
  .tl-cat-tiles { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .tl-cat-tiles { grid-template-columns: 1fr; }
}

/* Why Toplifter / USP blocks */
.tl-usp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.tl-usp-item {
  background: var(--white);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.tl-usp-item .icon {
  width: 48px; height: 48px;
  background: var(--red-tint);
  color: var(--red);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tl-usp-item h3 { font-size: 18px; }
.tl-usp-item p { font-size: 14px; color: var(--steel); margin: 0; }

@media (max-width: 720px) {
  .tl-usp-grid { grid-template-columns: 1fr; }
}

/* Number rail */
.tl-num-rail {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.tl-num-rail .cell { background: var(--white); padding: 28px 24px; }
.tl-num-rail .num {
  font-family: var(--display);
  font-weight: 800;
  font-size: 44px;
  letter-spacing: -0.02em;
  line-height: 1;
}
.tl-num-rail .num .unit { font-size: 22px; color: var(--steel); margin-left: 2px; }
.tl-num-rail .lbl { font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--steel); margin-top: 12px; }
@media (max-width: 720px) {
  .tl-num-rail { grid-template-columns: repeat(2, 1fr); }
}

/* Help band (CTA section) */
.tl-help-band {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.tl-help-band h2 { font-size: clamp(28px, 3vw, 40px); }

/* ===================================================================
   FORMS / CONTACT
   =================================================================== */
.tl-field { display: flex; flex-direction: column; gap: 6px; }
.tl-field label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--steel);
}
.tl-field input, .tl-field select, .tl-field textarea {
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  font: inherit;
  font-size: 15px;
  background: var(--white);
  color: var(--ink);
  outline: none;
  transition: border-color .15s;
}
.tl-field textarea { height: auto; padding: 14px; min-height: 120px; resize: vertical; }
.tl-field input:focus, .tl-field textarea:focus, .tl-field select:focus { border-color: var(--ink); }

/* ===================================================================
   WOOCOMMERCE — hide everything we don't need
   =================================================================== */
.price,
.woocommerce-Price-amount,
.add_to_cart_button,
.single_add_to_cart_button,
.woocommerce-cart-form,
.woocommerce-checkout,
.cart-collaterals,
.wc-proceed-to-checkout,
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce .quantity,
.product_meta .sku,          /* we show our own SKU */
.woocommerce-tabs .tabs li[data-tab="reviews"] { display: none !important; }

/* Keep WC product image / gallery functional */
.woocommerce-product-gallery { margin: 0; }
.woocommerce div.product div.images { width: 100%; }

/* ===================================================================
   UTILITY
   =================================================================== */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.tl-hide { display: none !important; }

/* =====================================================================
   HOMEPAGE SEKCIJE — po design mockupu
   ===================================================================== */

/* --- Astra sidebar override --- */
.ast-separate-container .ast-article-post,
.ast-separate-container #primary,
#primary, #secondary, .ast-sidebar-layout #primary,
.ast-left-sidebar #primary, .ast-right-sidebar #primary,
.widget-area, #secondary, aside#secondary { display: none !important; }
.ast-page-builder-template .entry-content,
#content .ast-container, .ast-container,
.site-content .ast-container { max-width: none !important; padding: 0 !important; }
body.page-template-default #primary { display: block !important; }
.ast-separate-container { box-shadow: none !important; background: transparent !important; }

/* --- Hero --- */
.tl-hero {
  background: var(--paper);
  padding: clamp(48px,7vw,96px) 0 clamp(60px,8vw,110px);
  position: relative;
  overflow: hidden;
}
.tl-hero::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:var(--line); }
.tl-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.tl-hero-copy h1 { margin:20px 0 28px; }
.tl-hero-lead { font-size:clamp(17px,1.4vw,20px); color:var(--ink-2); max-width:560px; }
.tl-hero-ctas { display:flex; gap:14px; margin:32px 0 56px; flex-wrap:wrap; }
.tl-hero-foot { display:flex; gap:48px; flex-wrap:wrap; padding-top:32px; border-top:1px solid var(--line); }
.tl-hero-foot-item strong { font-family:var(--display); font-weight:800; font-size:28px; display:block; }
.tl-hero-foot-item span { color:var(--steel); font-size:13px; font-family:var(--mono); letter-spacing:.04em; text-transform:uppercase; }
.tl-hero-visual { position:relative; aspect-ratio:5/6; display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1.5fr 1fr; gap:16px; }
.tl-hero-main-img { grid-row:1/3; height:100%; aspect-ratio:auto; }
.tl-hero-sub-img { aspect-ratio:auto; height:100%; grid-column:2; grid-row:1; }
.tl-hero-badge-card { grid-column:2; grid-row:2; background:var(--red); color:#fff; padding:20px; border-radius:var(--radius); display:flex; flex-direction:column; justify-content:space-between; }
.tl-hero-badge-num { font-family:var(--display); font-weight:900; font-size:48px; line-height:1; }
.tl-hero-badge-lbl { font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; line-height:1.4; }
.tl-hero-mark { position:absolute; top:16px; left:16px; background:#fff; padding:6px 10px; font-size:10.5px; letter-spacing:.1em; border-radius:2px; z-index:2; }
@media(max-width:960px){ .tl-hero-grid{grid-template-columns:1fr;gap:40px;} .tl-hero-visual{aspect-ratio:4/3;} }

/* --- Trust Strip (new class names) --- */
.tl-trust-strip { background:var(--ink); padding:18px 0; }
.tl-trust-strip-inner { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.tl-trust-item { display:flex; align-items:center; gap:12px; color:#C9CDD6; font-family:var(--mono); font-size:12.5px; }
.tl-trust-icon { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:var(--red); flex-shrink:0; }
.tl-trust-item strong { display:block; color:#fff; font-weight:600; font-size:13px; }
.tl-trust-lbl { color:var(--steel-2); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
@media(max-width:900px){ .tl-trust-strip-inner{gap:16px;} .tl-trust-item:nth-child(n+4){display:none;} }

/* --- Sections --- */
.tl-section { padding:clamp(56px,7vw,96px) 0; }
.tl-section--tight { padding:clamp(40px,5vw,64px) 0; }
.tl-section--ink { background:var(--ink); color:#fff; }
.tl-section--paper { background:var(--paper); }
.tl-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:48px; flex-wrap:wrap; }
.tl-section-head h2 { max-width:720px; }
.tl-lead { color:var(--steel); max-width:440px; font-size:16px; line-height:1.6; }
.tl-section--ink .tl-lead { color:var(--steel-2); }

/* --- Category Grid --- */
.tl-cat-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(260px,auto); gap:20px; }
.tl-cat-card { position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s,border-color .2s; text-decoration:none; color:inherit; }
.tl-cat-card:hover { transform:translateY(-4px); border-color:var(--ink); }
.tl-cat-card--lg { grid-column:span 2; }
.tl-cat-card-img { aspect-ratio:auto; flex:1; min-height:160px; }
.tl-cat-card-img img { width:100%; height:100%; object-fit:cover; }
.tl-cat-card-body { padding:20px 22px 22px; display:flex; flex-direction:column; gap:6px; position:relative; }
.tl-cat-num { font-size:11px; letter-spacing:.12em; color:var(--steel); font-family:var(--mono); }
.tl-cat-card h3 { font-size:22px; margin:0; }
.tl-cat-count { color:var(--steel); font-size:13.5px; }
.tl-cat-arrow { position:absolute; top:24px; right:22px; width:36px; height:36px; border-radius:50%; background:var(--paper); display:inline-flex; align-items:center; justify-content:center; transition:.15s; }
.tl-cat-arrow svg { width:16px; height:16px; }
.tl-cat-card:hover .tl-cat-arrow { background:var(--ink); color:#fff; }
.tl-cat-card--red { background:var(--red); border-color:var(--red); }
.tl-cat-card--red:hover { background:var(--red-hover); }
@media(max-width:1024px){ .tl-cat-grid{grid-template-columns:repeat(2,1fr);} .tl-cat-card--lg{grid-column:span 2;} }
@media(max-width:600px){ .tl-cat-grid{grid-template-columns:1fr;} .tl-cat-card--lg{grid-column:span 1;} }

/* --- Product Grid 4 --- */
.tl-prod-grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.tl-prod-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:border-color .2s; text-decoration:none; color:inherit; }
.tl-prod-card:hover { border-color:var(--ink); }
.tl-prod-card-img { position:relative; aspect-ratio:1/1; background:var(--paper); }
.tl-prod-card-img img { width:100%; height:100%; object-fit:contain; padding:12px; }
.tl-prod-card-img .tl-ph { aspect-ratio:1/1; }
.tl-ribbons { position:absolute; top:10px; left:10px; display:flex; gap:4px; flex-wrap:wrap; }
.tl-badge { font-family:var(--mono); font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:3px 7px; border-radius:2px; background:var(--ink); color:#fff; }
.tl-badge--red { background:var(--red); }
.tl-prod-card-body { padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; flex:1; }
.tl-prod-sku { font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; color:var(--steel); text-transform:uppercase; }
.tl-prod-title { font-family:var(--display); font-weight:700; font-size:15px; line-height:1.25; }
.tl-prod-specs { display:flex; gap:6px; align-items:center; font-family:var(--mono); font-size:11.5px; color:var(--steel); }
.tl-prod-specs span { color:var(--steel-2); }
.tl-prod-row { display:flex; justify-content:flex-end; margin-top:auto; padding-top:10px; border-top:1px solid var(--line); }
.tl-prod-cta { font-family:var(--mono); font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--red); }
@media(max-width:1024px){ .tl-prod-grid-4{grid-template-columns:repeat(2,1fr);} }
@media(max-width:540px){ .tl-prod-grid-4{grid-template-columns:1fr;} }

/* --- Product secondary grid --- */
.tl-prod-secondary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:28px; }
.tl-prod-row-item { display:grid; grid-template-columns:80px 1fr auto; gap:16px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:12px; text-decoration:none; color:inherit; transition:border-color .2s; }
.tl-prod-row-item:hover { border-color:var(--ink); }
.tl-ph--square { aspect-ratio:1/1; border-radius:2px; }
@media(max-width:900px){ .tl-prod-secondary-grid{grid-template-columns:1fr;} }

/* --- Pillars --- */
.tl-pillars-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#23262E; border:1px solid #23262E; border-radius:var(--radius-lg); overflow:hidden; }
.tl-pillar { background:var(--ink); padding:32px 28px; display:flex; flex-direction:column; gap:12px; min-height:280px; }
.tl-pillar h3 { color:#fff; font-size:26px; }
.tl-pillar p { color:#C9CDD6; flex:1; }
.tl-pillar-num { color:var(--steel); font-size:12px; letter-spacing:.1em; font-family:var(--mono); }
.tl-pillar-link { color:var(--red); font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
.tl-pillar--accent { background:var(--red); }
.tl-pillar--accent p { color:rgba(255,255,255,.9); }
.tl-pillar--accent .tl-pillar-num { color:rgba(255,255,255,.6); }
.tl-pillar--accent .tl-pillar-link { color:#fff; }
@media(max-width:900px){ .tl-pillars-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:540px){ .tl-pillars-grid{grid-template-columns:1fr;} }

/* --- Logo wall --- */
.tl-logo-wall { display:grid; grid-template-columns:repeat(9,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.tl-logo-tile { background:#fff; height:96px; display:flex; align-items:center; justify-content:center; color:var(--steel); font-weight:700; letter-spacing:.04em; font-size:12px; transition:background .15s; font-family:var(--mono); }
.tl-logo-tile:hover { background:var(--paper); color:var(--ink); }
@media(max-width:1100px){ .tl-logo-wall{grid-template-columns:repeat(5,1fr);} }
@media(max-width:600px){ .tl-logo-wall{grid-template-columns:repeat(3,1fr);} }

/* --- Testimonial --- */
.tl-testimonial { margin-top:56px; background:var(--ink); color:#fff; padding:56px; border-radius:var(--radius-lg); display:grid; grid-template-columns:60px 1fr; gap:32px; align-items:start; position:relative; }
.tl-testimonial::before { content:''; position:absolute; top:0; left:0; width:100%; height:4px; background:var(--red); border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.tl-quote { width:60px; height:40px; color:var(--red); flex-shrink:0; }
.tl-testimonial-text { font-family:var(--display); font-weight:600; font-size:clamp(20px,2vw,28px); line-height:1.3; letter-spacing:-.01em; margin:0 0 28px; max-width:880px; }
.tl-testimonial-author { display:flex; gap:14px; align-items:center; }
.tl-testimonial-avatar { width:44px; height:44px; border-radius:50%; background:var(--red); flex-shrink:0; }
.tl-testimonial-author strong { display:block; }
.tl-testimonial-author span { color:var(--steel-2); font-size:13px; }
@media(max-width:720px){ .tl-testimonial{grid-template-columns:1fr;padding:32px;} }

/* --- Num rail --- */
.tl-num-rail { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.tl-cell { background:#fff; padding:28px 24px; }
.tl-num { font-family:var(--display); font-weight:900; font-size:clamp(36px,4vw,64px); line-height:1; letter-spacing:-.025em; }
.tl-unit { font-size:22px; color:var(--steel); margin-left:2px; }
.tl-lbl { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--steel); margin-top:12px; }
@media(max-width:700px){ .tl-num-rail{grid-template-columns:repeat(2,1fr);} }

/* --- Blog cards --- */
.tl-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tl-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; transition:border-color .2s; }
.tl-card:hover { border-color:var(--ink); }
.tl-blog-card { display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.tl-ph--wide { aspect-ratio:16/9; }
.tl-blog-body { padding:24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.tl-blog-meta { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--steel); }
.tl-blog-card h3 { font-size:20px; margin:0; }
.tl-blog-card p { color:var(--steel); flex:1; font-size:15px; }
.tl-blog-link { color:var(--red); font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
@media(max-width:900px){ .tl-grid-3{grid-template-columns:1fr;} }

/* --- CTA Strip --- */
.tl-cta-strip { background:var(--ink); padding:clamp(56px,7vw,96px) 0; position:relative; overflow:hidden; }
.tl-cta-strip::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(135deg,transparent 0 28px,rgba(255,255,255,.02) 28px 29px); pointer-events:none; }
.tl-cta-strip-inner { display:grid; grid-template-columns:1.5fr 1fr; gap:48px; align-items:end; position:relative; }
.tl-cta-strip-actions { display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.tl-btn--light { background:#fff; color:var(--ink); }
.tl-btn--light:hover { background:var(--paper); }
@media(max-width:900px){ .tl-cta-strip-inner{grid-template-columns:1fr;} .tl-cta-strip-actions{justify-content:flex-start;} }

/* --- Placeholder images --- */
.tl-ph { background:var(--paper-2); display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:var(--radius); }
.tl-ph span { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--steel-2); text-align:center; padding:16px; }
.tl-ph img { width:100%; height:100%; object-fit:cover; }
.tl-ph--dark { background:var(--ink-2); }
.tl-ph--dark span { color:var(--steel); }

/* --- Container wide --- */
.tl-container--wide { max-width:1480px; }

/* =====================================================================
   ASTRA LAYOUT OVERRIDE — agresivno full-width
   ===================================================================== */
body.tl-no-sidebar #secondary,
body #secondary,
.ast-separate-container #secondary,
.ast-two-container #secondary,
.ast-right-sidebar #secondary,
.ast-left-sidebar #secondary,
aside.widget-area,
#sidebar-area,
.ast-sidebar { display:none!important; width:0!important; }

/* Full width primary */
body #primary,
body.tl-no-sidebar #primary,
.ast-separate-container #primary,
.ast-two-container #primary {
  width:100%!important;
  max-width:100%!important;
  float:none!important;
  padding-left:0!important;
  padding-right:0!important;
  margin:0!important;
}

/* Odstrani Astra container padding na homepage */
.home .ast-container,
.front-page .ast-container,
body.home #content .ast-container {
  padding:0!important;
  max-width:none!important;
}

/* Homepage sekcije morajo biti block, ne flex */
body.home #content,
body.front-page #content {
  display:block!important;
  flex-direction:unset!important;
}

/* Skrij vse Astra page title na homepage */
body.home .ast-page-title-bar,
body.home .ast-archive-description,
.entry-header.ast-no-thumbnail { display:none!important; }

/* Entry content wrapper */
body.home .entry-content,
body.home .ast-article-post {
  padding:0!important;
  margin:0!important;
  max-width:none!important;
}

/* =====================================================================
   O NAS & KONTAKT STRANI
   ===================================================================== */

/* --- Page hero --- */
.tl-page-hero { padding:clamp(56px,7vw,96px) 0; }
.tl-page-hero--dark { background:var(--ink); }
.tl-page-hero--light { background:var(--paper); border-bottom:1px solid var(--line); }
.tl-page-hero-inner { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; align-items:center; }
.tl-page-hero-inner--contact { grid-template-columns:1fr 1fr; align-items:start; gap:48px; }
.tl-page-hero-stats { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-lg); overflow:hidden; }
.tl-hero-stat { background:var(--ink-2); padding:28px 24px; }
.tl-hero-stat-num { font-family:var(--display); font-weight:900; font-size:clamp(32px,3vw,48px); color:#fff; display:block; }
.tl-hero-stat-lbl { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--steel-2); }
@media(max-width:900px){ .tl-page-hero-inner,.tl-page-hero-inner--contact{grid-template-columns:1fr;gap:40px;} }

/* --- Two col layout --- */
.tl-two-col { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.tl-two-col-copy { display:flex; flex-direction:column; gap:20px; }
.tl-two-col-copy p { color:var(--steel); line-height:1.7; }
.tl-two-col-visual { position:relative; }
.tl-about-badge { position:absolute; bottom:-20px; left:24px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px 22px; box-shadow:0 8px 32px rgba(0,0,0,.08); }
.tl-cert-pill { font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.06em; padding:5px 10px; border-radius:2px; background:var(--paper); color:var(--ink); }
.tl-cert-pill--red { background:var(--red); color:#fff; }
@media(max-width:900px){ .tl-two-col{grid-template-columns:1fr;gap:40px;} }

/* --- Values grid --- */
.tl-values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tl-value-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; display:flex; flex-direction:column; gap:12px; }
.tl-value-icon { width:48px; height:48px; background:var(--red-tint,#FFF1F0); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; color:var(--red); flex-shrink:0; }
.tl-value-card h3 { font-size:18px; margin:0; }
.tl-value-card p { color:var(--steel); font-size:15px; line-height:1.6; margin:0; }
@media(max-width:900px){ .tl-values-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .tl-values-grid{grid-template-columns:1fr;} }

/* --- Team grid --- */
.tl-team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.tl-team-card { display:flex; align-items:center; gap:16px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:20px; }
.tl-team-avatar { width:52px; height:52px; border-radius:50%; background:var(--ink); color:#fff; font-family:var(--display); font-weight:800; font-size:22px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tl-team-info strong { display:block; font-size:15px; }
.tl-team-info span { color:var(--steel); font-size:13px; }
@media(max-width:900px){ .tl-team-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .tl-team-grid{grid-template-columns:1fr;} }

/* --- Contact grid --- */
.tl-contact-grid { display:grid; grid-template-columns:1fr 380px; gap:48px; align-items:start; }
@media(max-width:1024px){ .tl-contact-grid{grid-template-columns:1fr;} }

/* --- Contact quick links --- */
.tl-contact-quick { display:flex; flex-direction:column; gap:12px; }
.tl-quick-link { display:flex; align-items:center; gap:14px; padding:16px 18px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius); text-decoration:none; color:inherit; transition:border-color .15s; }
.tl-page-hero--light .tl-quick-link { background:#fff; border-color:var(--line); }
.tl-quick-link:hover { border-color:var(--red); }
.tl-quick-icon { width:40px; height:40px; border-radius:50%; background:rgba(224,56,48,.12); display:flex; align-items:center; justify-content:center; color:var(--red); flex-shrink:0; }
.tl-quick-link strong { display:block; font-size:15px; }
.tl-quick-link span { color:var(--steel); font-size:13px; }
.tl-page-hero--dark .tl-quick-link strong { color:#fff; }

/* --- Form --- */
.tl-contact-form-wrap { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:40px; }
.tl-form-header { margin-bottom:28px; }
.tl-form-header h2 { margin:0; font-size:26px; }
.tl-form-prefill-notice { margin-top:12px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:10px 14px; font-size:13.5px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--ink); }
.tl-form { display:flex; flex-direction:column; gap:20px; }
.tl-form-row { display:flex; gap:16px; }
.tl-form-row--2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.tl-form-field { display:flex; flex-direction:column; gap:6px; flex:1; }
.tl-form-field label { font-size:13.5px; font-weight:600; color:var(--ink); }
.tl-form-field input,
.tl-form-field select,
.tl-form-field textarea { border:1.5px solid var(--line); border-radius:var(--radius); padding:11px 14px; font-size:15px; font-family:var(--body); color:var(--ink); background:#fff; transition:border-color .15s; width:100%; }
.tl-form-field input:focus,
.tl-form-field select:focus,
.tl-form-field textarea:focus { outline:none; border-color:var(--red); }
.tl-form-field textarea { resize:vertical; min-height:120px; }
.tl-form-field--check { flex-direction:row; align-items:flex-start; gap:10px; }
.tl-form-field--check input { width:18px; height:18px; flex-shrink:0; margin-top:2px; accent-color:var(--red); }
.tl-form-field--check label { font-weight:400; font-size:13.5px; color:var(--steel); }
.tl-form-field--check a { color:var(--red); }
@media(max-width:600px){ .tl-form-row--2{grid-template-columns:1fr;} }

/* --- Contact sidebar cards --- */
.tl-contact-sidebar { display:flex; flex-direction:column; gap:20px; }
.tl-info-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; }
.tl-info-card--dark { background:var(--ink); border-color:var(--ink); }
.tl-info-card h3 { margin:0 0 16px; font-size:18px; }
.tl-info-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.tl-info-list li { display:flex; align-items:center; gap:10px; font-size:14.5px; color:var(--steel); }
.tl-info-list li svg { color:var(--red); flex-shrink:0; }
.tl-map-card { background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; }

/* =====================================================================
   NAJEM STRAN
   ===================================================================== */

/* --- Najem product grid --- */
.tl-najem-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
@media(max-width:800px){ .tl-najem-grid{grid-template-columns:1fr;} }

/* --- Najem card --- */
.tl-najem-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; position:relative; transition:box-shadow .2s; }
.tl-najem-card:hover { box-shadow:0 8px 32px rgba(0,0,0,.08); }
.tl-najem-card--featured { border-color:var(--red); }
.tl-najem-ribbon { position:absolute; top:20px; right:-1px; background:var(--red); color:#fff; font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:5px 14px 5px 10px; border-radius:2px 0 0 2px; z-index:2; }
.tl-najem-card-img { aspect-ratio:16/9; }
.tl-najem-card-img.tl-ph { aspect-ratio:16/9; }
.tl-najem-card-img img { width:100%; height:100%; object-fit:cover; }
.tl-najem-card-body { padding:28px; display:flex; flex-direction:column; gap:20px; flex:1; }
.tl-najem-card-specs { flex:1; }
.tl-najem-spec-badge { display:inline-block; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.08em; padding:3px 8px; background:var(--ink); color:#fff; border-radius:2px; margin-bottom:10px; }
.tl-najem-card-specs h3 { font-size:20px; margin:0 0 14px; }
.tl-spec-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.tl-spec-list li { font-size:14.5px; color:var(--steel); padding-left:16px; position:relative; }
.tl-spec-list li::before { content:'●'; position:absolute; left:0; color:var(--red); font-size:8px; top:4px; }
.tl-spec-list li strong { color:var(--ink); }

/* --- Najem price + cta --- */
.tl-najem-card-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:20px; border-top:1px solid var(--line); flex-wrap:wrap; }
.tl-najem-price { display:flex; flex-direction:column; }
.tl-najem-price-from { font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--steel); }
.tl-najem-price-num { font-family:var(--display); font-weight:800; font-size:26px; color:var(--red); line-height:1.1; }
.tl-najem-price-num small { font-size:14px; font-weight:400; color:var(--steel); }

/* --- FAQ --- */
.tl-faq-list { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.tl-faq-item { border-bottom:1px solid var(--line); }
.tl-faq-item:last-child { border-bottom:none; }
.tl-faq-q { width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 28px; background:#fff; border:none; cursor:pointer; text-align:left; font-family:var(--display); font-weight:700; font-size:17px; color:var(--ink); transition:background .15s; }
.tl-faq-q:hover { background:var(--paper); }
.tl-faq-item.is-open .tl-faq-q { background:var(--paper); color:var(--red); }
.tl-faq-icon { width:22px; height:22px; flex-shrink:0; transition:transform .25s; color:var(--red); }
.tl-faq-a { max-height:0; overflow:hidden; transition:max-height .3s ease; font-size:15px; color:var(--steel); line-height:1.7; padding:0 28px; background:#fff; }
.tl-faq-item.is-open .tl-faq-a { padding:0 28px 24px; }

/* =====================================================================
   SKLADIŠČNE HALE STRAN
   ===================================================================== */

/* Red section */
.tl-section--red { background:var(--red); padding:clamp(48px,6vw,80px) 0; }

/* Prednosti (4 stolpci z check ikono) */
.tl-hale-prednosti { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.tl-hale-prednost { display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.tl-hale-check { width:56px; height:56px; border-radius:50%; background:var(--red); display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; }
.tl-hale-prednost p { color:var(--steel); font-size:14.5px; line-height:1.6; margin:0; }
@media(max-width:900px){ .tl-hale-prednosti{grid-template-columns:repeat(2,1fr);} }
@media(max-width:540px){ .tl-hale-prednosti{grid-template-columns:1fr;} }

/* Galerija */
.tl-hale-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.tl-hale-gallery-item { aspect-ratio:4/3; border-radius:var(--radius-lg); overflow:hidden; }
.tl-hale-gallery-img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.tl-hale-gallery-item:hover .tl-hale-gallery-img { transform:scale(1.04); }
.tl-hale-gallery-item.tl-ph { aspect-ratio:4/3; }
@media(max-width:700px){ .tl-hale-gallery{grid-template-columns:repeat(2,1fr);} }
@media(max-width:480px){ .tl-hale-gallery{grid-template-columns:1fr;} }

/* Lastnosti */
.tl-lastnosti-grid { display:grid; grid-template-columns:1fr 1fr; gap:x 24px; column-gap:48px; row-gap:24px; }
.tl-lastnost-item { display:flex; gap:14px; align-items:flex-start; }
.tl-lastnost-dot { width:10px; height:10px; border-radius:50%; background:var(--red); flex-shrink:0; margin-top:7px; }
.tl-lastnost-item p { color:var(--steel); font-size:15px; line-height:1.65; margin:0; }
@media(max-width:700px){ .tl-lastnosti-grid{grid-template-columns:1fr;} }
