/* Voltra — PrestaShop 8 theme by Code Craft (coodecraft.com).
   A child theme of Classic: Classic's stylesheet loads first, this file restyles it.
   Change the colours in :root to re-brand the whole store. */

:root {
  --vt-bg: #f3f5f9;
  --vt-surface: #ffffff;
  --vt-ink: #0d1321;
  --vt-muted: #5b6577;
  --vt-line: #e2e7ef;
  --vt-soft: #eaf0ff;
  --vt-accent: #2b59ff;
  --vt-accent-dark: #1c3fd0;
  --vt-accent-ink: #ffffff;
  --vt-header: #0d1321;
  --vt-header-ink: #e8edf7;
  --vt-hot: #ff5a1f;
  --vt-new: #0aa06e;
  --vt-radius: 14px;
}

body { background: var(--vt-bg); color: var(--vt-ink); }
a { color: var(--vt-accent); }
a:hover, a:focus { color: var(--vt-accent-dark); }
:focus-visible { outline: 2px solid var(--vt-accent); outline-offset: 2px; }
h1, h2, h3, .h1, .h2, .h3 { color: var(--vt-ink); font-weight: 800; letter-spacing: -0.01em; text-transform: none; }
.text-muted { color: var(--vt-muted) !important; }

/* ---------- buttons and forms ---------- */
.btn { border-radius: 999px; font-weight: 700; text-transform: none; box-shadow: none; }
.btn-primary { background: var(--vt-accent); border-color: var(--vt-accent); color: var(--vt-accent-ink); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.disabled, .btn-primary:disabled { background: var(--vt-accent-dark); border-color: var(--vt-accent-dark); color: var(--vt-accent-ink); }
.btn-secondary, .btn-tertiary { background: var(--vt-surface); border: 1px solid var(--vt-line); color: var(--vt-ink); }
.btn-secondary:hover, .btn-tertiary:hover { background: var(--vt-soft); color: var(--vt-ink); }
.form-control, .custom-select, select.form-control { border-radius: 10px; border-color: var(--vt-line); background-color: var(--vt-surface); color: var(--vt-ink); }
.form-control:focus { border-color: var(--vt-accent); outline: 0; box-shadow: 0 0 0 3px rgba(43, 89, 255, 0.15); }
.custom-checkbox input[type="checkbox"] + span, .custom-radio { border-color: var(--vt-muted); }
.custom-checkbox input[type="checkbox"]:checked + span .checkbox-checked { color: var(--vt-accent); }
.custom-radio input[type="radio"]:checked + span { background-color: var(--vt-accent); }
.card, .block-categories, #search_filters, .card-block { border-radius: var(--vt-radius); }
.card { border-color: var(--vt-line); box-shadow: none; }

/* ---------- header ---------- */
#header { background: var(--vt-header); color: var(--vt-header-ink); box-shadow: none; position: sticky; top: 0; transition: box-shadow 0.2s ease; }
#header.vt-scrolled { box-shadow: 0 8px 28px rgba(5, 10, 25, 0.35); }
#header .header-banner { background: var(--vt-accent); color: var(--vt-accent-ink); }
#header .header-nav { background: #090e19; border-bottom: 0; color: var(--vt-header-ink); }
#header .header-nav a, #header .header-nav .material-icons, #header .header-nav .expand-more, #header .header-nav #contact-link, #header .header-nav .user-info a, #header .header-nav .language-selector, #header .header-nav .currency-selector { color: var(--vt-header-ink); }
#header .header-nav .blockcart { background: var(--vt-accent); border-radius: 999px; padding: 0.35rem 0.9rem; margin-left: 0.5rem; height: auto; }
#header .header-nav .blockcart.active a:hover { color: var(--vt-accent-ink); }
#header .header-nav .blockcart .header, #header .header-nav .blockcart .header a, #header .header-nav .blockcart .shopping-cart, #header .header-nav .blockcart .cart-products-count { color: var(--vt-accent-ink); }
#header .header-nav .blockcart.inactive { opacity: 0.85; }
#header .header-top { padding: 1rem 0; background: var(--vt-header); }
#header .header-top .row { display: flex; align-items: center; flex-wrap: wrap; }
#header #_desktop_logo h1 { margin: 0; }
#header .logo { max-height: 46px; width: auto; }
#header .top-menu a[data-depth="0"] { color: var(--vt-header-ink); font-weight: 700; text-transform: none; font-size: 0.95rem; padding: 0.5rem 0.75rem; border-radius: 999px; }
#header .top-menu a[data-depth="0"]:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }
#header .top-menu .sub-menu { border-radius: var(--vt-radius); box-shadow: 0 18px 44px rgba(5, 10, 25, 0.25); border: 1px solid var(--vt-line); }
#header .top-menu .sub-menu a { color: var(--vt-ink); }
#header .top-menu .sub-menu a:hover { color: var(--vt-accent); }
#search_widget form input { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 999px; color: #fff; padding: 0.65rem 1rem 0.65rem 2.6rem; }
#search_widget form input::placeholder { color: rgba(232, 237, 247, 0.65); }
#search_widget form input:focus { background: #fff; color: var(--vt-ink); outline: 0; }
#search_widget form i { color: rgba(232, 237, 247, 0.75); }
#search_widget form input:focus + i, #search_widget form input:focus ~ i { color: var(--vt-muted); }
.ui-autocomplete.searchbar-autocomplete { border-radius: var(--vt-radius); border-color: var(--vt-line); overflow: hidden; }
#header .header-nav .mobile #menu-icon .material-icons, #header .header-nav .mobile .material-icons { color: var(--vt-header-ink); }
#mobile_top_menu_wrapper { background: var(--vt-surface); border-radius: 0 0 var(--vt-radius) var(--vt-radius); }
#mobile_top_menu_wrapper .top-menu a[data-depth="0"], #mobile_top_menu_wrapper .js-top-menu-bottom a { color: var(--vt-ink); }
#_mobile_logo .logo { max-height: 36px; }

/* reassurance strip under the header */
#header + .container, #wrapper { background: transparent; }
.blockreassurance { background: var(--vt-surface); border-bottom: 1px solid var(--vt-line); }
.blockreassurance .block-icon img, .blockreassurance .block-icon svg { filter: none; }
.blockreassurance .block-title { color: var(--vt-ink) !important; font-weight: 700; }
.blockreassurance p { color: var(--vt-muted) !important; }

/* ---------- home ---------- */
#wrapper { padding-top: 1.5rem; }
#carousel { border-radius: calc(var(--vt-radius) + 6px); overflow: hidden; box-shadow: none; margin-bottom: 2.5rem; }
#carousel .carousel-item .caption { bottom: auto; top: 50%; transform: translateY(-50%); left: 6%; right: auto; max-width: 480px; }
#carousel .carousel-item .caption .display-1 { color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 800; line-height: 1.05; text-transform: none; letter-spacing: -0.02em; }
#carousel .carousel-item .caption .caption-description p, #carousel .carousel-item .caption .caption-description { color: rgba(255, 255, 255, 0.9); font-size: 1.05rem; }
#carousel .carousel-item .caption .caption-description h3, #carousel .carousel-item .caption .caption-description h2 { color: #fff; text-transform: none; }
#carousel .carousel-item figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 10, 25, 0.78), rgba(5, 10, 25, 0.1) 70%); pointer-events: none; }
#carousel .carousel-item .caption { z-index: 2; }
#carousel .direction .carousel-control .icon-next, #carousel .direction .carousel-control .icon-prev { background: rgba(255, 255, 255, 0.14); border-radius: 50%; width: 46px; height: 46px; display: grid; place-items: center; }
#carousel .carousel-indicators li { background: rgba(255, 255, 255, 0.5); border: 0; }
#carousel .carousel-indicators li.active { background: #fff; }
.featured-products .products-section-title, .product-accessories .products-section-title, .products-section-title { text-align: left; font-size: 1.6rem; font-weight: 800; text-transform: none; color: var(--vt-ink); margin: 2rem 0 1.25rem; }
.featured-products .all-product-link { color: var(--vt-accent); font-weight: 700; }
.banner img { border-radius: calc(var(--vt-radius) + 6px); }
#custom-text { background: var(--vt-header); color: var(--vt-header-ink); border-radius: calc(var(--vt-radius) + 6px); padding: 3rem 2rem; }
#custom-text h2, #custom-text h3, #custom-text strong { color: #fff; text-transform: none; }
#custom-text p { color: rgba(232, 237, 247, 0.82); }

/* ---------- product cards ---------- */
.product-miniature .thumbnail-container { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-radius); box-shadow: none; overflow: hidden; transition: box-shadow 0.2s ease, transform 0.2s ease; height: auto; }
.product-miniature .thumbnail-container:hover, .product-miniature .thumbnail-container:focus-within { box-shadow: 0 16px 36px rgba(13, 19, 33, 0.1); transform: translateY(-3px); }
.product-miniature .thumbnail-top { background: var(--vt-surface); }
.product-miniature .product-thumbnail img { border-radius: 0; transition: transform 0.5s ease; }
.product-miniature .thumbnail-container:hover .product-thumbnail img { transform: scale(1.04); }
.product-miniature .product-description { position: static; background: var(--vt-surface); padding: 0.9rem 1rem 1rem; text-align: left; height: auto; box-shadow: none; border-top: 1px solid var(--vt-line); }
.product-miniature .product-description::after { display: none; }
.product-miniature .product-title { text-align: left; text-transform: none; font-size: 0.98rem; font-weight: 700; margin: 0 0 0.35rem; }
.product-miniature .product-title a { color: var(--vt-ink); }
.product-miniature .product-price-and-shipping { text-align: left; color: var(--vt-ink); font-weight: 800; font-size: 1.1rem; }
.product-miniature .product-price-and-shipping .regular-price { color: var(--vt-muted); font-weight: 500; font-size: 0.85rem; }
.product-miniature .discount-product { background: transparent; color: var(--vt-hot); font-weight: 800; font-size: 0.82rem; padding: 0; }
.product-miniature .highlighted-informations { background: rgba(255, 255, 255, 0.94); box-shadow: none; border-top: 1px solid var(--vt-line); }
.product-miniature .highlighted-informations .quick-view { color: var(--vt-ink); font-weight: 700; }
.product-miniature .highlighted-informations .quick-view:hover { color: var(--vt-accent); }
.vt-add { margin: 0.75rem 0 0; }
.vt-add__btn { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.55rem 0.9rem; font-size: 0.9rem; }
.vt-add__btn .material-icons { font-size: 1.15rem; }
.vt-add__btn--options { margin-top: 0.75rem; }
.product-flags li.product-flag { border-radius: 999px; font-size: 0.72rem; letter-spacing: 0.04em; padding: 0.25rem 0.65rem; min-height: 0; min-width: 0; background: var(--vt-ink); box-shadow: none; }
.product-flags li.product-flag.new { background: var(--vt-new); }
.product-flags li.product-flag.discount, .product-flags li.product-flag.discount-amount, .product-flags li.product-flag.discount-percentage, .product-flags li.product-flag.on-sale { background: var(--vt-hot); }
.product-miniature .product-flags { left: 0.75rem; top: 0.25rem; }
.wishlist-button-add { box-shadow: 0 2px 8px rgba(13, 19, 33, 0.12); }

