/* Offerte (functions/promo-offers.php): ogni promozione è un buono, con lo sconto in un bollino e la linea tratteggiata. */
body.ac-promo-view { --po-ink:#342e29; --po-muted:#665d54; --po-accent:#715545; --po-line:#ded3c4; --po-paper:#fbf8f3; --po-light:#fffdf9; --po-blush:#f7ece8; --po-ease:cubic-bezier(.2,.8,.2,1); }

.ac-promo-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 24px; margin:clamp(8px, 2vw, 20px) 0 clamp(24px, 3vw, 36px); }
.ac-promo-head .ac-catalog-eyebrow { flex-basis:100%; }
body.ac-promo-view #Content .ac-promo-head h2 { --atelier-heading-size:clamp(30px, 3.4vw, 46px); --atelier-heading-before:4px; --atelier-heading-after:0px; letter-spacing:-.025em; }
body.ac-promo-view #Content .ac-promo-head p { margin:0!important; font-size:14px!important; color:var(--po-muted); }

body.ac-promo-view #Content .ac-promo-offers ul.products { display:grid!important; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:clamp(20px, 2.4vw, 32px); margin:0!important; padding:0!important; }
body.ac-promo-view #Content :is(.ac-promo-offers--2,.ac-promo-offers--4) ul.products { grid-template-columns:repeat(2, minmax(0, 1fr)); max-width:980px; margin-inline:auto!important; }
body.ac-promo-view #Content .ac-promo-offers--1 ul.products { grid-template-columns:minmax(0, 1fr); max-width:980px; margin-inline:auto!important; }

/* Il buono: carta chiara con filetto, tacche laterali sulla linea tratteggiata. */
body.ac-promo-view #Content .ac-promo-offers li.ac-catalog-card { position:relative; display:flex!important; flex-direction:column; width:auto!important; margin:0!important; padding:0!important; overflow:hidden; border:0!important; border-radius:26px!important; background:var(--po-light)!important; box-shadow:0 0 0 1px var(--po-line), 0 24px 50px -30px rgb(52 46 41 / 38%)!important; transition:transform .5s var(--po-ease), box-shadow .5s var(--po-ease); }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card__visual { aspect-ratio:4 / 3; background:radial-gradient(70% 70% at 50% 55%, #fff 0%, var(--po-blush) 100%)!important; }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card__visual img { padding:clamp(14px, 2vw, 24px)!important; transition:scale .9s var(--po-ease)!important; }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card__body { position:relative; padding:24px 26px 6px!important; border-top:2px dashed var(--po-line); }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card__actions { padding:16px 26px 26px!important; }
.ac-promo-offers .ac-catalog-card__body::before, .ac-promo-offers .ac-catalog-card__body::after { content:""; position:absolute; top:-13px; width:24px; height:24px; border-radius:50%; background:var(--po-paper); box-shadow:inset 0 0 0 1px var(--po-line); }
.ac-promo-offers .ac-catalog-card__body::before { left:-12px; clip-path:inset(0 0 0 50%); }
.ac-promo-offers .ac-catalog-card__body::after { right:-12px; clip-path:inset(0 50% 0 0); }

