:root{--bg:#ffffff;--text:#1a1a1a;--muted:#6b7280;--brand:#0ea5e9;--brand-700:#0369a1;--cta:#10b981;--cta-700:#047857;--border:#e5e7eb;--card:#f9fafb;--radius:12px;--shadow:0 10px 30px rgba(2,8,23,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica,Arial;color:var(--text);background:var(--bg)}
.container{max-width:1200px;margin:0 auto;padding:0 20px}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
.topbar{background:var(--card);border-bottom:1px solid var(--border);font-size:14px;color:var(--muted)}
.topbar .container{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:8px 20px}
.header{position:sticky;top:0;background:rgba(255,255,255,.8);backdrop-filter:saturate(180%) blur(6px);z-index:50;border-bottom:1px solid var(--border)}
.header .container{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}.logo{font-weight:800;font-size:20px;letter-spacing:.4px;color:var(--text)}
nav ul{display:flex;gap:16px;list-style:none;padding:0;margin:0}nav a{padding:10px 12px;border-radius:8px}nav a:hover{background:var(--card);text-decoration:none}
.search{display:flex;gap:8px;align-items:center}.search input{padding:10px 12px;border:1px solid var(--border);border-radius:10px;min-width:260px}.search button{padding:10px 14px;border:0;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer}.search button:hover{background:var(--brand-700)}
.hero{background:linear-gradient(180deg,#eff6ff 0,#fff 100%);border-bottom:1px solid var(--border)}.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;padding:40px 0}
.hero h1{font-size:34px;line-height:1.2;margin:.2rem 0 1rem}.hero p{color:var(--muted);margin:0 0 1rem}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 0}.badge{background:#e0f2fe;color:#075985;border-radius:9999px;padding:6px 10px;font-weight:600;font-size:12px}
.cta{display:flex;gap:12px;margin-top:16px}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border-radius:12px;border:1px solid var(--border);cursor:pointer;font-weight:700}
.btn-primary{background:var(--cta);border-color:transparent;color:#fff}.btn-primary:hover{background:var(--cta-700)}.btn-outline{background:#fff}.btn-outline:hover{background:var(--card)}
.grid{display:grid;gap:20px}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.card .pad{padding:14px}.card h3{margin:.2rem 0 .6rem;font-size:18px}.meta{color:var(--muted);font-size:14px}
.product-img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef2ff;display:block}.price{font-size:18px;font-weight:800}.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}.product-gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px}.product-gallery img{width:100%;border-radius:10px;border:1px solid var(--border);object-fit:cover;aspect-ratio:4/3}
.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--border);padding:10px 8px;text-align:left}.table th{color:var(--muted);font-weight:600}
.footer{border-top:1px solid var(--border);padding:30px 0;margin-top:40px;background:#fafafa;color:#4b5563}.footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px}
.footer .logo{font-weight:800;margin-bottom:8px}.footer a{color:inherit}.copy{font-size:13px;color:#6b7280;margin-top:14px}
.notice{padding:12px;border:1px solid var(--border);background:#fff8eb;border-radius:12px}
.alert{border-radius:10px;padding:10px 12px}.alert-success{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.breadcrumbs{font-size:14px;color:var(--muted);margin:10px 0}.breadcrumbs a{color:var(--muted)}
.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);padding:10px 6px;text-align:left;font-size:14px}
.admin-nav{display:flex;gap:12px;margin:14px 0}.admin-nav a{padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:10px}
.login-box{max-width:360px;margin:60px auto;padding:24px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}
.form-grid{display:grid;gap:12px}.form-grid label{font-weight:600;font-size:14px}
.form-grid input[type="text"],.form-grid input[type="number"],.form-grid input[type="password"],.form-grid textarea,.form-grid select{padding:10px;border:1px solid var(--border);border-radius:10px;width:100%}
.form-grid textarea{min-height:110px}.form-actions{display:flex;gap:10px;justify-content:flex-end}
.tag{display:inline-block;padding:4px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--muted)}.tags{display:flex;gap:6px;flex-wrap:wrap}
/* ====== v3: Navigation dropdown & category pills ====== */

/* Header dropdown */
.header nav ul{display:flex;gap:16px;list-style:none;padding:0;margin:0;align-items:center}
.header .dropdown{position:relative}
.header .dropdown .nav-link{background:transparent;border:0;cursor:pointer;padding:10px 12px;border-radius:8px;font:inherit;color:var(--brand);}
.header .dropdown .nav-link:hover{background:var(--card);text-decoration:none}
.header .dropdown .dropdown-menu{
  position:absolute; top:calc(100% + 8px); left:0;
  background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow);
  width:min(640px, 92vw); padding:8px; display:none;
}
.header .dropdown.open .dropdown-menu{display:block}
.dropdown-list{display:grid; grid-template-columns:1fr 1fr; gap:4px}
@media (max-width: 640px){ .dropdown-list{grid-template-columns:1fr} }
.dropdown-item{display:block; padding:10px 12px; border-radius:10px; color:var(--text);}
.dropdown-item:hover{background:var(--card); text-decoration:none;}