/* ---------- listing pages ---------- */
#left-column .block-categories, #search_filters { background: var(--vt-surface); border: 1px solid var(--vt-line); box-shadow: none; }
.block-categories .category-top-menu a, .block-categories .h6 { color: var(--vt-ink); }
.block-categories .category-sub-menu li a:hover, .block-categories .category-top-menu a:hover { color: var(--vt-accent); }
#search_filters .facet .facet-title, #search_filters .h6 { color: var(--vt-ink); text-transform: none; font-weight: 800; }
#search_filters .facet .facet-label a { color: var(--vt-muted); }
.ui-slider .ui-slider-range { background: var(--vt-accent); }
#js-product-list-top, .products-selection { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-radius); padding: 0.6rem 1rem; margin: 0 0 1.25rem; }
.products-selection .sort-by-row .products-sort-order .select-title { border-radius: 999px; border-color: var(--vt-line); box-shadow: none; }
.block-category { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-radius); box-shadow: none; padding: 1.5rem; min-height: 0; }
.block-category h1 { font-size: 2rem; }
.pagination .current a { color: var(--vt-accent); }
.pagination a { border-radius: 8px; }
.breadcrumb { background: transparent; padding: 0.5rem 0 1rem; }
.breadcrumb li a, .breadcrumb li::after { color: var(--vt-muted); }
.breadcrumb li:last-child span { color: var(--vt-ink); }
#products .product-miniature, .featured-products .product-miniature, .product-accessories .product-miniature { margin-bottom: 1.5rem; }

