/** Shopify CDN: Minification failed

Line 6:0 Unexpected "="

**/
==== assets/luxani-restyle.css ====
/* LUXANI-RESTYLE (2026-10-25, Tony approved): HCD-style prices + buttons.
   Visual only — no copy, descriptions, or section content touched. */

/* Sale price: red + bold, sitewide (product pages + collection cards). */
.price-item--sale {
  color: #cc0000 !important;
  font-weight: 700 !important;
}

/* Buttons: black pills (white text). Payment buttons keep their branding.
   Note: Dawn's add-to-cart is button--secondary when dynamic checkout
   shows, so secondary stays black too — whitening it would whiten ATC. */
.button {
  border-radius: 999px !important;
}
.button:not(.shopify-payment-button__button) {
  background-color: #000000 !important;
  color: #ffffff !important;
  border-color: #000000 !important;
}

/* Quantity selector: pill outline, HCD-style. */
.quantity {
  border-radius: 999px !important;
}
/* Dawn draws the quantity outline on the :after layer (radius 0 from the
   theme's inputs_radius setting), not on .quantity itself — round both
   layers or the pill never appears. */
.quantity:after {
  border-radius: 999px !important;
}
.quantity:before {
  border-radius: 999px !important;
}

/* Product-page accordions: HCD-style "+" at the right edge (Tony approved).
   Content untouched — only the row marker changes. The caret svg is the
   direct-child svg of summary; the block icon lives inside .summary__title
   and is left alone. */
.product__accordion summary {
  position: relative;
  padding-right: 3rem;
}
.product__accordion summary > svg {
  display: none !important;
}
.product__accordion summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1;
}
.product__accordion details[open] summary::after {
  transform: translateY(-50%) rotate(45deg);
}

/* Mega menu: HCD-style bold column headings + airy link spacing. */
.mega-menu__column-title {
  font-weight: 700 !important;
}
.mega-menu__grandchildren li {
  margin-bottom: 0.9rem;
}

/* LUXANI-CARD-QUICK-ADD (2026-10-25): HCD-style "+" on the card image corner.
   The overlay forwards its click to Dawn's own quick-add submit (modal for
   multi-variant, direct add for single-variant). Only the visible full-width
   button is hidden -- never the .quick-add wrapper itself, or the modal
   inside it could not display. */
.card-wrapper .quick-add__submit {
  display: none !important;
}
.luxani-card-quick-add {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 3;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  background: #000;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.luxani-card-quick-add:hover {
  background: #333;
}
.luxani-card-quick-add:focus-visible {
  outline: 0.2rem solid #fff;
  outline-offset: 0.2rem;
}

/* LUXANI-CARD-TITLE-ONE-LINE (2026-10-25): card titles stay on one line. */
.card-wrapper .card__heading {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* LUXANI-PAGE-WIDTH-HCD (2026-10-25): HCD-style near-full-width pages.
   Dawn's narrow centered container left ~410px blank margin per side at
   1920px; HCD leaves ~32px. Widen the container and trim its padding so
   content starts ~32px from the edge, like HCD, on product + collection
   pages and site-wide. */
.page-width {
  max-width: calc(100vw - 3.2rem) !important;
  padding-left: 1.6rem !important;
  padding-right: 1.6rem !important;
}

/* LUXANI-MEGA-MENU-HOVER (2026-10-25): HCD-style hover-open mega menu plus
   breathing room between columns (the top-center variant had column-gap 0,
   which ran adjacent columns together). CSS-only: hovering the menu item
   shows its panel; touch devices still open it on tap. */
.header__inline-menu details.mega-menu:hover > .mega-menu__content {
  display: block;
  opacity: 1;
  transform: translateY(0);
}
.header--top-center .mega-menu__list {
  column-gap: 4rem;
}

/* LUXANI-CARD-QUICK-ADD-V2 (2026-10-25): the heading link's ::after overlay
   (z-index 1) covers the whole card and sits ABOVE .card__media (z-index 0),
   so the "+" could never be clicked. Raise the media block above the overlay
   (the image itself is now its own link, so image navigation still works),
   and make the "+" bigger and chunkier, HCD-style. */
.card .card__inner .card__media {
  z-index: 2 !important;
}
.luxani-card-quick-add {
  width: 4rem;
  height: 4rem;
  font-size: 2.2rem;
  z-index: 10 !important;
}

/* LUXANI-MEGA-MENU-GRID (2026-10-25): the top-center variant's flex rows at
   16% width let long titles overflow into the next column. Real grid columns
   with wrapping kill the overlap. */
.header--top-center .mega-menu__list {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)) !important;
  gap: 2rem 4rem !important;
}
.header--top-center .mega-menu__list > li {
  width: auto !important;
  padding-right: 0 !important;
}

