/* Local copies keep the storefront typography consistent when external fonts are unavailable. */
@font-face { font-family:'Livvic Promo'; src:url('../fonts/livvic/Livvic-Regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Livvic Promo'; src:url('../fonts/livvic/Livvic-SemiBold.ttf') format('truetype'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:'Livvic Promo'; src:url('../fonts/livvic/Livvic-Bold.ttf') format('truetype'); font-style:normal; font-weight:700; font-display:swap; }
/* Shared storefront preview. Prices and links match prodotti-online.html. */
.product-promo { padding:64px 24px; background:#fff; font-family:'Livvic Promo','Livvic',sans-serif; }
.product-promo,.product-promo * { box-sizing:border-box; }
.product-promo__inner { width:min(1240px,100%); margin-inline:auto; padding:42px 42px 0; display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:32px 40px; align-items:center; background:#f0f5ed; border:1px solid #dae5d5; border-radius:22px; }
.product-promo__copy { min-width:0; padding-block:12px; }
.product-promo__eyebrow { display:inline-flex; align-items:center; gap:9px; margin:0 0 20px; color:#315b49; font:700 12px/1.5 'Livvic Promo','Livvic',sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.product-promo__eyebrow svg { width:23px; height:23px; flex:0 0 auto; }
.product-promo h2 { margin:0 0 20px; color:#18352e; font:600 clamp(32px,3.2vw,44px)/1.16 'Livvic Promo','Livvic',sans-serif; letter-spacing:-.045em; }
.product-promo h2 span { display:block; color:#2363d5; }
.product-promo__description { max-width:440px; margin:0 0 26px; color:#465e54; font:400 16px/1.75 'Livvic Promo','Livvic',sans-serif; letter-spacing:0; }
.product-promo__cta { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:54px; max-width:100%; padding:15px 24px; border:1px solid transparent; border-radius:8px; background:#2363d5; color:#fff; font:600 16px/1.4 'Livvic Promo','Livvic',sans-serif; text-decoration:none; transition:background .2s,box-shadow .2s; }
.product-promo__cta:visited,.product-promo__cta:focus { color:#fff; }
.product-promo__cta:hover { background:#194fae; color:#fff; box-shadow:0 5px 14px #2363d520; }
.product-promo__cta svg,.product-promo__buy svg { width:20px; height:20px; flex:0 0 auto; }
.product-promo a:focus-visible { outline:3px solid #2363d5 !important; outline-offset:5px; }
.product-promo__note { max-width:360px; margin:14px 0 0; color:#52645f; font:400 12px/1.6 'Livvic Promo','Livvic',sans-serif; letter-spacing:0; }
.product-promo__catalog { min-width:0; }
.product-promo__products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
.product-promo__product { display:flex; flex-direction:column; min-width:0; padding:12px; background:#fff; border:1px solid #d9e3d8; border-radius:14px; color:#18352e; text-decoration:none; box-shadow:0 4px 14px #18352e06; transition:border-color .2s,box-shadow .2s,transform .2s; }
.product-promo__product:visited,.product-promo__product:focus { color:#18352e; }
.product-promo__image { aspect-ratio:1/1; overflow:hidden; border-radius:8px; background:#f0f3ed; }
.product-promo__image img { display:block; width:100%; height:100%; object-fit:contain; }
.product-promo__image--supplement { background:#f0f3f6; }
.product-promo__image--supplement img { object-fit:contain; mix-blend-mode:multiply; }
.product-promo__details { display:flex; flex:1; flex-direction:column; min-width:0; padding:16px 3px 3px; }
.product-promo__name { display:block; color:#18352e; font:600 20px/1.3 'Livvic Promo','Livvic',sans-serif; letter-spacing:-.025em; }
.product-promo__format { display:block; margin-top:5px; color:#52645f; font:400 12px/1.5 'Livvic Promo','Livvic',sans-serif; letter-spacing:0; }
.product-promo__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 7px; margin:auto 0 15px; padding-top:16px; color:#18352e; }
.product-promo__price strong { font:600 26px/1.2 'Livvic Promo','Livvic',sans-serif; letter-spacing:-.035em; white-space:nowrap; }
.product-promo__price small { color:#52645f; font:400 11px/1.5 'Livvic Promo','Livvic',sans-serif; }
.product-promo__buy { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; padding:11px 14px; border-radius:6px; background:#2363d5; color:#fff; font:600 14px/1.4 'Livvic Promo','Livvic',sans-serif; letter-spacing:0; transition:background .2s; }
.product-promo__product:hover { color:#18352e; border-color:#9ab4a0; box-shadow:0 8px 22px #18352e12; }
.product-promo__product:hover .product-promo__buy { background:#194fae; color:#fff; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .product-promo__product:hover { transform:translateY(-3px); } }
.product-promo__shipping-note { margin:12px 0 0; color:#52645f; text-align:center; font:400 11px/1.5 'Livvic Promo','Livvic',sans-serif; letter-spacing:0; }
.product-promo__services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-column:1/-1; gap:16px; margin:0; padding:22px 0; border-top:1px solid #d3dfce; list-style:none; }
.product-promo__services li { display:flex; align-items:center; justify-content:center; gap:9px; min-width:0; margin:0; padding:0; color:#315b49; font:500 12px/1.5 'Livvic Promo','Livvic',sans-serif; letter-spacing:0; }
.product-promo__services svg,.product-promo__services img { width:21px; height:21px; flex:0 0 auto; }
@media (max-width:1099.98px) {
 .product-promo__inner { padding:32px 28px 0; gap:28px; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
 .product-promo h2 { font-size:35px; }
 .product-promo__description { font-size:15px; }
 .product-promo__products { gap:12px; }
 .product-promo__product { padding:10px; }
 .product-promo__name { font-size:18px; }
}
@media (max-width:899.98px) {
 .product-promo { padding:44px 20px; }
 .product-promo__inner { grid-template-columns:1fr; padding:32px 32px 0; gap:26px; }
 .product-promo__copy { padding:0; }
 .product-promo h2 { font-size:38px; }
 .product-promo__description { max-width:580px; margin-bottom:20px; }
 .product-promo__products { gap:20px; }
 .product-promo__product { padding:14px; }
 .product-promo__image { aspect-ratio:1.2/1; }
 .product-promo__name { font-size:21px; }
 .product-promo__format { font-size:13px; }
 .product-promo__note { max-width:none; }
}
@media (max-width:599.98px) {
 .product-promo { padding:36px 16px; }
 .product-promo__inner { padding:26px 20px 0; gap:24px; border-radius:16px; }
 .product-promo__eyebrow { margin-bottom:16px; font-size:11px; letter-spacing:.08em; }
 .product-promo h2 { font-size:clamp(29px,7.5vw,38px); margin-bottom:16px; }
 .product-promo__description { font-size:15px; line-height:1.65; }
 .product-promo__cta { width:100%; font-size:15px; padding-inline:16px; }
 .product-promo__note { font-size:11px; }
 .product-promo__products { grid-template-columns:1fr; gap:14px; }
 .product-promo__product { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:14px; padding:12px; }
 .product-promo__image { align-self:center; aspect-ratio:1/1.15; max-height:170px; }
 .product-promo__details { justify-content:center; padding:2px 0; }
 .product-promo__name { font-size:18px; }
 .product-promo__format { margin-top:4px; font-size:12px; }
 .product-promo__price { padding-top:12px; margin:0 0 12px; }
 .product-promo__price strong { font-size:24px; }
 .product-promo__price small { display:none; }
 .product-promo__buy { padding-inline:12px; font-size:13px; }
 .product-promo__shipping-note { font-size:11px; text-align:left; }
 .product-promo__services { grid-template-columns:1fr; gap:14px; padding-block:20px; }
 .product-promo__services li { justify-content:flex-start; font-size:12px; }
}
@media (max-width:359.98px) {
 .product-promo { padding-inline:12px; }
 .product-promo__inner { padding-inline:16px; }
 .product-promo__product { padding:10px; gap:10px; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); }
 .product-promo__name { font-size:17px; }
 .product-promo__buy { padding-inline:10px; }
}
@media (prefers-reduced-motion:reduce) { .product-promo *,.product-promo *::before,.product-promo *::after { transition:none !important; } }