/* Bollino dello sconto. */
.ac-promo-seal { position:absolute; z-index:3; top:16px; right:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; width:clamp(74px, 7vw, 92px); aspect-ratio:1; border-radius:50%; background:var(--po-accent); color:#fff; font:400 clamp(24px, 2.3vw, 30px)/1 Georgia,'Times New Roman',serif; letter-spacing:-.02em; rotate:-10deg; box-shadow:0 14px 30px -10px rgb(113 85 69 / 55%), inset 0 0 0 4px rgb(255 255 255 / 18%); transition:rotate .6s var(--po-ease), scale .6s var(--po-ease); }
.ac-promo-seal small { margin-bottom:3px; font:600 9px/1 'Open Sans',Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; opacity:.85; }
/* Il bollino dice già "offerta": l'etichetta generica non serve qui. */
body.ac-promo-view .ac-promo-offers .ac-product-badge--sale { display:none!important; }

.ac-promo-label { align-self:flex-start; display:inline-flex; align-items:center; gap:8px; margin:0 0 12px; padding:6px 13px; border-radius:50px; background:var(--po-blush); color:var(--po-accent); font:600 11px/1.2 'Open Sans',Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.ac-promo-label::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--po-accent); }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card h2.woocommerce-loop-product__title { margin:0 0 16px!important; font-family:Georgia,'Times New Roman',serif!important; font-size:clamp(20px, 1.7vw, 24px)!important; line-height:1.3!important; }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card .price { display:flex!important; flex-wrap:wrap; align-items:baseline; gap:4px 12px; font-size:clamp(28px, 2.6vw, 36px)!important; font-weight:600!important; line-height:1.1!important; color:var(--po-ink)!important; }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card .price del { order:2; font-size:17px!important; font-weight:400!important; color:var(--po-muted)!important; }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card .price ins { order:1; margin:0!important; }
/* "Sconto del…" resta per i lettori di schermo: il bollino lo mostra già. */
body.ac-promo-view #Content .ac-promo-offers .saved-sale { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
body.ac-promo-view #Content .ac-promo-offers .ac-promo-notes { display:flex; flex-direction:column; gap:4px; margin:12px 0 0!important; font-size:14px!important; line-height:1.5!important; color:var(--po-muted); }
.ac-promo-notes span:first-child { font-weight:600; color:var(--po-accent); }
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card__actions .button { width:100%!important; }

@media (hover:hover) and (pointer:fine) {
 body.ac-promo-view #Content .ac-promo-offers li.ac-catalog-card:hover { transform:translateY(-6px); box-shadow:0 0 0 1px var(--po-line), 0 34px 64px -30px rgb(52 46 41 / 45%)!important; }
 .ac-promo-offers li.ac-catalog-card:hover .ac-promo-seal { rotate:0deg; scale:1.06; }
 body.ac-promo-view #Content .ac-promo-offers li.ac-catalog-card:hover .ac-catalog-card__visual img { scale:1.04; }
}
@keyframes ac-promo-seal-in { from { opacity:0; scale:.4; rotate:-40deg; } }
@media (prefers-reduced-motion:no-preference) {
 .ac-promo-seal { animation:ac-promo-seal-in .9s var(--po-ease) .3s both; }
}

/* Una sola offerta: buono orizzontale, linea tratteggiata in verticale. */
@media (min-width:761px) {
 body.ac-promo-view #Content .ac-promo-offers--1 li.ac-catalog-card { display:grid!important; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr); grid-template-rows:1fr auto; }
 body.ac-promo-view #Content .ac-promo-offers--1 .ac-catalog-card__visual { grid-row:1 / 3; aspect-ratio:auto; min-height:clamp(320px, 32vw, 400px); }
 body.ac-promo-view #Content .ac-promo-offers--1 .ac-catalog-card__body { justify-content:center; padding:clamp(28px, 3.4vw, 44px) clamp(28px, 3.4vw, 44px) 8px!important; border-top:0; border-left:2px dashed var(--po-line); }
 body.ac-promo-view #Content .ac-promo-offers--1 .ac-catalog-card__actions { padding:16px clamp(28px, 3.4vw, 44px) clamp(28px, 3.4vw, 44px)!important; border-left:2px dashed var(--po-line); position:relative; }
 .ac-promo-offers--1 .ac-catalog-card__body::before { top:-12px; left:-13px; clip-path:inset(50% 0 0 0); }
 .ac-promo-offers--1 .ac-catalog-card__body::after { display:none; }
 .ac-promo-offers--1 .ac-catalog-card__actions::after { content:""; position:absolute; bottom:-12px; left:-13px; width:24px; height:24px; border-radius:50%; background:var(--po-paper); box-shadow:inset 0 0 0 1px var(--po-line); clip-path:inset(0 0 50% 0); }
 body.ac-promo-view #Content .ac-promo-offers--1 .ac-catalog-card h2.woocommerce-loop-product__title { font-size:clamp(24px, 2.4vw, 32px)!important; }
 body.ac-promo-view #Content .ac-promo-offers--1 .ac-catalog-card .price { font-size:clamp(34px, 3.4vw, 46px)!important; }
}