/* LUXANI-MENU-WHITE (2026-10-25): white dropdown panel with dark text,
   HCD-style. The header bar itself stays black; only the panel goes white. */
.mega-menu__content,
.header__submenu {
  background: #ffffff !important;
}
.mega-menu__content .mega-menu__link,
.header__submenu .list-menu__item {
  color: rgba(0, 0, 0, 0.75);
}
.mega-menu__content .mega-menu__link:hover,
.mega-menu__content .mega-menu__link--active,
.header__submenu .list-menu__item:hover {
  color: #000000;
}

/* LUXANI-SAVE-PILL (2026-10-25): restored red Save amount pill + red Sale
   badge, as the product page had before. Sale price stays red bold. */
.price__badge-sale {
  background-color: #cc0000 !important;
  color: #ffffff !important;
  border-color: #cc0000 !important;
}
.luxani-save-pill {
  display: block;
  width: fit-content;
  background: #cc0000;
  color: #ffffff;
  font-weight: 700;
  padding: 0.4rem 1.2rem;
  border-radius: 999px;
  margin-top: 0.8rem;
}

/* LUXANI-PRODUCT-WIDTH-HCD (2026-10-26): match HCD's product-page spread.
   Measured at 1920px: HCD content spans ~30→1865 (1835px; photo+thumbs ~1065,
   info ~725) while Luxani stops at ~1695 (1665px; info only ~630, title wraps).
   The 55/45 medium split is not the gap — total width is. Widen the split to
   58/42 of the full-width page container so photo lands ~1056 and info ~759,
   and the grid ends at the container's right edge like HCD's. Desktop only. */
@media screen and (min-width: 990px) {
  /* Broadened 2026-10-26: all three product templates use medium today, but
     the same 58/42 spread applies to large/small too, so no product page
     can slip through on a size-class difference. */
  .product--medium:not(.product--no-media) .product__media-wrapper,
  .product--large:not(.product--no-media) .product__media-wrapper,
  .product--small:not(.product--no-media) .product__media-wrapper {
    width: calc(58% - var(--grid-desktop-horizontal-spacing) / 2) !important;
    max-width: 58% !important;
  }
  .product--medium:not(.product--no-media) .product__info-wrapper,
  .product--large:not(.product--no-media) .product__info-wrapper,
  .product--small:not(.product--no-media) .product__info-wrapper {
    width: calc(42% - var(--grid-desktop-horizontal-spacing) / 2) !important;
    max-width: 42% !important;
  }
}

/* LUXANI-INFO-CONTAINER-FULL (2026-10-26): the draft width check exposed the
   real cap — Dawn caps .product__info-container at 60rem (600px) at >=750px,
   so even with a wider info wrapper the title/price/buttons stop ~600px in
   and the right side of the column sits empty (measured content ends ~1741
   instead of ~1865). Lift the cap so content fills the full info wrapper;
   with the 58/42 split that puts content at ~726px, matching HCD's ~725. */
@media screen and (min-width: 750px) {
  .product__info-container {
    max-width: none !important;
  }
}
/* LUXANI-WHITEBOX-FIX (2026-10-26): card-product renders a FIRST card__content
   inside card__inner (heading + variant-count + badge) below the media; Dawn
   hides its text but leaves the padded empty shell, a white strip between
   photo and title inside the card border. Hide the shell itself. The SECOND
   card__content (title/price, outside card__inner) is untouched, and the
   sold-out badge still shows via that second block. */
.card--card.card--media .card__inner > .card__content {
  display: none !important;
}

/* LUXANI-WHITEBOX-FIX standard twin (2026-10-26): the same inner shell
   renders for standard-style cards, and Dawn hides it only for card
   style — hide it here too so flipping card_style can't bring the
   duplicate heading / white strip back. */
.card--standard.card--media .card__inner > .card__content {
  display: none !important;
}