/* ---------- product page ---------- */
#product #content .product-cover { border-radius: var(--vt-radius); overflow: hidden; border: 1px solid var(--vt-line); background: var(--vt-surface); }
#product .product-cover img { box-shadow: none; }
#product .product-images > li.thumb-container .thumb.selected, #product .product-images > li.thumb-container .thumb:hover { border-color: var(--vt-accent); }
#product .product-images > li.thumb-container .thumb { border-radius: 10px; }
#product h1.h1 { font-size: 2rem; text-transform: none; }
.product-prices .current-price-value, .product-price { color: var(--vt-ink); font-weight: 800; font-size: 1.8rem; }
.product-discount .regular-price { color: var(--vt-muted); }
.has-discount .discount { background: var(--vt-hot); border-radius: 999px; padding: 0.2rem 0.6rem; font-size: 0.8rem; }
.product-add-to-cart .add-to-cart { padding: 0.75rem 1.6rem; }
.product-quantity .qty .input-group { border-radius: 10px; }
.product-information .product-variants > .product-variants-item select { border-radius: 10px; }
.input-color:checked + span, .input-radio:checked + span, .input-color:hover + span, .input-radio:hover + span { border-color: var(--vt-accent); }
.tabs { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-radius); box-shadow: none; }
.tabs .nav-tabs { border-bottom: 1px solid var(--vt-line); }
.tabs .nav-tabs .nav-link { color: var(--vt-muted); font-weight: 700; }
.tabs .nav-tabs .nav-link.active, .tabs .nav-tabs .nav-link:hover { color: var(--vt-ink); border-bottom: 3px solid var(--vt-accent); }
.product-features > dl.data-sheet dd.value, .product-features > dl.data-sheet dt.name { background: var(--vt-bg); border-radius: 8px; }
.product-features > dl.data-sheet dd.value:nth-of-type(even), .product-features > dl.data-sheet dt.name:nth-of-type(even) { background: var(--vt-soft); }
.blockreassurance_product { background: var(--vt-surface); border: 1px solid var(--vt-line); border-radius: var(--vt-radius); padding: 0.5rem 1rem; }
.social-sharing li { border-radius: 50%; box-shadow: none; }

