:root {
    --color-primary: #2A6F75; 
    --color-accent: #ECA72C;  
    --color-cta: #D95A40;     
    --color-cta-dark: #b84c36;
    --color-text: #2C303A;    
    --color-text-light: #555555;
    --color-bg: #FDFBF7;      
    --color-bg-gray: #f5f3ef; 
    --color-border: #E8E8E8;
    
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Nunito Sans', system-ui, sans-serif;
    
    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 1.5rem;
    --spacing-lg: 2rem;
    --spacing-xl: 3rem;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-body); color: var(--color-text); background: var(--color-bg); line-height: 1.5; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: transparent; }

h1, h2 { color: var(--color-primary); font-family: var(--font-heading); font-weight: 900; }
h3, h4 { color: var(--color-text); font-family: var(--font-body); font-weight: 600; }

/* Utilities */
.container { width: 100%; padding: 0 var(--spacing-sm); margin: 0 auto; max-width: 800px; /* La ref originale è stretta (mobile layout on desktop mostly) */ }
.uppercase { text-transform: uppercase; }
.text-center { text-align: center; }
.mt-3 { margin-top: 1rem; }
.mt-4 { margin-top: 1.5rem; }
.mt-5 { margin-top: 2.5rem; }
.mb-5 { margin-bottom: 2.5rem; }
.strike { text-decoration: line-through; opacity: 0.6; }

