﻿/*
 Theme Name:   Tähik v2
 Description:  Tähik OÜ rasketehnika varuosade müük v2 disain
 Template:     hello-elementor
 Version:      1.0.0
 Text Domain:  hello-elementor-child-v2
*/

/* ============================================================
   CSS MUUTUJAD
   ============================================================ */
:root {
  --tv2-navy:       #0D1B2A;
  --tv2-orange:     #E85D04;
  --tv2-orange-l:   #FF7A2F;
  --tv2-white:      #FFFFFF;
  --tv2-n50:        #FAFAFA;
  --tv2-n100:       #F5F5F5;
  --tv2-n200:       #E5E5E5;
  --tv2-n400:       #A3A3A3;
  --tv2-n600:       #525252;
  --tv2-n700:       #404040;
  --tv2-n900:       #171717;
  --tv2-radius:     4px;
  --tv2-max:        1280px;
  --tv2-px:         clamp(16px, 4vw, 64px);
}

/* ============================================================
   RESET & ALUS
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--tv2-n50);
  color: var(--tv2-n900);
  line-height: 1.6;
}
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

/* ============================================================
   TOPBAR
   ============================================================ */
.tv2-topbar {
  background: var(--tv2-navy);
  color: rgba(255,255,255,0.7);
  font-size: 13px;
  padding: 8px var(--tv2-px);
}
.tv2-topbar-inner {
  max-width: var(--tv2-max);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
	padding: 5px var(--tv2-px);
}
.tv2-topbar-left {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.tv2-topbar-left a {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,0.7);
  transition: color 0.2s;
}
.tv2-topbar-left a:hover { color: #fff; }
.tv2-topbar-left svg { flex-shrink: 0; }
.tv2-topbar-right {
  display: none;
  gap: 12px;
}
.tv2-topbar-right button {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  transition: color 0.2s;
  font-family: inherit;
  padding: 0;
}
.tv2-topbar-right button.active,
.tv2-topbar-right button:hover { color: #fff; font-weight: 700; }

/* ============================================================
   HEADER
   ============================================================ */
.tv2-header {
  background: var(--tv2-white);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  position: sticky;
  top: 0;
  z-index: 9000;
  transition: box-shadow 0.3s;
}
.tv2-header.is-scrolled { box-shadow: 0 2px 12px rgba(0,0,0,0.12); }
.tv2-header-inner {
  max-width: var(--tv2-max);
  margin: 0 auto;
  padding: 10px var(--tv2-px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
/* Logo � SVG pildina */
.tv2-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
}
.tv2-logo-img {
  height: 52px;
  width: auto;
  display: block;
}
/* Desktop nav */
.tv2-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* wp_nav_menu v�ljastab <li> � nullime t�ielikult */
.tv2-nav li {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}
.tv2-nav li a,
.tv2-nav > a,
.tv2-nav > button {
  color: var(--tv2-n700);
  transition: color 0.2s;
  letter-spacing: 0.06em;
  font-weight: 600;
  font-size: 14px;
  font-family: inherit;
  text-transform: uppercase;
  white-space: nowrap;
}
.tv2-nav li a:hover,
.tv2-nav > a:hover,
.tv2-nav > button:hover { color: var(--tv2-orange); }
/* CTA nupp � "ESITA P�RING" */
.tv2-nav-cta {
  background: var(--tv2-orange) !important;
  color: var(--tv2-white) !important;
  padding: 18px 26px !important;
  border-radius: var(--tv2-radius) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  font-family: inherit !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  transition: background 0.2s, transform 0.15s !important;
  white-space: nowrap !important;
  line-height: 1 !important;
}
.tv2-nav-cta:hover {
  background: var(--tv2-orange-l) !important;
  transform: translateY(-1px) !important;
  color: var(--tv2-white) !important;
}
/* Hamburger */
.tv2-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  transition: background 0.2s;
}
.tv2-hamburger:hover { background: var(--tv2-n100); }
.tv2-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--tv2-n700);
  border-radius: 2px;
  transition: transform 0.25s, opacity 0.2s, width 0.2s;
}
.tv2-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tv2-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; width: 0; }
.tv2-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* Mobile nav dropdown */
.tv2-mobile-nav {
  background: var(--tv2-white);
  border-top: 1px solid var(--tv2-n200);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.tv2-mobile-nav.open { max-height: 360px; }
.tv2-mobile-nav-list {
  padding: 12px var(--tv2-px) 20px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  list-style: none;
  margin: 0;
}
/* wp_nav_menu <li> reset mobiilmen��s */
.tv2-mobile-nav-list li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tv2-mobile-nav-list li a,
.tv2-mobile-nav-list > a,
.tv2-mobile-nav-list > button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 12px 0;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--tv2-n700);
  border-bottom: 1px solid var(--tv2-n100);
  transition: color 0.2s;
  font-family: inherit;
}
.tv2-mobile-nav-list li a:hover,
.tv2-mobile-nav-list > a:hover,
.tv2-mobile-nav-list > button:hover { color: var(--tv2-orange); }
.tv2-mobile-nav-list .tv2-nav-cta {
  background: var(--tv2-orange) !important;
  color: #fff !important;
  border-radius: var(--tv2-radius) !important;
  padding: 14px 24px !important;
  text-align: center !important;
  border: none !important;
  margin-top: 10px;
  width: 100%;
  display: block;
  letter-spacing: 0.08em !important;
}