/* LUXANI-THUMB-ARROWS-OFF-MOBILE (2026-10-26): HCD's mobile product gallery
   has NO prev/next arrows on the thumbnail strip — swipe only, active thumb
   ringed. Dawn renders .slider-buttons flanking the thumbs; hide them on
   mobile so swiping is the only affordance, like HCD. Desktop untouched. */
@media screen and (max-width: 749px) {
  .thumbnail-slider .slider-buttons {
    display: none !important;
  }
}

/* LUXANI-MODAL-OPENER-HIDE (2026-10-26): the bordered empty block above the
   title on multi-variant cards IS Dawn's "Choose options" quick-add button
   (div.quick-add > modal-opener > button.quick-add__submit), rendered with
   its label suppressed, leaving only the bordered shell + spinner outline.
   The older .card-wrapper .quick-add__submit hide is present in this file
   yet the shell still renders in preview, so hide the modal-opener wrapper
   itself — multi-variant only, single-variant product-form cards untouched.
   Our "+" opens the custom quick-view dialog instead, and Dawn's modal
   content for these cards is empty anyway, so nothing is lost. */
.card-wrapper .card__content .quick-add modal-opener {
  display: none !important;
}

/* LUXANI-CARD-DOTS (2026-10-26): HCD-style colour dots under the card
   price (~18px circles, ~15px below the price, selected dot ringed).
   The container sits above the heading link's full-card ::after overlay
   (z-index 1) so sibling dot links and the "+ More Options" button are
   actually clickable. The button resets the black-square "+" styling
   (absolute, 4rem, black bg) to plain underlined text — the quick-view
   dialog itself is unchanged. */
.luxani-card-dots {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.6rem;
}

/* LUXANI-CARD-ROW-GAP (2026-10-26, Tony): the collection row band is
   NOT the grid gap — settings spacing_grid_vertical is already 8px.
   The band is the card's own content block (title + price + dots +
   1.7rem information padding top and bottom). Tighten the two spacing
   values that are pure air: dots margin and information padding.
   Desktop only; mobile untouched. Higher specificity than Dawn's
   .card__information rule so it wins despite loading first. */
