/* Starline Shop - Dynamic Homepage Product Sections */
.starline-product-section {
    position: relative;
    box-sizing: border-box;
    background-color: var(--sl-section-bg, #fff);
    background-image: var(--sl-section-bg-image, none);
    border: var(--sl-section-border, 0 solid transparent);
    border-radius: var(--sl-section-radius, 0);
    box-shadow: var(--sl-section-shadow, none);
    isolation: isolate;
}
.starline-product-section *, .starline-product-section *::before, .starline-product-section *::after { box-sizing: border-box; }
.starline-product-overlay { position:absolute; inset:0; z-index:-1; pointer-events:none; background:var(--sl-overlay,#000); opacity:var(--sl-overlay-opacity,0); border-radius:inherit; }
.starline-product-container.starline-container { width:min(100%, var(--sl-container-max,1200px)); max-width:var(--sl-container-max,1200px); margin-inline:auto; }
.starline-product-container.is-full-width { width:100%; max-width:none; margin:0; }

.starline-product-section-header {
    position:relative; display:flex; gap:16px; justify-content:space-between; min-height:var(--sl-header-min-height,0);
    padding:0; background:var(--sl-header-bg,transparent); border:var(--sl-header-border,0 solid transparent); border-radius:var(--sl-header-radius,0);
}
.starline-product-section-header::after { content:""; position:absolute; left:0; bottom:0; width:var(--sl-divider-width,100%); border-bottom:var(--sl-divider-thickness,0) var(--sl-divider-style,solid) var(--sl-divider-color,#e5e7eb); }
.starline-product-heading-wrap { min-width:0; flex:1; }
.starline-product-section-title { max-width:var(--sl-title-max-width,none); margin:0; color:var(--sl-title-color,#111827); font-weight:var(--sl-title-weight,700); line-height:var(--sl-title-line-height,1.25); letter-spacing:var(--sl-title-letter-spacing,0); }
.starline-product-section-title:hover { color:var(--sl-title-hover,var(--sl-title-color,#111827)); }
.starline-product-section-subtitle { margin:5px 0 0; color:#64748b; font-size:14px; line-height:1.5; }
.starline-product-view-more { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; gap:var(--sl-icon-gap,7px); padding:8px 14px; border:var(--sl-button-border-width,1px) var(--sl-button-border-style,solid) var(--sl-button-border-color,#2563eb); border-radius:var(--sl-button-radius,7px); background:var(--sl-button-bg,#2563eb); color:var(--sl-button-color,#fff); font-weight:var(--sl-button-weight,600); text-decoration:none; transition:all var(--sl-button-transition,250ms) ease; }
.starline-product-view-more:hover, .starline-product-view-more:focus { background:var(--sl-button-hover-bg,#1d4ed8); color:var(--sl-button-hover-color,#fff); border-color:var(--sl-button-hover-border,#1d4ed8); text-decoration:none; transform:translateY(-1px); }
/* Header layout controls */
.starline-product-section-header.layout-title-left-button-right { flex-direction:row; }
.starline-product-section-header.layout-title-center-button-below,
.starline-product-section-header.layout-title-left-button-below,
.starline-product-section-header.layout-everything-centered { flex-direction:column; }
.starline-product-section-header.layout-title-center-button-below .starline-product-heading-wrap,
.starline-product-section-header.layout-everything-centered .starline-product-heading-wrap { width:100%; text-align:center; }
.starline-product-section-header.layout-title-center-button-below .starline-product-section-title,
.starline-product-section-header.layout-everything-centered .starline-product-section-title { margin-inline:auto; }
.starline-product-section-header.layout-title-left-button-below .starline-product-heading-wrap { width:100%; }
.starline-product-section-header.layout-title-right-button-left { flex-direction:row-reverse; }
.starline-product-section-header.layout-title-right-button-left .starline-product-heading-wrap { text-align:right; }
.starline-product-section-header.layout-everything-centered { align-items:center !important; text-align:center; }
/* View More alignment control */
.starline-product-section.view-align-left .starline-product-view-more { margin-inline:0 auto; }
.starline-product-section.view-align-center .starline-product-view-more { margin-inline:auto; }
.starline-product-section.view-align-right .starline-product-view-more { margin-inline:auto 0; }
.starline-product-section.view-align-stretch .starline-product-view-more { width:100%; max-width:none; align-self:stretch; }

.starline-product-slider-shell { position:relative; min-width:0; }
.starline-product-grid { display:grid; grid-template-columns:repeat(var(--sl-columns,5),minmax(0,1fr)); gap:var(--sl-row-gap,20px) var(--sl-column-gap,20px); align-items:stretch; justify-items:var(--sl-grid-align,stretch); min-width:0; }
.starline-product-card {
    position:relative; display:flex; min-width:0; min-height:var(--sl-card-min-height,0); max-width:var(--sl-card-max-width,none); flex-direction:column;
    border:var(--sl-card-border,1px solid #e5e7eb); border-radius:var(--sl-card-radius,10px); background:var(--sl-card-bg,#fff); box-shadow:var(--sl-card-shadow,0 4px 18px rgba(15,23,42,.06));
    transition:box-shadow var(--sl-card-transition,250ms) ease, transform var(--sl-card-transition,250ms) ease, border-color var(--sl-card-transition,250ms) ease;
}
.starline-product-card:hover { border-color:var(--sl-card-hover-border,#93c5fd); box-shadow:var(--sl-card-hover-shadow,0 12px 30px rgba(15,23,42,.14)); transform:var(--sl-card-transform,translateY(-4px)); }
.starline-product-section.equal-height .starline-product-card { height:100%; }
.starline-product-section.equal-height .starline-product-content { flex:1; }

.starline-product-image-wrap { position:relative; overflow:hidden; flex:0 0 auto; border-radius:var(--sl-image-radius,9px); background:var(--sl-image-bg,#fff); }
 .starline-product-image-link { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.starline-ratio-square .starline-product-image-link > img:first-child { width:auto; max-width:100%; aspect-ratio:1 / 1; }
.starline-ratio-portrait .starline-product-image-link > img:first-child { width:auto; max-width:100%; aspect-ratio:3 / 4; }
.starline-ratio-landscape .starline-product-image-link > img:first-child { width:100%; height:auto; max-height:100%; aspect-ratio:4 / 3; }
.starline-ratio-custom .starline-product-image-link > img:first-child { width:auto; max-width:100%; aspect-ratio:var(--sl-custom-ratio,1 / 1); }
.starline-ratio-original .starline-product-image-link > img:first-child { width:auto; height:auto; max-width:100%; max-height:100%; }
.starline-product-image-wrap img { display:block; width:100%; height:100%; margin:0; object-fit:var(--sl-image-fit,contain); object-position:var(--sl-image-position,center center); transition:transform var(--sl-image-transition,300ms) ease, opacity var(--sl-image-transition,300ms) ease; }
.starline-product-card:hover .starline-product-image-wrap img:first-child { transform:scale(var(--sl-image-hover-scale,1)); }
.starline-product-secondary-image { position:absolute; inset:0; opacity:0; }
.starline-product-card:hover .starline-product-secondary-image { opacity:1; }
.starline-product-card:hover .starline-product-image-link > img:first-child:not(:last-child) { opacity:0; }

.starline-discount-badge { position:absolute; z-index:3; display:inline-flex; align-items:center; justify-content:center; min-width:var(--sl-discount-min-width,0); min-height:var(--sl-discount-min-height,28px); padding:4px 7px; border:var(--sl-discount-border,0 solid transparent); border-radius:var(--sl-discount-radius,6px); background:var(--sl-discount-bg,#dc2626); color:var(--sl-discount-color,#fff); font-size:var(--sl-discount-size,12px); font-weight:var(--sl-discount-weight,700); line-height:1; }
.starline-discount-badge.position-top-left { top:8px; left:8px; }
.starline-discount-badge.position-top-right { top:8px; right:8px; }
.starline-discount-badge.position-bottom-left { bottom:8px; left:8px; }
.starline-discount-badge.position-bottom-right { right:8px; bottom:8px; }
.starline-discount-badge.shape-circle { aspect-ratio:1; border-radius:999px; }
.starline-discount-badge.shape-square { border-radius:0; }
.starline-product-badge-stack { position:absolute; z-index:3; top:8px; right:8px; display:flex; flex-direction:column; gap:4px; pointer-events:none; }
.starline-product-badge-stack span { padding:4px 7px; border-radius:999px; background:#006a4e; color:#fff; font-size:10px; font-weight:700; box-shadow:0 2px 5px rgba(0,0,0,.1); }

.starline-product-content { display:flex; flex:1; min-width:0; flex-direction:column; gap:7px; }
.starline-product-title { min-height:var(--sl-product-title-fixed-height,auto); margin:0; display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:var(--sl-product-title-lines,2); color:var(--sl-product-title-color,#111827); font-weight:var(--sl-product-title-weight,600); line-height:var(--sl-product-title-line-height,1.4); letter-spacing:var(--sl-product-title-letter-spacing,0); }
.starline-product-title a { color:inherit; text-decoration:none; }
.starline-product-title a:hover { color:var(--sl-product-title-hover,#2563eb); }
.starline-product-category, .starline-product-brand, .starline-product-sku, .starline-product-stock, .starline-product-excerpt, .starline-product-sold, .starline-product-available, .starline-low-stock { font-size:12px; line-height:1.4; color:#64748b; }
.starline-product-category a { color:inherit; text-decoration:none; }
.starline-product-stock.in-stock { color:#087443; }
.starline-product-stock.out-of-stock, .starline-low-stock { color:#b42334; }

.starline-product-rating { display:flex; align-items:center; justify-content:var(--sl-rating-align,flex-start); gap:4px; min-height:18px; font-size:var(--sl-rating-size,14px); }
.starline-product-rating .star-rating { margin:0; color:var(--sl-rating-filled,#f59e0b); }
.starline-product-rating .star-rating::before { color:var(--sl-rating-empty,#d1d5db); }
.starline-product-rating .star-rating span::before { color:var(--sl-rating-filled,#f59e0b); }
.starline-review-count { color:var(--sl-rating-count,#64748b); font-size:11px; }
.starline-product-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; margin-top:auto; line-height:1.25; }
.starline-product-section.price-stacked .starline-product-price { flex-direction:column; align-items:inherit; }
.starline-product-price del { color:var(--sl-regular-price,#64748b); text-decoration-color:var(--sl-regular-strike,#94a3b8); opacity:.75; }
.starline-product-price del .amount { color:inherit; }
.starline-product-price ins, .starline-product-price > .amount { color:var(--sl-sale-price,#dc2626); text-decoration:none; }
.starline-product-section.hide-regular-price .starline-product-price del { display:none !important; }
.starline-product-section.hide-sale-price .starline-product-price ins { display:none !important; }

.starline-sales-progress { width:100%; height:6px; overflow:hidden; border-radius:99px; background:#eef2f0; }
.starline-sales-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#006a4e,#19a974); }
.starline-countdown { display:flex; flex-wrap:wrap; gap:5px; }
.starline-countdown-unit { min-width:44px; padding:5px 6px; border:1px solid #dce7e2; border-radius:6px; background:#f7faf9; text-align:center; }
.starline-countdown-unit strong { display:block; color:#111827; font-size:13px; }
.starline-countdown-unit span { display:block; margin-top:1px; color:#64748b; font-size:9px; }
.starline-section-countdown { margin-inline:auto; }

.starline-product-actions { display:flex; gap:6px; }
.starline-card-action { width:var(--sl-action-size,34px); height:var(--sl-action-size,34px); display:inline-grid; place-items:center; padding:0; border:1px solid var(--sl-action-border,#dde5e2); border-radius:var(--sl-action-radius,8px); background:var(--sl-action-bg,#fff); color:var(--sl-action-color,#33443e); font-size:var(--sl-action-font-size,16px); cursor:pointer; transition:.2s ease; }
.starline-card-action:hover, .starline-card-action.is-active { border-color:var(--sl-action-hover-border,#006a4e); background:var(--sl-action-hover-bg,#eaf6f2); color:var(--sl-action-hover-color,#006a4e); }
.starline-card-action.is-compare-active { border-color:var(--sl-compare-active-border,#f42a41); background:var(--sl-compare-active-bg,#fff0f2); color:var(--sl-compare-active-color,#c51f36); }
.starline-add-to-cart { display:inline-flex; align-items:center; justify-content:center; width:100%; margin-top:0; padding:8px 12px; border:var(--sl-cart-border,1px solid #2563eb); border-radius:var(--sl-cart-radius,7px); background:var(--sl-cart-bg,#2563eb); color:var(--sl-cart-color,#fff); text-align:center; text-decoration:none; transition:all var(--sl-cart-transition,250ms) ease; }
.starline-add-to-cart:hover, .starline-add-to-cart:focus { border-color:var(--sl-cart-hover-border,#1d4ed8); background:var(--sl-cart-hover-bg,#1d4ed8); color:var(--sl-cart-hover-color,#fff); text-decoration:none; }
.starline-product-section.cart-align-left .starline-add-to-cart { align-self:flex-start; width:auto; }
.starline-product-section.cart-align-center .starline-add-to-cart { align-self:center; width:auto; }
.starline-product-section.cart-align-right .starline-add-to-cart { align-self:flex-end; width:auto; }
.starline-product-section.cart-full-width .starline-add-to-cart, .starline-product-section.stretch-cart .starline-add-to-cart { width:100%; align-self:stretch; }

/* Carousel */
.starline-product-section.layout-carousel .starline-product-slider-shell { padding-inline:calc(var(--sl-arrow-size,36px) / 2 + 7px); }
.starline-product-section.layout-carousel.arrows-inside .starline-product-slider-shell { padding-inline:0; }
.starline-product-section.layout-carousel.arrows-header .starline-product-slider-shell { padding-inline:0; }
.starline-product-section.layout-carousel .starline-product-grid { display:flex; gap:var(--sl-column-gap,20px); overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; scrollbar-width:none; }
.starline-product-section.layout-carousel .starline-product-grid::-webkit-scrollbar { display:none; }
.starline-product-section.layout-carousel .starline-product-card { flex:0 0 calc((100% - (var(--sl-columns,5) - 1) * var(--sl-column-gap,20px)) / var(--sl-columns,5)); scroll-snap-align:start; }
.starline-product-section.carousel-partial-preview.layout-carousel .starline-product-card { flex-basis:calc((100% - (var(--sl-columns,5) - .55) * var(--sl-column-gap,20px)) / (var(--sl-columns,5) + .45)); }
.starline-product-arrow { position:absolute; z-index:8; top:50%; width:var(--sl-arrow-size,36px); height:var(--sl-arrow-size,36px); display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:var(--sl-arrow-bg,#2563eb); color:var(--sl-arrow-color,#fff); box-shadow:0 5px 14px rgba(15,23,42,.18); transform:translateY(-50%); cursor:pointer; }
.starline-product-prev { left:0; }
.starline-product-next { right:0; }
.starline-product-section.arrows-inside .starline-product-prev { left:8px; }
.starline-product-section.arrows-inside .starline-product-next { right:8px; }
.starline-product-section.arrows-header .starline-product-arrow { top:-28px; transform:none; }
.starline-product-section.arrows-header .starline-product-prev { left:auto; right:calc(var(--sl-arrow-size,36px) + 8px); }
.starline-product-section.arrows-header .starline-product-next { right:0; }
.starline-product-arrow:disabled { opacity:.35; cursor:not-allowed; }
.starline-product-dots { display:flex; justify-content:center; gap:6px; margin-top:12px; }
.starline-product-dot { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:var(--sl-dot-color,#cbd5e1); cursor:pointer; }
.starline-product-dot.is-active { width:20px; border-radius:99px; background:var(--sl-dot-active,#2563eb); }

/* Alternative layouts */
.starline-product-section.layout-horizontal-list .starline-product-grid { grid-template-columns:1fr; }
.starline-product-section.layout-horizontal-list .starline-product-card { display:grid; grid-template-columns:minmax(120px,28%) 1fr; }
.starline-product-section.layout-horizontal-list .starline-product-image-wrap { height:auto !important; min-height:150px; }

/* Quick view */
.starline-quick-view-modal[hidden] { display:none !important; }
.starline-quick-view-modal { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:20px; }
.starline-quick-view-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.58); backdrop-filter:blur(2px); }
.starline-quick-view-dialog { position:relative; width:min(760px,100%); max-height:min(86vh,720px); overflow:auto; display:grid; grid-template-columns:minmax(220px,42%) 1fr; gap:22px; padding:22px; border-radius:16px; background:#fff; box-shadow:0 26px 70px rgba(0,0,0,.28); }
.starline-quick-view-close { position:absolute; top:9px; right:9px; z-index:2; width:36px; height:36px; border:0; border-radius:50%; background:#f2f5f4; font-size:22px; cursor:pointer; }
.starline-quick-view-image img { width:100%; height:300px; object-fit:contain; border-radius:12px; background:#fafafa; }
.starline-quick-view-copy { align-self:center; }
.starline-quick-view-copy h3 { margin:0 0 10px; font-size:24px; }
.starline-quick-view-price { margin-bottom:12px; color:#c72339; font-size:20px; font-weight:700; }
.starline-quick-view-copy p { color:#5d6965; line-height:1.6; }
.starline-quick-view-link { display:inline-flex; margin-top:10px; padding:10px 16px; border-radius:8px; background:#006a4e; color:#fff; text-decoration:none; font-weight:700; }

@media (max-width: 991px) {
    .starline-product-section.header-stack-tablet .starline-product-section-header { flex-direction:column; align-items:stretch; }
    .starline-product-section.layout-carousel .starline-product-card { flex-basis:calc((100% - (var(--sl-columns,3) - 1) * var(--sl-column-gap,16px)) / var(--sl-columns,3)); }
}
@media (max-width: 767px) {
    .starline-product-section.header-stack-mobile .starline-product-section-header { flex-direction:column; align-items:stretch; }
    .starline-product-section.header-stack-mobile .starline-product-view-more { align-self:flex-start; }
    .starline-product-section.layout-carousel .starline-product-slider-shell { padding-inline:0; }
    .starline-product-section.layout-carousel .starline-product-card { flex-basis:calc((100% - (var(--sl-columns,2) - 1) * var(--sl-column-gap,10px)) / var(--sl-columns,2)); }
    .starline-product-section.layout-carousel .starline-product-arrow { width:32px; height:32px; }
    .starline-product-section.layout-carousel.arrows-outside .starline-product-prev { left:4px; }
    .starline-product-section.layout-carousel.arrows-outside .starline-product-next { right:4px; }
    .starline-product-section.mobile-horizontal-scroll:not(.layout-carousel) .starline-product-grid,
    .starline-product-section.layout-grid-mobile-scroll .starline-product-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; scrollbar-width:none; padding-bottom:4px; }
    .starline-product-section.mobile-horizontal-scroll:not(.layout-carousel) .starline-product-card,
    .starline-product-section.layout-grid-mobile-scroll .starline-product-card { flex:0 0 min(78vw,280px); scroll-snap-align:start; }
    .starline-product-section.show-mobile-scrollbar .starline-product-grid { scrollbar-width:thin !important; }
    .starline-product-section.show-mobile-scrollbar .starline-product-grid::-webkit-scrollbar { display:block !important; height:4px; }
    .starline-product-section.layout-horizontal-list .starline-product-card { grid-template-columns:110px 1fr; }
    .starline-quick-view-dialog { grid-template-columns:1fr; gap:12px; padding:16px; }
    .starline-quick-view-image img { height:210px; }
    .starline-quick-view-copy h3 { font-size:20px; }
}
@media (min-width: 992px) { .starline-hide-desktop { display:none !important; } }
@media (min-width: 768px) and (max-width: 991px) { .starline-hide-tablet { display:none !important; } }
@media (max-width: 767px) { .starline-hide-mobile { display:none !important; } }

.starline-product-section.carousel-center-mode.layout-carousel .starline-product-card { scroll-snap-align:center; }
