/* KorallTT — палитра + утилиты. Базой остаётся Bootstrap 5, тут только наши слои. */
:root {
  --kt-brand: #0a3d62;
  --kt-brand-2: #1e6091;
  --kt-accent: #e67e22;
  --kt-accent-dark: #b35d0a;
  --kt-ink: #1a2633;
  --kt-muted: #5b6b79;
  --kt-surface: #ffffff;
  --kt-soft: #f5f7fa;
  --kt-border: #e4e8ee;
}

html, body { height: 100%; }
body {
  background: var(--kt-soft);
  color: var(--kt-ink);
  font-feature-settings: 'liga', 'kern';
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter,
    'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
}

/* Navbar */
.kt-nav {
  background: var(--kt-brand);
  color: #fff;
}
.kt-nav .nav-link, .kt-nav .navbar-brand { color: #f1f5fa !important; }
.kt-nav .navbar-brand { font-weight: 700; letter-spacing: .02em; }
.kt-nav .navbar-toggler {
  border-color: rgba(255, 255, 255, .55);
  padding: .35rem .55rem;
}
.kt-nav .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .25); }
.kt-nav .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23ffffff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.kt-brand-logo {
  display: inline-flex; align-items: center; gap: .55rem; text-decoration: none;
  color: #fff; font-weight: 700; font-size: 1.2rem;
}
.kt-brand-logo span.dot {
  width: 10px; height: 10px; border-radius: 50%; background: var(--kt-accent);
  display: inline-block;
}

/* Category sidebar */
.kt-side .list-group-item { border-color: var(--kt-border); }
.kt-side .list-group-item.active {
  background: var(--kt-brand); border-color: var(--kt-brand); color: #fff;
}
.kt-side .category-sub {
  padding-left: 28px; font-size: .93em; color: var(--kt-muted);
}
.kt-side .category-sub::before { content: '↳ '; color: var(--kt-muted); }

/* Product cards */
.product-card {
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: 12px;
  overflow: hidden;
  height: 100%;
  display: flex; flex-direction: column;
  transition: transform .18s ease, box-shadow .18s ease;
}
.product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(10,61,98,.10);
}
.product-img-wrap {
  aspect-ratio: 4/3;
  background: #fafbfd;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.product-img-wrap img {
  width: 100%; height: 100%; object-fit: contain; padding: 10px;
}
.product-img-placeholder {
  color: var(--kt-muted); font-size: .9rem;
}
.product-brand { color: var(--kt-muted); font-size: .85rem; margin: 0; }
.product-name { font-size: 1rem; font-weight: 600; line-height: 1.3; min-height: 2.6em; }
.product-price { color: var(--kt-ink); font-weight: 700; font-size: 1.2rem; }
.product-price small { color: var(--kt-muted); font-weight: 400; font-size: .75rem; }

/* Buttons */
.btn-brand {
  background: var(--kt-brand); color: #fff; border: 0;
}
.btn-brand:hover { background: var(--kt-brand-2); color: #fff; }
.btn-accent {
  background: var(--kt-accent); color: #fff; border: 0;
}
.btn-accent:hover { background: var(--kt-accent-dark); color: #fff; }
.btn-outline-brand {
  border: 1px solid var(--kt-brand); color: var(--kt-brand); background: transparent;
}
.btn-outline-brand:hover { background: var(--kt-brand); color: #fff; }

/* Forms */
.form-control:focus, .form-select:focus {
  border-color: var(--kt-brand);
  box-shadow: 0 0 0 .2rem rgba(10,61,98,.15);
}

/* Category page header */
.kt-page-title { font-weight: 700; color: var(--kt-ink); letter-spacing: -.01em; }
.kt-filters {
  background: #fff; border: 1px solid var(--kt-border);
  border-radius: 10px; padding: .75rem 1rem;
}

/* Stock badge */
.kt-stock-badge {
  display: inline-block;
  font-size: .85rem;
  font-weight: 600;
  padding: .2rem .55rem;
  border-radius: 6px;
  background: var(--kt-soft);
  color: var(--kt-muted);
}
.kt-stock-badge.in-stock {
  background: #e6f3ec;
  color: #1d6b3d;
}
.kt-stock-badge.out-of-stock {
  background: #fde8e8;
  color: #9b1c1c;
}

/* Cart */
.kt-cart-qty {
  display: inline-flex; align-items: stretch; border: 1px solid var(--kt-border);
  border-radius: 8px; overflow: hidden;
}
.kt-cart-qty input {
  width: 52px; text-align: center; border: 0; outline: none;
}
.kt-cart-qty button {
  background: #fff; border: 0; color: var(--kt-ink); padding: 0 .65rem;
}
.kt-cart-qty button:hover { background: var(--kt-soft); }

/* Footer */
.kt-footer {
  background: #0a2942;
  color: #c6d4e2;
  padding: 2rem 0 1.5rem;
  margin-top: 3rem;
}
.kt-footer a { color: #eaf1f7; text-decoration: none; }
.kt-footer a:hover { text-decoration: underline; }

/* Cookie banner */
.kt-cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1080;
  background: #0a2942; color: #eaf1f7;
  padding: .85rem 0; box-shadow: 0 -2px 12px rgba(0,0,0,.18);
}
.kt-cookie-banner a { color: var(--kt-accent); text-decoration: underline; }

/* Legal documents */
.legal-doc h2 { color: var(--kt-brand); }
.legal-doc p, .legal-doc li { line-height: 1.55; }
.legal-doc table { font-size: .94em; }

/* Responsive tweaks */
@media (max-width: 767.98px) {
  .product-name { min-height: auto; }
  .kt-side { display: none; }
  .kt-side.mobile-open { display: block; }
  .kt-cookie-banner .container { gap: .6rem; }
  .kt-cookie-banner p { font-size: .82em; }
}
