/* ============================================================
   Talveris Group - Custom Theme v2
   Color palette:
     --tg-slate    #1E293B  (primary - deep slate)
     --tg-emerald  #059669  (secondary - emerald green)
     --tg-coral    #F97316  (accent - coral orange)
     --tg-cloud    #F8FAFC  (background - cloud white)
     --tg-ink      #0F172A  (text - near black)
   ============================================================ */

:root {
  --tg-slate:   #1E293B;
  --tg-emerald: #059669;
  --tg-coral:   #F97316;
  --tg-cloud:   #F8FAFC;
  --tg-ink:     #0F172A;
  --tg-muted:   #64748B;
  --tg-border:  #E2E8F0;
}

body {
  font-family: 'Segoe UI', 'Open Sans', -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
  color: var(--tg-ink);
  background-color: var(--tg-cloud);
  font-size: 14px;
  line-height: 1.6;
}
h1, h2, h3, h4, h5, h6 { color: var(--tg-ink); font-weight: 600; }
a { color: var(--tg-slate); }
a:hover { color: var(--tg-emerald); }

/* ---- Top bar ---- */
#top { background-color: #fff; border-bottom: 1px solid var(--tg-border); }
#top a, #top .nav>.list-inline .list-inline-item>a { color: var(--tg-muted) !important; }
#top a:hover { color: var(--tg-emerald) !important; }

/* ---- Header / logo area ---- */
.header-wrap { background-color: #fff; border-bottom: 3px solid var(--tg-coral); padding: 1.25rem 0; }
#logo .brand-text { color: var(--tg-slate); }

/* ---- Search bar ---- */
#search .form-control { border: 1px solid var(--tg-border); }
#search .btn { background-color: var(--tg-slate); color: #fff; border-color: var(--tg-slate); }
#search .btn:hover { background-color: var(--tg-emerald); border-color: var(--tg-emerald); color: #fff; }

/* ---- Menu / navbar ---- */
.menu-wrap { background-color: var(--tg-slate); border-bottom: 3px solid var(--tg-coral); height: 50px; overflow: visible; }
#menu { background-color: transparent; min-height: 50px; height: 50px; padding: 0; }
#menu > .container,
#menu > .container > .collapse.navbar-collapse,
#menu > .container > .collapse.navbar-collapse > .navbar-nav {
  display: flex !important;
  align-items: stretch !important;
  width: 100%;
  height: 50px;
  margin: 0;
  padding: 0;
}
#menu .navbar-nav {
  display: flex !important;
  align-items: stretch !important;
  width: 100%;
  height: 50px;
  margin: 0;
  padding: 0;
}
#menu .navbar-nav > li {
  flex: 1 1 0 !important;
  display: flex !important;
  align-items: stretch !important;
  height: 50px;
  margin: 0;
  padding: 0;
  background-color: transparent;
  transition: background-color .15s ease;
}
#menu .navbar-nav > li > a {
  color: #fff !important;
  font-weight: 500;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 50px;
  padding: 0 8px;
  text-align: center;
  background-color: transparent;
  transition: background-color .15s ease;
}
#menu .navbar-nav > li:hover,
#menu .navbar-nav > li:focus,
#menu .navbar-nav > li:hover > a,
#menu .navbar-nav > li:focus > a { background-color: var(--tg-emerald) !important; color: #fff !important; }
#menu .navbar-nav > li.active > a { background-color: var(--tg-coral) !important; color: #fff !important; }
#menu #category { color: #fff; }
#menu .dropdown-inner a { color: var(--tg-ink) !important; }
#menu .dropdown-inner a:hover { background-color: var(--tg-cloud) !important; color: var(--tg-emerald) !important; }
#menu .see-all { background-color: var(--tg-cloud); color: var(--tg-slate) !important; }

