/**
 * Vincia storefront — header / mega-menu fixes only (Modave theme base unchanged).
 * Without this: pointer leaves <li> before reaching the panel (gap under nav text).
 */

/* Logo (wwwroot/images/logo/Asset.png) — deep reddish-brown; use for brand accents */
:root {
  --vincia-logo: #5d1e0f;
  --vincia-logo-rgb: 93, 30, 15;
  --vincia-logo-soft: rgba(93, 30, 15, 0.08);
  --vincia-logo-softer: rgba(93, 30, 15, 0.04);
  --vincia-logo-border: rgba(93, 30, 15, 0.2);
  --vincia-logo-line: rgba(93, 30, 15, 0.12);
  --vincia-logo-count: rgba(93, 30, 15, 0.15);
  /* Page canvas — warm background; cards/panels/inputs keep --white */
  --vincia-page-bg: #fff8f4;
}

/* =============================================================================
   Global page canvas (#fff8f4) — overrides Modave #fffbf9 and header scroll-white.
   Cards, dropdowns, modals, and form panels intentionally stay white.
   ============================================================================= */
html,
body {
  background-color: var(--vincia-page-bg) !important;
}

#wrapper,
.preload-wrapper {
  background-color: var(--vincia-page-bg);
}

section,
.page-title {
  background-color: var(--vincia-page-bg);
}

.page-title {
  background: var(--vincia-page-bg);
}

#header,
header.header-default,
#header.header-bg,
.header-scroll-white.header-bg {
  background-color: var(--vincia-page-bg) !important;
  box-shadow: none;
}

#header.header-bg,
.header-scroll-white.header-bg {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

footer,
footer .footer-wrap,
footer .footer-body,
footer .footer-bottom-wrap {
  background-color: var(--vincia-page-bg);
}

.tf-marquee.vincia-topbar-marquee {
  background-color: var(--vincia-page-bg);
}

.preload-container {
  background: var(--vincia-page-bg);
}

/* Legacy _Layout.cshtml (styles.min.css) */
.navbar-default {
  background: var(--vincia-page-bg) !important;
}

.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:focus,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > li > a:hover {
  background-color: var(--vincia-page-bg);
}

#header.header-default {
  position: relative;
  z-index: 1000;
}

#header .wrapper-header.row,
#header .wrapper-header.row > [class*="col-"],
#header .box-navigation {
  overflow: visible;
}

/* Positioning context for full-width mega is #header, not the narrow <li> */
#header .box-nav-ul .menu-item {
  position: static;
}

@media (min-width: 1200px) {
  #header .box-nav-ul .menu-item > .sub-menu.mega-menu {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    top: 100%;
    z-index: 1001;
    border-radius: 0 0 8px 8px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Hit-area bridge: keeps :hover on <li> while moving from link to panel */
  #header .box-nav-ul .menu-item > .sub-menu.mega-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 32px;
  }
}

#header .box-nav-ul .submenu-default {
  left: 0 !important;
  right: auto;
}

#header .nav-account .dropdown-account.dropdown-login {
  left: auto !important;
  right: 0 !important;
}

/* Header account dropdown — logout was white-on-white (global button styles); match link items */
.nav-account .dropdown-account .list-menu-item a,
.nav-account .dropdown-account .list-menu-item button.vincia-account-dropdown-item {
  font-family: "Kumbh Sans", sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 400;
  color: var(--main, #181818);
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 12px 0;
  display: block;
  width: 100%;
  text-align: left;
  text-transform: none;
  justify-content: flex-start;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.nav-account .dropdown-account .list-menu-item a:hover,
.nav-account .dropdown-account .list-menu-item button.vincia-account-dropdown-item:hover {
  color: var(--primary) !important;
  background: transparent;
}

.nav-account .dropdown-account .list-menu-item .vincia-account-dropdown-form {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
}

/* My Account area — enforce storefront body font on form controls */
.my-account-wrap input,
.my-account-wrap select,
.my-account-wrap textarea,
.my-account-wrap button.tf-btn {
  font-family: "Kumbh Sans", sans-serif;
}

/* XL: logo — centered nav — icons (reduces empty space on the left) */
@media (min-width: 1200px) {
  #header .wrapper-header.row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
    margin-left: 0;
    margin-right: 0;
    --bs-gutter-x: 0;
  }

  #header .wrapper-header.row > [class*="col-"] {
    width: 100% !important;
    max-width: none !important;
  }

  #header .wrapper-header.row > .col-xl-3.col-6 {
    justify-self: start;
  }

  #header .wrapper-header.row > .col-xl-6.d-none.d-xl-block {
    justify-self: center;
    min-width: 0;
  }

  #header .wrapper-header.row > .col-xl-3.col-3:not(.d-xl-none) {
    justify-self: end;
  }
}