/* ============================================================
   �LDISED SEKTSIOONI ELEMENDID
   ============================================================ */
.tv2-container {
  max-width: var(--tv2-max);
  margin: 0 auto;
  padding: 0 var(--tv2-px);
}
.tv2-section { padding: 80px 0; }
.tv2-section-sm { padding: 64px 0; }
.tv2-section-header { text-align: center; margin-bottom: 64px; }
.tv2-section-header h2 {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 900;
  color: var(--tv2-n900);
  letter-spacing: -0.5px;
  margin-bottom: 12px;
}
.tv2-section-header p {
  font-size: 16px;
  color: var(--tv2-n600);
  max-width: 760px;
  margin: 0 auto;
}

/* ============================================================
   HERO
   ============================================================ */
.tv2-hero {
  background: var(--tv2-navy);
  padding: 80px 0;
  overflow: hidden;
}
@media (min-width: 768px) { .tv2-hero { padding: 120px 0; } }
.tv2-hero-grid {
  display: grid;
  gap: 48px;
  align-items: center;
}
@media (min-width: 768px) { .tv2-hero-grid { grid-template-columns: 1fr 1fr; } }
.tv2-hero-text { order: 2; }
@media (min-width: 768px) { .tv2-hero-text { order: 1; text-align: left; } }
.tv2-hero-text { text-align: center; }
.tv2-hero-text h1 {
  font-size: clamp(32px, 5vw, 60px);
  font-weight: 900;
  color: var(--tv2-white);
  line-height: 1.1;
  letter-spacing: -1px;
  margin-bottom: 20px;
}
.tv2-hero-text p {
  font-size: clamp(16px, 2vw, 20px);
  color: rgba(219, 234, 254, 0.8);
  margin-bottom: 32px;
}
.tv2-hero-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--tv2-orange);
  color: var(--tv2-white);
  padding: 16px 32px;
  border-radius: var(--tv2-radius);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: background 0.2s, transform 0.15s;
  box-shadow: 0 8px 24px rgba(232,93,4,0.35);
  border: none;
  cursor: pointer;
  font-family: inherit;
}
.tv2-hero-btn:hover {
  background: var(--tv2-orange-l);
  transform: translateY(-2px);
}
.tv2-hero-logo-wrap {
  order: 1;
  display: flex;
  justify-content: center;
}
@media (min-width: 768px) {
  .tv2-hero-logo-wrap { order: 2; justify-content: flex-end; }
}
.tv2-hero-logo-card {
  background: var(--tv2-white);
  border-radius: 20px;
  padding: 40px 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.3);
}
.tv2-hero-logo-card .tv2-logo-big {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(48px, 8vw, 80px);
  font-weight: 900;
  letter-spacing: -3px;
  color: var(--tv2-n900);
}
.tv2-hero-logo-card .tv2-logo-big svg { color: var(--tv2-orange); }
.tv2-hero-logo-card .tv2-logo-tagline {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--tv2-orange);
  text-align: center;
  text-transform: uppercase;
}

