/**
 * NYCL Product Page Skin v1.0
 * New York Custom Labels — Product Page Redesign
 * Date: 2026-03-31
 * Target: newyorkcustomlabels.com product pages
 * Requires: Porto theme base CSS, nycl.min.css, areaslider.css
 * Load via: catalog_product_view.xml or default.xml
 */
/* ============================================
   NYCL Product Page Skin v1
   Matches carousel card style from NYCL homepage
   ============================================ */

/* --- Font fix: self-host Neulis Alt approximation --- */
/* On production these load from same origin; cross-origin blocked on test harness */
/* Using Open Sans as closest available match */

/* --- Design Tokens (NYCL brand) --- */
:root {
  --nycl-primary: #1d1d1d;
  --nycl-text-light: #6b4440;
  --nycl-bg: #fff;
  --nycl-accent: #c8f542;
  --nycl-accent-dark: #c8973e;
  --nycl-card-shadow: 0 3px 12px rgba(0,0,0,0.12), 0 6px 24px rgba(0,0,0,0.08);
  --nycl-card-shadow-hover: 0 10px 36px rgba(0,0,0,0.15);
  --nycl-card-radius: 0;
  --nycl-card-bg: #fff;
}

/* Border-box everything inside the options area — 
   Porto uses content-box which causes padding to overflow containers */
.product-options-wrapper *,
.product-options-wrapper *::before,
.product-options-wrapper *::after {
  box-sizing: border-box !important;
}

/* ===========================================
   OPTION CARDS — each .field becomes a card
   =========================================== */

/* Card container */
.product-options-wrapper .fieldset > .field {
  background: var(--nycl-card-bg);
  border-radius: 0 !important;
  border: 3px solid #1d1d1d !important;
  box-shadow: var(--nycl-card-shadow);
  margin-bottom: 0.85rem !important;
  overflow: hidden !important;
  position: relative !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  padding: 0 !important;
}

.product-options-wrapper .fieldset > .field:hover {
  transform: none;
  box-shadow: var(--nycl-card-shadow);
}

/* Card title bar — black header */
body.nycl .catalog-product-view .product-options-wrapper .fieldset > .field > .label,
body.nycl .catalog-product-view .product-options-wrapper > .fieldset > .field > label.label {
  /* Section header — black background per NYCL color scheme */
  background: var(--nycl-primary) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  padding: 0.75rem 1rem !important;
  border-bottom: 2px solid var(--nycl-accent) !important;
  display: flex !important;
  align-items: center !important;
  cursor: pointer;
  /* Porto override — absolute positioning handles flush alignment with card border */
  height: auto !important;
  line-height: normal !important;
  /* Override asw2024 diagonal rotation (rotate: ±1deg) — keep headers straight */
  rotate: none !important;
  transform: none !important;
}

/* Step number badge */
.product-options-wrapper .fieldset > .field > .label .step-number {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  background-color: #e5c6ff !important;
  color: #1d1d1d !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  border-radius: 6px !important;   /* rounded corners to match EOP 1-2-3 boxes */
  margin-right: 0.6rem !important;
  line-height: 1 !important;
}

/* Title text */
.product-options-wrapper .fieldset > .field > .label span {
  color: #fff !important;
  font-weight: 700 !important;
}

/* Hide the question mark icons in the title bar (clean look) */
.product-options-wrapper .fieldset > .field > .label .fa-question-circle {
  display: none !important;
}

/* Card body — the .control section */
.product-options-wrapper .fieldset > .field > .control,
.product-options-wrapper .fieldset > .field > div:not(.label):not(.control) {
  padding: 0.75rem 1rem;
}


/* ============================================
   RADIO/CHECKBOX OPTION VALUES — swatch cards
   ============================================ */

/* Options list grid */
/* Match live site: flexbox with wrapping, not CSS grid */
body.nycl .product-options-wrapper .fieldset > .field:not(.quantity) .options-list.nested {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  padding: 0 !important;
  transform: none !important;
}

/* Individual option value as mini card (quantity has its own layout below) */
.product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice {
  background: var(--nycl-bg);
  border: 2px solid transparent;
  border-radius: 0;
  padding: 0.75rem !important;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
  position: relative;
  overflow: visible !important;
  /* Flex sizing — 4 per row */
  flex: 0 1 calc(25% - 0.5rem) !important;
  width: calc(25% - 0.5rem) !important;
  max-width: calc(25% - 0.5rem) !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Option label text — don't truncate (not quantity) */
.product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice .label {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  word-wrap: break-word !important;
  font-size: 0.85rem !important;
}

/* Swatch images inside option cards (not quantity) — exclude tooltip icons */
.product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice img.mageworx-optionswatches-option-gallery_image {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 auto 0.4rem !important;
  display: block !important;
  border-radius: 0;
}
/* Hide tooltip question mark icons inside option cards */
.product-options-wrapper .options-list .field.choice img[alt="tooltip"],
.product-options-wrapper .options-list .field.choice img[class*="option-value-tooltip"] {
  display: none !important;
}
.product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice .option_images_gallery,
.product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice .mageworx-optionswatches-option-gallery {
  width: 100% !important;
  display: block !important;
}

.product-options-wrapper .options-list .field.choice:hover {
  border-color: var(--nycl-accent);
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.15);
}

/* Selected/checked option card */
.product-options-wrapper .options-list .field.choice:has(input:checked) {
  border: 3px solid var(--nycl-accent) !important;
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.2) !important;
}

/* Active/selected state */
.product-options-wrapper .options-list .field.choice.active,
.product-options-wrapper .options-list .field.choice:has(input:checked) {
  border-color: var(--nycl-accent);
  background: #fff;
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.2);
}

/* Hide the actual radio/checkbox inputs */
.product-options-wrapper .options-list .field.choice input[type="radio"],
.product-options-wrapper .options-list .field.choice input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Option label text */
.product-options-wrapper .options-list .field.choice .admin__field-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--nycl-primary);
  cursor: pointer;
  padding: 0.25rem 0;
}

/* Hide price notices (overwhelming) */
.product-options-wrapper .options-list .field.choice .price-notice {
  display: none;
}

/* Hide duplicate gallery divs — HTML has 2 per choice, show only the first */
.product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice .option_images_gallery ~ .option_images_gallery {
  display: none !important;
}

/* Swatch image styling */
.option_images_gallery {
  margin-top: 0.35rem;
}

.mageworx-optionswatches-option-gallery {
  border-radius: 0;
  overflow: hidden;
}

.mageworx-optionswatches-option-gallery_image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}

/* Fix duplicate Order Summary — show only the first one */
.product-options-bottom-details ~ .product-options-bottom-details {
  display: none !important;
}
.box-tocart > .product-options-bottom-details:nth-of-type(n+2) {
  display: none !important;
}

/* Item heading — hide by default to prevent duplicate labels.
   The original .admin__field-label span already shows the option name.
   Only show .item-heading where explicitly needed (area cards). */
.product-options-wrapper .options-list .field.choice .item-heading {
  display: none !important;
}
/* Re-show item-heading for area/size cards where it's the primary label */
.field.area .options-list .field.choice .item-heading {
  display: block !important;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--nycl-primary);
}

/* ============================================
   AREA OPTION — special grid for sq-in cards
   ============================================ */
.field.area .options-list.nested {
  grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
  gap: 0.5rem;
}

.field.area .options-list .field.choice {
  padding: 0.5rem 0.25rem;
}

.field.area .options-list .field.choice .admin__field-label {
  font-size: 0.8rem;
}

/* ============================================
   STYLE OPTION — larger cards for fold images
   ============================================ */