/* Shop sidebar list (theme has no .facet-content reset) */
#vincia-shop-sidebar .facet-categories .facet-content {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

/* ── Shop filter sidebar: categories & subcategories (card + checkbox rows) ── */
#vincia-shop-sidebar .widget-facet.facet-categories {
  padding-bottom: 0;
  margin-bottom: 1.5rem !important;
  border-bottom: none !important;
  background: linear-gradient(180deg, var(--vincia-logo-softer) 0%, var(--white, #fff) 100%);
  border: 1px solid rgba(93, 30, 15, 0.1);
  border-radius: 12px;
  padding: 1.125rem 0.875rem 1rem;
  box-shadow: 0 1px 2px rgba(93, 30, 15, 0.06);
}

#vincia-shop-sidebar .widget-facet.facet-categories .facet-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--main, #1a1a1a);
  margin-bottom: 0.75rem !important;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(93, 30, 15, 0.1);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

#vincia-shop-sidebar .widget-facet.facet-categories .facet-title::before {
  content: "";
  width: 3px;
  height: 1rem;
  border-radius: 2px;
  background: var(--vincia-logo);
  flex-shrink: 0;
}

#vincia-shop-sidebar .facet-categories .facet-content li:not(:last-child) {
  margin-bottom: 8px;
}

#vincia-shop-sidebar .facet-categories .categories-item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.375rem 0.625rem;
  width: 100%;
  padding: 0.625rem 0.75rem;
  border-radius: 8px;
  border: 1px solid transparent;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--main, #1a1a1a);
  white-space: normal;
  overflow: visible;
  word-break: break-word;
  overflow-wrap: anywhere;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

#vincia-shop-sidebar .facet-categories .categories-item::before {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  border: 2px solid rgba(0, 0, 0, 0.18);
  border-radius: 4px;
  flex-shrink: 0;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

#vincia-shop-sidebar .facet-categories .categories-item:hover {
  background: var(--vincia-logo-softer);
  border-color: rgba(93, 30, 15, 0.08);
  color: var(--main, #1a1a1a);
}

#vincia-shop-sidebar .facet-categories .categories-item:hover::before {
  border-color: var(--vincia-logo);
}

#vincia-shop-sidebar .facet-categories .categories-item.active {
  background: var(--vincia-logo-soft);
  border-color: var(--vincia-logo-border);
  color: var(--vincia-logo);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--vincia-logo-line);
}

#vincia-shop-sidebar .facet-categories .categories-item.active::before {
  border-color: var(--vincia-logo);
  background: var(--vincia-logo);
  box-shadow: inset 0 0 0 2px var(--white, #fff);
}

#vincia-shop-sidebar .facet-categories .count-cate {
  margin-left: auto;
  flex-shrink: 0;
  align-self: center;
  font-size: 0.8125rem;
  font-weight: 500;
  opacity: 0.75;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  color: inherit;
}

#vincia-shop-sidebar .facet-categories .categories-item.active .count-cate {
  background: var(--vincia-logo-count);
  opacity: 1;
}

@media (min-width: 1200px) {
  #vincia-shop-sidebar.sidebar-filter .canvas-body {
    padding-top: 0;
  }
}