/* ============================================================
   KATEGOORIAD
   ============================================================ */
.tv2-categories { background: var(--tv2-white); }
.tv2-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px;
}
/* Robot-only link — kasutajale täiesti nähtamatu, robotile DOM-is olemas */
.tv2-bot-link {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}
.tv2-cat-card {
  position: relative;
  border: 1px solid var(--tv2-n200);
  border-radius: 12px;
  overflow: hidden;
  background: var(--tv2-white);
  cursor: pointer;
  transition: box-shadow 0.25s, transform 0.2s;
  display: flex;
  flex-direction: column;
}
.tv2-cat-card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.12);
  transform: translateY(-3px);
}
.tv2-cat-img {
  height: 200px;
  overflow: hidden;
  position: relative;
  background: var(--tv2-n100);
}
.tv2-cat-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.tv2-cat-card:hover .tv2-cat-img img { transform: scale(1.05); }
.tv2-cat-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.08);
  transition: opacity 0.3s;
}
.tv2-cat-card:hover .tv2-cat-img::after { opacity: 0; }
.tv2-cat-body {
  padding: 20px 24px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.tv2-cat-body h3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--tv2-n900);
  margin-bottom: 8px;
  transition: color 0.2s;
}
.tv2-cat-card:hover .tv2-cat-body h3 { color: var(--tv2-orange); }
.tv2-cat-body p {
  font-size: 13px;
  color: var(--tv2-n600);
  line-height: 1.6;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Brändi logod kaardis */
.tv2-cat-logos {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-around;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--tv2-n200);
  border-bottom: 1px solid var(--tv2-n200);
  min-height: 52px;
  margin-bottom: 15px;
}
.tv2-cat-logo {
  display: block;
  max-height: 48px;
  max-width: min(140px, 45%) !important;
  width: auto;
  height: auto;
  object-fit: contain;
  flex: 0 1 auto;
  min-width: 0;
}
.tv2-cat-link {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--tv2-orange);
}
.tv2-cat-link svg {
  transition: transform 0.2s;
}
.tv2-cat-card:hover .tv2-cat-link svg { transform: translateX(4px); }
/* Pildita kaardi placeholder */
.tv2-cat-img-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--tv2-n200) 0%, var(--tv2-n100) 100%);
}
/* Tühi nimekiri */
.tv2-no-posts {
  color: var(--tv2-n600);
  font-size: 15px;
  padding: 32px 0;
  text-align: center;
}

/* ============================================================
   ETTEV�TTEST + FAQ
   ============================================================ */
.tv2-about { background: var(--tv2-n50); }
.tv2-about-grid {
  display: grid;
  gap: 64px;
}
@media (min-width: 768px) { .tv2-about-grid { grid-template-columns: 1fr 1fr; } }
.tv2-about-text h2,
.tv2-faq h2 {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 900;
  margin-bottom: 24px;
  color: var(--tv2-n900);
}
.tv2-about-text p {
  font-size: 15px;
  color: var(--tv2-n700);
  line-height: 1.8;
  margin-bottom: 16px;
}
.tv2-about-text p:last-child { margin-bottom: 0; }
.tv2-about-text strong { color: var(--tv2-n900); }
/* FAQ Accordion */
.tv2-faq-list { display: flex; flex-direction: column; gap: 12px; }
.tv2-faq-item {
  background: var(--tv2-white);
  border: 1px solid var(--tv2-n200);
  border-radius: 10px;
  overflow: hidden;
}
.tv2-faq-item summary {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  font-weight: 600;
  font-size: 15px;
  color: var(--tv2-n900);
  cursor: pointer;
  transition: background 0.15s;
  gap: 12px;
}
.tv2-faq-item summary:hover { background: var(--tv2-n50); }
.tv2-faq-item summary::-webkit-details-marker { display: none; }
.tv2-faq-chevron {
  width: 20px;
  height: 20px;
  color: var(--tv2-n400);
  flex-shrink: 0;
  transition: transform 0.25s;
}
.tv2-faq-item[open] .tv2-faq-chevron { transform: rotate(180deg); }
.tv2-faq-item[open] summary { color: var(--tv2-orange); }
.tv2-faq-body {
  padding: 10px 24px 18px;
  font-size: 14px;
  color: var(--tv2-n600);
  line-height: 1.7;
}

