/*
 * Bionadoby.cz - Ecological & Modern Visual Theme
 * Organic bio-green accents, clean whitespace, compact header,
 * perfectly aligned footer newsletter form, and full mobile responsiveness.
 */

:root {
  --eco-green: #16a34a;
  --eco-green-dark: #15803d;
  --eco-green-deep: #14532d;
  --eco-green-light: #f0fdf4;
  --eco-green-border: #bbf7d0;
  --text-dark: #0f172a;
  --text-body: #1e293b;
  --text-muted: #334155;
  --bg-light: #f8fafc;
  --bg-card: #ffffff;
  --card-border: #e2e8f0;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.07);
  --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.08);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
}

/* Base resets & typography (+20% scaled) */
html, body {
  background-color: var(--bg-light) !important;
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 17px !important;
  color: var(--text-dark) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  max-width: 1140px !important;
  margin: 0 auto !important;
  background: #ffffff !important;
  box-shadow: 0 0 35px rgba(0, 0, 0, 0.03) !important;
  min-height: 100vh;
}

/* ==========================================================================
   Global Eco-Green Palette & Deprecation of Legacy Olive (Task #1975)
   ========================================================================== */
.green,
.olive,
.label.green,
.label.olive,
.priceBox .green,
.priceBox .olive,
.priceboxlblbold,
.statusprice,
.item .item_info .title,
a.olive,
span.olive,
div.olive {
  color: var(--eco-green-dark) !important;
}

/* Backgrounds using olive */
.button,
.parametersubmit,
.tobasket,
.sendbutton .tobasket,
.itmcountbox .tobasket,
.button.tobasket {
  background-color: var(--eco-green) !important;
  border-color: var(--eco-green-dark) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(22, 163, 74, 0.25) !important;
  transition: all 0.2s ease !important;
}

.button:hover,
.parametersubmit:hover,
.tobasket:hover,
.sendbutton .tobasket:hover,
.itmcountbox .tobasket:hover,
.button.tobasket:hover {
  background-color: var(--eco-green-dark) !important;
  border-color: var(--eco-green-deep) !important;
  box-shadow: 0 4px 12px rgba(21, 128, 61, 0.35) !important;
  transform: translateY(-1px);
}

/* Active navigation states */
.menuActive,
body .topmenu ul li a.menuActive {
  color: var(--eco-green-dark) !important;
  border-color: var(--eco-green) !important;
}

body .topmenu ul li a:hover {
  color: var(--eco-green-dark) !important;
}

/* Checkboxes and Radios */
input[type=checkbox]:not(old):checked + label > span:before {
  color: var(--eco-green) !important;
  text-shadow: 0 0 1pt var(--eco-green) !important;
}

input[type=radio]:not(old):checked + label > span > span {
  border: 1.5pt solid var(--eco-green) !important;
  background: var(--eco-green) !important;
  background-image: none !important;
}

input[type=radio]:not(old):checked + label {
  color: var(--eco-green-deep) !important;
}

/* Product detail price & VAT layout (Task #1981) */
.priceBox {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  float: none !important;
  width: 100% !important;
  margin: 0 0 10px 0 !important;
  gap: 2px !important;
}

.priceBox .label.lblprice,
.priceBox .label.lblprice.right {
  display: flex !important;
  flex-direction: row !important;
  align-items: baseline !important;
  justify-content: center !important;
  gap: 8px !important;
  float: none !important;
  height: auto !important;
  line-height: normal !important;
  margin: 0 !important;
  padding: 0 !important;
}

.priceBox .label.lblprice > span.label:first-child {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--text-dark, #0f172a) !important;
  height: auto !important;
  line-height: normal !important;
  padding: 0 !important;
  margin: 0 !important;
}