.field.style .options-list.nested {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

/* ============================================
   SIZE OPTION — medium cards
   ============================================ */
.field.size .options-list.nested {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

/* ============================================
   QUANTITY SECTION — card grid layout
   ============================================ */
.field.quantity .options-list.nested {
  display: flex !important;
  flex-wrap: wrap !important;
  column-gap: 0.5rem !important;
  row-gap: 0.65rem !important;
  padding: 0.75rem !important;
  justify-content: center !important;
}

.field.quantity .options-list .field.choice {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  border-radius: 0 !important;
  padding: 0.75rem 0.5rem !important;
  margin: 0 !important;
  background: var(--nycl-bg) !important;
  border: 2px solid transparent !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  flex: 0 1 calc(16.666% - 0.5rem) !important;
  max-width: calc(16.666% - 0.5rem) !important;
  box-sizing: border-box !important;
}

.field.quantity .options-list .field.choice:hover {
  border-color: var(--nycl-accent) !important;
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.15) !important;
}

.field.quantity .options-list .field.choice:has(input:checked) {
  border: 3px solid var(--nycl-accent) !important;
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.2) !important;
}

/* Quantity relabeled content — stacked vertically */
.field.quantity .relabeled {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.15rem !important;
  width: 100% !important;
}

.field.quantity .relabeled .qty {
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
  text-align: center !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--nycl-primary) !important;
  line-height: 1.2 !important;
}

.field.quantity .relabeled .unitprice {
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
  text-align: center !important;
  font-size: 0.8rem !important;
  color: #888 !important;
  line-height: 1.2 !important;
}

.field.quantity .relabeled .totalprice {
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
  text-align: center !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  color: var(--nycl-primary) !important;
  line-height: 1.2 !important;
}

/* Hide quantity header row — not needed in card layout */
.field.quantity .header {
  display: none !important;
}

/* Hide duplicate elements in quantity cards */
.field.quantity .field.choice .item-heading {
  display: none !important;
}
/* Hide original label text — only show .relabeled content */
.field.quantity .field.choice > .label {
  font-size: 0 !important;
  color: transparent !important;
  line-height: 0 !important;
  overflow: hidden !important;
}
.field.quantity .field.choice > .label > span:not(.relabeled) {
  display: none !important;
}
/* Make .relabeled visible inside the zeroed-out label */
.field.quantity .field.choice > .label .relabeled {
  font-size: 0.85rem !important;
  color: var(--nycl-primary) !important;
  line-height: normal !important;
}
/* Remove "Each" and "Total" text — just show the values */
.field.quantity .relabeled .unitprice .qtyeach,
.field.quantity .relabeled .totalprice .qtytotal {
  display: none !important;
}
/* Fix strikethrough on pcs */
.field.quantity .relabeled .qty {
  text-decoration: none !important;
}
.field.quantity .relabeled * {
  text-decoration: none !important;
}

/* Custom qty field */
.customqtyfield {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  margin-top: 0.5rem;
  border-top: 1px solid #eee;
}

.customqtyfield input.customqty {
  border: 1px solid var(--nycl-accent) !important;
  border-radius: 0;
  padding: 0.4rem 0.5rem;
  font-size: 0.9rem;
  max-width: 100% !important;
  width: 100% !important;
}

/* Hide quantity footer completely */
.field.quantity .footer {
  display: none !important;
}

/* Custom qty styling */
.field.quantity .customqtyfield {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  border-radius: 0 !important;
  padding: 0.75rem 0.5rem !important;
  margin: 0 !important;
  background: var(--nycl-bg) !important;
  border: 2px solid transparent !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
.field.quantity .customqtyfield:hover,
.field.quantity .footer:hover {
  border-color: var(--nycl-accent) !important;
}

/* Custom qty placeholder color */
.field.quantity .customqtyfield input.customqty::placeholder {
  color: #888 !important;
  opacity: 1 !important;
}

/* Custom qty: always grey border unless .custom-active class is present */
.field.quantity .customqtyfield input.customqty {
  border-color: #ccc !important;
}
body.nycl .field.quantity .customqtyfield input.customqty.custom-active {
  border: 2px solid #c8f542 !important;
  border-color: #c8f542 !important;
}

/* Custom qty input styling */
.field.quantity .customqtyfield input.customqty {
  width: 80% !important;
  max-width: 100% !important;
  text-align: center !important;
  border: 2px solid #ccc !important;
  border-radius: 0 !important;
  padding: 0.4rem !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--nycl-primary) !important;
  margin-bottom: 0.25rem !important;
  box-sizing: border-box !important;
}
.field.quantity .customqtyfield .customqtyunitprice,
.field.quantity .customqtyfield .customqtytotalprice {
  font-size: 0.75rem !important;
  color: #888 !important;
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

/* Footer (10000+ / Get a Quote) */
.field.quantity .footer .qty {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--nycl-primary) !important;
}
.field.quantity .footer .unitprice {
  font-size: 0.75rem !important;
  color: #888 !important;
}
.field.quantity .footer .get-a-quote a {
  font-size: 0.75rem !important;
  color: var(--nycl-accent) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

/* Quantity footer (legacy) */
.field.quantity .footer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.85rem;
  color: #999;
  border-top: 1px solid #eee;
}

.field.quantity .footer .get-a-quote { text-align: right; }
.field.quantity .footer .get-a-quote a {
  color: var(--nycl-accent);
  font-weight: 600;
  text-decoration: none;
}

/* ============================================
   SELECT DROPDOWNS (How Many Versions)
   ============================================ */
.product-options-wrapper select.admin__control-select {
  width: 100%;
  padding: 0.6rem 0.75rem;
  border: 1px solid #eee;
  border-radius: 0;
  background: var(--nycl-bg);
  color: var(--nycl-primary);
  font-size: 0.9rem;
  cursor: pointer;
}

/* ============================================
   TEXTAREA (Comments)
   ============================================ */
.product-options-wrapper textarea.product-custom-option {
  width: 100%;
  border: 1px solid #eee;
  border-radius: 0;
  padding: 0.6rem 0.75rem;
  font-size: 0.9rem;
  min-height: 80px;
  resize: vertical;
}

.product-options-wrapper textarea.product-custom-option:focus {
  border-color: var(--nycl-accent);
  outline: none;
  box-shadow: 0 0 0 3px rgba(239, 87, 50, 0.1);
}

/* ============================================
   FILE UPLOAD SECTION
   ============================================ */
.field.file .upload-label-heading .heading {
  font-size: 1rem;
  font-weight: 600;
  color: var(--nycl-primary);
  display: block;
  margin-bottom: 0.5rem;
}

.field.file .upload-or-email {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  color: #666;
}

.field.file .upload-or-email .checkbox-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

/* ============================================
   PRODUCT OPTIONS BOTTOM / SUMMARY BAR
   ============================================ */
/* Remove outer container — make it invisible wrapper */
.product-options-bottom {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
  box-sizing: border-box !important;
  overflow: visible;
}

/* box-tocart IS the summary card — styled at paint time, no JS override needed */
.product-options-bottom .box-tocart,
body.nycl .product-options-bottom .box-tocart {
  background: #fff !important;
  box-shadow: var(--nycl-card-shadow) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  box-sizing: border-box !important;
  width: 100% !important;
}
body.nycl .product-options-bottom .box-tocart .fieldset {
  overflow: hidden !important;
}
/* Kill scrollbars inside the order summary details area only */
body.nycl .product-options-bottom .product-options-bottom-details {
  overflow: hidden !important;
  scrollbar-width: none !important;
}
body.nycl .product-options-bottom .product-options-bottom-details::-webkit-scrollbar {
  display: none !important;
}

.product-options-bottom .product-options-bottom-details {
  margin-bottom: 0 !important;
  padding: 0 !important;
}

body.nycl .product-options-bottom .product-options-bottom-details .details.your-quote {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  padding: 0.75rem 1rem !important;
  border-bottom: none !important;
  background: var(--nycl-primary) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  border-radius: 0 !important;
  transform: none !important;
  translate: none !important;
  position: static !important;
}