@media (max-width:1000px) {
 body.ac-promo-view #Content :is(.ac-promo-offers--3,.ac-promo-offers--many) ul.products { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:640px) {
 body.ac-promo-view #Content .ac-promo-offers ul.products { grid-template-columns:minmax(0, 1fr)!important; }
}
@media (prefers-reduced-motion:reduce) {
 .ac-promo-seal, .ac-promo-offers li.ac-catalog-card, .ac-promo-offers .ac-catalog-card__visual img { transition:none!important; animation:none!important; }
}
body.ac-promo-view #Content .ac-promo-offers .ac-product-badges .ac-product-badge--sale { display:none!important; }
/* Le illustrazioni hanno il fondo bianco: si fondono con il rosa del buono. */
body.ac-promo-view #Content .ac-promo-offers .ac-catalog-card__visual img { mix-blend-mode:multiply; }

/* Nessuna offerta in questo momento (functions/promo-offers.php): un buono "in arrivo" al posto di "Nessun prodotto",
   con il bollino e la linea tratteggiata delle offerte. */
body.ac-promo-view #Content .ac-catalog-empty { display:flex; flex-direction:column; align-items:center; max-width:760px; margin:clamp(8px, 2vw, 20px) auto 0; padding:0!important; overflow:hidden; border-radius:26px!important; background:var(--po-light)!important; box-shadow:0 0 0 1px var(--po-line), 0 24px 50px -30px rgb(52 46 41 / 38%)!important; text-align:center; }
.ac-promo-empty { position:relative; display:flex; flex-direction:column; align-items:center; width:100%; margin-bottom:28px; border-bottom:2px dashed var(--po-line); padding:clamp(36px, 5vw, 56px) clamp(24px, 5vw, 64px) clamp(28px, 3vw, 36px); background:radial-gradient(80% 90% at 50% 0%, var(--po-blush) 0%, var(--po-light) 70%); }
.ac-promo-empty__mark { display:flex; align-items:center; justify-content:center; width:clamp(64px, 6vw, 76px); aspect-ratio:1; margin-bottom:22px; border-radius:50%; background:var(--po-accent); color:#fff; font-size:24px; line-height:1; rotate:-10deg; box-shadow:0 14px 30px -10px rgb(113 85 69 / 55%), inset 0 0 0 4px rgb(255 255 255 / 18%); }
body.ac-promo-view #Content .ac-promo-empty h2 { --atelier-heading-size:clamp(26px, 3vw, 38px); --atelier-heading-before:10px; --atelier-heading-after:0px; max-width:20ch; letter-spacing:-.025em; }
body.ac-promo-view #Content .ac-promo-empty p { max-width:46ch; margin:14px auto 0!important; font-size:16px!important; line-height:1.7!important; color:var(--po-muted); }
.ac-promo-empty::before, .ac-promo-empty::after { content:""; position:absolute; bottom:-13px; width:24px; height:24px; border-radius:50%; background:var(--po-paper); box-shadow:inset 0 0 0 1px var(--po-line); }
.ac-promo-empty::before { left:-12px; clip-path:inset(0 0 0 50%); }
.ac-promo-empty::after { right:-12px; clip-path:inset(0 50% 0 0); }
body.ac-promo-view #Content .ac-catalog-empty > .ac-catalog-read { width:auto; min-width:min(calc(100% - 48px), 280px); margin:0 24px 30px; }