/* ============================================================
   BR�NDID
   ============================================================ */
.tv2-brands {
  background: var(--tv2-n100);
  border-top: 1px solid var(--tv2-n200);
  border-bottom: 1px solid var(--tv2-n200);
}
.tv2-brands-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 24px 32px;
  justify-items: center;
  align-items: center;
}
.tv2-brand-name {
  font-size: 15px;
  font-weight: 900;
  color: var(--tv2-n400);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
  cursor: default;
  transition: color 0.2s;
}
.tv2-brand-name:hover { color: var(--tv2-n800); }

/* ============================================================
   KONTAKT
   ============================================================ */
.tv2-contact { background: var(--tv2-white); }
.tv2-contact-grid {
  display: grid;
  gap: 24px;
  max-width: 900px;
  margin: 0 auto;
}
@media (min-width: 600px) { .tv2-contact-grid { grid-template-columns: repeat(3, 1fr); } }
.tv2-contact-card {
  background: var(--tv2-n50);
  border-radius: 16px;
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.tv2-contact-icon {
  width: 52px;
  height: 52px;
  background: rgba(232,93,4,0.1);
  color: var(--tv2-orange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  flex-shrink: 0;
}
.tv2-contact-card h3 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--tv2-n900);
}
.tv2-contact-card p {
  font-size: 14px;
  color: var(--tv2-n600);
  line-height: 1.6;
}
.tv2-contact-card a {
  color: var(--tv2-orange);
  font-weight: 600;
  display: block;
  margin-top: 4px;
  transition: opacity 0.2s;
}
.tv2-contact-card a:hover { opacity: 0.8; text-decoration: underline; }
/* ============================================================
   FOOTER
   ============================================================ */
.tv2-footer {
  background: var(--tv2-navy);
  color: rgba(255,255,255,0.55);
  font-size: 14px;
  padding: 64px 0 32px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.tv2-footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-bottom: 48px;
  align-items: center;
}
@media (min-width: 640px) {
  .tv2-footer-grid {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px;
  }
}
.tv2-footer-col {
  display: flex;
  flex-direction: column;
}
.tv2-footer-col--logo {
  align-items: center;
  justify-content: center;
}
.tv2-footer-col-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  margin-bottom: 14px;
}
.tv2-footer-address {
  font-style: normal;
  line-height: 2;
  font-size: 13px;
  color: rgba(255,255,255,0.6);
}
.tv2-footer-svg-logo {
  width: 100%;
  max-width: 220px;
  height: auto;
  display: block;
  filter: brightness(0) invert(1) opacity(0.85);
}
.tv2-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.07);
  padding-top: 24px;
  font-size: 13px;
  color: rgba(255,255,255,0.3);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

/* ============================================================
   MODAL � P�RINGUVORM
   ============================================================ */
.tv2-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 99999;
  backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.tv2-modal-overlay.open { display: flex; }
.tv2-modal {
  background: var(--tv2-white);
  border-radius: 16px;
  width: 100%;
  max-width: 540px;
  max-height: 92vh;
  overflow-y: auto;
  padding: 32px;
  position: relative;
  box-shadow: 0 24px 64px rgba(0,0,0,0.25);
  animation: tv2-modal-in 0.25s ease;
}
@keyframes tv2-modal-in {
  from { opacity: 0; transform: scale(0.95) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.tv2-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--tv2-n100);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  cursor: pointer;
  border: none;
  color: var(--tv2-n600);
}
.tv2-modal-close:hover { background: var(--tv2-n200); }
.tv2-modal h2 {
  font-size: 22px;
  font-weight: 800;
  color: var(--tv2-n900);
  margin-bottom: 4px;
}
.tv2-modal-desc {
  font-size: 14px;
  color: var(--tv2-n600);
  margin-bottom: 24px;
}
.tv2-modal-privacy {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--tv2-n200);
  font-size: 11.5px;
  line-height: 1.6;
  color: var(--tv2-n500);
}
.tv2-modal-privacy a {
  color: var(--tv2-n500);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: var(--tv2-n300);
  transition: color 0.2s;
}
.tv2-modal-privacy a:hover {
  color: var(--tv2-orange);
  text-decoration-color: var(--tv2-orange);
}
.tv2-modal-category {
  display: none;
  background: var(--tv2-n50);
  border: 1px solid var(--tv2-n200);
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 20px;
  font-size: 13px;
}
.tv2-modal-category.show { display: block; }
.tv2-modal-category span {
  display: block;
  font-size: 12px;
  color: var(--tv2-n600);
  margin-bottom: 2px;
}
.tv2-modal-category strong {
  color: var(--tv2-orange);
  font-weight: 700;
}