/* ---- Buttons ---- */
.btn-primary { background-color: var(--tg-slate); border-color: var(--tg-slate); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--tg-emerald); border-color: var(--tg-emerald); }
.btn-default { border: 1px solid var(--tg-border); background-color: #fff; color: var(--tg-ink); }
.btn-default:hover { color: var(--tg-emerald); border-color: var(--tg-emerald); background-color: #fff; }

/* ---- Product card ---- */
.product-thumb {
  border: 1px solid var(--tg-border);
  background-color: #fff;
  border-radius: 10px;
  overflow: hidden;
  transition: all .25s ease;
  height: 100%;
}
.product-thumb:hover {
  box-shadow: 0 12px 28px rgba(5,150,105,.14);
  transform: translateY(-2px);
  border-color: var(--tg-emerald);
}
.product-thumb h4 .p-name { color: var(--tg-ink) !important; }
.product-thumb .button-group button { background-color: var(--tg-slate); }
.product-thumb .button-group button:hover { background-color: var(--tg-coral); color: #fff; }
.product-thumb .image { background-color: #fff; }

/* ---- Prices ---- */
.price { color: var(--tg-ink); }
.price-new { color: #B91C1C; font-weight: 700; }
.price-old { color: var(--tg-muted); }

/* ---- Breadcrumb ---- */
.breadcrumb { background-color: transparent; }
.breadcrumb > li.breadcrumb-item > a { color: var(--tg-muted); }
.breadcrumb > li.breadcrumb-item > a:hover { color: var(--tg-emerald); }
.breadcrumb > li.breadcrumb-item.active { color: var(--tg-ink); }

/* ---- Footer ---- */
footer { background-color: #0F172A !important; color: #cbd5e1 !important; padding: 50px 0 0 !important; border-top: 4px solid var(--tg-coral) !important; }
footer h5 { color: #fff !important; font-size: 16px !important; margin-bottom: 22px !important; }
footer h5::after { border-bottom: 1px solid rgba(255,255,255,.15) !important; }
footer ul.list-unstyled li a { color: #cbd5e1 !important; font-size: 14px !important; transition: color .2s; }
footer ul.list-unstyled li a:hover { color: var(--tg-coral) !important; margin-left: 6px; }
footer ul.list-unstyled li::before { color: var(--tg-coral) !important; }
footer a { color: #cbd5e1; }
footer a:hover { color: var(--tg-coral); }

.tg-footer-nap {
  background-color: #0B1120;
  color: #94a3b8;
  padding: 22px 0;
  font-size: 13px;
  margin-top: 40px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.tg-footer-nap a { color: #cbd5e1; }
.tg-footer-nap a:hover { color: var(--tg-coral); text-decoration: underline; }
.tg-footer-nap .tg-copy { color: #94a3b8; }

/* ---- Forms ---- */
.form-control:focus { border-color: var(--tg-emerald); box-shadow: 0 0 0 0.2rem rgba(5,150,105,.18); }

/* ---- Account / dashboard cards ---- */
.account-list .list-unstyled a { border-radius: 10px; border: 1px solid var(--tg-border); }
.account-list .list-unstyled a:hover { background: var(--tg-slate); border-color: var(--tg-slate); color: #fff; }

/* ---- Quantity buttons ---- */
.quantity-wrap .btn { background-color: var(--tg-cloud); border-color: var(--tg-border); }

/* ---- Alerts / toasts ---- */
.alert-success { background-color: #ECFDF5; border-color: #A7F3D0; color: #065F46; }
.alert-danger  { background-color: #FEF2F2; border-color: #FECACA; color: #991B1B; }
.alert-info    { background-color: #EFF6FF; border-color: #BFDBFE; color: #1E3A8A; }

/* ---- Carousel / slideshow (basic) ---- */
.swiper-pagination-bullet-active, .carousel-indicators .active { background-color: var(--tg-coral) !important; }

/* ---- Homepage module sections: even distribution ---- */
.tg-module-section {
  padding: 32px 0;
  margin-bottom: 0;
}
.tg-module-section + .tg-module-section {
  border-top: 1px solid var(--tg-border);
}
.tg-module-section .tg-module-title {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--tg-slate);
  margin-bottom: 24px;
  position: relative;
  padding-bottom: 12px;
}
.tg-module-section .tg-module-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: var(--tg-coral);
  border-radius: 2px;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.tg-module-section .row {
  --bs-gutter-x: 1.25rem;
  --bs-gutter-y: 1.5rem;
}
.tg-module-section .product-thumb {
  display: flex;
  flex-direction: column;
}
.tg-module-section .product-thumb > .caption {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
.tg-module-section .product-thumb .button-group {
  margin-top: auto;
}

/* Banner section: no border separator */
.tg-banner-section {
  padding: 0;
  margin-bottom: 0;
}
.tg-banner-section + .tg-module-section {
  border-top: 0;
  padding-top: 28px;
}

/* ---- Newsletter / contact ---- */
.tg-section-title { color: var(--tg-slate); border-left: 4px solid var(--tg-coral); padding-left: 12px; margin: 28px 0 18px; }

/* ---- Login / Register consent checkboxes ---- */
/* Both login and register sit inside fieldset panels now -> NO extra border/background, just spacing */
.tg-sms-consent {
  background: transparent;
  border: 0;
  padding: 6px 0 4px;
  margin: 0 0 1rem;
}
.tg-sms-consent .form-check-input { margin-top: 0.25rem; }

/* Login page sits inside .border rounded panel -> NO extra border/background, just spacing */
#account-login .form-check:has(#input-agree) {
  background: transparent;
  border: 0;
  padding: 6px 0 4px;
  margin: 0 0 4px;
}
#account-login .form-check:has(#input-agree) .form-check-input {
  margin-top: 0.2rem;
  margin-left: 0;
  flex-shrink: 0;
}
#account-login .form-check:has(#input-agree) .form-check-label {
  margin-left: 0.4rem;
  padding-left: 0;
  color: #333;
}
#account-login .form-check:has(#input-agree) a { color: var(--tg-slate); }
#account-login .form-check:has(#input-agree) a:hover { text-decoration: underline; }
.tg-sms-consent .form-check-label { color: #333; }
.tg-sms-consent a { color: var(--tg-slate); }
.tg-sms-consent a:hover { text-decoration: underline; }

#input-sms-consent,
#input-agree {
  width: 1.1em;
  height: 1.1em;
  border-color: var(--tg-slate);
  cursor: pointer;
}
#input-sms-consent:checked,
#input-agree:checked { background-color: var(--tg-slate); border-color: var(--tg-slate); }

/* Login: add a bit more breathing room inside the .border panel */
#account-login .border.rounded { padding: 1.25rem !important; }
#account-login .form-check:has(#input-agree) + .text-end { margin-top: 0.5rem; }

/* ---- Responsive: product grid even on small screens ---- */
@media (max-width: 575px) {
  .tg-module-section { padding: 24px 0; }
  .tg-module-section .tg-module-title { font-size: 1.25rem; }
}