/* Top items */
.announcement-bar { background-color: var(--color-primary); color: #fff; text-align: center; font-weight: 700; font-size: 0.8rem; padding: 10px 12px; }
.main-header { border-bottom: 1px solid var(--color-border); padding: 8px 0; position: sticky; top: 0; background: var(--color-bg); z-index: 100; }
.header-container { display: flex; justify-content: center; align-items: center; padding: 0 16px; height: 50px; }
.logo-wrapper { display: flex; align-items: center; }
.brand-logo { height: 40px; width: auto; object-fit:contain; }

/* Gallery */
.splide__slide img { aspect-ratio: 1/1; object-fit: cover; width: 100%; }
#main-slider .splide__slide img { object-fit: contain; background-color: var(--color-bg-gray); }
#thumbnail-slider { margin-top: 4px; }
#thumbnail-slider .splide__slide img { cursor: pointer; transition: 0.2s; opacity: 1; border: 2px solid transparent; }
#thumbnail-slider .splide__slide.is-active img { border-color: var(--color-accent); }

/* Buy Box Info */
.buy-box-section { padding-top: 1rem; padding-bottom: 2rem; }
.product-title { font-family: var(--font-heading); color: var(--color-primary); font-size: 1.3rem; line-height: 1.1; margin-bottom: 0.5rem; letter-spacing: -0.2px; font-weight: 900; font-variant-numeric: lining-nums;}
.reviews-badge { font-family: var(--font-body); font-size: 0.8rem; margin-bottom: 0.8rem; display: flex; align-items: center; gap: 6px; }
.stars { color: var(--color-accent); font-size: 0.9rem; letter-spacing: 1px;}
.review-count { color: var(--color-text-light); }
.price-main { font-size: 1.4rem; font-weight: 800; margin-bottom: 1rem; color: var(--color-cta); font-family: var(--font-body); }
.price-compare { font-size: 1rem; color: var(--color-text-light); margin-right: 0.5rem; }

/* Checklist */
.product-checkmarks { font-size: 0.85rem; margin-bottom: 1rem; color: #333; font-weight: 600; }
.product-checkmarks li { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.check-icon { color: var(--color-accent); font-weight: normal; font-size: 0.9rem;}

/* Yellow Update Box */
.update-alert { background-color: #fdf5d3; border: 1px solid #fce895; padding: 10px; border-radius: 4px; font-size: 0.8rem; display: flex; gap: 10px; margin-bottom: 1.5rem; align-items: center; color: #000;}
.alert-icon { min-width: 18px; height: 18px; background: #ff4d4d; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 0.75rem;}

/* Bundles Divider */
.bundle-divider { text-align: center; position: relative; margin-bottom: 1rem; font-size: 0.65rem; font-weight: 900; letter-spacing: 0.5px; color: #000; text-transform: uppercase; }
.bundle-divider::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 1px solid #ccc; z-index: -1; }
.bundle-divider span { background: var(--color-bg); padding: 0 10px; }

/* Bundle Cards Complex Layout */
.bundles-container { display: flex; flex-direction: column; gap: 0.8rem; margin-bottom: 1.5rem; }
.bundle-option { display: block; border: 1px solid #ccc; background: #fedb9c; border-radius: 4px; position: relative; cursor: pointer; transition: 0.2s; overflow: visible;}
.bundle-option.active { border: 2px solid var(--color-primary); background: var(--color-accent); }

.bundle-main-row { display: flex; align-items: center; padding: 12px 10px; }
.bundle-main-row input { margin-right: 12px; width: 18px; height: 18px; accent-color: var(--color-primary); cursor: pointer;}
.bundle-title-col { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.bundle-title-col strong { font-size: 0.95rem; font-weight: 900; color: #000; display:flex; align-items:center; gap: 6px; flex-wrap: wrap;}
.bundle-sub { font-size: 0.7rem; color: #555; font-weight: normal; margin-top: 2px; }
.active .bundle-sub { color: #333; }
.bundle-price-col { font-weight: 900; font-size: 0.95rem; text-align: right; line-height:1.2; color: #000; font-family: var(--font-body); }
.sub-strike { font-weight: normal; font-size: 0.7rem; color: rgba(0,0,0,0.6); text-decoration: line-through;}

/* Badges */
.badge-shipping { background: #eee; color: #000; font-size: 0.55rem; padding: 2px 6px; border-radius: 2px; font-weight: 700; border: 1px solid #ccc;}
.badge-most-popular { position: absolute; right: 8px; top: -12px; background: var(--color-primary); color: #fff; font-size: 0.6rem; font-weight: 900; padding: 6px 10px; border-radius: 20px; text-transform: uppercase; z-index: 10; text-align: center; line-height: 1.2; white-space: nowrap; }

/* Bundle Extra Items Rows */
.bundle-inner-items { border-top: 1px solid rgba(0,0,0,0.1); padding: 10px; background: rgba(0,0,0,0.02); position: relative; }
.inner-item-row { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.inner-item-row img { width: 40px; height: 40px; border-radius: 4px; border: 1px solid #ccc; flex-shrink: 0;}
.inner-item-text { flex: 1; font-size: 0.75rem; line-height: 1.2; color: #000;}
.inner-item-price { text-align: right; font-size: 0.8rem; color: #000; display: flex; flex-direction: column;}
.inner-item-plus-circle { width: 18px; height: 18px; background: #999; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: bold; position: absolute; left: 24px; top: 52%; transform: translateY(-50%); border: 2px solid #fedb9c; z-index: 2;}

.bundle-extra-items { display: flex; flex-direction: column; border-top: 1px solid rgba(255,255,255,0.2); }
.bundle-extra-row { display: flex; align-items: center; gap: 10px; padding: 4px 10px; font-size: 0.75rem; font-weight: 800; color: #000; }
.bundle-extra-row:nth-child(1) { background-color: #b0b0b0; }
.bundle-extra-row:nth-child(2) { background-color: #999999; }
.bundle-option.active .bundle-extra-row { background-color: #000; color: #fff; }
.bundle-extra-row img { width: 22px; height: 22px; border-radius: 2px; border: 1px solid rgba(255,255,255,0.2); }
.b-extra-right { margin-left: auto; text-decoration: line-through; opacity: 0.7; font-weight: normal; font-size: 0.65rem; }

/* Main CTA */
.cta-button { display: block; width: 100%; text-align: center; padding: 14px; border-radius: 4px; font-weight: 900; font-size: 1.1rem; margin-bottom: 1.5rem; transition: 0.2s; color:#fff;}
.primary-cta { background-color: var(--color-cta); box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.primary-cta:hover { background-color: var(--color-cta-dark); }

/* Trust Box */
.trust-box { display: flex; align-items: center; gap: 14px; border: 1px solid #eaeaea; padding: 12px; border-radius: 4px; margin-bottom: 1.5rem; background: #fff;}
.tb-icon svg { width: 40px; height: 40px; stroke: #000; }
.tb-text strong { display: block; font-family: var(--font-heading); font-size: 0.95rem; font-weight: 900;}
.tb-text p { font-size: 0.8rem; color: #555; margin-top: 2px;}

/* Pre-accordions under box */
.pre-accords details { border-bottom: 1px solid #eaeaea; padding: 12px 0; }
.pre-accords summary { display: flex; justify-content: space-between; align-items: center; font-weight: 900; font-size: 0.8rem; cursor: pointer; list-style: none; font-family: var(--font-heading); color: #000;}
.pre-accords summary::-webkit-details-marker { display: none; }
.pre-accords .arr { font-size: 0.7rem; font-family: sans-serif; opacity: 0.5;}
.acc-body { padding: 8px 0 0; font-size: 0.85rem; color: #555; }
.payment-icons-hero { margin-top: 1.5rem; text-align: left; }
.payment-icons-hero img { display: inline-block; width: 100%; max-width: 260px; }