/* ---- CF7 vormistiilid modaalis --------------------------------
   T��tab nii tv2-cf7-* wrapper klassidega kui ilma nendeta
   --------------------------------------------------------------- */

/* Nullime CF7 vaikimisi p-reavahed � EI peta neid peitu */
.tv2-modal .wpcf7-form p {
  margin: 0 !important;
  padding: 0 !important;
}
.tv2-modal .wpcf7-form br { display: none !important; }

/* Wrapper + read */
.tv2-modal .tv2-cf7-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.tv2-modal .tv2-cf7-row {
  display: flex;
  gap: 14px;
}
@media (max-width: 480px) {
  .tv2-modal .tv2-cf7-row { flex-direction: column; gap: 14px; }
}
.tv2-modal .tv2-cf7-field {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

/* Sildid � custom wrapperites ja CF7 vaikimisi p > label struktuuris */
.tv2-modal .tv2-cf7-field label,
.tv2-modal .wpcf7-form p > label,
.tv2-modal .wpcf7-form > label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--tv2-n600) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-family: inherit !important;
  margin-bottom: 5px !important;
}
/* CF7 vaikimisi p-v�ljade kujundus � �ks v�li �he p sees */
.tv2-modal .wpcf7-form > p,
.tv2-modal .wpcf7-form .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  margin-bottom: 14px !important;
}

/* K�ik sisestusv�ljad � t��tab nii custom HTML-ga kui CF7 vaikimisi p-struktuuriga */
.tv2-modal .tv2-cf7-field input[type="text"],
.tv2-modal .tv2-cf7-field input[type="tel"],
.tv2-modal .tv2-cf7-field input[type="email"],
.tv2-modal .tv2-cf7-field select,
.tv2-modal .tv2-cf7-field textarea,
.tv2-modal .wpcf7-form input[type="text"],
.tv2-modal .wpcf7-form input[type="tel"],
.tv2-modal .wpcf7-form input[type="email"],
.tv2-modal .wpcf7-form select,
.tv2-modal .wpcf7-form textarea {
  width: 100% !important;
  background: var(--tv2-n50) !important;
  border: 1.5px solid var(--tv2-n200) !important;
  border-radius: 8px !important;
  padding: 11px 14px !important;
  font-size: 14px !important;
  font-family: inherit !important;
  color: var(--tv2-n900) !important;
  line-height: 1.5 !important;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}
.tv2-modal .tv2-cf7-field input:focus,
.tv2-modal .tv2-cf7-field select:focus,
.tv2-modal .tv2-cf7-field textarea:focus,
.tv2-modal .wpcf7-form input:focus,
.tv2-modal .wpcf7-form select:focus,
.tv2-modal .wpcf7-form textarea:focus {
  outline: none !important;
  border-color: var(--tv2-orange) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(232,93,4,0.12) !important;
}
.tv2-modal .tv2-cf7-field textarea,
.tv2-modal .wpcf7-form textarea {
  min-height: 110px !important;
  resize: vertical !important;
}

/* Veateated v�ljal */
.tv2-modal .wpcf7-not-valid {
  border-color: #e53e3e !important;
}
.tv2-modal .wpcf7-not-valid-tip {
  font-size: 11px !important;
  color: #e53e3e !important;
  margin-top: 4px !important;
  display: block !important;
}