@media screen and (min-width: 750px) {
  .card .card__information {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}
.luxani-card-dot {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  border: 0.1rem solid rgba(0, 0, 0, 0.25);
  display: inline-block;
  flex-shrink: 0;
}
.luxani-card-dot--selected {
  box-shadow: 0 0 0 0.2rem #ffffff, 0 0 0 0.35rem #000000;
}
.luxani-card-quick-add.luxani-card-more-options {
  position: static !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  margin-left: 0.4rem;
  background: transparent !important;
  color: rgba(0, 0, 0, 0.75) !important;
  font-size: 1.2rem !important;
  font-weight: 400;
  text-decoration: underline;
  display: inline-flex !important;
}
.luxani-card-quick-add.luxani-card-more-options:hover {
  background: transparent !important;
  color: #000000 !important;
}

/* LUXANI-CARD-DOTS nav cursor (2026-10-26): sibling dots are spans with JS navigation. */
.luxani-card-dot--link {
  cursor: pointer;
}

/* LUXANI-CARD-DOTS color swap cursor (2026-10-26): colour dots are clickable (in-place variant swap). */
.luxani-card-dot[data-luxani-dot-value] {
  cursor: pointer;
}

/* LUXANI-FLEXITI-OFF-CARDS (2026-10-26, Tony): Flexiti's productList
   config appends its wrapper INSIDE each div.card-information, so this
   descendant rule hides the financing line on every card render
   (collection grids, related-product rows) while the product-page line —
   inserted AFTER div.price__container, never inside card-information —
   and the cart line are untouched. */
.card-information .flxcalculator-plugin-wrapper {
  display: none !important;
}
.luxani-card-dot[data-luxani-dot-value]:focus-visible {
  outline: 2px solid #111;
  outline-offset: 2px;
}

/* LUXANI-HCD-NO-INSET (2026-10-26, Tony: make it look like HCD):
   HCD card photos fill the figure (object-fit cover, square, no
   transform). Remove Luxani's inset + hover pins entirely; pin hover to
   scale(1) so Dawn's 1.03 hover zoom doesn't grow photos (HCD switches
   image on hover with no zoom). Desktop only. Grid gaps stay 8px —
   HCD's own row gap is ~64px, copying it would widen Luxani's band. */
@media screen and (min-width: 990px) {
  .card:hover .media.media--hover-effect > img,
  .card-wrapper:hover .media.media--hover-effect > img {
    transform: scale(1) !important;
  }
}

/* LUXANI-PRICE-SALE-FIRST (2026-10-26, HCD match) — CORRECTED after
   preview: Dawn renders BOTH prices inside div.price__sale (compare <s>
   first, sale span second); div.price__regular is display:none on sale
   cards, so flex-ordering the two divs was a no-op. Flex the sale div
   itself and pull the sale span first. Cards only: PDP prices are not
   inside .card-information. Specificity 0,3,0 beats component-price.css
   (0,2,0, loaded later) without !important. */
.card-information .price--on-sale .price__sale {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.5rem;
}
.card-information .price--on-sale .price__sale .price-item--sale {
  order: -1;
}

/* LUXANI-SIMPLIFIED-HEADER (2026-10-26 theme draft): desktop header row
   = logo left / large search bar center / cart right, nav row below.
   Base header layout lives in base.css, which loads BEFORE this file,
   so these rules win at equal specificity (doubled class for safety).
   Mobile keeps drawer + logo + search-icon + cart; the bar is hidden
   below 990px and the logo is capped at 110px. */
.header__search-bar {
  display: none;
}
.header__search-form {
  display: flex;
  align-items: stretch;
  width: 100%;
  border: 0.1rem solid rgba(var(--color-foreground), 0.25);
  border-radius: 2.4rem;
  background: rgb(var(--color-background));
  overflow: hidden;
}
.header__search-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 1rem 1.6rem;
  font-size: 1.5rem;
  color: rgb(var(--color-foreground));
  background: transparent;
  outline: none;
}
.header__search-button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  padding: 0 1.6rem;
  border: 0;
  background: transparent;
  color: rgb(var(--color-foreground));
  cursor: pointer;
}
.header__search-button .svg-wrapper {
  width: 2rem;
  height: 2rem;
}
@media screen and (min-width: 990px) {
  .header.header--luxani-simplified {
    grid-template-areas:
      'heading search icons'
      'navigation navigation navigation';
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 2rem;
  }
  .header.header--luxani-simplified .header__heading-link,
  .header.header--luxani-simplified .header__heading {
    justify-self: start;
    text-align: left;
  }
  .header.header--luxani-simplified .header__heading-link {
    grid-area: heading;
  }
  .header.header--luxani-simplified .header__search-bar {
    display: block;
    grid-area: search;
    justify-self: center;
    width: 100%;
    max-width: 64rem;
  }
  .header.header--luxani-simplified .header__inline-menu {
    justify-self: center;
  }
}
@media screen and (max-width: 989px) {
  .header.header--luxani-simplified .header__heading-logo {
    width: 110px;
  }
}


/* LUXANI-SEARCH-BAR-BIG-LIGHT (2026-10-27 theme draft): bigger, lighter
   header search pill like the Zin Home reference — wide light-grey pill
   on the black header, larger text, dark icon. Appended last so it wins
   over the earlier simplified-header search rules at equal specificity.
   Desktop only (the bar is hidden below 990px; mobile keeps the modal). */
@media screen and (min-width: 990px) {
  .header.header--luxani-simplified .header__search-bar {
    max-width: 84rem;
  }
  .header__search-form {
    border: 0.1rem solid #e5e5e5;
    border-radius: 999px;
    background: #f2f2f2;
  }
  .header__search-form:focus-within {
    box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.65);
  }
  .header__search-input {
    padding: 1.4rem 2.2rem;
    font-size: 1.7rem;
    color: #111;
  }
  .header__search-input::placeholder {
    color: #666;
    opacity: 1;
  }
  .header__search-button {
    padding: 0 2rem;
    color: #111;
  }
  .header__search-button .svg-wrapper {
    width: 2.2rem;
    height: 2.2rem;
  }
}


/* LUXANI-NAV-ROW-ZINHOME (2026-10-27 theme draft): Zinhome-style top-level
   nav row — New first, then Furniture with its dropdown, every top-level
   link the SAME size in a clean sans. Presentation only: menu data untouched.
   Desktop only; the mobile drawer is unchanged. */
