/* --- ZÁKLADNÉ NASTAVENIA --- */
    :root {
      --color-primary: #cf987e;      
      --color-dark: #282828;         
      --color-gray: #8a8a8a;         
      --color-light-gray: #e0e0e0;   
      --bg-card: #f9f6f4;
      --white: #ffffff;
      --transition: all 0.3s ease;
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }

    body {
      background: var(--white);
      font-family: 'Montserrat', sans-serif;
      color: var(--color-gray);
      font-size: 14px; 
      -webkit-font-smoothing: antialiased;
    }

    h1, h2, h3, h4, h5, h6, strong { color: var(--color-dark); font-weight: 500; }
    a { text-decoration: none; color: inherit; transition: var(--transition); }

    .container-boxed { width: 100%; max-width: 1230px; margin: 0 auto; padding: 0 20px; }

    /* --- PAGE HEADER (Podľa image_04038d.png) --- */
    .page-header {
      padding: 70px 0;
      text-align: center;
      background: #f8f8f8;
      margin-bottom: 70px;
    }
    .page-title { font-size: 38px; font-weight: 400; margin-bottom: 15px; letter-spacing: -0.5px; color: var(--color-dark); }
    .breadcrumbs { font-size: 12px; color: var(--color-gray); text-transform: uppercase; letter-spacing: 1px; }
    .breadcrumbs a { color: var(--color-dark); font-weight: 500; }
    .breadcrumbs a:hover { color: var(--color-primary); }

    /* --- PRODUCT LAYOUT (Podľa dlhého screenshotu) --- */
    .product-single { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(340px, 0.98fr); gap: 50px; margin-bottom: 80px; align-items: start; }

    /* LAVA STRANA: GALÉRIA */
    .product-gallery { display: flex; gap: 20px; min-width: 0; width: auto; }
    .gallery-thumbs { display: flex; flex-direction: column; gap: 15px; width: 80px; }
    .thumb-item { 
      width: 80px; height: 90px; background: #f8f8f8; border-radius: 8px; 
      display: flex; align-items: center; justify-content: center; cursor: pointer; 
      border: 1px solid transparent; transition: var(--transition); padding: 10px;
    }
    .thumb-item:hover, .thumb-item.active { border-color: var(--color-dark); }
    .thumb-item svg,
    .thumb-item img { width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
    
    .gallery-main {
      flex: 1;
      background: #f0efed;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      height: clamp(420px, 42vw, 760px);
      padding: 0;
      overflow: hidden;
    }
    .gallery-main svg {
      display: block;
      max-width: 92%;
      max-height: 92%;
      width: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
      transition: var(--transition);
    }
    .gallery-main img,
    .product-main-image {
      display: block;
      width: 100%;
      height: 100%;
      max-width: none;
      max-height: none;
      object-fit: cover;
      object-position: center;
      transition: var(--transition);
    }
    .badge-new { position: absolute; top: 20px; left: 20px; background: var(--color-dark); color: var(--white); font-size: 10px; font-weight: 600; text-transform: uppercase; padding: 5px 12px; border-radius: 4px; letter-spacing: 1px; }

    /* PRAVÁ STRANA: INFORMÁCIE */
    .product-info { min-width: 0; width: auto; padding-top: 10px; }
    .product-name { font-size: 32px; font-weight: 500; letter-spacing: -0.5px; margin-bottom: 15px; }
    
    .price-stock-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; }
    .product-price { font-size: 24px; font-weight: 500; color: var(--color-dark); }
    .product-stock { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--color-gray); }
    .product-stock svg { width: 16px; height: 16px; stroke: var(--color-dark); stroke-width: 2; fill: none; }

    .product-desc { font-size: 14px; line-height: 1.7; color: var(--color-gray); margin-bottom: 35px; }

    /* Add to Cart Form */
    .add-to-cart-form { display: flex; gap: 20px; align-items: center; margin-bottom: 40px; }
    
    .qty-selector { display: flex; border: 1px solid #ddd; border-radius: 4px; height: 50px; }
    .qty-selector button { background: none; border: none; width: 40px; font-size: 18px; cursor: pointer; color: var(--color-dark); transition: var(--transition);}
    .qty-selector button:hover { background: #f5f5f5; }
    .qty-selector input { width: 40px; border: none; text-align: center; font-family: inherit; font-size: 15px; font-weight: 600; color: var(--color-dark); outline: none; -moz-appearance: textfield; }
    .qty-selector input::-webkit-outer-spin-button, .qty-selector input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

    .btn-add-main { 
      background: var(--color-dark); color: var(--white); border: none; height: 50px; padding: 0 40px;
      font-family: inherit; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px;
      border-radius: 4px; cursor: pointer; transition: var(--transition); flex: 1;
    }
    .btn-add-main:hover { background: var(--color-primary); }

    .action-icons { display: flex; gap: 15px; }
    .action-icons button { background: none; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; }
    .action-icons svg { width: 22px; height: 22px; stroke: var(--color-dark); stroke-width: 1.5; fill: none; transition: var(--transition); }
    .action-icons button:hover svg { stroke: var(--color-primary); }

    /* Meta informácie */
    .meta-links { display: flex; gap: 30px; margin-bottom: 25px; border-bottom: 1px solid #eee; padding-bottom: 25px; }
    .meta-link-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--color-dark); cursor: pointer; transition: var(--transition); }
    .meta-link-item:hover { color: var(--color-primary); }
    .meta-link-item svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.5; fill: none; }

    .product-meta { font-size: 13px; line-height: 2; color: var(--color-gray); }
    .product-meta span { color: var(--color-dark); font-weight: 500; display: inline-block; width: 80px;}
    .share-row { display: flex; align-items: center; gap: 15px; margin-top: 15px; }
    .share-row a { display: flex; align-items: center; justify-content: center; }
    .share-row svg { width: 16px; height: 16px; fill: var(--color-dark); transition: var(--transition); }
    .share-row a:hover svg { fill: var(--color-primary); }

    /* --- TABS (Popis a Recenzie) --- */
    .product-tabs-section { margin-bottom: 80px; }
    .tabs-nav { display: flex; justify-content: center; gap: 40px; border-bottom: 1px solid #eee; margin-bottom: 40px; }
    .tab-btn { 
      background: none; border: none; padding: 0 0 15px 0; font-family: inherit; font-size: 16px; 
      color: var(--color-gray); font-weight: 400; cursor: pointer; border-bottom: 2px solid transparent; transition: var(--transition);
    }
    .tab-btn.active { color: var(--color-dark); border-bottom-color: var(--color-primary); font-weight: 500; }
    .tab-btn:hover:not(.active) { color: var(--color-dark); }

    .tab-content { display: none; max-width: 900px; margin: 0 auto; line-height: 1.8; color: var(--color-gray); animation: fadeIn 0.4s ease; text-align: center;}
    .tab-content.active { display: block; }
    .tab-content ul { padding-left: 20px; margin: 20px 0; text-align: left; display: inline-block;}
    .tab-content li { margin-bottom: 10px; }
    @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

    
    /* --- SÚVISIACE PRODUKTY --- */
    .related-section {
      text-align: center;
      margin-bottom: 80px;
    }

    .related-section .section-title {
      font-size: 42px;
      font-weight: 400;
      margin-bottom: 34px;
      letter-spacing: -1.6px;
    }

    .related-section .cards-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 28px 20px;
      text-align: left;
      align-items: start;
    }

    .related-section .product-card {
      display: flex;
      flex-direction: column;
      text-align: left;
      background: transparent;
      border: none;
      padding: 0;
      position: relative;
      box-shadow: none;
      transform: none;
    }

    .related-section .product-card:hover {
      transform: none;
      box-shadow: none;
    }

    .related-section .image-frame-card {
      position: relative;
      background: var(--bg-card);
      border-radius: 12px;
      width: 100%;
      aspect-ratio: 0.9 / 1;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 14px;
      overflow: hidden;
    }

    .related-section .product-media-card {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      z-index: 1;
    }

    .related-section .product-svg-card,
    .related-section .product-media-card img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      transition: transform 0.5s ease;
    }

    .related-section .product-card:hover .product-svg-card,
    .related-section .product-card:hover .product-media-card img {
      transform: scale(1.05);
    }

    .related-section .card-link {
      position: absolute;
      inset: 0;
      z-index: 2;
      border-radius: 12px;
    }

    .related-section .product-actions {
      position: absolute;
      top: 50%;
      right: 10px;
      transform: translateY(-50%) translateX(20px);
      opacity: 0;
      visibility: hidden;
      display: flex;
      flex-direction: column;
      gap: 8px;
      transition: var(--transition);
      z-index: 3;
    }

    .related-section .product-card:hover .product-actions {
      opacity: 1;
      visibility: visible;
      transform: translateY(-50%) translateX(0);
    }

    .related-section .action-btn {
      width: 34px;
      height: 34px;
      background: var(--white);
      border: 1px solid var(--white);
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: var(--transition);
      box-shadow: 0 4px 10px rgba(0,0,0,0.06);
      color: var(--color-dark);
      position: relative;
      z-index: 4;
    }

    .related-section .action-btn:hover {
      background: var(--color-dark);
      color: var(--white);
      border-color: var(--color-dark);
    }

    .related-section .action-btn svg {
      width: 16px;
      height: 16px;
      stroke: currentColor;
      stroke-width: 1.5;
      fill: none;
      transition: var(--transition);
      pointer-events: none;
    }

    .related-section .title-link {
      display: inline-block;
      position: relative;
      z-index: 3;
    }

    .related-section .title-inner-card {
      font-size: 14px;
      line-height: 1.35;
      font-weight: 600;
      color: var(--color-dark);
      margin-bottom: 4px;
      text-align: left;
      transition: var(--transition);
    }

    .related-section .title-link:hover .title-inner-card {
      color: var(--color-primary);
    }

    .related-section .price-card {
      font-size: 13px;
      font-weight: 500;
      color: var(--color-gray);
      text-align: left;
    }