/* ---------- cart, checkout, account ---------- */
.cart-grid-body .card-block h1, .card-block .h1 { text-transform: none; }
.cart-summary, .cart-grid-body .card, .checkout-step, #order-summary-content, .page-content.card { border-radius: var(--vt-radius); }
body#checkout section.checkout-step { border-radius: var(--vt-radius); margin-bottom: 0.75rem; box-shadow: none; border: 1px solid var(--vt-line); }
body#checkout section.checkout-step .step-title { text-transform: none; font-weight: 800; }
body#checkout section.checkout-step.-current .step-title { color: var(--vt-accent); }
body#checkout section.checkout-step .step-number { background: var(--vt-soft); color: var(--vt-accent); }
.page-my-account #content .links a span.link-item { border-radius: var(--vt-radius); box-shadow: none; border: 1px solid var(--vt-line); }
.page-my-account #content .links a i { color: var(--vt-accent); }
#blockcart-modal .modal-content { border-radius: var(--vt-radius); overflow: hidden; }
#blockcart-modal .modal-header { background: var(--vt-new); }
#blockcart-modal .cart-content .btn { margin-bottom: 0.5rem; }
.quickview .modal-content { border-radius: var(--vt-radius); }

/* ---------- footer ---------- */
.block_newsletter { background: var(--vt-surface); border-radius: var(--vt-radius); border: 1px solid var(--vt-line); padding: 1.75rem 1.5rem; margin: 2rem 0 0; }
.block_newsletter p, .block_newsletter #block-newsletter-label { color: var(--vt-ink); font-weight: 700; }
.block_newsletter form input[type="email"] { border-radius: 999px 0 0 999px; border-color: var(--vt-line); }
.block_newsletter form .btn { border-radius: 0 999px 999px 0; }
.footer-container { background: var(--vt-header); color: var(--vt-header-ink); box-shadow: none; margin-top: 2.5rem; padding-top: 2.5rem; }
.footer-container .h3, .footer-container .h4, .footer-container .h3 a, .footer-container .block-contact-title, .footer-container .myaccount-title a { color: #fff; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.12em; font-weight: 800; }
#block_myaccount_infos .myaccount-title a, .footer-container .linklist .blockcms-title a { color: #fff; }
.footer-container li a, .footer-container .block-contact, .footer-container .block-contact a, .footer-container .account-list a { color: rgba(232, 237, 247, 0.75); }
.footer-container li a:hover, .footer-container .block-contact a:hover { color: #fff; }
.footer-container .text-sm-center a, .footer-container .text-sm-center { color: rgba(232, 237, 247, 0.6); }
.footer-container .links .collapse { background: transparent; }
@media (max-width: 767px) {
  .footer-container .links .title { border-bottom-color: rgba(255, 255, 255, 0.12); }
  .footer-container .links .h3, .footer-container .links .navbar-toggler .material-icons { color: #fff; }
  .footer-container .links ul { background: transparent; }
  .footer-container .links ul > li { border-bottom-color: rgba(255, 255, 255, 0.08); }
}

/* ---------- small screens ---------- */
@media (max-width: 767px) {
  #header .header-nav { background: var(--vt-header); }
  #header .header-nav .blockcart { padding: 0.25rem 0.6rem; }
  /* On phones the slide image is short, so the caption sits under it on the header colour. */
  #carousel .carousel-item .caption { position: static; transform: none; max-width: none; background: var(--vt-header); padding: 1.1rem 1.25rem 2.2rem; }
  #carousel .carousel-item .caption .display-1 { font-size: 1.6rem; }
  #carousel .carousel-item .caption .caption-description { display: block; font-size: 0.95rem; }
  #carousel .carousel-item figure::after { display: none; }
  #carousel .direction { display: none; }
  #custom-text { padding: 2rem 1.25rem; }
}
@media (max-width: 575px) {
  .products .js-product.product { flex: 0 0 50%; max-width: 50%; width: 50%; padding-left: 0.4rem; padding-right: 0.4rem; }
  .products.row { margin-left: -0.4rem; margin-right: -0.4rem; }
  .product-miniature .product-description { padding: 0.7rem; }
  .product-miniature .product-title { font-size: 0.85rem; }
  .product-miniature .product-price-and-shipping { font-size: 0.98rem; }
  .vt-add__btn { font-size: 0.8rem; padding: 0.5rem 0.4rem; }
  .vt-add__btn .material-icons { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