/* Home — Explore Collections: align heading row, consistent portrait cards */
#collectionsection .heading-section-2 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

#collectionsection .heading-section-2 .heading {
  margin-bottom: 0;
}

#collectionsection .tf-sw-categories .collection-position-2 .img-style {
  aspect-ratio: 3 / 4;
  min-height: 220px;
}

#collectionsection .tf-sw-categories .collection-position-2 .img-style img {
  min-height: 100%;
}

/* Collection carousel pills — fit full labels on narrow mobile slides (3 per view) */
#collectionsection .tf-sw-categories .collection-position-2 .content,
.shop-explore-strip .tf-sw-categories .collection-position-2 .content {
  left: 6px;
  right: 6px;
  bottom: 8px;
}

#collectionsection .tf-sw-categories .collection-position-2 .cls-btn,
.shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn {
  padding: 5px 8px;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  min-height: 28px;
  align-items: center;
  overflow: visible;
  white-space: normal;
  text-overflow: unset;
}

#collectionsection .tf-sw-categories .collection-position-2 .cls-btn .text,
.shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn .text {
  margin: 0;
  font-size: clamp(8px, 2.2vw, 12px);
  line-height: 1.1;
  font-weight: 600;
  max-width: 100%;
  white-space: nowrap;
  text-align: center;
}

@media (min-width: 576px) {
  #collectionsection .tf-sw-categories .collection-position-2 .content,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .content {
    left: 8px;
    right: 8px;
    bottom: 10px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn {
    padding: 5px 10px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn .text,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn .text {
    font-size: 11px;
    line-height: 14px;
  }
}

@media (min-width: 768px) {
  #collectionsection .tf-sw-categories .collection-position-2 .content,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .content {
    left: 12px;
    right: 12px;
    bottom: 12px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn {
    padding: 6px 16px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn .text,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn .text {
    font-size: 14px;
    line-height: 20px;
  }
}

@media (min-width: 992px) {
  #collectionsection .tf-sw-categories .collection-position-2 .content,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .content {
    left: 15px;
    right: 15px;
    bottom: 15px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn {
    padding: 8px 24px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn .text,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn .text {
    font-size: 16px;
    line-height: 24px;
  }
}

@media (min-width: 1200px) {
  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn {
    padding: 8px 28px;
  }

  #collectionsection .tf-sw-categories .collection-position-2 .cls-btn .text,
  .shop-explore-strip .tf-sw-categories .collection-position-2 .cls-btn .text {
    font-size: 18px;
    line-height: 26px;
  }
}

/* Category browse strip — same portrait cards as home Explore Collections */
.shop-explore-strip .tf-sw-categories .collection-position-2 .img-style {
  aspect-ratio: 3 / 4;
  min-height: 220px;
}

.shop-explore-strip .tf-sw-categories .collection-position-2 .img-style img {
  min-height: 100%;
}

/* Only swap to hover image when a distinct .img-hover exists (Modave hides primary unconditionally). */
.card-product .card-product-wrapper:hover .product-img .img-product {
  opacity: 1;
}
.card-product .card-product-wrapper:hover .product-img:has(.img-hover) .img-product {
  opacity: 0;
}

/* Login / register theme uses .login-wrap::before as a vertical divider between .left and .right.
   Single-column pages (OTP, etc.) have no .right — hide the pseudo-element so it does not cut through the form. */
.login-wrap.login-wrap-single::before {
  display: none !important;
}

.login-wrap.login-wrap-single {
  gap: 0;
  justify-content: center;
}

/* ── Flash toasts — fixed upper-right “toaster” stack (same glass UI) ─────── */
#vincia-toast-host.vincia-notice-wrap--toast {
  position: fixed;
  /* Sit just below typical Modave sticky header so the bar stays readable */
  top: max(4.5rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  left: auto;
  bottom: auto;
  width: auto;
  min-width: 0;
  max-width: min(400px, calc(100vw - 1.5rem));
  z-index: 1080;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.65rem;
  pointer-events: none;
  margin: 0;
  padding: 0;
}

@media (max-width: 991.98px) {
  #vincia-toast-host.vincia-notice-wrap--toast {
    top: max(3.5rem, env(safe-area-inset-top, 0px));
  }
}

#vincia-toast-host .vincia-notice {
  pointer-events: auto;
  width: 100%;
  max-width: min(400px, calc(100vw - 1.5rem));
  margin: 0;
}

.vincia-notice {
  position: relative;
  display: flex !important;
  align-items: flex-start;
  gap: 0.9rem;
  padding: 1rem 1rem 1rem 1.1rem;
  border-radius: 16px;
  overflow: hidden;
  isolation: isolate;
  animation: vincia-toast-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes vincia-toast-in {
  from {
    opacity: 0;
    transform: translateX(18px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

.vincia-notice--glass.vincia-notice--success {
  border: 1px solid rgba(16, 185, 129, 0.22);
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.94) 0%,
    rgba(236, 253, 245, 0.88) 45%,
    rgba(255, 255, 255, 0.92) 100%
  );
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.65) inset,
    0 12px 40px rgba(5, 150, 105, 0.12),
    0 4px 14px rgba(24, 24, 24, 0.06);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
}

.vincia-notice--glass.vincia-notice--error {
  border: 1px solid rgba(244, 63, 94, 0.22);
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(255, 241, 242, 0.9) 50%,
    rgba(255, 255, 255, 0.93) 100%
  );
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.6) inset,
    0 12px 40px rgba(225, 29, 72, 0.1),
    0 4px 14px rgba(24, 24, 24, 0.06);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
}