@media screen and (min-width: 990px) {
  .header__inline-menu > .list-menu--inline {
    gap: 3.2rem !important;
    align-items: center !important;
  }
  .header__inline-menu .header__menu-item {
    font-family: var(--font-body-family) !important;
    font-size: 1.7rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    padding-top: 1.2rem !important;
    padding-bottom: 1.2rem !important;
  }
}

/* LUXANI-FACETS-HCD (2026-10-27 theme draft): HCD-style horizontal filter
   bar on collection pages — even pill row (Price, Brand, Colour, Material,
   Features, Functionality, Category as Dawn renders them), clear sort +
   count row, prominent Clear-all when filters are active. Dawn's horizontal
   mode has no literal "All filters" button (that belongs to drawer mode);
   per-filter pills + Clear-all are the affordances Dawn allows here.
   Applies to all collections (Dawn has no per-collection body class). */
.facets__form {
  gap: 0 2rem !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: 1.5rem !important;
  border-bottom: 0.1rem solid rgba(0, 0, 0, 0.1) !important;
}
.facets__form .facets__wrapper {
  gap: 1rem 1.2rem !important;
}
.facets__form .facets__disclosure {
  margin-right: 0 !important;
}
.facets__form .facets__summary {
  margin-bottom: 0 !important;
  border: 0.1rem solid rgba(0, 0, 0, 0.2) !important;
  border-radius: 999px !important;
  padding: 0.8rem 2.8rem 0.8rem 1.6rem !important;
  font-size: 1.5rem !important;
  background: #ffffff !important;
}
.facets__form .facets__disclosure[open] .facets__summary,
.facets__form .facets__summary:hover {
  border-color: #000000 !important;
  background: #f7f7f7 !important;
  color: #000000 !important;
}
.facets__form .facets__summary .facets__summary-label {
  font-size: 1.5rem !important;
}
.facets__form .facets__display {
  border-color: rgba(0, 0, 0, 0.2) !important;
  box-shadow: 0 0.8rem 2.4rem rgba(0, 0, 0, 0.12) !important;
}
.facets__form .active-facets__button-remove {
  font-size: 1.5rem !important;
  text-decoration: underline !important;
  text-underline-offset: 0.3rem !important;
}
.facets__form .facet-filters__sort {
  font-size: 1.5rem !important;
}
.facets__form .product-count__text {
  font-size: 1.4rem !important;
  color: rgba(0, 0, 0, 0.6) !important;
}


/* LUXANI-GRID-SPACING-HCD (2026-10-27): match HCD collection grid spacing.
   HCD measured (desktop): column gap 20px, row gap 64px (4rem), card image-to-info 20px (1.25rem), info gap 8px (.5rem). Mobile: column 20px, row 35px (2.1875rem).
   Luxani old: grid gaps 8px/8px (settings spacing_grid 8), card info padding 1.3rem/1rem. */
#product-grid.grid {
  column-gap: 20px !important;
  row-gap: 64px !important;
}
@media screen and (max-width: 749px) {
  #product-grid.grid {
    column-gap: 20px !important;
    row-gap: 35px !important;
  }
}
#product-grid .card__content {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
#product-grid .card__information {
  display: grid !important;
  gap: 8px !important;
  padding: 20px 0 1.3rem !important;
}

/* LUXANI-GRID-SPACING-HCD-4COL (2026-10-27): restore 4 columns with the wider gaps.
   Root cause: Dawn sizes .grid__item from --grid-*-horizontal-spacing (still 8px from settings) while the gap override is 20px, so 4 items + 3 gaps exceed 100% and wrap to 3 per row. Setting the variables to match the gaps makes the width math exact again. */
#product-grid.grid {
  --grid-desktop-horizontal-spacing: 20px !important;
  --grid-mobile-horizontal-spacing: 20px !important;
  --grid-desktop-vertical-spacing: 64px !important;
  --grid-mobile-vertical-spacing: 35px !important;
}


/* LUXANI-FILTER-CARET-SPACING (2026-10-27, Tony: "arrows seem like they're touching the box"):
   Stock Dawn pins .facets__summary .icon-caret at right: 0, flush against the pill border.
   Move the caret inboard so it breathes from the edge; pill padding and text untouched. */
.facets__form .facets__summary .icon-caret {
  right: 0.6rem !important;
}