/* Fail */
.tv2-modal .tv2-cf7-field input[type="file"],
.tv2-modal .wpcf7-form input[type="file"] {
  padding: 8px 12px !important;
  background: var(--tv2-n100) !important;
  border: 1.5px dashed var(--tv2-n200) !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-size: 13px !important;
  color: var(--tv2-n600) !important;
}
.tv2-cf7-hint {
  font-size: 11px;
  color: var(--tv2-n400);
  margin-top: 4px;
}

/* Saada p�ring nupp */
.tv2-modal .tv2-cf7-wrap .wpcf7-submit,
.tv2-modal .wpcf7-form .wpcf7-submit {
  display: block !important;
  width: 100% !important;
  background: var(--tv2-orange) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 14px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: inherit !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.15s !important;
  margin-top: 4px !important;
}
.tv2-modal .tv2-cf7-wrap .wpcf7-submit:hover,
.tv2-modal .wpcf7-form .wpcf7-submit:hover {
  background: var(--tv2-orange-l) !important;
  transform: translateY(-1px) !important;
}

/* Vastuse teade (edukas / viga) */
.tv2-modal .wpcf7-response-output {
  border-radius: 8px !important;
  padding: 12px 16px !important;
  font-size: 13px !important;
  margin-top: 12px !important;
  border: none !important;
}
.tv2-modal .wpcf7-mail-sent-ok {
  background: #f0fdf4 !important;
  color: #166534 !important;
  border-left: 3px solid #22c55e !important;
}
.tv2-modal .wpcf7-validation-errors,
.tv2-modal .wpcf7-mail-sent-ng {
  background: #fef2f2 !important;
  color: #991b1b !important;
  border-left: 3px solid #ef4444 !important;
}