/* Soft emerald / rose glow blob */
.vincia-notice__glow {
  position: absolute;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.35) 0%, transparent 70%);
  filter: blur(18px);
  top: -50px;
  left: -40px;
  z-index: -1;
  pointer-events: none;
}

.vincia-notice__glow--error {
  background: radial-gradient(circle, rgba(244, 63, 94, 0.32) 0%, transparent 70%);
  left: auto;
  right: -50px;
  top: -45px;
}

.vincia-notice.alert {
  color: inherit;
}

.vincia-notice__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  background: linear-gradient(145deg, #d1fae5 0%, #a7f3d0 100%);
  color: #047857;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 6px 16px rgba(5, 150, 105, 0.18);
}

.vincia-notice__icon--error {
  background: linear-gradient(145deg, #ffe4e6 0%, #fecdd3 100%);
  color: #be123c;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 6px 16px rgba(225, 29, 72, 0.15);
}

.vincia-notice__bang {
  display: block;
  font-weight: 800;
  font-size: 1.2rem;
  line-height: 1;
}

.vincia-notice__body {
  flex: 1;
  min-width: 0;
  padding-top: 1px;
}

.vincia-notice__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.6rem;
  margin-bottom: 0.35rem;
}

.vincia-notice__pill {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #047857;
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 999px;
}

.vincia-notice__pill--error {
  color: #be123c;
  background: rgba(244, 63, 94, 0.12);
  border-color: rgba(244, 63, 94, 0.28);
}

.vincia-notice__title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #0f172a;
  line-height: 1.25;
}

.vincia-notice__text {
  font-size: 0.9rem;
  line-height: 1.55;
  color: #475569;
}

.vincia-notice__dismiss {
  flex-shrink: 0;
  opacity: 0.4;
  padding: 0.45rem !important;
  margin: -0.2rem -0.15rem 0 0 !important;
}

.vincia-notice__dismiss:hover {
  opacity: 0.95;
}