/* Category Pills bar */
.cat-wrap{margin:14px 0 24px}
.cat-scroll{
  display:flex; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:10px 2px;
  border:1px solid var(--border); background:#fff; border-radius:12px;
}
.cat-scroll::-webkit-scrollbar{height:10px}
.cat-scroll::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:999px}
.cat-pill{
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  padding:8px 12px; border:1px solid var(--border); border-radius:999px; background:var(--card);
  font-weight:700; font-size:14px; color:#0f172a; box-shadow:var(--shadow);
}
.cat-pill .cat-pill-count{font-weight:700; font-size:12px; color:#0f172a; background:#e2e8f0; padding:2px 8px; border-radius:999px}
.cat-pill:hover{background:#fff; text-decoration:none}
.cat-pill.is-active{background:#e0f2fe; border-color:#bae6fd}
@media (max-width: 640px){ .cat-pill{font-size:13px; padding:8px 10px} }

/* Utility */
.hide-on-mobile{display:block} @media (max-width: 768px){ .hide-on-mobile{display:none} }
.show-on-mobile{display:none} @media (max-width: 768px){ .show-on-mobile{display:block} }
/* ===== v4: Product page enhancements (gallery, advantages, video, FAQ, reviews) ===== */

.product-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width: 900px){ .product-layout{grid-template-columns:1fr} }

/* Interactive gallery */
.gallery{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px}
.gallery-main{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#f8fafc;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3}
.gallery-main img{max-width:100%;max-height:100%;display:block;cursor:zoom-in}
.gallery-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px}
.thumb{flex:0 0 auto;border:1px solid var(--border);border-radius:8px;overflow:hidden;width:88px;height:66px;background:#fff;cursor:pointer;opacity:.8}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb:focus{outline:2px solid #93c5fd;outline-offset:2px}
.thumb.active{border-color:#60a5fa;opacity:1}

/* Lightbox */
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.84); display:none; align-items:center; justify-content:center; z-index:200}
.lightbox.open{display:flex}
.lightbox-inner{position:relative; max-width:94vw; max-height:90vh}
.lightbox-img{max-width:100%; max-height:90vh; display:block; cursor:zoom-in}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; top:10px; background:rgba(255,255,255,.9);
  border:0; border-radius:10px; padding:10px 12px; cursor:pointer; font-weight:700;
}
.lightbox-close{right:10px}
.lightbox-prev{left:10px; top:calc(50% - 20px)}
.lightbox-next{right:10px; top:calc(50% - 20px)}
@media (max-width: 600px){
  .lightbox-prev, .lightbox-next{top:unset; bottom:12px}
}

/* Zoom state */
.lightbox.zoomed .lightbox-img{cursor:zoom-out; transform:scale(1.7); transform-origin:var(--zx,50%) var(--zy,50%); transition:transform .05s}

/* Advantages (Key Benefits) */
.adv{margin-top:24px}
.adv h3{margin-bottom:12px}
.adv-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
@media (max-width: 1024px){ .adv-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width: 560px){ .adv-grid{grid-template-columns:1fr} }
.adv-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--shadow)}
.adv-card .title{font-weight:800;margin:0 0 6px}
.adv-card .desc{color:var(--muted);font-size:14px;margin:0}

/* Demo video */
.demo{margin-top:26px}
.demo .box{background:#fff;border:1px dashed #dbeafe;border-radius:12px;padding:10px}
.demo .video-wrap{position:relative;aspect-ratio:16/9;background:#f8fafc;border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.demo .video-wrap iframe,.demo .video-wrap video{width:100%;height:100%;display:block;border:0}
.demo .play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.demo .play-overlay .dot{width:60px;height:60px;border-radius:50%;background:#0ea5e9;opacity:.85;display:flex;align-items:center;justify-content:center}
.demo .play-overlay .dot:after{content:'';display:block;border-style:solid;border-width:12px 0 12px 18px;border-color:transparent transparent transparent #fff;margin-left:4px}

/* FAQ Accordion */
.faq{margin-top:26px}
.faq details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.faq summary{font-weight:700;cursor:pointer;outline:none}
.faq p{margin:.5rem 0 0;color:#374151}

/* Testimonials */
.reviews{margin-top:26px}
.reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width: 800px){ .reviews-grid{grid-template-columns:1fr} }
.review-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--shadow)}
.stars{color:#f59e0b;font-size:14px}
.reviewer{font-weight:700;margin-top:8px}


/* === Mobile Menu v3 - Hierarchical Navigation === */

/* Hide desktop nav and search on mobile */
@media (max-width: 900px) {
  .header nav, .header .search { display: none; }
}

/* Mobile hamburger button */
.menu-toggle {
  display: none;
  background: transparent;
  border: 0;
  font-size: 28px;
  line-height: 1;
  padding: 8px;
  margin-left: auto;
  cursor: pointer;
}

@media (max-width: 900px) {
  .menu-toggle { display: block; }
}

/* Mobile menu backdrop */
.menu-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  z-index: 90;
}

/* Mobile menu drawer */
.mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100%);
  background: #fff;
  border-left: 1px solid var(--border);
  transform: translateX(100%);
  transition: transform 0.25s ease;
  z-index: 100;
  display: flex;
  flex-direction: column;
  padding: 16px;
  overflow-y: auto;
}