.priceBox .label.lblprice .label.xxbig.bold.green,
.priceBox .label.xxbig.bold.green {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 3px !important;
  color: var(--eco-green-dark, #15803d) !important;
  font-size: 34px !important;
  font-weight: 800 !important;
  letter-spacing: -0.5px !important;
  height: auto !important;
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.priceBox .label.xxbig.bold.green .currency {
  font-size: 24px !important;
  font-weight: 700 !important;
  color: var(--eco-green-dark, #15803d) !important;
}

.priceBox .label.spanBox,
.priceBox .label.spanBox.right {
  display: block !important;
  float: none !important;
  clear: both !important;
  height: auto !important;
  line-height: normal !important;
  padding: 0 !important;
  margin: 2px 0 0 0 !important;
  color: #64748b !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  text-align: center !important;
}

/* Buy quantity input on product detail */
.itmcountbox .field.itmcount {
  border: 1.5pt solid var(--card-border) !important;
  border-radius: var(--radius-sm) !important;
  text-align: center !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--text-dark) !important;
  padding: 6px !important;
  transition: border-color 0.2s ease !important;
}

.itmcountbox .field.itmcount:focus {
  border-color: var(--eco-green) !important;
  outline: none !important;
}

.itmcountbox .button.tobasket {
  border-radius: var(--radius-sm) !important;
  padding: 8px 18px !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: 0.2px !important;
}

/* Top Announcement Bar - Ecological Forest Green */
body .topinfobox {
  background: linear-gradient(90deg, var(--eco-green-deep) 0%, var(--eco-green-dark) 50%, var(--eco-green-deep) 100%) !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.2px !important;
  padding: 10px 16px !important;
  text-align: center !important;
  box-shadow: 0 2px 8px rgba(20, 83, 45, 0.2) !important;
}

body .topinfobox .topInfoBox {
  background-color: transparent !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-family: inherit !important;
  line-height: 1.3 !important;
}

body .topinfobox .topInfoBox::before,
body .topinfobox .topInfoBox::after {
  content: "🌿";
  font-size: 15px;
}

/* Top Meta Bar (Login & Cart) - Compact & Clean */
body .infobox {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding: 8px 24px !important;
  margin: 0 auto !important;
  width: 100% !important;
  max-width: 1140px !important;
  box-sizing: border-box !important;
  border-bottom: 1px solid #f1f5f9 !important;
  line-height: 1.3 !important;
  gap: 10px !important;
}

body .infobox .area,
body .infobox .space {
  display: none !important;
}

body .infobox .headeruserinfo {
  display: inline-flex !important;
  align-items: center !important;
  margin-right: 8px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  flex: 0 0 auto !important;
  width: auto !important;
}

body .infobox .user {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
}

body .infobox .user img {
  height: 18px !important;
  width: auto !important;
  margin-right: 6px !important;
  opacity: 0.75;
}

body .infobox .headeruserinfo a.login {
  color: var(--text-muted) !important;
  text-decoration: none !important;
  transition: color 0.15s ease;
}

body .infobox .headeruserinfo a.login:hover {
  color: var(--eco-green) !important;
}

body .infobox .basket,
body .infobox .basket_inactive {
  display: inline-flex !important;
  align-items: center !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  background: var(--eco-green-light) !important;
  padding: 6px 14px !important;
  border-radius: 9999px !important;
  border: 1px solid var(--eco-green-border) !important;
  transition: all 0.2s ease !important;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}

body .infobox .basket:hover,
body .infobox .basket_inactive:hover {
  border-color: var(--eco-green) !important;
  color: var(--eco-green-dark) !important;
}

body .infobox .basket img,
body .infobox .basket_inactive img {
  height: 17px !important;
  width: auto !important;
  margin-right: 6px !important;
}

body .infobox .basket .price,
body .infobox .basket_inactive .price {
  margin-left: 2px !important;
}

/* ==========================================================================
   Modern Header Navigation & Brand Identity (Option A / Epic 205)
   ========================================================================== */
.modern-header-wrap {
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 14px 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
}

.header-brand-block {
  flex: 0 1 auto !important;
  min-width: 0 !important;
}

.brand-anchor {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
  min-width: 0 !important;
}

.brand-logo-img {
  height: 46px !important;
  width: auto !important;
  object-fit: contain !important;
  flex-shrink: 0 !important;
}

.brand-text-group {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-width: 0 !important;
}

.brand-main-title {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: var(--text-dark, #0f172a) !important;
  letter-spacing: -0.4px !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}

.brand-main-subtitle {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--eco-green, #16a34a) !important;
  letter-spacing: 0.4px !important;
  text-transform: uppercase !important;
  margin-top: 2px !important;
  white-space: nowrap !important;
}

.header-middle-block {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  flex-shrink: 0 !important;
}

.header-phone-box {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}

.phone-ico {
  font-size: 15px !important;
  background: var(--eco-green-light, #f0fdf4) !important;
  width: 32px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  border: 1px solid rgba(22, 163, 74, 0.25) !important;
  flex-shrink: 0 !important;
}

.phone-texts {
  display: flex !important;
  flex-direction: column !important;
  white-space: nowrap !important;
}

.phone-num {
  font-size: 14px !important;
  font-weight: 800 !important;
  color: var(--text-dark, #0f172a) !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

.phone-num:hover {
  color: var(--eco-green, #16a34a) !important;
}

.phone-hint {
  font-size: 11px !important;
  color: var(--text-muted, #64748b) !important;
  white-space: nowrap !important;
  font-weight: 500 !important;
}

.header-usp-tag {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: #f8fafc !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  color: #475569 !important;
  white-space: nowrap !important;
}

.usp-dot {
  color: var(--eco-green, #16a34a) !important;
  font-weight: 800 !important;
}

.header-actions-block {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}

.action-login-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 10px !important;
  color: #475569 !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
}

.action-login-btn:hover {
  background: #f1f5f9 !important;
  color: var(--text-dark, #0f172a) !important;
}

.header-logged-user {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.header-logged-user a {
  color: var(--text-dark, #0f172a) !important;
  text-decoration: none !important;
}

.header-logged-user a:hover {
  color: var(--eco-green, #16a34a) !important;
}

.action-cart-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: var(--eco-green-light, #f0fdf4) !important;
  border: 1px solid var(--eco-green-border, #86efac) !important;
  padding: 6px 14px !important;
  border-radius: 9999px !important;
  color: var(--eco-green-dark, #15803d) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
  white-space: nowrap !important;
}

.action-cart-btn:hover {
  background: #dcfce7 !important;
  border-color: #4ade80 !important;
}

@media (max-width: 1160px) {
  .header-usp-tag {
    display: none !important;
  }
}

@media (max-width: 960px) {
  .header-middle-block {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .modern-header-wrap {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 10px 14px !important;
  }
  .brand-main-title {
    font-size: 20px !important;
  }
  .header-actions-block {
    width: 100% !important;
    justify-content: space-between !important;
  }
}

/* Header (Logo + Titles) - Compact Height (Legacy Fallback) */
body .headerbox {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 14px 24px !important;
  gap: 20px !important;
}

body .headerbox .logobox {
  flex-shrink: 0 !important;
}

body .headerbox .logobox img {
  height: 60px !important;
  width: auto !important;
  object-fit: contain !important;
}

body .headerbox .headerInfoContainer {
  flex: 1 !important;
  text-align: center !important;
}

body .headerbox .webname,
body .headerbox .headerInfoContainer h1.title,
body .headerbox .headerInfoContainer h1.title a.webname {
  margin: 0 0 2px 0 !important;
  font-size: 29px !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
  line-height: 1.2 !important;
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
  color: var(--text-dark) !important;
  text-decoration: none !important;
}

body .headerbox .headerInfoContainer .description {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--eco-green-dark) !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
}

/* Top Navigation Menu - Fresh Eco Style */
body .topmenu {
  background: #ffffff !important;
  border-top: 1px solid #f1f5f9 !important;
  border-bottom: 2px solid var(--eco-green) !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
}

body .topmenu ul.menulist {
  display: flex !important;
  justify-content: center !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 10px !important;
}

body .topmenu ul.menulist li.menulist {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .topmenu ul.menulist li.menulist a.menu {
  display: inline-block !important;
  padding: 11px 24px !important;
  font-size: 16.5px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  text-decoration: none !important;
  letter-spacing: 0.3px !important;
  border-bottom: 3px solid transparent !important;
  transition: all 0.2s ease !important;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  font-family: inherit !important;
}

body .topmenu ul.menulist li.menulist a.menu:hover {
  color: var(--eco-green-dark) !important;
  background: var(--eco-green-light) !important;
  border-bottom-color: var(--eco-green) !important;
}

/* Main Page Content Centering */
#body.usersection,
body .usersection {
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Hero Carousel / Banner - Centered */
body .image-carusel {
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-lg) !important;
  margin: 0 auto 28px auto !important;
  max-width: 860px !important;
  width: 100% !important;
  border: 1px solid var(--card-border) !important;
  position: relative !important;
  box-sizing: border-box !important;
  /* Legacy intro.css + inline style set padding-bottom % of the (wider) parent
     on top of the inner slide's own ratio -> gray strip under the image. */
  height: auto !important;
  padding: 0 !important;
  line-height: 0 !important; /* whitespace line box below the slide */
}

body .image-carusel .carusel.emuimage {
  background-size: cover !important;
  background-position: center !important;
}

body .image-carusel .carusel.emuimage .label {
  background: rgba(15, 23, 42, 0.85) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border-radius: var(--radius-md) !important;
  padding: 14px 20px !important;
  border-left: 4px solid var(--eco-green) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25) !important;
  line-height: 1.3 !important;
  width: auto !important;
  max-width: 55% !important;
}

body .image-carusel .carusel.emuimage .label .title {
  line-height: 1.25 !important; /* intro.css uses vw line-height -> differs per window width */
  font-size: 19px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  font-family: inherit !important;
}

body .image-carusel .carusel.emuimage .label .text {
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: #86efac !important;
  letter-spacing: 1px !important;
  font-family: inherit !important;
  margin-top: 3px !important;
  line-height: 1.3 !important;
}

/* <br> between title and text adds a full vw-sized line */
body .image-carusel .carusel.emuimage .label br {
  display: none !important;
}

/* Content Container - Perfect Centering */
body .content {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

body .content > div:not(.killfloat) {
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* Middle Content & Eco-Friendly Banner Headline */
body .content > div > p.red.big.center,
body .red.big.center,
p.red.big.center {
  color: var(--eco-green-dark) !important;
  font-size: clamp(24px, 4.5vw, 34px) !important;
  font-weight: 800 !important;
  text-align: center !important;
  letter-spacing: 0.8px !important;
  line-height: 1.35 !important;
  margin: 32px auto 18px auto !important;
  max-width: 860px !important;
  width: 100% !important;
  text-transform: uppercase !important;
  display: block !important;
  font-family: inherit !important;
  word-wrap: break-word !important;
  box-sizing: border-box !important;
}

/* No stars */
body .red.big.center::before,
body .red.big.center::after,
p.red.big.center::before,
p.red.big.center::after {
  content: "" !important;
  display: none !important;
}

/* Paragraph spacing & alignment */
p.textMiddleP {
  font-size: 17px !important;
  line-height: 1.75 !important;
  color: var(--text-body) !important;
  max-width: 860px !important;
  width: 100% !important;
  margin: 0 auto 16px auto !important;
  padding: 0 16px !important;
  text-align: left !important;
  font-family: inherit !important;
  box-sizing: border-box !important;
}

/* Video Player container */
body .content div[style*="padding-bottom: 62%"] {
  max-width: 860px !important;
  width: 100% !important;
  margin: 24px auto !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-lg) !important;
  box-sizing: border-box !important;
}

/* Products Section (120L & 240L) - Eco Product Cards */
body .imagemenu {
  width: 100% !important;
  max-width: 860px !important;
  margin: 36px auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

body .imagemenu ul.menulist {
  display: flex !important;
  flex-wrap: wrap !important; /* 380px cards in 860px container = 2 per row (zasnezky has 5 categories) */
  justify-content: center !important;
  gap: 28px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

body .imagemenu ul.menulist li.imagelist {
  flex: 0 1 380px !important;
  width: 100% !important;
  max-width: 380px !important;
  background: #ffffff !important;
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--card-border) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-md) !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  cursor: pointer !important;
  height: auto !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
}

body .imagemenu ul.menulist li.imagelist:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 28px rgba(20, 83, 45, 0.12), 0 4px 10px rgba(0, 0, 0, 0.05) !important;
  border-color: var(--eco-green-border) !important;
}

body .imagemenu ul.menulist li.imagelist a.card-link-wrap {
  display: flex !important;
  flex-direction: column !important;
  text-decoration: none !important;
  color: inherit !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

body .imagemenu ul.menulist li.imagelist .menu.emuimage,
body .imagemenu ul.menulist li.imagelist a.menu.emuimage {
  display: block !important;
  width: 100% !important;
  height: 0 !important;
  padding: 0 0 102% 0 !important;
  background-size: cover !important;
  background-position: center 20% !important;
  position: relative !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

/* Eco Green Badge on Product Card */
body .imagemenu ul.menulist li.imagelist .atitle,
body .imagemenu ul.menulist li.imagelist a.menu.emuimage .atitle {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  background: var(--eco-green-deep) !important;
  color: #ffffff !important;
  font-family: inherit !important;
  font-size: 13.5px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  padding: 6px 12px !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: 0 2px 6px rgba(20, 83, 45, 0.35) !important;
  width: auto !important;
}

body .imagemenu ul.menulist li.imagelist .title {
  padding: 18px 20px 22px 20px !important;
  font-size: 21px !important;
  font-weight: 800 !important;
  font-family: inherit !important;
  color: var(--text-dark) !important;
  text-align: center !important;
  height: auto !important;
  background: #ffffff !important;
  border-top: 1px solid #f1f5f9 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
}

body .imagemenu ul.menulist li.imagelist .title::after {
  content: "Zobrazit varianty →";
  display: inline-block;
  font-size: 15px;
  font-weight: 700;
  color: var(--eco-green-dark);
  background: var(--eco-green-light);
  padding: 6px 18px;
  border-radius: 9999px;
  border: 1px solid var(--eco-green-border);
  transition: all 0.2s ease;
}

body .imagemenu ul.menulist li.imagelist:hover .title::after {
  background: var(--eco-green);
  color: #ffffff;
  border-color: var(--eco-green);
}

/* Cross-promo Partner Banners */
body .content .single-col {
  max-width: 860px !important;
  margin: 32px auto !important;
  padding: 20px !important;
  background: var(--bg-light) !important;
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--card-border) !important;
  text-align: center !important;
}

body .content .single-col h3 {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin-bottom: 16px !important;
  letter-spacing: -0.2px !important;
  font-family: inherit !important;
}

body .content .single-col a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 6px !important;
  padding: 8px 14px !important;
  background: #ffffff !important;
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--card-border) !important;
  box-shadow: var(--shadow-sm) !important;
  transition: all 0.2s ease !important;
}

body .content .single-col a:hover {
  transform: translateY(-2px) !important;
  box-shadow: var(--shadow-md) !important;
  border-color: var(--eco-green-border) !important;
}

body .content .single-col a img {
  max-height: 42px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* Product Detail & Category Polish */
body .itmcountbox {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 16px 0 !important;
}

body .itmcountbox label.itmcountlbl {
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  font-size: 15px !important;
}

body .itmcountbox input.itmcount {
  width: 55px !important;
  height: 42px !important;
  border-radius: var(--radius-sm) !important;
  border: 1px solid var(--card-border) !important;
  text-align: center !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  background: #f8fafc !important;
}

body .itmcountbox input.tobasket,
body .button.tobasket {
  background: var(--eco-green) !important;
  color: #ffffff !important;
  border: none !important;
  height: 42px !important;
  padding: 0 24px !important;
  border-radius: var(--radius-sm) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25) !important;
  transition: all 0.15s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

body .itmcountbox input.tobasket:hover,
body .button.tobasket:hover {
  background: var(--eco-green-dark) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 16px rgba(22, 163, 74, 0.35) !important;
}

body .itemDetail .price,
body .price_with_tax {
  font-size: 34px !important;
  font-weight: 800 !important;
  color: var(--eco-green-dark) !important;
}

body .text .descr {
  display: none !important;
}

/* ========================================================
 * REDESIGNED FOOTER - CLEAN, LIGHT, PERFECTLY ALIGNED FORM
 * ======================================================== */
body .footer {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  background: #f8fafc !important;
  color: var(--text-body) !important;
  padding: 38px 30px 30px 30px !important;
  margin-top: 38px !important;
  border-top: 1px solid var(--card-border) !important;
  border-radius: 0 !important;
  max-width: 1140px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
  gap: 32px !important;
  width: 100% !important;
}

body .footer .interaction,
body .footer .importantlinks,
body .footer .extras {
  border-left: none !important;
  border-top: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  flex: 1 1 0 !important;
  box-sizing: border-box !important;
}

/* Footer Column 1: Newsletter & Contact */
body .footer .interaction .mailharvest h2.calltoaction {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin: 0 0 10px 0 !important;
  font-family: inherit !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

/* PERFECT BUTTON & INPUT ALIGNMENT (No jumping!) */
body .footer .interaction .mailharvest form {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-end !important; /* Bottom-align so input and button share baseline */
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .footer .interaction .mailharvest fieldset.mail_innerbox {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
}

body .footer .interaction .mailharvest fieldset#ff_mail_innerbox_mail_set {
  flex: 1 1 auto !important;
}

body .footer .interaction .mailharvest fieldset#ff_mail_innerbox_button_set {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: flex-end !important;
}

body .footer .interaction .mailharvest input.email {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  color: var(--text-dark) !important;
  padding: 0 14px !important;
  border-radius: var(--radius-sm) !important;
  font-size: 15.5px !important;
  line-height: 44px !important;
  height: 44px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  outline: none !important;
  margin: 0 !important;
}

body .footer .interaction .mailharvest input.email:focus {
  border-color: var(--eco-green) !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15) !important;
}

body .footer .interaction .mailharvest button.store_mail {
  background: var(--eco-green) !important;
  color: #ffffff !important;
  border: none !important;
  padding: 0 20px !important;
  height: 44px !important;
  line-height: 44px !important;
  box-sizing: border-box !important;
  border-radius: var(--radius-sm) !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background 0.15s ease !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

body .footer .interaction .mailharvest button.store_mail:hover {
  background: var(--eco-green-dark) !important;
}

body .footer .phonebox .label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--text-muted) !important;
  margin-top: 16px !important;
  font-family: inherit !important;
}

body .footer .phonebox a.phone {
  display: inline-block !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--eco-green-dark) !important;
  text-decoration: none !important;
  margin-top: 3px !important;
  white-space: nowrap !important;
  font-family: inherit !important;
  transition: color 0.15s;
}

body .footer .phonebox a.phone:hover {
  color: var(--eco-green) !important;
}

/* Footer Column 2: Links */
body .footer .importantlinks .label {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin-bottom: 12px !important;
  font-family: inherit !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

body .footer .importantlinks ul.menulist {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body .footer .importantlinks ul.menulist li.menulist {
  margin-bottom: 8px !important;
}

body .footer .importantlinks ul.menulist li.menulist a.menu {
  color: var(--text-body) !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  transition: color 0.15s ease !important;
  display: inline-block;
  padding: 2px 0;
}

body .footer .importantlinks ul.menulist li.menulist a.menu:hover {
  color: var(--eco-green-dark) !important;
  text-decoration: underline !important;
}

/* Footer Column 3: GDPR & Info */
body .footer .extras h3 {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin-bottom: 10px !important;
  font-family: inherit !important;
}

body .footer .extras p {
  font-size: 14.5px !important;
  color: var(--text-muted) !important;
  line-height: 1.6 !important;
  margin: 0 0 10px 0 !important;
}

body .copyright {
  text-align: center !important;
  font-size: 13px !important;
  color: var(--text-muted) !important;
  padding: 18px 20px !important;
  background: #f8fafc !important;
  border-top: 1px solid var(--card-border) !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  font-family: inherit !important;
  line-height: 1.6 !important;
}

body .copyright .copyright-main {
  font-weight: 600 !important;
  color: var(--text-dark) !important;
  margin-bottom: 4px !important;
}

body .copyright .copyright-disclaimer {
  font-size: 11.5px !important;
  color: #64748b !important;
  max-width: 800px !important;
  margin: 0 auto !important;
}

/* ==========================================================================
   Homepage Video Card (Task #1971)
   ========================================================================== */
.homepage-video-card {
  max-width: 840px !important;
  margin: 36px auto !important;
  padding: 0 !important;
  border-radius: var(--radius-lg, 16px) !important;
  overflow: hidden !important;
  box-shadow: 0 16px 36px -6px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.06) !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
  background: #000 !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.homepage-video-card:hover {
  box-shadow: 0 22px 45px -6px rgba(15, 23, 42, 0.18), 0 8px 16px -2px rgba(15, 23, 42, 0.1) !important;
}

.homepage-video-card .video-aspect-box {
  position: relative !important;
  width: 100% !important;
  height: 0 !important;
  padding-bottom: 56.25% !important; /* 16:9 standard */
}

.homepage-video-card .video-aspect-box iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  border-radius: var(--radius-lg, 16px) !important;
}

@media (max-width: 880px) {
  .homepage-video-card {
    margin: 24px 12px !important;
    border-radius: 12px !important;
  }
  .homepage-video-card .video-aspect-box iframe {
    border-radius: 12px !important;
  }
}

/* Cookie consent modal polish */
#cookieConsent {
  border-radius: var(--radius-md) !important;
  max-width: 860px !important;
  margin: 12px auto !important;
  left: 16px !important;
  right: 16px !important;
  background: rgba(15, 23, 42, 0.95) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3) !important;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 13px !important;
}

#cookieConsent button {
  border-radius: var(--radius-sm) !important;
  font-weight: 700 !important;
  padding: 7px 16px !important;
  font-size: 13px !important;
}

#cookieConsent button#acceptCookies {
  background: var(--eco-green) !important;
  color: #ffffff !important;
}

/* ========================================================
 * MOBILE RESPONSIVENESS OVERRIDES
 * ======================================================== */
@media screen and (max-width: 768px) {
  /* Header compacting on mobile */
  body .headerbox {
    flex-direction: column !important;
    align-items: center !important;
    padding: 10px 16px !important;
    gap: 8px !important;
  }

  body .headerbox .logobox img {
    height: 48px !important;
  }

  body .headerbox .webname,
  body .headerbox .headerInfoContainer h1.title,
  body .headerbox .headerInfoContainer h1.title a.webname {
    font-size: 20px !important;
  }

  body .headerbox .headerInfoContainer .description {
    font-size: 10px !important;
    letter-spacing: 1px !important;
  }

  /* Navigation menu on mobile */
  body .topmenu {
    margin-bottom: 12px !important;
  }

  body .topmenu ul.menulist {
    gap: 4px !important;
  }

  body .topmenu ul.menulist li.menulist a.menu {
    padding: 8px 12px !important;
    font-size: 12px !important;
  }

  /* Hero carousel on mobile */
  body .image-carusel {
    margin: 0 12px 18px 12px !important;
    width: auto !important; /* 100% + side margins overflowed the viewport by 12px */
    border-radius: var(--radius-md) !important;
  }

  body .image-carusel .carusel.emuimage .label {
    padding: 8px 12px !important;
    border-radius: var(--radius-sm) !important;
    bottom: 8px !important;
    right: 8px !important;
    max-width: none !important;
  }

  body .image-carusel .carusel.emuimage .label .title {
    font-size: 12px !important;
  }

  body .image-carusel .carusel.emuimage .label .text {
    font-size: 10px !important;
  }

  /* Middle Red Header & text on mobile */
  body .red.big.center,
  p.red.big.center {
    font-size: 20px !important;
    line-height: 1.35 !important;
    margin: 20px 0 12px 0 !important;
    padding: 0 10px !important;
  }

  p.textMiddleP {
    font-size: 14px !important;
    line-height: 1.6 !important;
    padding: 0 14px !important;
    text-align: left !important;
  }

  /* Product cards on mobile */
  body .imagemenu {
    margin: 20px auto !important;
    padding: 0 14px !important;
  }

  body .imagemenu ul.menulist {
    flex-direction: column !important;
    align-items: center !important;
    gap: 18px !important;
  }

  body .imagemenu ul.menulist li.imagelist {
    max-width: 100% !important;
  }

  /* Footer on mobile */
  body .footer {
    flex-direction: column !important;
    gap: 20px !important;
    padding: 24px 16px !important;
  }

  body .footer .interaction,
  body .footer .importantlinks,
  body .footer .extras {
    width: 100% !important;
    flex: none !important;
    border-left: none !important;
    border-top: 1px solid #e2e8f0 !important;
    padding-top: 16px !important;
  }

  body .footer .interaction {
    border-top: none !important;
    padding-top: 0 !important;
  }

  /* On mobile: keep input & button in one line or clean stack */
  body .footer .interaction .mailharvest form {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    width: 100% !important;
  }
}

/* ==========================================================================
   Modern Checkout & Basket Design System
   ========================================================================== */

/* Header Cart Link */
body .infobox a.basketlink {
  text-decoration: none !important;
  color: inherit !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

/* Checkout Stepper (Progress Bar) */
.checkout-stepper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin: 32px auto 38px auto !important;
  padding: 10px 20px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 9999px !important;
  max-width: 860px !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

.checkout-stepper .step {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 9px 18px !important;
  border-radius: 9999px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.checkout-stepper .step .step-num {
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

/* Active Step */
.checkout-stepper .step.is-active {
  background: var(--eco-green) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(22, 163, 74, 0.3) !important;
}

.checkout-stepper .step.is-active .step-num {
  background: rgba(255, 255, 255, 0.28) !important;
  color: #ffffff !important;
}

/* Completed Step (Clickable) */
.checkout-stepper a.step.is-completed {
  background: var(--eco-green-light) !important;
  color: var(--eco-green-dark) !important;
  border: 1px solid var(--eco-green-border) !important;
  cursor: pointer !important;
}

.checkout-stepper a.step.is-completed:hover {
  background: #dcfce7 !important;
  border-color: #86efac !important;
  transform: translateY(-1px) !important;
}

.checkout-stepper a.step.is-completed .step-num {
  background: var(--eco-green-border) !important;
  color: var(--eco-green-deep) !important;
}

/* Upcoming / Disabled Step */
.checkout-stepper .step.is-disabled {
  color: #94a3b8 !important;
  background: transparent !important;
  cursor: default !important;
}

.checkout-stepper .step.is-disabled .step-num {
  background: #e2e8f0 !important;
  color: #64748b !important;
}

.checkout-stepper .step-divider {
  color: #cbd5e1 !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  margin: 0 4px !important;
  user-select: none !important;
}

/* Fallback for unparsed checklabel */
body .checklabel {
  font-family: inherit !important;
  font-size: 18px !important;
  color: var(--text-dark) !important;
  margin: 24px auto !important;
  text-align: center !important;
}

/* Basket Items Table (Steps 1, 2, 3, 4) */
table.forms {
  width: 100% !important;
  max-width: 860px !important;
  margin: 20px auto 32px auto !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: #ffffff !important;
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--card-border) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  table-layout: fixed !important;
}

table.forms tr,
table.forms tr.shadows,
table.forms tr.items {
  background: #ffffff !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

table.forms tr.items td {
  padding: 14px 8px !important;
  font-size: 15px !important;
  font-family: inherit !important;
  color: var(--text-dark) !important;
  border: none !important;
  box-sizing: border-box !important;
}

table.forms tr.items.shadows td {
  border-bottom: 1px solid #f1f5f9 !important;
  vertical-align: middle !important;
}

table.forms td.image {
  width: 9% !important;
  padding: 14px 4px 14px 14px !important;
  text-align: center !important;
}

table.forms td.image a.list_item_img {
  display: block !important;
  width: 56px !important;
  height: 56px !important;
  margin: 0 auto !important;
}

table.forms td.image img {
  border-radius: var(--radius-sm) !important;
  border: 1px solid #e2e8f0 !important;
  background: #ffffff !important;
  padding: 2px !important;
  width: 56px !important;
  height: 56px !important;
  max-width: 56px !important;
  max-height: none !important;
  object-fit: contain !important;
  box-sizing: border-box !important;
  display: block !important;
}

table.forms td.title {
  width: 27% !important;
  padding: 14px 10px !important;
  word-break: break-word !important;
}

table.forms td.title .labeltitle {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  display: block !important;
  line-height: 1.35 !important;
}

table.forms td.price {
  width: 18% !important;
  padding: 14px 8px !important;
  font-size: 14px !important;
  color: var(--text-muted) !important;
  line-height: 1.45 !important;
  white-space: nowrap !important;
}

table.forms td.price .value {
  font-weight: 700 !important;
  color: var(--text-dark) !important;
}

table.forms td.itmcount {
  width: 13% !important;
  padding: 14px 6px !important;
  text-align: center !important;
  white-space: nowrap !important;
}

table.forms td.itmcount .lblitmcount {
  display: block !important;
  font-size: 13px !important;
  color: var(--text-muted) !important;
  margin-bottom: 4px !important;
  font-weight: 600 !important;
}

table.forms td.itmcount .inputitmcount {
  width: 46px !important;
  height: 38px !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: var(--radius-sm) !important;
  text-align: center !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: inherit !important;
  color: var(--text-dark) !important;
  background: #f8fafc !important;
  transition: all 0.2s ease !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

table.forms td.itmcount .inputitmcount:focus {
  border-color: var(--eco-green) !important;
  background: #ffffff !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15) !important;
}

table.forms td.suma {
  width: 21% !important;
  padding: 14px 8px !important;
  text-align: right !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
  white-space: nowrap !important;
}

table.forms td.suma .value {
  font-weight: 700 !important;
  color: var(--text-dark) !important;
}

table.forms td.del {
  width: 12% !important;
  padding: 14px 14px 14px 4px !important;
  text-align: center !important;
  white-space: nowrap !important;
}

table.forms td.del a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px 10px !important;
  background: #fef2f2 !important;
  color: #dc2626 !important;
  border: 1px solid #fecaca !important;
  border-radius: var(--radius-sm) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

table.forms td.del a:hover {
  background: #fee2e2 !important;
  border-color: #fca5a5 !important;
  transform: translateY(-1px) !important;
}

/* Basket Totals Summary */
table.forms tr.items:not(.shadows) td.empty {
  padding: 0 !important;
}

table.forms tr.items:not(.shadows) td.itmcountLbl {
  text-align: right !important;
  color: var(--text-muted) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  padding: 8px 12px !important;
  white-space: nowrap !important;
}

table.forms tr.items:not(.shadows) td.suma {
  padding: 8px 16px !important;
  font-weight: 600 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

table.forms tr.items:not(.shadows) td.suma .statusprice {
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  font-size: 16px !important;
}

/* Grand Total Row */
table.forms tr.items:not(.shadows):has(.statusprice:not(.black)) td,
table.forms tr.total_price_row td {
  border-top: 2px solid #f1f5f9 !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

table.forms tr.items td.suma[colspan="2"] {
  width: 33% !important;
}

table.forms tr.items:not(.shadows) td.suma.bold span.value:not(.black),
table.forms .statusprice:not(.black) {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: var(--eco-green-dark) !important;
}

/* Checkout Button Row */
table.forms tr.checkout_btn_row td.suma,
table.forms tr.items:last-child td.suma,
table.forms td.suma[colspan="6"] {
  width: 100% !important;
  text-align: right !important;
  padding: 16px 24px 20px 24px !important;
  border-top: 1px solid #f1f5f9 !important;
  background: #fafafa !important;
  box-sizing: border-box !important;
}

table.forms tr.checkout_btn_row input.button,
table.forms tr.items:last-child input.button,
table.forms td.suma[colspan="6"] input.button {
  margin: 0 !important;
  float: none !important;
  display: inline-block !important;
}

table.forms tr.items td,
table.forms td,
table.forms th {
  margin: 0 !important;
}

/* Primary CTA Buttons Across All Checkout Steps */
input[name="to_delivery"],
input[value="Doprava a platba"],
input[name="to_contact"],
input[value="Zadat kontakt a adresu"],
input[name="to_check"],
input[value="Rekapitulace a dokončení"],
input[name="to_finish"],
input[value="Dokončit objednávku"],
.submitt,
.basket input[type="submit"].button {
  background: var(--eco-green) !important;
  color: #ffffff !important;
  border: none !important;
  height: 52px !important;
  padding: 0 36px !important;
  border-radius: var(--radius-md) !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  font-family: inherit !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(22, 163, 74, 0.25) !important;
  transition: all 0.15s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  display: inline-block !important;
  float: none !important;
  margin: 18px auto !important;
}

input[name="to_delivery"]:hover,
input[value="Doprava a platba"]:hover,
input[name="to_contact"]:hover,
input[value="Zadat kontakt a adresu"]:hover,
input[name="to_check"]:hover,
input[value="Rekapitulace a dokončení"]:hover,
input[name="to_finish"]:hover,
input[value="Dokončit objednávku"]:hover,
.submitt:hover,
.basket input[type="submit"].button:hover {
  background: var(--eco-green-dark) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(22, 163, 74, 0.35) !important;
}

/* ==========================================================================
   Step 2: Shipping & Payment Option Cards
   ========================================================================== */
.deliveryBox,
.paymentBox {
  background: #ffffff !important;
  border: 1px solid var(--card-border) !important;
  border-radius: var(--radius-lg) !important;
  padding: 28px 32px !important;
  margin: 0 auto 24px auto !important;
  max-width: 860px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03) !important;
  box-sizing: border-box !important;
}

.deliveryBox h2.lbldelivery,
.paymentBox h2.lblpayment {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--text-dark) !important;
  margin: 0 0 18px 0 !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid #f1f5f9 !important;
  letter-spacing: -0.2px !important;
}

.deliveryBox ul,
.paymentBox ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.deliveryBox ul li.box,
.paymentBox ul li.box {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 16px 22px !important;
  border: 2px solid #e2e8f0 !important;
  border-radius: var(--radius-md) !important;
  background: #ffffff !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  margin: 0 !important;
  width: auto !important;
  height: auto !important;
  user-select: none !important;
}

.deliveryBox ul li.box:hover,
.paymentBox ul li.box:hover {
  border-color: #86efac !important;
  background: var(--eco-green-light) !important;
}

.deliveryBox ul li.box:has(input:checked),
.paymentBox ul li.box:has(input:checked) {
  border-color: var(--eco-green) !important;
  background: var(--eco-green-light) !important;
  box-shadow: 0 2px 10px rgba(22, 163, 74, 0.16) !important;
}

.deliveryBox ul li.box input[type="radio"],
.paymentBox ul li.box input[type="radio"] {
  width: 22px !important;
  height: 22px !important;
  accent-color: var(--eco-green) !important;
  cursor: pointer !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
}

.deliveryBox ul li.box label,
.paymentBox ul li.box label {
  font-size: 17.5px !important;
  font-weight: 600 !important;
  color: var(--text-dark) !important;
  cursor: pointer !important;
  width: 100% !important;
  flex: 1 1 auto !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.deliveryBox ul li.box label > span:first-child,
.paymentBox ul li.box label > span:first-child {
  display: none !important;
}

.deliveryCont,
.deliveryff,
.content .basket,
.contact,
.check {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  width: 100% !important;
}

.contact .userfrm,
.userfrm {
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  float: none !important;
  display: block !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.contact h2.calltoaction,
.checklabel {
  text-align: center !important;
  margin: 20px auto !important;
}

.deliveryCont fieldset.send_box {
  border: none !important;
  text-align: center !important;
  margin: 28px 0 !important;
  padding: 0 !important;
}

/* ==========================================================================
   Step 3: Contact & Address Form - Wide & Modern 2-Column Layout
   ========================================================================== */
.contact form,
form.userform,
form:has(.fldphone) {
  background: #ffffff !important;
  border: 1px solid var(--card-border) !important;
  border-radius: var(--radius-lg) !important;
  padding: 36px 44px !important;
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto 36px auto !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px 24px !important;
  box-sizing: border-box !important;
}

fieldset.fldphone {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Grid mappings for wide spacious form */
fieldset.fldphone:has(input[name="usrname"]),
fieldset.fldphone:has(input[name="usrstreet"]),
fieldset.fldphone:has(input[name="usrcountry"]),
fieldset.fldphone:has(select[name="usrcountry"]),
fieldset.fldphone:has(input[name="usrfirm"]),
.labelFirma,
.note,
fieldset.fldsend {
  grid-column: 1 / -1 !important;
}

fieldset.fldphone:has(input[name="usrcity"]),
fieldset.fldphone:has(input[name="usre-mail"]),
fieldset.fldphone:has(input[name="usrico"]) {
  grid-column: 1 / 2 !important;
}

fieldset.fldphone:has(input[name="usepsc"]),
fieldset.fldphone:has(input[name="usrphone"]),
fieldset.fldphone:has(input[name="usrdic"]) {
  grid-column: 2 / 3 !important;
}

.myHintBasket {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  margin: 0 !important;
}

.myHintBasket .labelHint {
  display: block !important;
  font-size: 16.5px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  margin-bottom: 7px !important;
  letter-spacing: -0.1px !important;
}

.myHintBasket .hint {
  position: static !important;
  width: 100% !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hide legacy overlapping absolute placeholder text */
.myHintBasket .hint .text {
  display: none !important;
}

.myHintBasket .hint .textInput,
.myHintBasket .hint select,
.contact .textInput {
  position: static !important;
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: var(--radius-sm) !important;
  padding: 12px 16px !important;
  font-size: 17px !important;
  font-family: inherit !important;
  color: var(--text-dark) !important;
  background: #ffffff !important;
  transition: all 0.2s ease !important;
  height: 50px !important;
}

.myHintBasket .hint select {
  cursor: pointer !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 18px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-right: 42px !important;
}

.myHintBasket .hint .textInput:focus,
.myHintBasket .hint select:focus,
.contact .textInput:focus {
  border-color: var(--eco-green) !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.2) !important;
  outline: none !important;
  background-color: #ffffff !important;
}

/* Non-binding inquiry notice in checkout recapitulation */
.inquiry-banner {
  background: #fffbeb !important;
  border: 1.5px solid #f59e0b !important;
  border-radius: 10px !important;
  padding: 16px 20px !important;
  margin: 18px 0 !important;
  color: #92400e !important;
  font-size: 15.5px !important;
  line-height: 1.55 !important;
  box-shadow: 0 2px 6px rgba(245, 158, 11, 0.08) !important;
}
.inquiry-banner strong {
  color: #78350f !important;
  font-weight: 700 !important;
}

.labelFirma {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--text-dark) !important;
  margin: 16px 0 4px 0 !important;
  padding-top: 22px !important;
  border-top: 1px solid #e2e8f0 !important;
}

.note {
  margin: 10px 0 0 0 !important;
}

.note label {
  display: block !important;
  font-size: 16.5px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  margin-bottom: 7px !important;
  float: none !important;
}

.note textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: var(--radius-sm) !important;
  padding: 14px 16px !important;
  font-size: 16.5px !important;
  font-family: inherit !important;
  color: var(--text-dark) !important;
  background: #ffffff !important;
  min-height: 90px !important;
  transition: all 0.2s ease !important;
  resize: vertical !important;
}

.note textarea:focus {
  border-color: var(--eco-green) !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.2) !important;
  outline: none !important;
}

fieldset.fldsend {
  border: none !important;
  margin: 18px 0 0 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

/* ==========================================================================
   Step 4: Recapitulation & Order Summary
   ========================================================================== */
.usrBox,
.userViewBox {
  background: #ffffff !important;
  border: 1px solid var(--card-border) !important;
  border-radius: var(--radius-lg) !important;
  padding: 28px 36px !important;
  max-width: 860px !important;
  margin: 0 auto 24px auto !important;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04) !important;
  box-sizing: border-box !important;
}

.userform .fldname {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: 11px 0 !important;
  border-bottom: 1px solid #f1f5f9 !important;
  font-size: 17px !important;
}

.userform .fldname .label {
  color: var(--text-muted) !important;
  font-weight: 600 !important;
  min-width: 160px !important;
  float: none !important;
  font-size: 16.5px !important;
}

.userform .fldname .field {
  color: var(--text-dark) !important;
  font-weight: 700 !important;
  text-align: right !important;
  border: none !important;
  background: transparent !important;
  float: none !important;
  font-size: 17.5px !important;
}

/* Hide empty optional fields in recapitulation */
.userform .fldname:has(.field:empty) {
  display: none !important;
}

.usrBox .note {
  border-top: 1px solid #f1f5f9 !important;
  padding-top: 12px !important;
  margin-top: 12px !important;
}

.usrBox .note:has(.field:empty) {
  display: none !important;
}

.checkout-consent,
.inquiry-notice {
  max-width: 860px !important;
  margin: 18px auto !important;
  box-sizing: border-box !important;
}

.checkout-consent {
  padding: 16px 24px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: var(--radius-md) !important;
  font-size: 15.5px !important;
  color: var(--text-body) !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  line-height: 1.5 !important;
}

.checkout-consent a {
  color: var(--eco-green-dark) !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}

.checkout-consent .consent-icon {
  font-size: 18px !important;
  flex-shrink: 0 !important;
}

/* Hide raw gdprBox text if not replaced */
.gdprBox:not(.checkout-consent) {
  display: none !important;
}

/* Finish Order Button */
input[name="to_finish"],
.check .submitt {
  width: auto !important;
  min-width: 280px !important;
  margin: 28px auto 36px auto !important;
  display: block !important;
  text-align: center !important;
  font-size: 18px !important;
  height: 54px !important;
}

/* Hide debug footer info box */
body > .info,
.info {
  display: none !important;
}

/* Responsive Checkout on Small Screens */
@media (max-width: 768px) {
  .contact form,
  form.userform,
  form:has(.fldphone) {
    grid-template-columns: 1fr !important;
    padding: 24px 18px !important;
    max-width: 100% !important;
  }

  fieldset.fldphone,
  fieldset.fldphone:has(input) {
    grid-column: 1 / -1 !important;
  }

  .checkout-stepper {
    border-radius: var(--radius-lg) !important;
    padding: 10px 12px !important;
  }

  .checkout-stepper .step {
    font-size: 14px !important;
    padding: 6px 12px !important;
  }

  .deliveryBox,
  .paymentBox,
  .usrBox,
  .checkout-consent,
  .inquiry-notice {
    padding: 20px 16px !important;
    margin-left: 12px !important;
    margin-right: 12px !important;
  }

  .deliveryBox ul li.box,
  .paymentBox ul li.box {
    padding: 14px 16px !important;
  }

  .deliveryBox ul li.box label,
  .paymentBox ul li.box label {
    font-size: 16px !important;
  }

  /* Stepper mobile wrap */
  .checkout-stepper {
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    justify-content: center !important;
  }

  .checkout-stepper .step-divider {
    display: none !important;
  }

  /* Responsive Mobile Basket Cards (Step 1) */
  table.forms,
  table.forms tbody {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 24px 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 12px !important;
    box-sizing: border-box !important;
  }

  /* Each product row becomes a card */
  table.forms tr.items.shadows {
    display: grid !important;
    grid-template-columns: 76px minmax(0, 1fr) !important;
    grid-template-areas:
      "img title"
      "img price"
      "count suma"
      "del del" !important;
    gap: 10px 14px !important;
    align-items: center !important;
    background: #ffffff !important;
    border: 1px solid var(--card-border, #e2e8f0) !important;
    border-radius: var(--radius-md, 10px) !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
  }

  table.forms tr.items.shadows td {
    padding: 0 !important;
    border: none !important;
    width: auto !important;
    display: block !important;
    min-width: 0 !important;
  }

  table.forms tr.items.shadows td.image {
    grid-area: img !important;
    width: 76px !important;
    height: 76px !important;
    align-self: start !important;
  }

  table.forms tr.items.shadows td.image a.list_item_img,
  table.forms tr.items.shadows td.image img {
    width: 76px !important;
    height: 76px !important;
    max-width: 76px !important;
    max-height: 76px !important;
    object-fit: contain !important;
  }

  table.forms tr.items.shadows td.title {
    grid-area: title !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--text-dark, #0f172a) !important;
    line-height: 1.35 !important;
    align-self: start !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  table.forms tr.items.shadows td.title .labeltitle {
    word-break: normal !important;
    white-space: normal !important;
  }

  table.forms tr.items.shadows td.del {
    grid-area: del !important;
    text-align: right !important;
    width: 100% !important;
    padding-top: 4px !important;
    border-top: 1px solid #f1f5f9 !important;
  }

  table.forms tr.items.shadows td.price {
    grid-area: price !important;
    font-size: 13.5px !important;
    color: var(--text-muted, #475569) !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }

  table.forms tr.items.shadows td.itmcount {
    grid-area: count !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  table.forms tr.items.shadows td.itmcount .lblitmcount {
    display: inline !important;
    margin: 0 !important;
    font-size: 13px !important;
  }

  table.forms tr.items.shadows td.itmcount .inputitmcount {
    width: 46px !important;
    height: 38px !important;
  }

  table.forms tr.items.shadows td.suma {
    grid-area: suma !important;
    text-align: right !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--text-dark, #0f172a) !important;
    white-space: nowrap !important;
  }

  /* Responsive Mobile Basket Summary & Totals */
  table.forms tr.items:not(.shadows) td.empty,
  table.forms tr.items:not(.shadows) td.del {
    display: none !important;
  }

  /* Subtotal breakdown rows (Košík součet, Doprava, Dobírka...) */
  table.forms tr.items:not(.shadows):not(:has(input.button)):not(:has(.statusprice:not(.black))) {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    background: #ffffff !important;
    border: 1px solid var(--card-border, #e2e8f0) !important;
    border-bottom: none !important;
    padding: 10px 16px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  table.forms tr.items:not(.shadows):not(:has(input.button)):not(:has(.statusprice:not(.black))):first-of-type {
    border-top-left-radius: var(--radius-md, 10px) !important;
    border-top-right-radius: var(--radius-md, 10px) !important;
    margin-top: 4px !important;
  }

  table.forms tr.items:not(.shadows):not(:has(input.button)):not(:has(.statusprice:not(.black))):nth-last-of-type(2) {
    border-bottom: 1px solid var(--card-border, #e2e8f0) !important;
    border-bottom-left-radius: var(--radius-md, 10px) !important;
    border-bottom-right-radius: var(--radius-md, 10px) !important;
  }

  table.forms tr.items:not(.shadows):not(:has(input.button)):not(:has(.statusprice:not(.black))) td.itmcountLbl {
    display: block !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    color: #475569 !important;
    padding: 0 !important;
    width: auto !important;
    text-align: left !important;
  }

  table.forms tr.items:not(.shadows):not(:has(input.button)):not(:has(.statusprice:not(.black))) td.suma {
    display: block !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--text-dark, #0f172a) !important;
    padding: 0 !important;
    width: auto !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  table.forms td.suma .value,
  table.forms td.suma .statusprice {
    display: inline !important;
    width: auto !important;
  }

  /* Grand total row (Celková cena) */
  table.forms tr.items:has(.statusprice:not(.black)),
  table.forms tr.total_price_row {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    background: var(--eco-green-light, #f0fdf4) !important;
    border: 1.5px solid var(--eco-green-border, #bbf7d0) !important;
    border-radius: var(--radius-md, 10px) !important;
    padding: 14px 18px !important;
    margin-top: 8px !important;
    margin-bottom: 14px !important;
    box-shadow: 0 2px 8px rgba(22, 163, 74, 0.08) !important;
    box-sizing: border-box !important;
  }

  table.forms tr.items:has(.statusprice:not(.black)) td.itmcountLbl,
  table.forms tr.total_price_row td.itmcountLbl {
    display: block !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    color: var(--text-dark, #0f172a) !important;
    padding: 0 !important;
    width: auto !important;
    text-align: left !important;
  }

  table.forms tr.items:has(.statusprice:not(.black)) td.suma,
  table.forms tr.total_price_row td.suma {
    display: block !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    color: var(--eco-green-dark, #15803d) !important;
    padding: 0 !important;
    width: auto !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  /* Checkout proceed button row (Step 1) */
  table.forms tr.items:has(input.button),
  table.forms tr.checkout_btn_row {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    margin-top: 8px !important;
  }

  table.forms tr.items:has(input.button) td,
  table.forms tr.checkout_btn_row td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border: none !important;
  }

  table.forms tr.items:has(input.button) input.button,
  table.forms tr.checkout_btn_row input.button,
  form.userform input[type="submit"].button {
    width: 100% !important;
    height: 52px !important;
    font-size: 16.5px !important;
    font-weight: 700 !important;
    border-radius: var(--radius-md, 10px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 14px rgba(22, 163, 74, 0.3) !important;
  }

  /* Touch optimizations for steps 2, 3, 4 */
  .deliveryBox ul li.box,
  .paymentBox ul li.box {
    min-height: 52px !important;
    display: flex !important;
    align-items: center !important;
    border-radius: var(--radius-md, 10px) !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .usrBox input[type="text"],
  .usrBox input[type="email"],
  .usrBox input[type="tel"] {
    min-height: 48px !important;
    font-size: 16px !important;
  }

  .order-summary-box .finish-btn,
  input[value="Dokončit objednávku"] {
    width: 100% !important;
    min-height: 52px !important;
    font-size: 17px !important;
    border-radius: var(--radius-md, 10px) !important;
  }

  /* Recapitulation data row wrap on mobile */
  .userform .fldname {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    gap: 10px !important;
    padding: 10px 0 !important;
  }

  .userform .fldname .label {
    min-width: 90px !important;
    max-width: 120px !important;
    font-size: 14.5px !important;
    flex-shrink: 0 !important;
  }

  .userform .fldname .field {
    font-size: 15px !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    text-align: right !important;
    flex-grow: 1 !important;
  }
}

/* ==========================================================================
   Contact Page Modernization (/contact/)
   ========================================================================== */

/* Hide legacy CMS artifacts on contact/article pages */
.usersection .paramcont,
.usersection:not(:has(.itemimage)) .pricecont,
.usersection .text h3.descr {
  display: none !important;
}

/* Product detail price & buy box card */
.usersection:has(.itemimage) .pricecont {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 16px !important;
  background: var(--bg-light, #f8fafc) !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
  border-radius: var(--radius-md, 10px) !important;
  padding: 20px 24px !important;
}

.usersection:has(.itemimage) .pricecont fieldset.fieldpair {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.usersection:has(.itemimage) .pricecont .tobasketbox {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
}

.usersection:has(.itemimage) .pricecont .itmcountbox {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin: 4px 0 0 0 !important;
}

body .usersection,
.usersection {
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 24px 24px 48px 24px !important;
  box-sizing: border-box !important;
}

body .usersection:has(.itemimage),
.usersection:has(.itemimage) {
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 32px 32px 64px 32px !important;
  box-sizing: border-box !important;
}

@media (max-width: 820px) {
  body .usersection:has(.itemimage),
  .usersection:has(.itemimage) {
    padding: 20px 16px 40px 16px !important;
  }
}

.usersection .title,
.usersection .perex {
  text-align: center !important;
}

.usersection .title h2.title_in {
  font-size: 32px !important;
  font-weight: 800 !important;
  color: var(--text-dark) !important;
  margin: 0 auto 12px auto !important;
  letter-spacing: -0.5px;
  text-align: center !important;
}

.usersection .perex .perexText {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--text-dark) !important;
  margin: 0 auto 32px auto !important;
  line-height: 1.6 !important;
  max-width: 800px !important;
  text-align: center !important;
}

/* Contact layout container */
.contact-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 16px;
  align-items: stretch;
}

/* Left Column: Details Card */
.contact-details-card {
  background: var(--bg-card);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-brand {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f1f5f9;
}

.contact-brand .contact-logo {
  max-width: 160px;
  height: auto;
  object-fit: contain;
}

.contact-brand-info h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.3 !important;
}

.contact-brand-badge {
  display: inline-block;
  background: var(--eco-green-light);
  color: var(--eco-green-deep);
  border: 1px solid var(--eco-green-border);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 9999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.contact-sections-grid {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.contact-box {
  background: var(--bg-light);
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md);
  padding: 16px 20px;
}

.contact-box-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin: 0 0 10px 0 !important;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Custom CSS Icons */
.c-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
}

.c-icon-pin {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2316a34a'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E");
}

.c-icon-mail {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2316a34a'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
}

.c-icon-phone {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2316a34a'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}

.c-icon-map {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2316a34a'%3E%3Cpath d='M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z'/%3E%3C/svg%3E");
}

.address-line {
  margin: 2px 0 !important;
  font-size: 15px !important;
  color: var(--text-body) !important;
}

.address-line.main {
  font-size: 17px !important;
  color: var(--text-dark) !important;
}

.address-line.id {
  margin-top: 6px !important;
  color: var(--text-dark) !important;
  font-weight: 500;
}

.contact-row {
  display: flex;
  flex-direction: column;
  margin-bottom: 8px;
}

.contact-row:last-child {
  margin-bottom: 0;
}

.contact-row-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-dark);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.contact-link.email {
  font-size: 16px;
  font-weight: 700;
  color: var(--eco-green-dark);
  text-decoration: none;
  transition: color 0.15s ease;
}

.contact-link.email:hover {
  color: var(--eco-green-deep);
  text-decoration: underline;
}

.phone-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.contact-link.phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-sm);
  color: var(--text-dark);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  transition: all 0.15s ease;
}

.contact-link.phone:hover {
  background: var(--eco-green-light);
  border-color: var(--eco-green);
  color: var(--eco-green-deep);
}

.contact-fax {
  margin-top: 10px;
  font-size: 14px;
  color: var(--text-dark);
}

.contact-fax span {
  font-weight: 600;
}

/* Right Column: Map Card */
.contact-map-card {
  background: var(--bg-card);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
}

.contact-map-header {
  margin-bottom: 16px;
}

.contact-map-header h4 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--text-dark) !important;
  margin: 0 0 4px 0 !important;
  display: flex;
  align-items: center;
  gap: 8px;
}

.contact-map-subtitle {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-body);
}

.contact-map-iframe-container {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid #cbd5e1;
  flex: 1;
  min-height: 420px;
  background: #f1f5f9;
}

.contact-map-iframe-container iframe {
  width: 100% !important;
  height: 100% !important;
  min-height: 420px !important;
  border: 0 !important;
  display: block !important;
}

.contact-map-footer {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

.contact-external-map-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.contact-external-map-btn.mapy-cz {
  background: #c92c2c;
  color: #ffffff;
}

.contact-external-map-btn.mapy-cz:hover {
  background: #a82020;
  color: #ffffff;
}

.contact-external-map-btn.gmaps {
  background: #f1f5f9;
  color: var(--text-dark);
  border: 1px solid #cbd5e1;
}

.contact-external-map-btn.gmaps:hover {
  background: #e2e8f0;
}

/* Responsive adjustments for contact page */
@media (max-width: 860px) {
  .contact-wrapper {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .contact-brand {
    flex-direction: column;
    align-items: flex-start;
  }

  .phone-grid {
    grid-template-columns: 1fr;
  }

  .contact-map-iframe-container {
    min-height: 320px;
  }
}

/* ==========================================================================
   Article Pages & Reclamation Modernization (/reclamation/) (Task #1972)
   ========================================================================== */
.usersection:not(:has(.itemimage)) {
  max-width: 960px !important;
  margin: 0 auto !important;
  padding: 36px 24px 64px 24px !important;
}

.usersection:not(:has(.itemimage)) .additem,
.usersection:not(:has(.itemimage)) .additem .text {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.usersection:not(:has(.itemimage)) .text_in {
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: #334155 !important;
  max-width: 880px !important;
  margin: 0 auto !important;
  font-family: inherit !important;
}

.usersection:not(:has(.itemimage)) .text_in p {
  margin: 0 0 16px 0 !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: #334155 !important;
}

.usersection:not(:has(.itemimage)) .text_in p strong {
  color: var(--text-dark, #0f172a) !important;
}

.usersection:not(:has(.itemimage)) .text_in ul {
  margin: 16px 0 24px 24px !important;
  padding: 0 !important;
  list-style: disc outside !important;
}

.usersection:not(:has(.itemimage)) .text_in li {
  margin-bottom: 8px !important;
  line-height: 1.65 !important;
  color: #334155 !important;
  font-size: 15px !important;
}

.article-heading-group {
  margin: 36px 0 16px 0 !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid #e2e8f0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

.article-badge {
  display: inline-block !important;
  background: var(--eco-green-light, #ecfdf5) !important;
  color: var(--eco-green-dark, #15803d) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  padding: 4px 10px !important;
  border-radius: var(--radius-sm, 6px) !important;
  border: 1px solid rgba(22, 163, 74, 0.2) !important;
}

.article-section-title {
  margin: 0 !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  color: var(--text-dark, #0f172a) !important;
  letter-spacing: -0.3px !important;
}

/* ==========================================================================
   Product Detail Layout & Modern Typography (Task #2013 / Sister Site Modernization)
   ========================================================================== */

/* Desktop 2-column layout (>= 821px) for product detail pages */
@media (min-width: 821px) {
  .usersection:has(.itemimage):not(:has(.product-detail-description)) .additem {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "title title"
      "gallery perex"
      "gallery price"
      "text text" !important;
    column-gap: 40px !important;
    row-gap: 20px !important;
    align-items: start !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .title {
    grid-area: title !important;
    float: none !important;
    width: 100% !important;
    margin: 0 0 12px 0 !important;
    text-align: center !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .itemimage {
    grid-area: gallery !important;
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .perex {
    grid-area: perex !important;
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .pricecont {
    grid-area: price !important;
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .text {
    grid-area: text !important;
    grid-column: 1 / -1 !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
    margin-top: 28px !important;
    padding-top: 32px !important;
    border-top: 1px solid var(--card-border, #e2e8f0) !important;
    box-sizing: border-box !important;
  }
}

/* Mobile & tablet single-column layout (<= 820px) for product detail pages */
@media (max-width: 820px) {
  .usersection:has(.itemimage):not(:has(.product-detail-description)) .additem {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    width: 100% !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .title {
    order: 1 !important;
    float: none !important;
    width: 100% !important;
    text-align: center !important;
    margin: 0 0 8px 0 !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .itemimage {
    order: 2 !important;
    float: none !important;
    width: 100% !important;
    max-width: 480px !important;
    margin: 0 auto !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .pricecont {
    order: 3 !important;
    float: none !important;
    width: 100% !important;
    margin: 8px 0 0 0 !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .perex {
    order: 4 !important;
    float: none !important;
    width: 100% !important;
    padding: 4px 0 !important;
    margin: 0 !important;
  }

  .usersection:has(.itemimage):not(:has(.product-detail-description)) .text {
    order: 5 !important;
    float: none !important;
    width: 100% !important;
    clear: both !important;
    margin-top: 16px !important;
    padding-top: 24px !important;
    border-top: 1px solid var(--card-border, #e2e8f0) !important;
  }
}

.usersection:has(.itemimage) .title h2.title_in {
  font-size: 28px !important;
  font-weight: 800 !important;
  color: var(--text-dark, #0f172a) !important;
  letter-spacing: -0.5px !important;
  margin: 0 !important;
}

@media (max-width: 600px) {
  .usersection:has(.itemimage) .title h2.title_in {
    font-size: 22px !important;
  }
}

.usersection:has(.itemimage) .perex .perexText {
  font-size: 15.5px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 !important;
  text-align: left !important;
}

.usersection:has(.itemimage) .text h3.descr {
  display: inline-block !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--text-dark, #0f172a) !important;
  margin: 0 0 16px 0 !important;
  padding-bottom: 6px !important;
  border-bottom: 2px solid var(--eco-green, #16a34a) !important;
  letter-spacing: -0.3px !important;
}

.usersection:has(.itemimage) .text_in {
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: #334155 !important;
  max-width: 100% !important;
}

.usersection:has(.itemimage) .text_in p {
  margin: 0 0 16px 0 !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: #334155 !important;
}

.usersection:has(.itemimage) .text_in ul,
.usersection:has(.itemimage) .text_in ol {
  margin: 16px 0 20px 24px !important;
  padding: 0 !important;
}

.usersection:has(.itemimage) .text_in li {
  margin-bottom: 8px !important;
  line-height: 1.65 !important;
  color: #334155 !important;
}

.usersection:has(.itemimage) .text_in strong,
.usersection:has(.itemimage) .text_in b {
  color: var(--text-dark, #0f172a) !important;
}

.usersection:has(.itemimage) .text_in table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 20px 0 !important;
}

.usersection:has(.itemimage) .text_in table td,
.usersection:has(.itemimage) .text_in table th {
  padding: 10px 14px !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
}

/* ==========================================================================
   Product Detail Typography & Modern Layout (Task #1974)
   ========================================================================== */
.product-detail-description {
  margin-top: 24px !important;
  font-family: inherit !important;
}

.product-features-section {
  background: #ffffff !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
  border-radius: var(--radius-md, 10px) !important;
  padding: 24px 28px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04) !important;
  margin-bottom: 20px !important;
}

.product-features-title {
  margin: 0 0 16px 0 !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  color: var(--text-dark, #0f172a) !important;
  letter-spacing: -0.3px !important;
  border-bottom: 2px solid #f1f5f9 !important;
  padding-bottom: 10px !important;
}

.product-features-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.product-features-list li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--text-body, #1e293b) !important;
  margin: 0 !important;
}

.product-features-list .feature-check {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: var(--eco-green-light, #f0fdf4) !important;
  color: var(--eco-green-dark, #15803d) !important;
  font-weight: 800 !important;
  font-size: 12px !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
  border: 1px solid rgba(22, 163, 74, 0.25) !important;
}

.product-highlights-box {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  margin-bottom: 20px !important;
}

.product-highlight-badge {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 18px !important;
  border-radius: var(--radius-sm, 8px) !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
}

.product-highlight-badge .badge-icon {
  font-size: 18px !important;
  flex-shrink: 0 !important;
}

.product-highlight-badge.eco {
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  color: #14532d !important;
}

.product-highlight-badge.shipping {
  background: #eff6ff !important;
  border: 1px solid #bfdbfe !important;
  color: #1e40af !important;
}

.product-condition-notice {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding: 14px 18px !important;
  border-radius: var(--radius-sm, 8px) !important;
  background: #fffbeb !important;
  border: 1px solid #fef3c7 !important;
  color: #92400e !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
}

.product-condition-notice .notice-icon {
  font-size: 18px !important;
  flex-shrink: 0 !important;
  margin-top: 1px !important;
}

/* ==========================================================================
   Modern Product Gallery & Lightbox (Task #1977)
   ========================================================================== */
.modern-gallery-wrap {
  width: 100% !important;
  max-width: 480px !important;
  margin: 0 auto !important;
}

.gallery-main-stage {
  position: relative !important;
  width: 100% !important;
  min-height: 380px !important;
  background: #ffffff !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
  border-radius: var(--radius-lg, 14px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05) !important;
  cursor: zoom-in !important;
  transition: box-shadow 0.25s ease !important;
}

.gallery-main-stage:hover {
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.09) !important;
}

.gallery-main-img {
  max-width: 100% !important;
  max-height: 420px !important;
  object-fit: contain !important;
  display: block !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  transition: opacity 0.2s ease, transform 0.3s ease !important;
}

.gallery-main-stage:hover .gallery-main-img {
  transform: scale(1.02);
}

.gallery-stage-overlay {
  position: absolute !important;
  bottom: 12px !important;
  left: 12px !important;
  right: 12px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  pointer-events: none !important;
}

.gallery-counter {
  background: rgba(15, 23, 42, 0.75) !important;
  color: #ffffff !important;
  padding: 4px 10px !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  backdrop-filter: blur(4px) !important;
}

.gallery-zoom-badge {
  background: rgba(22, 163, 74, 0.9) !important;
  color: #ffffff !important;
  padding: 4px 10px !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  backdrop-filter: blur(4px) !important;
  transition: opacity 0.2s ease !important;
}

.gallery-stage-nav {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid var(--card-border, #e2e8f0) !important;
  color: var(--text-dark, #0f172a) !important;
  font-size: 22px !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  opacity: 0.8 !important;
  transition: all 0.2s ease !important;
  z-index: 2 !important;
}

.gallery-stage-nav:hover {
  opacity: 1 !important;
  background: #ffffff !important;
  color: var(--eco-green, #16a34a) !important;
  transform: translateY(-50%) scale(1.08) !important;
}

.gallery-stage-nav.prev { left: 10px !important; }
.gallery-stage-nav.next { right: 10px !important; }

/* Thumbnail strip */
.gallery-thumb-rail {
  display: flex !important;
  gap: 10px !important;
  margin-top: 14px !important;
  overflow-x: auto !important;
  padding: 4px 2px 8px 2px !important;
  scrollbar-width: thin !important;
}

.gallery-thumb-item {
  width: 76px !important;
  height: 76px !important;
  flex: 0 0 76px !important;
  border-radius: var(--radius-sm, 8px) !important;
  border: 2px solid var(--card-border, #e2e8f0) !important;
  background: #ffffff !important;
  padding: 4px !important;
  cursor: pointer !important;
  overflow: hidden !important;
  transition: all 0.2s ease !important;
  box-sizing: border-box !important;
}

.gallery-thumb-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
  border-radius: 4px !important;
}

.gallery-thumb-item:hover {
  border-color: #94a3b8 !important;
  transform: translateY(-2px) !important;
}

.gallery-thumb-item.is-active {
  border-color: var(--eco-green, #16a34a) !important;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.35) !important;
  transform: translateY(-2px) !important;
}

/* Lightbox Modal */
body.lightbox-open {
  overflow: hidden !important;
}

.modern-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.25s ease, visibility 0.25s ease !important;
}

.modern-lightbox.is-open {
  opacity: 1 !important;
  visibility: visible !important;
}

.lightbox-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(15, 23, 42, 0.94) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.lightbox-content {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  padding: 20px !important;
  box-sizing: border-box !important;
  z-index: 1 !important;
}

.lightbox-close {
  align-self: flex-end !important;
  background: rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  font-size: 20px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
}

.lightbox-close:hover {
  background: rgba(239, 68, 68, 0.9) !important;
  border-color: rgba(239, 68, 68, 1) !important;
  transform: rotate(90deg) !important;
}

.lightbox-stage {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  position: relative !important;
}

.lightbox-image-box {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  max-height: 75vh !important;
  padding: 0 16px !important;
}

.lightbox-img {
  max-width: 100% !important;
  max-height: 75vh !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.6) !important;
  transition: opacity 0.2s ease !important;
}

.lightbox-nav {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  font-size: 30px !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.lightbox-nav:hover {
  background: var(--eco-green, #16a34a) !important;
  border-color: var(--eco-green, #16a34a) !important;
  transform: scale(1.1) !important;
}

.lightbox-footer {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 12px !important;
}

.lightbox-counter {
  color: #94a3b8 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
}

.lightbox-thumbs {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  max-width: 80% !important;
  padding: 4px !important;
}

.lb-thumb-item {
  width: 56px !important;
  height: 56px !important;
  flex: 0 0 56px !important;
  border-radius: 6px !important;
  border: 2px solid transparent !important;
  background: rgba(255, 255, 255, 0.1) !important;
  padding: 2px !important;
  cursor: pointer !important;
  overflow: hidden !important;
  opacity: 0.5 !important;
  transition: all 0.2s ease !important;
}

.lb-thumb-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
  border-radius: 4px !important;
}

.lb-thumb-item:hover,
.lb-thumb-item.is-active {
  opacity: 1 !important;
  border-color: var(--eco-green, #16a34a) !important;
  transform: translateY(-2px) !important;
}