/* ELEMENTORI YLEKIRJUTUSED */
.elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--tv2-max); }
.elementor-widget:not(:last-child) { margin-bottom: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
h1, h2, h3 { font-family: inherit; }

@media (max-width: 767px) {
  :root { --tv2-px: 14px; }
  .tv2-nav { display: none; }
  .tv2-hamburger { display: flex; }
  .tv2-topbar-left a span { display: contents; }
  .elementor-section > .elementor-container,
  .elementor-section.elementor-section-boxed > .elementor-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .elementor-column > .elementor-widget-wrap,
  .elementor-column-wrap { padding: 0 15px !important; }
  .tv2-section { padding: 48px 0; }
  .tv2-section-sm { padding: 40px 0; }
  .tv2-section-header { margin-bottom: 36px; }
  .tv2-cat-grid { grid-template-columns: 1fr; }
  .tv2-hero { padding: 64px 0; }
  .tv2-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .tv2-footer-col--logo { align-items: center; }
  .tv2-footer-svg-logo { max-width: 160px; }
  .tv2-modal { padding: 24px 16px; }
  .tv2-modal .tv2-cf7-row { flex-direction: column; gap: 12px; }
}

@media (max-width: 480px) {
  :root { --tv2-px: 12px; }
  .tv2-header-inner { padding: 8px var(--tv2-px); }
  .tv2-topbar { padding: 6px var(--tv2-px); }
  .tv2-contact-grid { grid-template-columns: 1fr; }
  .tv2-brands-grid { grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 16px 20px; }
  .tv2-brand-name { font-size: 13px; }
}

/* ============================================================
   PAGE.PHP + SINGLE-VARUOSA.PHP — lehtede vaikimisi mall
   ============================================================ */

.tv2-page-container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 var(--tv2-px);
}
.tv2-page-hero {
  background: var(--tv2-navy);
  padding: 64px 0 56px;
}
.tv2-page-hero .tv2-page-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.tv2-page-tag {
  display: inline-block;
  background: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.8);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: background 0.2s;
}
.tv2-page-tag:hover { background: rgba(255,255,255,0.2); color: #fff; }
.tv2-page-title {
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 900;
  color: var(--tv2-white);
  letter-spacing: -0.5px;
  line-height: 1.15;
  margin: 0 0 16px;
}
.tv2-page-subtitle {
  font-size: 17px;
  color: rgba(219,234,254,0.75);
  max-width: 640px;
  margin: 0;
  line-height: 1.6;
}
.tv2-page-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  background: var(--tv2-orange);
  color: #fff;
  border: none;
  border-radius: var(--tv2-radius);
  padding: 12px 24px;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s;
}
.tv2-page-cta:hover { background: var(--tv2-orange-l); transform: translateY(-1px); }
.tv2-page-body {
  background: var(--tv2-white);
  padding: 72px 0 64px;
}
.tv2-page-thumb {
  margin-bottom: 48px;
  border-radius: 12px;
  overflow: hidden;
  max-width: 680px;
}
.tv2-page-thumb-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}
.tv2-varuosa-grid {
  display: grid;
  gap: 48px;
  align-items: start;
}
@media (min-width: 768px) {
  .tv2-varuosa-grid { grid-template-columns: 420px 1fr; }
  .tv2-varuosa-grid .tv2-page-thumb { margin-bottom: 0; position: sticky; top: 100px; max-width: 100%; }
}
.tv2-prose { font-size: 16px; line-height: 1.8; color: var(--tv2-n700); }
.tv2-prose h2 { font-size: clamp(20px, 2.5vw, 26px); font-weight: 800; color: var(--tv2-n900); margin: 40px 0 14px; letter-spacing: -0.3px; }
.tv2-prose h3 { font-size: clamp(17px, 2vw, 20px); font-weight: 700; color: var(--tv2-n900); margin: 32px 0 10px; }
.tv2-prose p { margin: 0 0 18px; }
.tv2-prose p:last-child { margin-bottom: 0; }
.tv2-prose ul, .tv2-prose ol { padding-left: 22px; margin: 0 0 18px; }
.tv2-prose li { margin-bottom: 8px; }
.tv2-prose a { color: var(--tv2-orange); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tv2-prose a:hover { color: var(--tv2-orange-l); }
.tv2-prose strong { color: var(--tv2-n900); font-weight: 700; }
.tv2-prose blockquote {
  border-left: 3px solid var(--tv2-orange);
  padding: 12px 20px;
  margin: 24px 0;
  background: var(--tv2-n50);
  border-radius: 0 8px 8px 0;
  color: var(--tv2-n700);
  font-style: italic;
}
.tv2-prose hr { border: none; border-top: 1px solid var(--tv2-n200); margin: 40px 0; }
.tv2-prose table { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 24px; }
.tv2-prose th { background: var(--tv2-n100); font-weight: 700; text-align: left; padding: 10px 14px; border: 1px solid var(--tv2-n200); color: var(--tv2-n900); }
.tv2-prose td { padding: 10px 14px; border: 1px solid var(--tv2-n200); vertical-align: top; }
.tv2-prose tr:nth-child(even) td { background: var(--tv2-n50); }
/* Pikk kirjeldus + sildid + CTA — eraldi täislaiuseline sektsioon */
.tv2-varuosa-long-section {
  background: var(--tv2-white);
  border-top: 1px solid var(--tv2-n200);
  padding: 56px 0 80px;
}
.tv2-prose-long-desc {
  /* pärib .tv2-prose stiilidest — ei vaja eraldi font-size/line-height */
}
.tv2-prose-long-desc h2 { font-size: clamp(20px, 2.5vw, 26px); font-weight: 800; color: var(--tv2-n900); margin: 0 0 16px; letter-spacing: -0.3px; }
.tv2-prose-long-desc h2:not(:first-child) { margin-top: 40px; }
.tv2-prose-long-desc h3 { font-size: clamp(17px, 2vw, 20px); font-weight: 700; color: var(--tv2-n900); margin: 32px 0 10px; }
.tv2-prose-long-desc p  { margin: 0 0 18px; }
.tv2-prose-long-desc p:last-child { margin-bottom: 0; }
.tv2-prose-long-desc ul,
.tv2-prose-long-desc ol { padding-left: 22px; margin: 0 0 18px; }
.tv2-prose-long-desc li { margin-bottom: 8px; }
.tv2-prose-long-desc a  { color: var(--tv2-orange); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tv2-prose-long-desc a:hover { color: var(--tv2-orange-l); }
.tv2-prose-long-desc strong { color: var(--tv2-n900); font-weight: 700; }
.tv2-prose-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--tv2-n200); font-size: 13px; color: var(--tv2-n600); }
.tv2-prose-cta-wrap { margin-top: 40px; }
@media (max-width: 767px) {
  .tv2-varuosa-long-section { padding: 40px 0 56px; }
}
.tv2-page-back-wrap { background: var(--tv2-n50); border-top: 1px solid var(--tv2-n200); padding: 20px 0; }
.tv2-page-back { font-size: 14px; font-weight: 600; color: var(--tv2-n600); transition: color 0.2s; }
.tv2-page-back:hover { color: var(--tv2-orange); }
@media (max-width: 767px) {
  .tv2-page-hero { padding: 48px 0 40px; }
  .tv2-page-body { padding: 48px 0 48px; }
  .tv2-page-thumb { max-width: 100%; }
  .tv2-prose { font-size: 15px; }
}