/* Product name row — flex-centered so text sits in the middle */
.product-options-bottom .product-options-bottom-details .details:nth-child(2) {
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  color: var(--nycl-primary) !important;
  padding: 0.6rem 1rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 2.25rem !important;
  translate: none !important;
  transform: none !important;
}

.product-options-bottom .details {
  font-size: 0.85rem !important;
  padding: 0.5rem 1rem !important;
  color: var(--nycl-primary) !important;
  border-bottom: 1px solid rgba(74,45,42,0.08) !important;
}

.product-options-bottom .details .title {
  color: var(--nycl-primary) !important;
}

.product-options-bottom .details .highlight {
  color: var(--nycl-primary) !important;
  font-weight: 500;
}

/* Price display — qty, unit price, total all on one row in the dark footer */
.product-options-bottom .fieldset,
body.nycl .product-options-bottom .box-tocart .fieldset {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-evenly !important;
  padding: 0.5rem 1rem 0.75rem !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;   /* kill trailing white strip below dark footer */
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  transform: none !important;
  background-color: var(--nycl-primary) !important;
  border-radius: 0 !important;
}

.product-options-bottom .field.qty {
  order: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 1 0% !important;
  width: 0 !important;
  text-align: center !important;
}

.product-options-bottom .qty-label {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: #fff !important;
  white-space: nowrap !important;
}

/* Hide the actual qty input inside summary — label is enough */
.product-options-bottom .field.qty .control,
.product-options-bottom .field.qty > .label {
  display: none !important;
}

.product-unit-price {
  order: 2 !important;
  font-size: 1rem !important;
  color: #fff !important;
  margin: 0 !important;
  flex: 1 1 0% !important;
  white-space: nowrap !important;
  text-align: center !important;
}

.product-total-price {
  order: 3 !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 !important;
  flex: 1 1 0% !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* Add to Cart button goes full width below the price row */
.product-options-bottom .fieldset .actions {
  order: 4 !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  text-align: center !important;
  display: flex !important;
  justify-content: center !important;
}

/* Add to Cart button — NYCL gradient style */
.product-options-bottom .action.tocart {
  background: #c8f542 !important;
  border: none !important;
  border-radius: 0;
  padding: 1.1rem 3rem;
  font-size: 1.15rem;
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.25) !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  width: 100%;
  cursor: pointer;
  color: #fff !important;
  transition: background 0.2s ease, transform 0.1s ease;
}

/* Button text + icon color */
.product-options-bottom .action.tocart,
.product-options-bottom .action.tocart span {
  color: #fff !important;
}

/* Cart icon before button text */
.product-options-bottom .action.tocart::before {
  content: '\f07a' !important;
  font-family: 'Font Awesome 5 Free', 'FontAwesome' !important;
  font-weight: 900 !important;
  margin-right: 0.5rem !important;
  font-size: 0.9em !important;
}

.product-options-bottom .action.tocart:hover {
  background: linear-gradient(135deg, #d94e2b, #ef6f4f) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(239, 87, 50, 0.4) !important;
}

/* ============================================
   TIER PRICES — hide (shown via areaslider)
   ============================================ */
.prices-tier {
  display: none !important;
}

/* ============================================
   HIDE ELEMENTS THAT AREN'T NEEDED
   ============================================ */

/* Hide the Magento default price box (areaslider manages pricing) */
.product-info-price .price-box .price-wrapper {
  display: none;
}

/* Hide the "None" radio option in Size groups when parent shown */
.field.size .field.choice:not([data-option_type_id]) {
  display: none;
}

/* Hide original Width/Height cards — they live inside Size card now */
body.nycl .field.width[data-option_id="3012"],
body.nycl .field.height[data-option_id="3013"] {
  display: none !important;
}

/* Custom size row — side by side Width + Height inside Size card */
.custom-size-row {
  display: flex !important;
  gap: 1.5rem !important;
  padding: 1rem 0.75rem !important;
  border-top: 1px solid rgba(74,45,42,0.08);
  width: 100% !important;
  box-sizing: border-box !important;
}
.custom-size-field {
  flex: 1 !important;
}
.custom-size-label {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--nycl-primary) !important;
  margin-bottom: 0.4rem !important;
}
.custom-size-input {
  width: 80px !important;
  box-sizing: border-box !important;
  border: 2px solid #ddd !important;
  border-radius: 0 !important;
  padding: 0.5rem 0.75rem !important;
  font-size: 1rem !important;
  color: var(--nycl-primary) !important;
  background: #fff !important;
  text-align: center !important;
}
.custom-size-field {
  position: relative !important;
}
.custom-size-input-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
}
.custom-size-input-wrap .custom-size-input {
  width: 90px !important;
  box-sizing: border-box !important;
  border: 2px solid #ddd !important;
  border-radius: 0 !important;
  padding: 0.4rem 0.5rem !important;
  font-size: 1rem !important;
  color: var(--nycl-primary) !important;
  background: #fff !important;
  text-align: center !important;
}
.custom-size-input-wrap .custom-size-input:focus {
  border-color: var(--nycl-accent) !important;
  outline: none !important;
}
.custom-size-input-wrap .inches-symbol {
  font-size: 0.75rem !important;
  color: var(--nycl-primary) !important;
  margin-left: -14px !important;
  margin-right: 4px !important;
  align-self: flex-start !important;
  margin-top: 6px !important;
  pointer-events: none !important;
  position: relative !important;
  z-index: 1 !important;
}
/* Add right padding to input so number doesn't overlap the symbol */
.custom-size-input-wrap .custom-size-input {
  padding-right: 16px !important;
}
.custom-size-input:focus {
  border-color: var(--nycl-accent) !important;
  outline: none !important;
}
/* Slider styling */
.custom-size-slider {
  margin: 0.75rem 0 0.25rem !important;
}
.custom-size-slider .ui-slider-range {
  background: var(--nycl-accent) !important;
}
.custom-size-slider .ui-slider-handle {
  background: var(--nycl-accent) !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
  width: 18px !important;
  height: 18px !important;
  top: 50% !important;
  margin-top: -9px !important;
  cursor: pointer !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2) !important;
}
.custom-size-slider.ui-slider {
  background: #eee !important;
  border: none !important;
  height: 6px !important;
  border-radius: 0 !important;
  position: relative !important;
}

/* Hide original How Many Versions card — lives inside Versions card now */
body.nycl .field.how-many-versions[data-option_id="2987"] {
  display: none !important;
}

/* Versions sub-field inside the Versions card */
.versions-sub-field {
  padding: 0.75rem !important;
  border-top: 1px solid rgba(74,45,42,0.08) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  text-align: center !important;
}
.versions-sub-field label {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--nycl-primary) !important;
  margin-bottom: 0.4rem !important;
}
.versions-sub-field select {
  width: 200px !important;
  box-sizing: border-box !important;
  border: 2px solid #ddd !important;
  border-radius: 0 !important;
  padding: 0.6rem 0.75rem !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  height: auto !important;
  min-height: 42px !important;
  color: var(--nycl-primary) !important;
  background: #fff !important;
  -webkit-appearance: menulist !important;
  appearance: menulist !important;
}
.versions-sub-field select:focus {
  border-color: var(--nycl-accent) !important;
  outline: none !important;
}

/* Comments textarea padding inside card */
body.nycl .field.textarea.comments-optional > .control {
  padding: 0.75rem !important;
}
body.nycl .field.textarea.comments-optional textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  border: 1px solid #ddd !important;
  padding: 0.75rem !important;
}

/* Hide "I will email additional artwork files" checkbox inside Upload Artwork card */
body.nycl .field.file .upload-or-email {
  display: none !important;
}

/* Hide "Email Additional Artwork" checkbox + "Upload Artwork" textarea */
body.nycl .field.email-additional-artwork,
body.nycl .field.textarea.upload-artwork {
  display: none !important;
}