/* --- RESPONZIVITA --- */
    @media (max-width: 1024px) {
      .related-section .cards-grid { grid-template-columns: repeat(3, 1fr); }
      .product-single { grid-template-columns: minmax(0, 1fr) minmax(320px, 0.95fr); gap: 30px; }
    }
    @media (max-width: 850px) {
      .header-right { flex: unset; justify-content: flex-end; gap: 20px; }
      
      .product-single { flex-direction: column; gap: 40px; }
      .product-gallery { width: 100%; flex-direction: column-reverse; }
      .gallery-thumbs { flex-direction: row; width: 100%; justify-content: center; }
      .thumb-item { width: 70px; height: 70px; }
      .product-info { width: 100%; }
      .add-to-cart-form { flex-wrap: wrap; }
    }
    @media (max-width: 600px) {
      .cards-grid { grid-template-columns: 1fr; }
      .newsletter-title, .newsletter-form { justify-content: center; }
      .gallery-main { height: 350px; }
    }

.cart-item-product-link { color: inherit; text-decoration: none; }
.cart-item-product-link:hover { color: var(--color-primary); }


.reviews-tab-content { text-align: left; max-width: 980px; }
.reviews-summary { display:flex; justify-content:center; margin-bottom:32px; }
.reviews-average-wrap { text-align:center; padding:24px 32px; background:#f8f8f8; border-radius:14px; min-width:260px; }
.reviews-average { font-size:42px; line-height:1; color:var(--color-dark); margin-bottom:10px; }
.reviews-average-stars, .review-stars { display:flex; gap:4px; align-items:center; }
.reviews-average-stars { justify-content:center; margin-bottom:8px; }
.review-star { font-size:18px; line-height:1; color:#d6d6d6; }
.review-star.is-filled { color:#cf987e; }
.reviews-count-text { color:var(--color-gray); font-size:14px; }
.reviews-list { display:grid; gap:18px; margin-bottom:36px; }
.review-card { background:#fff; border:1px solid #eee; border-radius:14px; padding:24px; }
.review-card-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:12px; }
.review-author { font-size:16px; font-weight:600; color:var(--color-dark); }
.review-meta { font-size:12px; color:var(--color-gray); margin-top:4px; text-transform:uppercase; letter-spacing:0.6px; }
.review-content { color:var(--color-gray); line-height:1.8; }
.reviews-empty { text-align:center; color:var(--color-gray); padding:18px 0; }
.review-form-wrap { max-width:760px; margin:0 auto; background:#f8f8f8; border-radius:16px; padding:28px; }
.review-form-title { font-size:24px; margin-bottom:18px; text-align:center; }
.review-form { display:grid; gap:16px; }
.review-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.review-field { display:grid; gap:8px; }
.review-field label { font-size:13px; font-weight:600; color:var(--color-dark); }
.review-field input, .review-field select, .review-field textarea { width:100%; border:1px solid #ddd; border-radius:10px; background:#fff; padding:14px 16px; font-family:inherit; font-size:14px; color:var(--color-dark); outline:none; }
.review-field textarea { resize:vertical; min-height:140px; }
.review-field input:focus, .review-field select:focus, .review-field textarea:focus { border-color:var(--color-primary); }
.review-form-message { display:none; margin-bottom:16px; border-radius:10px; padding:14px 16px; font-size:14px; }
.review-form-message.is-error, .review-form-message.is-success, .review-form-message.is-info { display:block; }
.review-form-message.is-error { background:#fff0f0; color:#b21c1c; }
.review-form-message.is-success { background:#f1fbf2; color:#1a6f2a; }
.review-form-message.is-info { background:#f5f5f5; color:var(--color-dark); }
.review-submit-btn[disabled] { opacity:0.6; cursor:not-allowed; }
@media (max-width: 767px) {
  .review-form-grid { grid-template-columns:1fr; }
  .review-card-head { flex-direction:column; }
}


/* TinoVision mobile product layout refinements */
@media (max-width: 850px) {
  .page-header {
    padding: 44px 0;
    margin-bottom: 36px;
  }

  .page-title {
    font-size: 32px;
    margin-bottom: 10px;
  }

  .breadcrumbs {
    line-height: 1.7;
    padding: 0 10px;
  }

  .product-single {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 56px;
  }

  .product-gallery {
    width: 100%;
    flex-direction: column;
    gap: 14px;
  }

  .gallery-main {
    order: 1;
  }

  .gallery-thumbs {
    order: 2;
    flex-direction: row;
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
  }

  .thumb-item {
    width: 68px;
    height: 68px;
    padding: 8px;
  }

  .product-info {
    width: 100%;
    padding-top: 0;
  }

  .product-name {
    font-size: 28px;
    margin-bottom: 12px;
  }

  .price-stock-row {
    gap: 14px;
    align-items: flex-start;
  }

  .add-to-cart-form {
    flex-wrap: wrap;
    align-items: stretch;
    gap: 14px;
  }

  .qty-selector {
    width: 100%;
    justify-content: space-between;
  }

  .qty-selector button,
  .qty-selector input {
    width: 56px;
    height: 50px;
  }

  .qty-selector input {
    flex: 1;
  }

  .btn-add-main {
    width: 100%;
    flex: initial;
    padding: 0 24px;
  }

  .action-icons {
    width: 100%;
    justify-content: center;
  }

  .meta-links {
    flex-direction: column;
    gap: 14px;
  }

  .product-meta span {
    width: auto;
    min-width: 76px;
    margin-right: 8px;
  }

  .tabs-nav {
    gap: 24px;
    margin-bottom: 28px;
  }
}

@media (max-width: 600px) {
  .page-header {
    padding: 34px 0;
    margin-bottom: 28px;
  }

  .page-title {
    font-size: 28px;
  }

  .product-single {
    gap: 28px;
    margin-bottom: 48px;
  }

  .gallery-main {
    height: min(72vw, 420px);
    padding: 18px;
    border-radius: 10px;
  }

  .gallery-main img,
  .product-main-image {
    object-fit: contain;
    object-position: center;
  }

  .badge-new {
    top: 14px;
    left: 14px;
    font-size: 9px;
    padding: 4px 10px;
  }

  .product-name {
    font-size: 24px;
    line-height: 1.2;
  }

  .price-stock-row {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 18px;
  }

  .product-price {
    font-size: 22px;
  }

  .product-desc {
    font-size: 15px;
    line-height: 1.75;
    margin-bottom: 26px;
  }

  .thumb-item {
    width: 60px;
    height: 60px;
  }

  .meta-links {
    margin-bottom: 18px;
    padding-bottom: 18px;
  }

  .tabs-nav {
    justify-content: flex-start;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 4px;
  }

  .tabs-nav::-webkit-scrollbar {
    display: none;
  }

  .tab-btn {
    flex: 0 0 auto;
    font-size: 15px;
    padding-bottom: 12px;
  }

  .tab-content,
  .reviews-tab-content {
    max-width: 100%;
    text-align: left;
  }

  .reviews-summary {
    margin-bottom: 24px;
  }

  .reviews-average-wrap,
  .review-form-wrap {
    padding: 20px;
    min-width: 0;
  }

  .review-form-title {
    font-size: 22px;
  }

  .review-card {
    padding: 18px;
  }

  .related-section {
    margin-bottom: 56px;
  }

  .related-title,
  .section-title {
    font-size: 28px;
    margin-bottom: 28px;
  }

  .related-section .cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }

  .related-section .product-actions {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
  }

  .related-section .image-frame-card { aspect-ratio: 0.86 / 1; margin-bottom: 10px; }
  .related-section .title-inner-card { font-size: 13px; }
  .related-section .price-card { font-size: 12px; }
}