/* Mobile menu header */
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 12px;
}

.mobile-brand {
  font-weight: 800;
  font-size: 18px;
}

.menu-close {
  background: transparent;
  border: 0;
  font-size: 28px;
  line-height: 1;
  padding: 6px;
  cursor: pointer;
}

/* Menu open states */
body.menu-open .menu-backdrop {
  opacity: 1;
  pointer-events: auto;
}

body.menu-open .mobile-menu {
  transform: translateX(0);
}

body.menu-open {
  overflow: hidden;
}

/* Mobile navigation */
.mobile-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mobile-nav a {
  display: block;
  padding: 14px 12px;
  border-radius: 10px;
  background: var(--card);
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.mobile-nav a:hover {
  background: #f0f4f8;
  text-decoration: none;
}

/* Categories section with toggle */
.mobile-categories {
  position: relative;
}

.category-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 12px;
  border-radius: 10px;
  background: var(--card);
  color: var(--text);
  border: 0;
  font-weight: 600;
  font-size: 16px;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.category-toggle:hover {
  background: #f0f4f8;
}

.toggle-icon {
  font-size: 12px;
  transition: transform 0.2s ease;
  color: var(--muted);
}

.category-toggle[aria-expanded="true"] .toggle-icon {
  transform: rotate(180deg);
}

/* Category submenu */
.category-submenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  margin-top: 4px;
}

.category-submenu.open {
  max-height: 500px; /* Adjust based on your category count */
}

.category-item {
  display: block;
  padding: 10px 20px;
  border-radius: 8px;
  background: #f8fafc;
  color: var(--text);
  text-decoration: none;
  font-weight: 500;
  font-size: 14px;
  margin-bottom: 2px;
  border-left: 3px solid transparent;
  transition: all 0.2s ease;
}

.category-item:hover {
  background: #e2e8f0;
  border-left-color: var(--brand);
  text-decoration: none;
}

/* Mobile search at bottom */
.mobile-search {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.mobile-search input {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-bottom: 8px;
}

.mobile-search button {
  width: 100%;
  padding: 12px;
  background: var(--brand);
  color: #fff;
  border: 0;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
}

.mobile-search button:hover {
  background: var(--brand-700);
}

/* Responsive adjustments */
@media (max-width: 420px) {
  .mobile-menu {
    width: 80%;
  }
}

/* Keep existing utility classes */
img, video {
  max-width: 100%;
  height: auto;
}

/* Search: full width on mobile */
@media (max-width: 900px) {
  .search { width: 100%; }
  .search input { min-width: 0; width: 100%; }
}

/* Hero stacks */
@media (max-width: 900px) {
  .hero .wrap { grid-template-columns: 1fr; padding: 20px 0; }
  .hero h1 { font-size: clamp(24px, 6vw, 32px); }
}

/* Footer stacks */
@media (max-width: 900px) {
  .footer .cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .footer .cols { grid-template-columns: 1fr; }
}

/* Topbar wraps */
@media (max-width: 600px) {
  .topbar .container { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* Container width fixes */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

:root {
  --drawer-w: 86vw;
}

@media (max-width: 900px) {
  .header, .topbar, main, footer, .container, .wrap, .row {
    max-width: 100%;
    overflow-x: clip;
  }
}

/* Desktop container restore */
:root {
  --container-max: 1200px;
}

@media (min-width: 901px) {
  .container, .wrap, .row {
    max-width: var(--container-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow-x: visible;
  }
}

/* --- Contact page: mobile-friendly layout --- */

/* 1) Make any .grid-2 sections stack on phones */
@media (max-width: 900px) {
  .grid-2 { 
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

/* 2) Nice spacing for contact blocks/cards on small screens */
@media (max-width: 900px) {
  .contact .card,
  .contact .box,
  .contact .notice {
    padding: 14px !important;
  }
  .contact h1,
  .contact h2,
  .contact h3 { 
    line-height: 1.25;
    margin: 0 0 12px;
  }
}

/* 3) Form: larger tap targets & clear stacking */
.contact .form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.contact .form-grid label {
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
  display: block;
}
.contact .form-grid input[type="text"],
.contact .form-grid input[type="email"],
.contact .form-grid input[type="tel"],
.contact .form-grid textarea,
.contact .form-grid select {
  width: 100%;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
}
.contact .form-grid textarea {
  min-height: 140px;
}

/* 4) Submit button: full width on phones */
@media (max-width: 900px) {
  .contact .form-actions {
    display: grid;
  }
  .contact .form-actions button,
  .contact .form-actions .btn {
    width: 100%;
  }
}

/* 5) Map block: responsive */
.contact .contact-map iframe,
.contact iframe[loading="lazy"] {
  width: 100% !important;
  height: 280px;
  border: 0;
  border-radius: 12px;
}

/* 6) Ensure the contact section doesn't hide under sticky header when linked */
#kontakt, #contact { scroll-margin-top: 96px; }
@media (max-width: 900px) {
  #kontakt, #contact { scroll-margin-top: 120px; }
}