/* Hide old "Create Your Artwork Instantly" and "How it Works" sections — replaced by trust badges */
body.nycl .how-it-works {
  display: none !important;
}
body.nycl .cols-2 {
  display: none !important;
}

/* Upload Artwork — two side-by-side option cards */
/* Upload Artwork card — center buttons vertically with equal padding */
/* Let the upload card row use the full width of the file field (override the
   generic .control max-width:400px so two ~square cards fit side by side) */
body.nycl .field.file[data-option_id="4030"] > .control {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
}
.upload-options-row {
  display: flex !important;
  gap: 2rem !important;
  align-items: stretch !important;
  justify-content: center !important;
  padding: 2rem 0.75rem !important;
}
.upload-option-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  flex: 0 1 288px !important;
  max-width: 324px !important;
  min-height: 180px !important;
  padding: 1.5rem 2rem !important;
  background: #f4f4f5 !important;
  border: 2px dashed #c9c9cf !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease !important;
  box-shadow: none !important;
  text-align: center !important;
}
.upload-option-card:hover {
  border-color: var(--nycl-primary) !important;
  background: #eeeeef !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.08) !important;
}
.upload-option-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 3rem !important;
  height: 3rem !important;
  margin-bottom: 0.25rem !important;
  line-height: 1 !important;
}
.upload-option-icon svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
.upload-option-label {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--nycl-primary) !important;
}
/* "or" divider between the two option cards */
.upload-options-divider {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  align-self: stretch !important;
  position: relative !important;
}
.upload-options-divider span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  color: #888 !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  text-transform: lowercase !important;
}

/* Upload file area (revealed on click) */
.upload-file-area {
  padding: 0.75rem 1rem !important;
}

/* Hide "Upload Your Artwork File" heading — replaced by the two option cards */
body.nycl .field.file .upload-label-heading {
  display: none !important;
}

/* Hide image-preview-wrapper in upload card (empty, wastes space) */
body.nycl .field.file[data-option_id="4030"] > .image-preview-wrapper,
body.nycl .field.file[data-option_id="2970"] > .image-preview-wrapper {
  display: none !important;
}

/* Sub-label under each upload option title */
.upload-option-sub {
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: #888 !important;
  line-height: 1.3 !important;
}

/* Hide the raw file-extension note + bare file input once cards are in place */
body.nycl .field.file[data-option_id="4030"] .upload-file-area .note {
  font-size: 0.8rem !important;
  color: #888 !important;
  margin-top: 0.5rem !important;
}

/* Legacy artwork tool btn — no longer used */
.artwork-tool-btn {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  padding: 1rem !important;
  margin: 0.75rem auto !important;
  background: var(--nycl-bg) !important;
  border: 2px solid transparent !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
  text-decoration: none !important;
  max-width: 180px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}
.artwork-tool-btn:hover {
  border-color: var(--nycl-accent) !important;
  box-shadow: 0 2px 8px rgba(239, 87, 50, 0.15) !important;
}
.artwork-tool-btn .artwork-tool-icon {
  font-size: 2.5rem !important;
  color: #c8f542 !important;
  line-height: 1 !important;
}
.artwork-tool-btn .artwork-tool-label {
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  color: var(--nycl-primary) !important;
  text-align: center !important;
}

/* Loading spinner */
#loading-and-loading {
  display: none;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
  .product-options-wrapper .options-list.nested {
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 0.5rem;
  }
  
  .field.area .options-list.nested {
    grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));
  }
  
  .field.style .options-list.nested {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 425px) {
  .product-options-wrapper .options-list.nested {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .field.area .options-list.nested {
    grid-template-columns: repeat(4, 1fr);
  }
  
  .field.quantity .relabeled,
  .field.quantity .header,
  .field.quantity .footer,
  .customqtyfield {
    grid-template-columns: 1fr 1fr 1fr;
    font-size: 0.8rem;
  }
}

/* ============================================
   PAGE BACKGROUND — NYCL cream
   Override Magento/Porto white backgrounds on
   all container elements so cream shows through
   ============================================ */
body.nycl {
  background-color: #f0f0f0 !important;
}

/* Nuclear background override — Porto theme loads remote CSS with many specific
   selectors that set white backgrounds. We need very broad coverage.
   NOTE: body.nycl is intentionally excluded so its #f0f0f0 page bg shows through. */
body.nycl .page-wrapper,
body.nycl .page-main,
body.nycl .columns,
body.nycl .column.main,
body.nycl .product-info-main,
body.nycl .product-info-main > *:not(.product-add-form):not(.pdp-reviews-faq-section),
body.nycl .product.attribute.overview,
body.nycl .product.attribute.overview .value,
body.nycl .product.media,
body.nycl .page-title-wrapper,
body.nycl .product-info-price,
body.nycl .product-add-form,
body.nycl .prev-next-products,
body.nycl .containerbackground,
body.nycl #maincontent,
body.nycl .product.info.detailed,
body.nycl .clearer {
  background-color: transparent !important;
  background: transparent !important;
}

/* Let Porto's flex layout work for the top section (image + description side by side)
   but allow the form and below-fold content to break onto their own full-width rows */
body.nycl .product-info-main {
  display: flex !important;
  flex-wrap: wrap !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* H1 title */
body.nycl .product-info-main > .page-title-wrapper .page-title,
body.nycl .product-info-main > .page-title-wrapper .page-title .base {
  color: var(--nycl-primary) !important;
  font-size: 36px !important;
  line-height: 1.2 !important;
}

/* H1 spans full width, flex row so pills sit right of title */
body.nycl .product-info-main > .page-title-wrapper {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
}

/* Image carousel thumbnails — MagicScroll may hide these without its JS */
body.nycl .MagicToolboxSelectorsContainer {
  display: block !important;
  visibility: visible !important;
  overflow: visible !important;
  margin-top: 0.75rem;
  height: auto !important;
  min-height: 60px !important;
  background: transparent !important;
}
body.nycl .MagicToolboxSelectorsContainer .MagicScroll {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 6px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
body.nycl .MagicToolboxSelectorsContainer .mt-thumb-switcher {
  display: inline-block !important;
  visibility: visible !important;
  width: auto !important;
  flex: 0 0 auto !important;
}
body.nycl .MagicToolboxSelectorsContainer .mt-thumb-switcher img {
  width: 50px !important;
  height: 50px !important;
  object-fit: cover !important;
  border-radius: 0;
  border: 1px solid #ddd;
  cursor: pointer;
  visibility: visible !important;
  opacity: 1 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08) !important;
}
body.nycl .MagicToolboxSelectorsContainer .mt-thumb-switcher img:hover {
  border-color: var(--nycl-accent);
}
/* Active/selected thumb highlight */
body.nycl .MagicToolboxSelectorsContainer .mt-thumb-switcher.active-selector img,
body.nycl .MagicToolboxSelectorsContainer .mt-thumb-switcher.mz-thumb-selected img {
  border-color: var(--nycl-accent) !important;
  border-width: 2px !important;
}
/* Thumbs keep their DOM order — no reordering on selection */
/* Thin scrollbar for thumbnail strip */
body.nycl .MagicToolboxSelectorsContainer .MagicScroll::-webkit-scrollbar {
  height: 4px;
}
body.nycl .MagicToolboxSelectorsContainer .MagicScroll::-webkit-scrollbar-track {
  background: transparent;
}
body.nycl .MagicToolboxSelectorsContainer .MagicScroll::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 0;
}
body.nycl .MagicToolboxSelectorsContainer .MagicScroll::-webkit-scrollbar-thumb:hover {
  background: #999;
}
/* MagicScroll hides thumbs — force everything visible */
body.nycl .MagicToolboxSelectorsContainer * {
  visibility: visible !important;
  opacity: 1 !important;
}
body.nycl .MagicToolboxSelectorsContainer .MagicScroll {
  height: auto !important;
  max-height: none !important;
}
body.nycl .MagicToolboxSelectorsContainer,
body.nycl .MagicToolboxSelectorsContainer.MagicToolboxSelectorsContainer {
  height: auto !important;
  max-height: 70px !important;
  overflow: hidden !important;
}

/* Image carousel on the RIGHT — matches 400px summary column below */
body.nycl .product-info-main > .product.media {
  flex: 0 0 400px !important;
  max-width: 400px !important;
  order: 2 !important;
}
body.nycl .product.media img:not(.mt-thumb-switcher img) {
  max-width: 100% !important;
  height: auto !important;
}
body.nycl .product.media .MagicToolboxContainer {
  max-width: 100% !important;
}
body.nycl .product.media #mtImageContainer {
  max-width: 100% !important;
}
body.nycl .product.media #mtImageContainer img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;
  box-shadow: 0 3px 12px rgba(0,0,0,0.12), 0 6px 24px rgba(0,0,0,0.08) !important;
}