@media (max-width: 575px) {
  .vincia-notice {
    padding: 0.9rem 0.85rem;
    gap: 0.75rem;
    border-radius: 14px;
  }

  .vincia-notice__icon,
  .vincia-notice__icon--error {
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .vincia-notice__title {
    font-size: 1rem;
  }
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .vincia-notice--glass.vincia-notice--success {
    background: linear-gradient(145deg, #ecfdf5 0%, #fff 100%);
  }

  .vincia-notice--glass.vincia-notice--error {
    background: linear-gradient(145deg, #fff1f2 0%, #fff 100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .vincia-notice {
    animation: none;
  }
}

/* Cart qty: hide native number spinners (custom +/- only) */
.tf-table-page-cart .wg-quantity input.quantity-product[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.tf-table-page-cart .wg-quantity input.quantity-product[type="number"]::-webkit-outer-spin-button,
.tf-table-page-cart .wg-quantity input.quantity-product[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Cart / mini-cart: variant labels + diagonal MRP strikethrough (storefront-wide) */
.cart-variant-info {
  color: var(--secondary-2, #5d5d5d);
  line-height: 1.4;
}

.vincia-price-strike,
.old-price,
.compare-at-price,
.line-through {
  position: relative;
  display: inline-block;
  color: var(--secondary-2, #919191);
  text-decoration: none !important;
}

.vincia-price-strike::after,
.old-price::after,
.compare-at-price::after,
.line-through::after {
  content: "";
  position: absolute;
  left: -1px;
  right: -1px;
  top: 50%;
  height: 1.5px;
  background-color: var(--critical, #f03e3e);
  transform: translateY(-50%) rotate(-12deg);
  pointer-events: none;
}

/* My Account sidebar — avatar placeholder + logout contrast (Modave) */
.wrap-sidebar-account .vincia-account-avatar {
  position: relative;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--vincia-logo-line, rgba(24, 24, 24, 0.12));
  background: linear-gradient(160deg, #f4f4f4 0%, #e9e9e9 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.85);
}

.wrap-sidebar-account .vincia-account-avatar__silhouette {
  position: absolute;
  left: 50%;
  top: 42%;
  transform: translate(-50%, -50%);
  color: rgba(24, 24, 24, 0.22);
  pointer-events: none;
}

.wrap-sidebar-account .vincia-account-avatar__initial {
  position: relative;
  z-index: 1;
  font-size: 2rem;
  line-height: 1;
  color: #181818;
}

.wrap-sidebar-account .vincia-account-avatar__hint {
  max-width: 220px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.35;
}

.wrap-sidebar-account button.vincia-sidebar-logout.my-account-nav-item,
.wrap-sidebar-account button.vincia-sidebar-logout {
  color: #181818 !important;
  /* Match <a class="my-account-nav-item">: icon + label stay adjacent (avoid full-width space-between). */
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  text-align: left;
}

.wrap-sidebar-account button.vincia-sidebar-logout .text,
.wrap-sidebar-account button.vincia-sidebar-logout span:not(.icon) {
  color: inherit;
}

.wrap-sidebar-account .vincia-sidebar-logout__label {
  flex: 0 1 auto;
}

.wrap-sidebar-account .vincia-logout-form {
  width: 100%;
}

/* Wishlist page: remove control must not use Modave's .wishlist class (JS modal + mobile display:none) */
.card-product .vincia-wishlist-remove-form,
.card-product .vincia-wishlist-remove {
  display: inline-flex !important;
}

.card-product .vincia-wishlist-remove {
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Policy pages (shipping, returns, etc.) — Modave terms-of-use layout */
.vincia-policy-page.terms-of-use-wrap {
  display: block;
  max-width: 820px;
  margin: 0 auto;
}

.vincia-policy-page .vincia-policy-updated {
  margin-bottom: 32px;
}

.vincia-policy-page .terms-of-use-item .terms-of-use-title {
  color: var(--main, #181818);
  font-weight: 600;
}

.vincia-policy-page .terms-of-use-content p,
.vincia-policy-page .terms-of-use-content li {
  color: var(--secondary-2, #545454);
  line-height: 1.7;
}

.vincia-policy-page .terms-of-use-content ol,
.vincia-policy-page .terms-of-use-content ul {
  margin: 0;
  padding-left: 1.35rem;
}

.vincia-policy-page .terms-of-use-content ol li + li,
.vincia-policy-page .terms-of-use-content ul li + li {
  margin-top: 8px;
}

.vincia-policy-page .terms-of-use-content strong {
  color: var(--main, #181818);
  font-weight: 600;
}

.vincia-policy-page--wide {
  max-width: none;
}

.vincia-policy-page .vincia-policy-rich-text h4,
.vincia-policy-page .vincia-policy-rich-text h2 {
  color: var(--main, #181818);
  font-size: 1.125rem;
  font-weight: 600;
  margin: 28px 0 12px;
}

.vincia-policy-page .vincia-policy-rich-text h4:first-child,
.vincia-policy-page .vincia-policy-rich-text h2:first-child {
  margin-top: 0;
}

.vincia-policy-page .vincia-about-block + .vincia-about-block {
  margin-top: 48px;
  padding-top: 48px;
  border-top: 1px solid var(--line, #ebebeb);
}

.vincia-policy-page .page-faqs-wrap {
  display: block;
}

.vincia-policy-page .page-faqs-wrap .list-faqs {
  gap: 40px;
}

.vincia-policy-page .page-faqs-wrap .faqs-title {
  margin-bottom: 16px;
  color: var(--main, #181818);
}

.vincia-policy-page .accordion-product-wrap.style-faqs .accordion-title {
  cursor: pointer;
}

.vincia-policy-page .accordion-product-wrap.style-faqs .accordion-title h6 {
  margin: 0;
  font-weight: 500;
}

.vincia-policy-page .accordion-product-wrap.style-faqs .accordion-faqs-content {
  color: var(--secondary-2, #545454);
  line-height: 1.7;
}

.vincia-policy-page img.object-fit-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Homepage top bar marquee — seamless infinite scroll (dual-wrapper Modave pattern) */
.vincia-topbar-marquee {
  display: flex;
  overflow: hidden;
  width: 100%;
}

.vincia-topbar-marquee .marquee-wrapper {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  animation: infiniteScroll 28s linear infinite;
  will-change: transform;
}

/* Pause the whole strip on hover — not one wrapper (Modave uses two for seamless loop) */
.vincia-topbar-marquee:hover .marquee-wrapper {
  animation-play-state: paused !important;
}

.vincia-topbar-marquee .marquee-child-item p.vincia-topbar-marquee-text {
  font-family: "Kumbh Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  white-space: nowrap;
}

/* Homepage Best Selling — static grid (4 / 4 / 2 columns) */
.vincia-best-selling-grid {
  column-gap: 15px;
  row-gap: 30px;
}

@media (max-width: 767.98px) {
  .vincia-best-selling-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  .vincia-best-selling-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Customer Say — no featured-look row; remove reserved gap below author */
#testimonial .testimonial-item .content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#testimonial .testimonial-item .content-top {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

/* Footer — 4-column layout (Company / Shop / Supports) */
.vincia-footer .vincia-footer-grid {
  row-gap: 2rem;
}

.vincia-footer .footer-heading {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}

.vincia-footer-bottom-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

@media (max-width: 767.98px) {
  .vincia-footer-bottom-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

.vincia-footer-legacy .footer-bottom {
  padding-top: 14px;
  padding-bottom: 14px;
}

.vincia-footer .footer-bottom-wrap {
  justify-content: space-between;
}

.vincia-footer-bottom-bar__left,
.vincia-footer-bottom-bar__right {
  color: var(--secondary, #545454);
}

.vincia-footer-brand-link {
  color: var(--vincia-logo, #5d1e0f);
  font-weight: 600;
  text-decoration: none;
}

.vincia-footer-brand-link:hover {
  color: var(--vincia-logo, #5d1e0f);
  opacity: 0.85;
}

.vincia-footer-legacy .footer-bottom .vincia-footer-bottom-bar__left,
.vincia-footer-legacy .footer-bottom .vincia-footer-bottom-bar__right {
  color: rgba(255, 255, 255, 0.72);
}

.vincia-footer-legacy .footer-bottom .vincia-footer-brand-link {
  color: #fff;
}

.vincia-footer-legacy .footer-bottom .vincia-footer-brand-link:hover {
  color: #fff;
  opacity: 0.9;
}

.vincia-contact-lines {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.vincia-contact-lines__item {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
}

.vincia-contact-lines__item--address {
  align-items: start;
}

.vincia-contact-lines__item > i {
  justify-self: center;
  width: 24px;
  font-size: 20px;
  line-height: 1;
  color: var(--main, #181818);
  flex-shrink: 0;
}

.vincia-contact-lines__item--address > i {
  margin-top: 2px;
}

.vincia-contact-lines__text {
  margin: 0;
  line-height: 1.5;
}

.vincia-contact-lines__item > a.vincia-contact-lines__text {
  display: inline-block;
  text-decoration: none;
}

.vincia-contact-lines__item > a.vincia-contact-lines__text:hover {
  color: var(--main, #181818);
}

.vincia-contact-lines--legacy .vincia-contact-lines__item > i {
  font-size: 18px;
}

.vincia-contact-lines--legacy .vincia-contact-lines__item > a.vincia-contact-lines__text {
  color: inherit;
}

.vincia-contact-lines--legacy .vincia-contact-lines__item > a.vincia-contact-lines__text:hover {
  opacity: 0.85;
}

.vincia-contact-map__frame {
  border-radius: 12px;
  overflow: hidden;
  background-color: var(--surface, #f5f5f5);
  min-height: 420px;
}

.vincia-contact-map__frame iframe {
  display: block;
  width: 100%;
  height: 420px;
  border: 0;
}

@media (min-width: 992px) {
  .vincia-contact-map__frame,
  .vincia-contact-map__frame iframe {
    min-height: 500px;
    height: 500px;
  }
}

/* Homepage feature badges — large banner (reference: Pink Wardrobe trust strip) */
.vincia-feature-badges-section {
  padding: 3.5rem 0;
}

.vincia-feature-badges {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 1.25rem;
  width: 100%;
  max-width: none;
  margin: 0;
}

@media (min-width: 768px) {
  .vincia-feature-badges-section {
    padding: 4.5rem 0;
  }

  .vincia-feature-badges {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem 1.5rem;
  }
}

@media (min-width: 1200px) {
  .vincia-feature-badges-section {
    padding: 5rem 0;
  }

  .vincia-feature-badges {
    gap: 2.5rem 2rem;
  }
}

.vincia-feature-badges__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.125rem;
}

.vincia-feature-badges__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.vincia-feature-badges__icon img {
  width: 11.5rem;
  height: 7.5rem;
  display: block;
  object-fit: contain;
}

.vincia-feature-badges__label {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--main, #181818);
}

@media (min-width: 768px) {
  .vincia-feature-badges__label {
    font-size: 0.9375rem;
  }
}

@media (min-width: 1200px) {
  .vincia-feature-badges__label {
    font-size: 1rem;
  }
}

/* Shop listing — fixed grid (2 cols mobile, 3 cols desktop); no layout switcher */
.shop-listing-toolbar--no-layout {
  grid-template-columns: 1fr auto;
}

.shop-listing-toolbar--no-layout .tf-control-filter {
  grid-column: 1;
}

.shop-listing-toolbar--no-layout .tf-control-sorting {
  grid-column: 2;
}

/* Shop listing — sticky Filter/Sort bar + applied-filters row */
.vincia-shop-sticky-wrap {
  position: relative;
  overflow: visible;
}

.vincia-shop-sticky-sentinel {
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
  visibility: hidden;
}

.vincia-shop-sticky-bar {
  position: sticky;
  top: 0;
  z-index: 890;
  background-color: var(--vincia-page-bg);
  margin-left: calc(-0.5 * var(--bs-gutter-x, 1.5rem));
  margin-right: calc(-0.5 * var(--bs-gutter-x, 1.5rem));
  padding-left: calc(0.5 * var(--bs-gutter-x, 1.5rem));
  padding-right: calc(0.5 * var(--bs-gutter-x, 1.5rem));
  padding-top: env(safe-area-inset-top, 0px);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  border-bottom: 1px solid transparent;
}

.vincia-shop-sticky-bar.is-stuck {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  border-bottom-color: rgba(0, 0, 0, 0.06);
}

.vincia-shop-sticky-bar .shop-listing-toolbar {
  margin-top: 30px;
  margin-bottom: 0;
}

.vincia-shop-sticky-bar.is-stuck .shop-listing-toolbar {
  margin-top: 12px;
}

.vincia-shop-sticky-bar .meta-filter-shop {
  margin-top: 12px;
  margin-bottom: 16px;
}

.vincia-shop-sticky-bar.is-stuck .meta-filter-shop {
  margin-bottom: 12px;
}

.vincia-shop-sticky-bar .tf-dropdown-sort .dropdown-menu {
  z-index: 891;
}

section.flat-spacing,
section.flat-spacing .container,
.wrapper-control-shop {
  overflow: visible;
}

@media (max-width: 767.98px) {
  .vincia-shop-sticky-bar .shop-listing-toolbar {
    margin-top: 20px;
  }

  .vincia-shop-sticky-bar.is-stuck .shop-listing-toolbar {
    margin-top: 10px;
  }

  .vincia-shop-sticky-bar .meta-filter-shop {
    margin-top: 10px;
    margin-bottom: 14px;
  }
}

#listproduct .vincia-listing-grid,
.vincia-listing-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
  #listproduct .vincia-listing-grid,
  .vincia-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .vincia-footer .footer-body {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}

/* ── My Account pages — match Account Details pill buttons & form polish ── */
.account-orders .order-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.account-orders .order-actions .tf-btn {
  padding: 10px 24px;
  font-size: 14px;
  line-height: 22px;
  min-height: 0;
}

.account-address .widget-inner-address {
  display: flex;
  justify-content: flex-start;
}

.list-account-address .account-address-item {
  border: 1px solid var(--line, #ebebeb);
  border-radius: 12px;
  padding: 24px 20px;
  background: var(--white, #fff);
}

.list-account-address .account-address-item h6 {
  font-weight: 600;
}

.account-address-item__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.account-address-item__actions .tf-btn,
.account-address .widget-inner-address .tf-btn {
  padding: 10px 24px;
  font-size: 14px;
  line-height: 22px;
}

.tf-btn.btn-outline {
  background-color: transparent;
  color: var(--main, #181818);
  border: 1px solid var(--main, #181818);
}

.tf-btn.btn-outline::after {
  display: none;
}

.tf-btn:not(.btn-reset):after {
  pointer-events: none;
}


.tf-btn.btn-outline:hover {
  background-color: var(--main, #181818);
  color: var(--white, #fff);
}

.account-details .tf-select select,
.account-details .form-account-details select {
  appearance: auto;
  border: 2px solid var(--line, #ebebeb);
  border-radius: 8px;
  padding: 9px 16px;
  width: 100%;
  min-height: 46px;
  background: var(--white, #fff);
  color: var(--main, #181818);
  font-size: 16px;
  line-height: 26px;
}

.vincia-default-address__label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 16px;
  line-height: 26px;
  color: var(--main, #181818);
}

.vincia-default-address__label input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--main, #181818);
}

.account-details .button-submit .btn-line {
  margin-top: 2px;
}

@media (max-width: 767px) {
  .account-orders .order-actions .tf-btn,
  .account-address-item__actions .tf-btn {
    width: auto;
  }
}

/* Header cart: non-clickable when empty */
.nav-cart--empty .nav-icon-item--disabled {
  pointer-events: none;
  cursor: default;
  opacity: 0.45;
}