/* Varuosa lehe kontaktsektsioon */
.tv2-varuosa-contact {
  background: var(--tv2-white);
  padding: 0 0 80px;
}
/* Border 1140px konteineri sees, mitte full-width */
.tv2-varuosa-contact > .tv2-page-container {
  border-top: 1px solid var(--tv2-n200);
  padding-top: 72px;
}
.tv2-varuosa-contact-grid {
  display: grid;
  gap: 24px;
}
@media (min-width: 600px) {
  .tv2-varuosa-contact-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .tv2-varuosa-contact { padding: 48px 0 56px; }
}

/* ============================================================
   ARCHIVE-VARUOSA.PHP — varuosade arhiivileht
   ============================================================ */

/* Hero — 2-column: text left, CTA right */
.tv2-arc-hero-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
}
.tv2-arc-hero-text { flex: 1; }
.tv2-arc-hero-cta { flex-shrink: 0; }

.tv2-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
}
.tv2-arc-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--tv2-n200);
  border-radius: 12px;
  overflow: hidden;
  background: var(--tv2-white);
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.25s, transform 0.2s;
}
.tv2-arc-card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.1);
  transform: translateY(-3px);
}
.tv2-arc-img {
  height: 220px;
  overflow: hidden;
  background: var(--tv2-n100);
  position: relative;
}
.tv2-arc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.tv2-arc-card:hover .tv2-arc-img img { transform: scale(1.05); }
.tv2-arc-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.06);
  transition: opacity 0.3s;
}
.tv2-arc-card:hover .tv2-arc-img::after { opacity: 0; }
.tv2-arc-img-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--tv2-n200) 0%, var(--tv2-n100) 100%);
}
.tv2-arc-body {
  padding: 20px 24px 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.tv2-arc-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--tv2-n900);
  margin: 0;
  line-height: 1.3;
  transition: color 0.2s;
}
.tv2-arc-card:hover .tv2-arc-title { color: var(--tv2-orange); }
.tv2-arc-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 700;
  color: var(--tv2-orange);
}
.tv2-arc-link svg { transition: transform 0.2s; }
.tv2-arc-card:hover .tv2-arc-link svg { transform: translateX(4px); }
.tv2-pagination {
  margin-top: 56px;
  display: flex;
  justify-content: center;
}
.tv2-pagination .nav-links { display: flex; gap: 8px; align-items: center; }
.tv2-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--tv2-n700);
  border: 1px solid var(--tv2-n200);
  background: var(--tv2-white);
  text-decoration: none;
  transition: all 0.2s;
}
.tv2-pagination .page-numbers:hover { border-color: var(--tv2-orange); color: var(--tv2-orange); }
.tv2-pagination .page-numbers.current { background: var(--tv2-orange); color: #fff; border-color: var(--tv2-orange); }
@media (max-width: 600px) {
  .tv2-archive-grid { grid-template-columns: 1fr; }
  .tv2-arc-img { height: 200px; }
  .tv2-arc-hero-inner { flex-direction: column; align-items: flex-start; }
}

.tv2-upload-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.tv2-upload-thumb {
  position: relative;
  width: 90px;
  height: 90px;
  border: 1px solid #ddd;
  border-radius: 6px;
  overflow: hidden;
  background: #fafafa;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tv2-upload-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tv2-upload-filelabel {
  font-size: 11px;
  padding: 4px;
  text-align: center;
  word-break: break-all;
}

.tv2-upload-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 20px;
  height: 20px;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 14px;
  line-height: 20px;
  cursor: pointer;
  padding: 0;
}
