/* Shared product presentation, using existing WooCommerce/Flatsome markup. */
.single-product .product-main .content-row { max-width: 1280px; padding-top: 28px; }
.single-product .product-main .product-gallery { padding-right: 28px; }
.single-product .product-main .product-info { padding-left: 28px; }
.single-product .product-main .product-gallery-slider,
.product-quick-view-container .product-gallery-slider { overflow: hidden; border-radius: 16px; background: #f7faf7; }
.single-product .product-main .product_title,
.product-quick-view-container .product-info h1 { margin: 0 0 14px; color: #1f2a21; font-size: clamp(28px, 3vw, 38px); font-weight: 600; line-height: 1.16; letter-spacing: -.025em; text-transform: none; }
.single-product .product-main .price-wrapper .price,
.product-quick-view-container .product-info .price { margin: 0 0 20px; color: #1f2a21; font-size: 20px; line-height: 1.4; }
.single-product .product-main .price del,
.product-quick-view-container .product-info .price del { color: #787f79; font-weight: 400; }
.single-product .product-main .price ins,
.product-quick-view-container .product-info .price ins { color: #19251f; font-weight: 700; text-decoration: none; }
.single-product .product-main .product-info .is-divider,
.product-quick-view-container .product-info .is-divider { display: none; }
.single-product .product-main .variations,
.product-quick-view-container .variations { display: block; width: 100%; margin: 20px 0; border: 0; }
.single-product .product-main .variations tbody,
.product-quick-view-container .variations tbody { display: block; }
.single-product .product-main .variations tr,
.product-quick-view-container .variations tr { display: block; margin: 0 0 15px; }
.single-product .product-main .variations th.label,
.single-product .product-main .variations td.value,
.product-quick-view-container .variations th.label,
.product-quick-view-container .variations td.value { display: block; width: 100%; padding: 0; border: 0; text-align: left; }
.single-product .product-main .variations label,
.product-quick-view-container .variations label { display: block; margin: 0 0 6px; color: #202b23; font-size: 14px; font-weight: 600; }
.single-product .product-main .variations select,
.product-quick-view-container .variations select { width: 100%; min-height: 48px; margin: 0; padding: 9px 36px 9px 14px; border: 1px solid #b7c0b8; border-radius: 8px; background-color: #fff; color: #1f2a21; font-size: 15px; box-shadow: none; }
.single-product .product-main .variations select:focus-visible,
.product-quick-view-container .variations select:focus-visible { outline: 3px solid #286749; outline-offset: 2px; }
.single-product .product-main .reset_variations,
.product-quick-view-container .reset_variations { display: inline-block; margin-top: 8px; color: #345a40; font-size: 13px; text-decoration: underline; }
.single-product .product-main form.cart .quantity,
.product-quick-view-container form.cart .quantity { margin: 0 10px 12px 0; }
.single-product .product-main form.cart button.single_add_to_cart_button,
.product-quick-view-container form.cart button.single_add_to_cart_button { min-height: 48px; margin: 0 8px 12px 0; padding: 10px 27px; border: 1px solid var(--loopy-ui-accent, #8fe8b3) !important; border-radius: 999px; background-color: var(--loopy-ui-accent, #8fe8b3) !important; color: #19251f !important; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-transform: none; box-shadow: none; }
.single-product .product-main form.cart button.single_add_to_cart_button:not(:disabled):not(.disabled):hover,
.product-quick-view-container form.cart button.single_add_to_cart_button:not(:disabled):not(.disabled):hover { border-color: var(--loopy-ui-hover, #75dba2) !important; background-color: var(--loopy-ui-hover, #75dba2) !important; }
.single-product .product-main form.cart button.single_add_to_cart_button:focus-visible,
.product-quick-view-container form.cart button.single_add_to_cart_button:focus-visible { outline: 3px solid #27694b; outline-offset: 3px; }
.single-product .product-main form.cart button.single_add_to_cart_button.disabled,
.single-product .product-main form.cart button.single_add_to_cart_button:disabled,
.product-quick-view-container form.cart button.single_add_to_cart_button.disabled,
.product-quick-view-container form.cart button.single_add_to_cart_button:disabled { opacity: .55; cursor: not-allowed; }
.single-product .product-main form.cart .ux-buy-now-button { min-height: 48px; margin-bottom: 12px; padding: 10px 25px; border: 1px solid #245a3b; border-radius: 999px; background: #fff; color: #245a3b; font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; box-shadow: none; }
.single-product .product-main .product_meta,
.product-quick-view-container .product_meta { color: #66716a; font-size: 13px; line-height: 1.6; }
.single-product .woocommerce-tabs { border-color: #dfe8e0; }
.single-product .woocommerce-tabs .tabs a { color: #253a2b; letter-spacing: 0; text-transform: none; }

/* Flatsome Quick View uses the same product form and preserves its AJAX handler. */
.mfp-content:has(.product-quick-view-container) { width: min(1150px, calc(100vw - 48px)); max-width: 1150px; }
.product-quick-view-container { overflow: hidden; max-height: min(80vh, 860px); border-radius: 16px; background: #fff; box-shadow: 0 20px 60px rgb(0 0 0 / .16); }
.product-quick-view-container > .product.row { display: flex; flex-wrap: nowrap; margin: 0; max-width: none; }
.product-quick-view-container .product-gallery { flex: 1 1 56%; max-width: 56%; padding: 24px; }
.product-quick-view-container .product-info { flex: 1 1 44%; max-width: 44%; max-height: min(80vh, 860px); overflow-y: auto; padding: 0; font-size: 100% !important; }
.product-quick-view-container .product-lightbox-inner { padding: 38px 34px 30px !important; }
.product-quick-view-container .product-gallery-slider { max-height: 70vh; }
.product-quick-view-container .product-gallery-slider img { object-fit: contain; }
.mfp-content:has(.product-quick-view-container) > .mfp-close { color: #1f2a21; }

/* Source-inspired drawers; the native panels remain the fallback until enhanced. */
.htw-site-header.loopy-drawers-ready .htw-site-header__panel { position: fixed; z-index: 103; top: 0; right: 0; bottom: 0; left: auto; display: flex; flex-direction: column; width: min(100%, 375px); max-width: 100vw; height: 100dvh; margin: 0; padding: 0; border: 0; border-radius: 0; background: #fff; color: #1f2a21; box-shadow: -8px 0 32px rgb(0 0 0 / .12); animation: loopy-drawer-in .25s ease-out both; }
.htw-site-header.loopy-drawers-ready .htw-site-header__panel[hidden] { display: none !important; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart { width: min(100%, 600px); }
.htw-site-header.loopy-drawers-ready .htw-site-header__search { overflow-y: auto; overscroll-behavior: contain; }
.htw-site-header.loopy-drawers-ready .loopy-drawer-backdrop { position: fixed; z-index: 102; inset: 0; background: rgb(0 0 0 / .4); }
.htw-site-header.loopy-drawers-ready .loopy-drawer-backdrop[hidden] { display: none; }
.htw-site-header.loopy-drawers-ready .loopy-drawer-heading { position: sticky; z-index: 2; top: 0; display: flex; flex: none; align-items: center; justify-content: space-between; gap: 16px; min-height: 76px; padding: 20px 24px 14px; background: #fff; }
.htw-site-header.loopy-drawers-ready .loopy-drawer-heading h2 { margin: 0; color: #1f2a21; font-size: 22px; font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: none; }
.htw-site-header.loopy-drawers-ready .loopy-drawer-close { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin: 0 -8px 0 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #1f2a21; font: 300 32px/1 Arial, sans-serif; text-transform: none; box-shadow: none; }
.htw-site-header.loopy-drawers-ready .loopy-drawer-close:hover { background: #eff5ef; }
.htw-site-header.loopy-drawers-ready .loopy-drawer-close:focus-visible { outline: 2px solid #21613d; outline-offset: 2px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search > form.searchform { flex: none; margin: 0; padding: 8px 24px 0; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .searchform .flex-row { min-height: 48px; border: 1px solid #9ca89d; border-radius: 999px; overflow: hidden; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .search-field { height: 48px; margin: 0; padding: 8px 8px 8px 18px; border: 0; background: #fff; color: #1f2a21; font-size: 15px; box-shadow: none; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .searchform:focus-within .flex-row { outline: 2px solid #21613d; outline-offset: 2px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .ux-search-submit { display: inline-flex; align-items: center; justify-content: center; width: 48px; min-height: 48px; margin: 0; border: 0; background: #fff; color: #1f2a21; box-shadow: none; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .live-search-results { position: static; width: 100%; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .autocomplete-suggestions { position: static !important; width: 100% !important; max-height: none !important; margin-top: 14px; border: 0; box-shadow: none; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .autocomplete-suggestion { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 8px 0; border-bottom: 1px solid #e7eee8; color: #1f2a21; white-space: normal; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .autocomplete-suggestion img { width: 52px; height: 52px; margin: 0; border-radius: 8px; object-fit: contain; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .search-name { flex: 1; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore { padding: 30px 24px; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore[hidden] { display: none; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore h3 { margin: 0 0 18px; color: #1f2a21; font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore__items { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 14px; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore__items a { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: #1f2a21; font-size: 14px; line-height: 1.35; text-decoration: none; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore__items img { display: block; width: 100%; aspect-ratio: 1; border-radius: 12px; background: #f7faf7; object-fit: contain; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .widget_shopping_cart_content { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 0 24px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart-item { min-height: 100px; padding: 18px 30px 18px 90px; border-bottom: 1px solid #e5ece6; color: #1f2a21; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart-item img { width: 72px; height: 80px; border-radius: 9px; background: #f7faf7; object-fit: contain; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart-item a:not(.remove) { color: #1f2a21; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart-item .ux-mini-cart-qty { max-width: 100%; margin-right: 0; flex-wrap: wrap; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .ux-mini-cart-footer { flex: none; padding: 20px 24px 24px; border-top: 1px solid #e5ece6; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 16px; color: #1f2a21; font-size: 16px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart__buttons { display: flex; flex-direction: column-reverse; gap: 10px; margin: 0; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart__buttons .button,
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .return-to-shop .button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin: 0; padding: 11px 18px; border: 1px solid #235e3a; border-radius: 999px; background: #fff !important; color: #235e3a !important; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-align: center; text-transform: none; box-shadow: none; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .woocommerce-mini-cart__buttons .checkout,
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .return-to-shop .button { border-color: var(--loopy-ui-accent, #8fe8b3); background: var(--loopy-ui-accent, #8fe8b3) !important; color: #19251f !important; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .button:focus-visible { outline: 3px solid #27694b; outline-offset: 2px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .ux-mini-cart-empty { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .ux-mini-cart-empty p { margin: 0; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .return-to-shop { width: min(100%, 320px); }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart:has(.return-to-shop) > a,
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart:has(.woocommerce-mini-cart__buttons) > a { display: none; }
@keyframes loopy-drawer-in { from { transform: translateX(100%); opacity: .8; } to { transform: translateX(0); opacity: 1; } }
@media (max-width: 849px) {
  .single-product .product-main .content-row { padding-top: 10px; }
  .single-product .product-main .product-gallery, .single-product .product-main .product-info { padding-right: 15px; padding-left: 15px; }
  .single-product .product-main .product_title { font-size: 28px; }
  .product-quick-view-container { max-height: calc(100dvh - 40px); overflow-y: auto; }
  .product-quick-view-container > .product.row { display: block; }
  .product-quick-view-container .product-gallery, .product-quick-view-container .product-info { width: 100%; max-width: 100%; }
  .product-quick-view-container .product-gallery { padding: 18px 18px 0; }
  .product-quick-view-container .product-info { max-height: none; overflow: visible; }
  .product-quick-view-container .product-lightbox-inner { padding: 22px 20px 28px !important; }
  .product-quick-view-container .product-gallery-slider { max-height: 45vh; }
  .mfp-content:has(.product-quick-view-container) { width: calc(100vw - 30px); }
}
@media (hover: none) {
  .htw-rounded-card .htw-rounded-card__actions { opacity: 1; transform: none; pointer-events: auto; }
}
@media (prefers-reduced-motion: reduce) { .htw-site-header.loopy-drawers-ready .htw-site-header__panel { animation: none; } }
.product-quick-view-container .badge-container { top: 36px; left: 36px; width: auto; margin: 0; pointer-events: none; }
.product-quick-view-container .badge-container .badge { display: block; width: auto; height: auto; }
.product-quick-view-container .badge-container .badge-inner.on-sale { position: static; display: block; width: auto; height: auto; min-width: 0; min-height: 0; padding: 6px 10px; border: 0 !important; border-radius: 999px !important; background: var(--loopy-ui-accent, #8fe8b3) !important; color: #191919 !important; font: 700 12px/1.2 Arial, sans-serif; white-space: nowrap; }
.product-quick-view-container .badge-container .badge-inner.on-sale .onsale { position: static; display: inline; min-width: 0; min-height: 0; margin: 0; padding: 0; background: transparent !important; color: inherit !important; font: inherit; }
/* Keep the native quick-view gallery controls usable with long image sets. */
.mfp-content:has(.product-quick-view-container) .product-lightbox.lightbox-content { max-width: none; border-radius: 16px; background: transparent; box-shadow: none; }
.product-quick-view-container .product-info h1 { font-size: 24px; }
.product-quick-view-container .product-gallery-slider .flickity-page-dots { display: none; }
@media (max-width: 849px) {
  .mfp-wrap:has(.product-quick-view-container) { position: fixed !important; inset: 0 !important; width: 100% !important; height: 100dvh !important; overflow: auto !important; }
  .mfp-wrap:has(.product-quick-view-container) .mfp-container { position: relative; display: flex; align-items: center; min-height: 100%; height: auto; padding: 15px; }
  .mfp-wrap:has(.product-quick-view-container) .mfp-container::before { display: none; }
  .mfp-wrap:has(.product-quick-view-container) .mfp-content { flex: none; margin: auto; }
}
/* The source uses a framed selector group and a compact vertical search list. */
.single-product .product-main .variations { padding: 18px 20px 4px; border: 1px solid #e1e6e1; border-radius: 16px; }
.single-product .product-main .variations tr { border: 0; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .loopy-drawer-heading h2 { font-size: 16px; font-weight: 500; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .searchform .flex-row { flex-direction: row-reverse; }
.htw-site-header.loopy-drawers-ready .htw-site-header__search .search-field { padding-left: 3px; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore__items { grid-template-columns: 1fr; gap: 16px; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore__items a { flex-direction: row; align-items: center; gap: 16px; }
.htw-site-header.loopy-drawers-ready .loopy-search-explore__items img { flex: 0 0 64px; width: 64px; height: 64px; aspect-ratio: 1; }
.htw-site-header.loopy-drawers-ready .loopy-cart-promo { display: flex; flex: none; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; background: var(--loopy-ui-accent, #8fe8b3); color: #19251f; font-size: 14px; font-weight: 600; line-height: 1.3; text-align: center; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .loopy-drawer-heading h2 { font-size: 26px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .ux-mini-cart-empty { flex: 0 0 auto; justify-content: flex-start; padding: 34px 24px; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .ux-mini-cart-empty-icon { display: none; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .return-to-shop { width: min(100%, 245px); }
@media (max-width: 1100px) {
  .htw-site-header.loopy-drawers-ready .htw-site-header__search { top: var(--loopy-search-top, 0px); height: calc(100dvh - var(--loopy-search-top, 0px)); }
  .htw-site-header.loopy-drawers-ready.loopy-search-open .loopy-drawer-backdrop { top: var(--loopy-search-top, 0px); }
}
/* Keep the existing breadcrumb and product navigation in the source's light treatment. */
.single-product .shop-page-title { background: #fff !important; color: #556158; }
.single-product .shop-page-title .page-title-bg { display: none; }
.single-product .shop-page-title .breadcrumbs,
.single-product .shop-page-title .breadcrumbs a { color: #556158 !important; font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.single-product .shop-page-title .nav-right .button { border-color: #ccd7cd; color: #425347; }
.htw-site-header.loopy-drawers-ready .htw-site-header__mini-cart .return-to-shop .button { border-color: #1f2a21; background: #fff !important; color: #1f2a21 !important; }
@media (hover: none) {
  .htw-rounded-card .htw-rounded-card__media { display: flex; flex-direction: column; overflow: visible; aspect-ratio: auto; }
  .htw-rounded-card .htw-rounded-card__media-link { position: relative; inset: auto; height: auto; overflow: hidden; aspect-ratio: 3 / 4; border-radius: var(--htw-rc-image-radius); }
  .htw-rounded-card .htw-rounded-card__actions { position: static; margin: 8px 4px 0; }
}
@media (max-width: 849px) {
  .product-quick-view-container .product-gallery-slider { max-height: none; }
}
.product-quick-view-container .variations select:has(option:checked:not([value=""])) { border-color: var(--loopy-ui-accent, #8fe8b3); background-color: var(--loopy-ui-accent, #8fe8b3); }
@media (min-width: 850px) {
  .product-quick-view-container .product-gallery-slider { max-height: none; }
  .product-quick-view-container .product-gallery-slider .slide img { display: block; width: 100%; height: min(62vh, 600px); object-fit: contain; object-position: center; }
}
/* On wide screens, show the existing Flatsome gallery images in a scrollable grid. */
@media (min-width: 850px) {
  .mfp-content:has(.product-quick-view-container) { width: min(950px, calc(100vw - 48px)); }
  .product-quick-view-container { height: min(60vh, 700px); }
  .product-quick-view-container > .product.row { height: 100%; }
  .product-quick-view-container .product-gallery { flex: 1 1 60%; max-width: 60%; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 32px; }
  .product-quick-view-container .product-info { flex: 1 1 40%; max-width: 40%; height: 100%; max-height: none; }
  .product-quick-view-container .product-gallery-slider { max-height: none; overflow: visible; border-radius: 0; background: transparent; }
  .product-quick-view-container .product-gallery-slider .flickity-viewport { height: auto !important; }
  .product-quick-view-container .product-gallery-slider .flickity-slider { position: relative !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; height: auto !important; transform: none !important; }
  .product-quick-view-container .product-gallery-slider .slide { position: relative !important; left: auto !important; right: auto !important; width: auto !important; height: auto !important; transform: none !important; }
  .product-quick-view-container .product-gallery-slider .slide img { width: 100%; height: auto; aspect-ratio: 3 / 4; border-radius: 16px; object-fit: contain; }
  .product-quick-view-container .product-gallery-slider .flickity-prev-next-button { display: none; }
}
@media (min-width: 850px) {
  .single-product .product-gallery-stacked .slide { overflow: hidden; border-radius: 16px; }
}