/* Description/overview text on the LEFT — fills remaining space (matches options column below) */
body.nycl .product-info-main > .product.attribute.overview {
  flex: 1 1 0% !important;
  margin-bottom: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  order: 1 !important;
  margin-right: 1.5rem !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Everything after the image+desc row spans full width and sorts after them.
   Use a wildcard, then let title/media/overview override with specific order values above. */
body.nycl .product-info-main > * {
  order: 3 !important;
}
body.nycl .product-info-main > .page-title-wrapper {
  order: 0 !important;
}
body.nycl .product-info-main > .product.attribute.overview {
  order: 1 !important;
}
body.nycl .product-info-main > .product.media {
  order: 2 !important;
}

/* Full-width elements below the hero row */
body.nycl .product-info-main > .product-add-form,
body.nycl .product-info-main > .product.info.detailed,
body.nycl .product-info-main > .product-info-price,
body.nycl .product-info-main > .clearer,
body.nycl .product-info-main > .google-reviews-wrapper,
body.nycl .product-info-main > .custom-faq,
body.nycl .product-info-main > .custom-description,
body.nycl .product-info-main > .area-variables,
body.nycl .product-info-main > .pdp-reviews-faq-section {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.nycl .product-info-main > .pdp-reviews-faq-section {
  order: 4 !important;
  flex: 0 0 auto !important;
  width: 100vw !important;
  max-width: 100vw !important;
}
body.nycl .product-info-main > .custom-description {
  order: 5 !important;
}

/* Reduce gap between hero section (images + description) and options form */
body.nycl .product-add-form {
  margin-top: 1rem !important;
  padding-top: 0 !important;
}

/* ============================================
   TWO-COLUMN LAYOUT: Options (left) + Summary (right sticky)
   Grid on the FORM element inside .product-add-form
   (options-wrapper and options-bottom are children of the form, not product-info-main)
   ============================================ */
@media (min-width: 1025px) {
  /* The form contains both .product-options-wrapper and .product-options-bottom */
  body.nycl .product-add-form > form {
    display: grid !important;
    grid-template-columns: 1fr 400px !important;
    gap: 0 1.5rem !important;
    align-items: start !important;
  }

  /* Hidden inputs inside the form should not create grid items */
  body.nycl .product-add-form > form > input[type="hidden"] {
    display: none !important;
  }

  /* Options wrapper takes left column — full width of its cell */
  body.nycl .product-add-form > form > .product-options-wrapper {
    grid-column: 1 / 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Ensure fieldset within options wrapper also respects width constraints */
  body.nycl .product-add-form > form > .product-options-wrapper .fieldset {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  /* Summary takes right column, sticky */
  body.nycl .product-add-form > form > .product-options-bottom {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    position: sticky !important;
    top: 20px !important;
    align-self: start !important;
    margin-top: 0 !important;
  }

  /* product-info-main display:block is set globally above */
}

/* Mobile: single column handled by ≤1024px breakpoint above */

/* Product Page Reviews-FAQ Section (matches homepage prototype) */
body.nycl .pdp-reviews-faq-section {
  background: #eee !important;
  background-color: #eee !important;
  border-top: 3px solid #c8f542 !important;
  padding: 3rem 2rem 2rem !important;
  margin-top: 0 !important;
  width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  position: relative !important;
  box-sizing: border-box !important;
}

.pdp-reviews-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 1200px;
  margin: 0 auto;
}

.pdp-reviews-column h2,
.pdp-faq-column h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1d1d1d;
  margin-bottom: 1rem;
  font-family: inherit;
}

.pdp-reviews-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.pdp-reviews-header h2 {
  margin: 0 !important;
}

.pdp-reviews-stars {
  color: #c8f542;
  font-size: 13px;
  display: flex;
  gap: 2px;
}

.pdp-reviews-badge {
  background: #1d1d1d;
  color: #fff;
  padding: 0.25rem 0.75rem;
  border-radius: 0;
  font-size: 12px;
  font-weight: 600;
}

.pdp-review-card {
  background: #fff;
  border-radius: 0;
  padding: 1.5rem;
  margin-bottom: 0.75rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.pdp-review-card-stars {
  color: #c8f542;
  font-size: 13px;
  margin-bottom: 0.5rem;
  display: flex;
  gap: 2px;
}

.pdp-review-card-text {
  font-size: 15px;
  line-height: 1.6;
  color: #444;
  margin-bottom: 0.75rem;
}

.pdp-review-card-author {
  font-size: 13px;
  font-weight: 700;
  color: #1d1d1d;
}

.pdp-faq-card {
  background: linear-gradient(135deg, #1d1d1d, #6b4440);
  border-radius: 0;
  margin-bottom: 0.75rem;
  box-shadow: 0 2px 8px rgba(74,45,42,0.25);
  overflow: hidden;
}

.pdp-faq-button {
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 1.2rem 1.5rem !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #fff !important;
  border: none !important;
  background: none !important;
  cursor: pointer !important;
  text-align: left !important;
  height: auto !important;
  line-height: 1.4 !important;
  font-family: inherit !important;
}

.pdp-faq-chevron {
  color: #c8f542;
  transition: transform 0.3s ease;
  font-size: 14px;
}

.pdp-faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 0 1.5rem;
}

.pdp-faq-body-text {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255,255,255,0.85);
  padding-bottom: 1.5rem;
}

.pdp-faq-card.open .pdp-faq-chevron {
  transform: rotate(180deg);
}

.pdp-faq-card.open .pdp-faq-body {
  max-height: 200px;
}

.pdp-read-more-link {
  font-size: 14px;
  font-weight: 700;
  color: #c8f542;
  text-decoration: none;
  display: inline-block;
  margin-top: 1rem;
}

.pdp-read-more-link:hover {
  text-decoration: underline;
}

/* Hide original reviews/FAQ elements — replaced by pdp- styled section */
body.nycl .google-reviews-wrapper {
  display: none !important;
}
body.nycl .custom-faq {
  display: none !important;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .pdp-reviews-faq-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  body.nycl .product-info-main > .pdp-reviews-faq-section {
    padding: 2rem 1rem 1.5rem;
    flex: 0 0 auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
  }
  
  .pdp-reviews-column,
  .pdp-faq-column {
    margin-bottom: 1.5rem;
  }
}

/* ============================================
   TRUST BADGES ROW — between product info and order options
   ============================================ */
/* Force the overview .value to wrap so trust badges drop below text, and allow shadow to show */
body.nycl .product.attribute.overview .value {
  flex-wrap: wrap !important;
  overflow: visible !important;
}

body.nycl .pdp-trust-badges-wrapper {
  flex-basis: 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 1rem 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.pdp-trust-duo {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

/* Mobile: Stack trust cards vertically */
@media (max-width: 768px) {
  .pdp-trust-duo {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}

.pdp-trust-card {
  background: #fff !important;
  border-radius: 0 !important;
  border: 3px solid #1d1d1d !important;
  box-shadow: 0 0 24px rgba(74,45,42,0.28) !important;
  padding: 0 1.5rem 1.5rem !important;
  min-width: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.pdp-trust-badges-title {
  display: block !important;
  background: #1d1d1d !important;
  color: #fff !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  text-align: center !important;
  margin: 0 -1.5rem 1.25rem !important;
  padding: 0.75rem 1.5rem !important;
}

/* Turnaround card */
.pdp-turnaround-lines {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
}
.pdp-turnaround-line {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.6rem 0.85rem !important;
  background: #fff !important;
  border-radius: 0 !important;
  border-left: 3px solid #c8f542 !important;
}
.pdp-turnaround-line.pdp-turnaround-rush {
  border-left-color: #c8f542 !important;
}
.pdp-turnaround-icon {
  font-size: 1.35rem !important;
  color: #c8f542 !important;
  width: 2rem !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}
.pdp-turnaround-rush .pdp-turnaround-icon {
  color: #c8f542 !important;
}
.pdp-turnaround-text {
  font-size: 0.9rem !important;
  color: var(--nycl-primary) !important;
  line-height: 1.4 !important;
}
.pdp-turnaround-text strong {
  font-weight: 700 !important;
}

/* How It Works card */
.pdp-howitworks-steps {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.6rem !important;
}
.pdp-howitworks-step {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}
.pdp-step-num {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.6rem !important;
  height: 1.6rem !important;
  min-width: 1.6rem !important;
  border-radius: 50% !important;
  background: #c8f542 !important;
  color: #fff !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
}
.pdp-step-text {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--nycl-primary) !important;
  line-height: 1.4 !important;
}

@media (max-width: 768px) {
  .pdp-trust-duo {
    grid-template-columns: 1fr !important;
  }
}

/* === Info Pills — H1 row === */
body.nycl .pdp-info-pills {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  margin: 0 !important;
  align-self: center !important;
}
body.nycl .product-info-main > .page-title-wrapper .page-title {
  margin: 0 !important;
  padding: 0 !important;
}

body.nycl .pdp-info-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  background: #f7f7f5 !important;
  border: 1px solid #ececec !important;
  border-radius: 999px !important;
  padding: 0.55rem 1.1rem !important;
  white-space: nowrap !important;
}

.pdp-pill-icon {
  font-size: 1.2rem !important;
  flex-shrink: 0 !important;
}
.pdp-pill-icon.icon-turnaround { color: #e6c66a !important; } /* pastel gold */
.pdp-pill-icon.icon-minimum   { color: #b57edc !important; } /* pastel lavender */
.pdp-pill-icon.icon-ironon    { color: #ff6b6b !important; } /* soft coral red */
.pdp-pill-icon.icon-versions  { color: #5eb3f5 !important; } /* soft sky blue */
.pdp-pill-icon.icon-sample    { color: #7c8aa0 !important; } /* soft slate */
.pdp-pill-icon.icon-price     { color: #4ecb71 !important; } /* fresh neon-pastel green */

.pdp-pill-text {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1.2 !important;
}

.pdp-pill-title {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: var(--nycl-primary, #1d1d1d) !important;
  letter-spacing: 0.01em !important;
}

.pdp-pill-sub {
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  color: #666 !important;
}

@media (max-width: 768px) {
  body.nycl .pdp-info-pills {
    justify-content: center !important;
  }
  body.nycl .pdp-info-pill {
    white-space: normal !important;
  }
}

/* Reduce gap between product info text and How It Works */
body.nycl .styled-description {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.nycl .styled-description > *:last-child {
  margin-bottom: 0 !important;
}
body.nycl .product.attribute.overview .value {
  gap: 0.25rem !important;
}

/* Push How It Works to bottom of left column, aligned with product image bottom */
body.nycl .product.attribute.overview .value {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
body.nycl .product.attribute.overview {
  display: flex !important;
  flex-direction: column !important;
}
body.nycl .pdp-trust-badges-wrapper {
  margin-top: auto !important;
}

/* ============================================
   BOTTOM CONTENT SECTION — below reviews/FAQ
   Modernize fonts, headings, spacing to match page
   ============================================ */
body.nycl .custom-description {
  font-family: 'Neulis Alt', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--nycl-primary) !important;
}
body.nycl .custom-description .footer .container {
  max-width: 1200px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
body.nycl .custom-description .footer .container .row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 3rem !important;
  max-width: 100% !important;
  width: 100% !important;
}
body.nycl .custom-description .footer .container .row > [class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
}
body.nycl .custom-description h3,
body.nycl .custom-description h4 {
  font-family: 'Neulis Alt', sans-serif !important;
  background: none !important;
  background-color: transparent !important;
  color: var(--nycl-primary) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  padding: 0 !important;
  margin: 1.5rem 0 0.5rem !important;
  border-bottom: 2px solid #c8f542 !important;
  padding-bottom: 0.4rem !important;
}
body.nycl .custom-description h3:first-child,
body.nycl .custom-description h4:first-child {
  margin-top: 0 !important;
}
body.nycl .custom-description p,
body.nycl .custom-description li,
body.nycl .custom-description span,
body.nycl .custom-description a {
  font-family: 'Neulis Alt', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}
body.nycl .custom-description a {
  color: #c8f542 !important;
  text-decoration: none !important;
}
body.nycl .custom-description a:hover {
  text-decoration: underline !important;
}
body.nycl .custom-description img {
  border-radius: 0 !important;
  margin: 1rem 0 !important;
}
@media (max-width: 768px) {
  body.nycl .custom-description .footer .container .row {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
}

/* Let bottom content span full page width */
body.nycl .custom-description {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 2rem 0 !important;
  box-sizing: border-box !important;
}
body.nycl .custom-description > .footer {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 2rem !important;
}

/* ==========================================
   RESPONSIVE BREAKPOINTS - TABLET & MOBILE
   ========================================== */

/* Tablet landscape - shrink columns but keep side-by-side layout */
@media (max-width: 1024px) {
  /* Shrink image column from 400px to 300px */
  body.nycl .product-info-main > .product.media {
    flex: 0 0 300px !important;
    max-width: 300px !important;
  }
  body.nycl .product-info-main > .product.attribute.overview {
    max-width: calc(100% - 300px - 1.5rem) !important;
  }

  /* Form stacks to single column at ≤1024px */
  body.nycl .product-add-form > form {
    display: block !important;
  }

  /* === BOTTOM STICKY BAR at ≤1024px === */
  /* Summary wrapper stays in normal flow — shows the details card */
  body.nycl .product-options-bottom {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
  }

  /* Summary details card sits above the fixed sticky bar in normal flow.
     No display:none at paint — it's a real card from first render. */
  body.nycl .product-options-bottom .product-options-bottom-details {
    background: #fff !important;
    border-radius: 0 !important;
    box-shadow: var(--nycl-card-shadow) !important;
    overflow: hidden !important;
    margin-bottom: 1rem !important;
  }

  /* box-tocart becomes the fixed bottom sticky */
  body.nycl .product-options-bottom .box-tocart {
    position: fixed !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
    background: var(--nycl-primary) !important;
    border-top: 3px solid var(--nycl-accent) !important;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.2) !important;
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 0 !important;
    overflow: visible !important;
    overflow-x: visible !important;
    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
    will-change: transform !important;
    overflow-y: visible !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Hide products-help in sticky bar */
  body.nycl .product-options-bottom .products-help {
    display: none !important;
  }

  /* Fieldset: single row for qty/unit/total, button below */
  body.nycl .product-options-bottom .box-tocart .fieldset {
    float: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-evenly !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0.5rem 1rem 0.75rem !important;
    margin: 0 auto !important;
    background-color: var(--nycl-primary) !important;
    border-radius: 0 !important;
    max-width: 100% !important;
  }

  /* All three price elements: same row, uniform size */
  body.nycl .product-options-bottom .field.qty,
  body.nycl .product-options-bottom .product-unit-price,
  body.nycl .product-options-bottom .product-total-price {
    flex: 1 1 0% !important;
    white-space: nowrap !important;
    text-align: center !important;
    margin: 0 !important;
  }
  body.nycl .product-options-bottom .qty-label,
  body.nycl .product-options-bottom .product-unit-price,
  body.nycl .product-options-bottom .product-unit-price span,
  body.nycl .product-options-bottom .product-total-price,
  body.nycl .product-options-bottom .product-total-price span {
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #fff !important;
    opacity: 1 !important;
  }

  /* Add to Cart button: full width row below price info */
  body.nycl .product-options-bottom .fieldset .actions {
    order: 4 !important;
    flex: 0 0 100% !important;
    display: flex !important;
    justify-content: center !important;
    margin: 2px 0 0 0 !important;
    padding: 0 !important;
  }
  body.nycl .product-options-bottom .action.tocart,
  body.nycl .product-options-bottom #product-addtocart-button.action.primary.tocart {
    width: auto !important;
    margin: 0 auto !important;
    padding: 16px 36px !important;
    font-size: 1.15rem !important;
  }

  /* Body spacer so content isn't hidden behind the sticky */
  body.nycl .page-wrapper {
    padding-bottom: 80px !important;
  }

  /* Option cards: 3 columns instead of auto-fill */
  body.nycl .product-options-wrapper .fieldset > .field:not(.quantity) .options-list.nested {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
  }
  body.nycl .product-options-wrapper .fieldset > .field:not(.quantity) .options-list .field.choice {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
  }

  /* H1 — keep 36px at tablet */
  body.nycl h1.page-title,
  body.nycl .page-title .base {
    font-size: 36px !important;
  }
}

/* Tablet portrait / large phone - switch to single column layout */
@media (max-width: 768px) {
  /* Single column — everything stacks */
  body.nycl .product-info-main {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    height: auto !important;
  }

  /* Kill height/flex stretching from desktop column layout */
  body.nycl .product-info-main > * {
    height: auto !important;
    min-height: 0 !important;
    flex-basis: auto !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
  }
  /* Override the specific full-width desktop rules that set flex: 0 0 100% */
  body.nycl .product-info-main > .product-add-form,
  body.nycl .product-info-main > .product.info.detailed,
  body.nycl .product-info-main > .product-info-price,
  body.nycl .product-info-main > .clearer,
  body.nycl .product-info-main > .google-reviews-wrapper,
  body.nycl .product-info-main > .custom-faq,
  body.nycl .product-info-main > .custom-description,
  body.nycl .product-info-main > .area-variables,
  body.nycl .product-info-main > .pdp-reviews-faq-section {
    flex: none !important;
    width: 100% !important;
    height: auto !important;
  }
  body.nycl .product.attribute.overview,
  body.nycl .product.attribute.overview .value {
    height: auto !important;
  }
  
  /* product-info-main: override flex container sizing from desktop */
  body.nycl .product-info-main {
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.nycl .column.main,
  body.nycl .columns {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  
  /* Hide/collapse empty elements that bloat page height and add phantom margins */
  body.nycl .product-info-main > .clearer {
    display: none !important;
  }
  body.nycl .product-info-main > .product.info.detailed,
  body.nycl .product-info-main > .product-info-price,
  body.nycl .product-info-main > .google-reviews-wrapper,
  body.nycl .product-info-main > .custom-faq,
  body.nycl .product-info-main > .prev-next-products {
    margin: 0 !important;
    padding: 0 !important;
  }
  /* Tighten overview bottom margin (Porto .value has 31px margin-bottom) */
  body.nycl .product.attribute.overview .value {
    margin-bottom: 0 !important;
  }

  /* Page margins — tighter on mobile */
  body.nycl #maincontent,
  body.nycl .page-main {
    margin: 8px 0 0 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  body.nycl .columns,
  .catalog-product-view #maincontent .columns {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  /* H1 full width, centered */
  body.nycl .product-info-main > .page-title-wrapper {
    flex: none !important;
    width: 100% !important;
    order: 1 !important;
    text-align: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
  }
  body.nycl .page-title-wrapper.product {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Description below title, full width */
  body.nycl .product-info-main > .product.attribute.overview {
    flex: none !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 2 !important;
    margin-right: 0 !important;
    margin-bottom: 12px !important;
  }

  /* Image gallery full width */
  body.nycl .product-info-main > .product.media {
    flex: none !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 3 !important;
    float: none !important;
    position: relative !important;
    margin-top: -40px !important;
    margin-bottom: 28px !important;
  }

  /* Product image — fill container edge-to-edge on mobile */
  body.nycl .product.media #mtImageContainer img {
    max-height: none !important;
    object-fit: cover !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  body.nycl .product.media #mtImageContainer {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  body.nycl .product.media .MagicToolboxContainer {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  /* Thumbnail strip — horizontal scroll */
  body.nycl .MagicToolboxSelectorsContainer {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    max-width: 100% !important;
    padding: 4px 0 !important;
    touch-action: pan-x !important;
  }
  body.nycl .MagicToolboxSelectorsContainer::-webkit-scrollbar {
    display: none !important;
  }

  /* Form stacks to single column */
  body.nycl .product-add-form > form {
    display: block !important;
  }

  /* Form section full width — breathing room below thumbnails */
  body.nycl .product-add-form {
    width: 100% !important;
    order: 4 !important;
    margin-top: 24px !important;
  }
  /* Breathing room between thumbnails and first option card */
  body.nycl .product-options-wrapper {
    margin-top: 10px !important;
    padding-top: 12px !important;
  }

  /* Option grids: 2 columns on tablet */
  body.nycl .product-options-wrapper .options-list.nested {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Area cards still 4-wide (they're small number tiles) */
  body.nycl .field.area .options-list.nested {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  /* H1 smaller */
  body.nycl h1.page-title,
  body.nycl .page-title .base {
    font-size: 24px !important;
  }

  /* Info pills wrap and center */
  body.nycl .pdp-info-pills {
    justify-content: center !important;
    gap: 0.4rem !important;
  }

  /* Trust badge cards stack */
  .pdp-trust-duo {
    grid-template-columns: 1fr !important;
  }

  /* Bottom bar / summary — adjust for mobile */
  body.nycl .product-options-bottom .box-tocart > .fieldset {
    flex-wrap: wrap !important;
    padding: 10px 16px !important;
    gap: 8px !important;
  }

  /* Summary details full width */
  body.nycl .product-options-bottom .product-options-bottom-details {
    width: 100% !important;
  }

  /* Add to Cart button — centered, capped at desktop width */
  body.nycl .product-options-bottom .action.tocart,
  body.nycl #product-addtocart-button.action.primary.tocart {
    width: auto !important;
    max-width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
    padding: 16px 36px !important;
    font-size: 1.15rem !important;
    margin: 8px auto !important;
    display: flex !important;
    align-items: center !important;
  }
  body.nycl .product-options-bottom .fieldset .actions {
    justify-content: center !important;
    width: 100% !important;
  }

  /* Reviews/FAQ grid: single column */
  .pdp-reviews-faq-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  body.nycl .product-info-main > .pdp-reviews-faq-section {
    padding: 2rem 1rem 1.5rem !important;
    flex: 0 0 auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
  }

  /* Bottom content: single column */
  body.nycl .custom-description .footer .container .row {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  /* Quantity cards: switch to grid 4-col on tablet */
  body.nycl .field.quantity .options-list.nested {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
  }
  body.nycl .field.quantity .options-list .field.choice {
    flex: none !important;
    max-width: none !important;
    width: auto !important;
  }
}

/* Quantity cards: 3 columns at ≤428px */
@media (max-width: 428px) {
  body.nycl .field.quantity .options-list.nested {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

/* Quantity cards: 2 columns at ≤370px so "10000" doesn't clip */
@media (max-width: 370px) {
  body.nycl .field.quantity .options-list.nested {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Small phones - further size reductions */
@media (max-width: 480px) {
  /* Even smaller H1 */
  body.nycl h1.page-title,
  body.nycl .page-title .base {
    font-size: 20px !important;
  }

  /* Option card control padding slightly tighter */
  body.nycl .product-options-wrapper > .fieldset > .field > .control {
    padding: 8px 14px 14px !important;
  }

  /* Upload Artwork / Artwork Creation Tool — more side padding so cards aren't flush with card edges */
  body.nycl .upload-options-row {
    padding-left: 16px !important;
    padding-right: 16px !important;
    gap: 0.75rem !important;
  }
  body.nycl .upload-option-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding: 1.25rem 0.75rem !important;
  }
  body.nycl .upload-option-icon {
    width: 2.4rem !important;
    height: 2.4rem !important;
  }
  body.nycl .upload-option-label {
    font-size: 0.95rem !important;
  }
  body.nycl .upload-options-divider span {
    font-size: 0.85rem !important;
  }

  /* 2-option fields (Size Symbols, Proof, Turnaround) — force 2 columns via grid so they never stack */
  body.nycl .product-options-wrapper .fieldset > .field.size-symbols-or-color-versions .options-list.nested,
  body.nycl .product-options-wrapper .fieldset > .field.proof-options .options-list.nested,
  body.nycl .product-options-wrapper .fieldset > .field.turnaround-options .options-list.nested {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  body.nycl .product-options-wrapper .fieldset > .field.size-symbols-or-color-versions .options-list.nested .field.choice,
  body.nycl .product-options-wrapper .fieldset > .field.proof-options .options-list.nested .field.choice,
  body.nycl .product-options-wrapper .fieldset > .field.turnaround-options .options-list.nested .field.choice {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }


  /* Quantity cards: still fit nicely */
  body.nycl .field.quantity .options-list.nested {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  /* Summary detail chips smaller */
  body.nycl .product-options-bottom .product-options-bottom-details .details {
    font-size: 0.75rem !important;
    padding: 0.35rem 0.75rem !important;
  }

  /* Price text smaller */
  body.nycl .product-options-bottom .product-total-price span {
    font-size: 18px !important;
  }

  /* Info pills smaller on very small screens */
  body.nycl .pdp-info-pill {
    padding: 0.3rem 0.7rem !important;
    font-size: 0.7rem !important;
  }
}

/* Very small phones - minimum viable layout */
@media (max-width: 375px) {
  /* Area tiles 3-wide */
  body.nycl .field.area .options-list.nested {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  /* Options: single column for image cards */
  body.nycl .field.style .options-list.nested,
  body.nycl .field.size .options-list.nested,
  body.nycl .field.backing-options .options-list.nested,
  body.nycl .field.metallic-thread .options-list.nested {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* === You May Also Like (YMAL) Section === */
#product-addtocart-button, .action.primary.tocart,
#product-addtocart-button span, .action.primary.tocart span {
  font-weight: 600 !important;
}
#mtImageContainer .mobile-close-btn { display: none !important; }
.ymal-section { margin: 0; padding: 2rem 0; width: 100% !important; }
.ymal-title { font-size: 32px !important; font-weight: 500 !important; color: var(--nycl-brown, #1d1d1d) !important; text-align: left !important; margin: 0 0 1.25rem 0 !important; background: none !important; padding: 0 !important; }
.ymal-carousel { display: flex !important; overflow-x: auto !important; gap: 1rem !important; padding: 0.5rem 0.25rem 1rem 6px !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: thin !important; }
.ymal-carousel::-webkit-scrollbar { height: 6px; }
.ymal-carousel::-webkit-scrollbar-thumb { background: #ccc; border-radius: 0; }
.ymal-card { flex: 0 0 160px !important; text-decoration: none !important; color: inherit !important; display: flex !important; flex-direction: column !important; align-items: center !important; background: #fff !important; border-radius: 0 !important; box-shadow: 0 -2px 8px rgba(0,0,0,0.12), 0 4px 12px rgba(0,0,0,0.18) !important; padding: 0.75rem !important; transition: box-shadow 0.2s, transform 0.2s !important; }
.ymal-card:hover { box-shadow: 0 -2px 10px rgba(0,0,0,0.14), 0 6px 20px rgba(74,45,42,0.28) !important; transform: translateY(-2px) !important; }
.ymal-img-wrap { width: 130px !important; height: 130px !important; display: flex !important; align-items: center !important; justify-content: center !important; overflow: hidden !important; border-radius: 0 !important; margin-bottom: 0.5rem !important; }
.ymal-img-wrap img { max-width: 100% !important; max-height: 100% !important; object-fit: cover !important; border-radius: 0 !important; }
.ymal-name { font-size: 0.8rem !important; font-weight: 600 !important; text-align: center !important; color: var(--nycl-brown, #1d1d1d) !important; line-height: 1.3 !important; }

@media (min-width: 769px) {
  .pdp-trust-duo { align-items: start !important; }
}
@media (max-width: 768px) {
  #mtImageContainer { max-height: 0 !important; overflow: hidden !important; }
  #mtImageContainer.mobile-show { max-height: 800px !important; overflow: visible !important; position: relative !important; }
  #mtImageContainer .mobile-close-btn { display: none !important; }
  .ymal-section { margin: 0; padding: 2rem 0; width: 100% !important; }
  .ymal-title { padding: 0 0 0 5px !important; }
  #mtImageContainer.mobile-show .mobile-close-btn { display: block !important; position: absolute; top: 8px; right: 8px; z-index: 100; background: rgba(0,0,0,0.6); color: #fff; border: none; border-radius: 50%; width: 32px; height: 32px; font-size: 18px; line-height: 32px; text-align: center; cursor: pointer; }
}

/* "Get X Free" badge on quantity card */
.freeqty, .free-badge { display: block !important; background: #c8f542 !important; color: #1d1d1d !important; font-size: 0.6rem !important; font-weight: 700 !important; padding: 2px 8px !important; border-radius: 0 !important; margin: 2px auto 2px !important; white-space: nowrap !important; text-align: center !important; width: fit-content !important; box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important; animation: badgePulse 2s ease-in-out infinite !important; }
@keyframes badgePulse { 0%, 100% { box-shadow: 0 1px 3px rgba(0,0,0,0.15); } 50% { box-shadow: 0 2px 8px rgba(236,170,0,0.4); } }
.has-free-badge { border-color: transparent !important; box-shadow: inset 0 0 0 2.5px #c8f542 !important; position: relative !important; }
.has-free-badge:has(input:checked) { border-color: transparent !important; box-shadow: inset 0 0 0 2.5px #c8f542, 0 0 0 3px #c8f542, 0 0 8px rgba(239,87,50,0.25) !important; outline: none !important; }
.sticky-free-badge { display: inline-flex !important; align-items: center !important; background: #c8f542 !important; color: #1d1d1d !important; font-size: 0.65rem !important; font-weight: 700 !important; padding: 2px 8px !important; border-radius: 0 !important; margin-left: 6px !important; white-space: nowrap !important; vertical-align: baseline !important; line-height: 1 !important; position: relative !important; top: -1px !important; }
.summary-free-badge { display: inline-block !important; background: #c8f542 !important; color: #1d1d1d !important; font-size: 0.65rem !important; font-weight: 700 !important; padding: 1px 6px !important; border-radius: 0 !important; margin-left: 4px !important; white-space: nowrap !important; vertical-align: middle !important; }
