/*
Theme Name: Fiorin
Theme URI: https://github.com/nuvolario/fioriinbicicletta
Description: Child theme di Astra per Fiori in Bicicletta. Token e componenti dal design system di Neo (14/10/2026), mappati su WooCommerce in modalità catalogo: card prodotto, bottone «Ordina su WhatsApp», badge «solo ritiro», flag «Oggi c'è».
Author: M32Lab
Template: astra
Version: 1.0.0
Text Domain: fiorin
*/

/* ════════════════════════════════════════════════════════════════
   1. TOKEN — fiorin-tokens.css di Neo, incollati tali e quali.
   Fonte: wiki prodotti/fiorinbicicletta/mock/fiorin-tokens.css
   Contrasti verificati AA (sonda Neo 14/10). Non ritoccare i valori
   qui: ogni modifica passa dal design system, poi si riporta.
   ════════════════════════════════════════════════════════════════ */
:root{
  /* superfici */
  --fb-carta: #faf7f0;        /* fondo pagina: carta calda, mai bianco pieno */
  --fb-card: #ffffff;         /* card prodotto: bianco VOLUTO sopra la carta — è la foto a dominare */
  --fb-card-brd: #e8e1d3;
  --fb-verde-soft: #eef3ea;   /* blocchi informativi (zona, occasioni) */
  /* inchiostri */
  --fb-ink: #26312a;          /* testo primario — 13,5:1 su carta */
  --fb-ink-2: #51605a;        /* testo secondario — 5,6:1 su carta */
  --fb-verde: #2e5f40;        /* brand, titoli di sezione — 7,2:1 su carta */
  --fb-papavero: #b3401f;     /* accento (prezzi, badge «oggi c'è» no → esaurito) — 5,6:1 su carta */
  /* azione */
  --fb-wa: #0f7568;           /* bottone WhatsApp: teal WA scuro — bianco sopra = 5,58:1 (il #128c7e stava a 4,14, sotto AA: misurato, non ricordato) */
  --fb-wa-hover: #0d675c;
  /* tipografia */
  --fb-font-display: 'Fraunces', Georgia, serif;
  --fb-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --fb-fs-body: 17px;         /* corpo generoso: si legge per strada, al sole */
  --fb-lh: 1.55;
  /* geometria */
  --fb-r: 14px;               /* card e bottoni: morbidi, artigianali */
  --fb-r-pill: 999px;
  --fb-gutter: 16px;          /* regola viewport Lord: 16px di margine, zero overflow a 320 */
  --fb-touch: 48px;           /* CTA principali sopra i 44pt minimi */
  --fb-shadow: 0 1px 2px rgb(38 49 42 / .06), 0 6px 18px rgb(38 49 42 / .07);
}

/* ════════════════════════════════════════════════════════════════
   2. BASE — corpo pagina sui token (sopra i default di Astra)
   ════════════════════════════════════════════════════════════════ */
body{
  background:var(--fb-carta);
  color:var(--fb-ink);
  font-family:var(--fb-font-body);
  font-size:var(--fb-fs-body);
  line-height:var(--fb-lh);
}
h1,h2,h3,h4{font-family:var(--fb-font-display);font-weight:600;color:var(--fb-ink)}
a{color:var(--fb-verde)}

/* ════════════════════════════════════════════════════════════════
   3. LOOP CATALOGO — .fb-card ↔ li.product (mappa Neo, riga 2)
   Selettori WooCommerce core; verifica visiva finale sul sito
   installato (passo 8 della checklist).
   ════════════════════════════════════════════════════════════════ */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid;
  grid-template-columns:repeat(2,1fr); /* 2 colonne già a 320px: le foto verticali reggono */
  gap:14px;
}
@media(min-width:560px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{gap:18px}
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  width:auto;float:none;margin:0;
  background:var(--fb-card);
  border:1px solid var(--fb-card-brd);
  border-radius:var(--fb-r);
  overflow:hidden;
  box-shadow:var(--fb-shadow);
  display:flex;flex-direction:column;
}
.woocommerce ul.products li.product a img{
  aspect-ratio:4/5;object-fit:cover;width:100%;margin:0;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--fb-font-display);font-weight:600;
  font-size:17.5px;line-height:1.25;color:var(--fb-ink);
  padding:11px 12px 0;
}
.woocommerce ul.products li.product .price{
  color:var(--fb-papavero);font-weight:800;font-size:18px;
  font-variant-numeric:tabular-nums;
  padding:0 12px;margin:5px 0 0;
}
.woocommerce ul.products li.product .price .woocommerce-Price-amount{color:var(--fb-papavero)}
/* 4 prodotti, una categoria: conteggio risultati e ordinamento sono rumore */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{display:none}

/* ════════════════════════════════════════════════════════════════
   4. BOTTONE WHATSAPP — .fb-wa-btn (mappa Neo, riga 3)
   L'UNICA azione del sito: nessun altro elemento è teal.
   Renderizzato da functions.php al posto dell'add-to-cart.
   ════════════════════════════════════════════════════════════════ */
.fb-wa-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:var(--fb-touch);padding:0 22px;
  border-radius:var(--fb-r-pill);
  background:var(--fb-wa);color:#fff;
  font-weight:700;font-size:16.5px;text-decoration:none;
  border:none;cursor:pointer;
  box-shadow:var(--fb-shadow);
  transition:background .15s,transform .12s;
}
.fb-wa-btn:hover,.fb-wa-btn:focus{background:var(--fb-wa-hover);color:#fff}
.fb-wa-btn:active{transform:scale(.985)}
.fb-wa-btn svg{width:19px;height:19px;flex-shrink:0}
/* variante compatta dentro la card del loop. min-width:0 è sostanza, non
   pignoleria: il bottone è flex item della card (li flex column) e col
   min-width:auto di default il testo su una riga (155px) vince sul width
   dichiarato — su card strette il bottone usciva e l'overflow:hidden della
   card lo tagliava in silenzio. Sbloccato il floor, il testo va a capo. */
.woocommerce ul.products li.product .fb-wa-btn{
  min-height:44px;font-size:14.5px;padding:6px 14px;
  margin:9px 12px 13px;width:calc(100% - 24px);
  min-width:0;text-align:center;
}

/* ════════════════════════════════════════════════════════════════
   5. BADGE «SOLO RITIRO» — .fb-badge ↔ campo consegna (mappa, riga 4)
   e «OGGI C'È» — .fb-dispo ↔ flag disponibile (mappa, riga 5)
   ════════════════════════════════════════════════════════════════ */
.fb-badge{
  display:inline-block;
  font-size:11px;font-weight:700;letter-spacing:.02em;
  padding:3px 9px;border-radius:var(--fb-r-pill);
  background:var(--fb-verde-soft);color:var(--fb-verde);
  border:1px solid #d7e2d0;
}
.woocommerce ul.products li.product .fb-badge{margin:4px 12px 0;align-self:flex-start}
.fb-dispo{
  display:inline-flex;align-items:center;gap:7px;
  font-weight:700;font-size:14.5px;color:var(--fb-verde);
  margin-top:9px;
}
.fb-dispo .dot{width:9px;height:9px;border-radius:50%;background:#3fae63;flex-shrink:0}
.fb-dispo--no{color:var(--fb-papavero)}
.fb-dispo--no .dot{background:var(--fb-papavero)}

/* ════════════════════════════════════════════════════════════════
   6. PAGINA PRODOTTO — mock prodotto.html di Neo
   ════════════════════════════════════════════════════════════════ */
.woocommerce div.product .product_title{
  font-family:var(--fb-font-display);font-weight:600;
  font-size:30px;line-height:1.15;color:var(--fb-ink);
}
.woocommerce div.product p.price,
.woocommerce div.product p.price .woocommerce-Price-amount{
  color:var(--fb-papavero);font-weight:800;font-size:26px;
}
.woocommerce div.product div.images img{
  border-radius:var(--fb-r);border:1px solid var(--fb-card-brd);
}
.woocommerce div.product .fb-wa-btn{width:100%;margin-top:18px}
.woocommerce div.product .fb-badge{margin-top:9px}

/* ════════════════════════════════════════════════════════════════
   7. HOME — sezioni migrate dal prototipo (tema «Fiori in
   bicicletta» v2.0.0, front-page.html + style.css, 14/10/2026).
   Le classi fiori-* restano quelle del prototipo così il markup
   delle pagine è un porting 1:1; i valori sono mappati sui token
   fb del design system (preset del block theme → variabili fb).
   Derivati dichiarati, non nuovi colori: carta-2 è la carta un
   gradino più scura (fondo hero/giri), verde-strong è il verde
   al 82% per gli hover.
   ════════════════════════════════════════════════════════════════ */
:root{
  --fb-carta-2:#f3efe6;
  --fb-verde-strong:#254d33;
  --fb-fs-insegna:clamp(2.5rem,8vw,4.1rem);
  --fb-fs-xl:clamp(1.75rem,4.5vw,2.5rem);
}

/* ── Apertura (hero) ── */
.fiori-apertura{display:grid;background:var(--fb-carta-2);border-block:1px solid var(--fb-card-brd);margin:0 0 2.5rem}
.fiori-apertura__foto{background-image:url(assets/img/bicicletta-alto.jpg);background-size:cover;background-position:52% 48%;min-height:300px;order:-1}
@media(min-width:36rem) and (max-width:55.99rem){
  .fiori-apertura__foto{background-image:url(assets/img/bicicletta-largo.jpg);background-position:28% 62%;min-height:44vw;max-height:340px}
}
.fiori-apertura__testo{padding:1.5rem var(--fb-gutter) 2.5rem;display:flex;flex-direction:column;gap:1rem;align-items:start}
.fiori-occhiello{margin:0;font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--fb-verde)}
.fiori-apertura__titolo{margin:0;font-family:var(--fb-font-display);font-size:var(--fb-fs-insegna);font-weight:700;line-height:.98;letter-spacing:-.03em;text-wrap:balance;color:var(--fb-ink)}
.fiori-apertura__voce{margin:0;max-width:30ch;color:var(--fb-ink-2)}
.fiori-apertura__azioni{margin:0;display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center}
.fiori-apertura__seconda{font-weight:700;min-height:44px;display:inline-flex;align-items:center}
.fiori-apertura__patto{margin:0;padding-block-start:.75rem;border-block-start:1px solid var(--fb-card-brd);width:100%;max-width:34ch;font-size:14.5px;color:var(--fb-ink-2)}
.fiori-apertura__patto-forte{display:block;font-weight:700;color:var(--fb-ink)}
@media(min-width:56rem){
  .fiori-apertura{grid-template-columns:1fr minmax(20rem,26rem);align-items:stretch;gap:2.5rem;padding-inline:max(1.5rem,calc((100% - 74rem)/2))}
  .fiori-apertura__testo{padding:3.5rem 0;justify-content:center;gap:1.5rem}
  .fiori-apertura__foto{order:0;background-position:50% 55%;min-height:34rem;max-height:none;margin-block:1.5rem}
}

/* ── Teste di sezione ── */
.fiori-sezione-testa{margin:0 0 1.5rem}
.fiori-arrivi-testa__riga{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem}
.fiori-sezione-titolo{margin:0;font-family:var(--fb-font-display);font-size:var(--fb-fs-xl);font-weight:700;line-height:1;letter-spacing:-.025em;color:var(--fb-ink)}
.fiori-sezione-nota{margin:.6rem 0 0;max-width:42ch;color:var(--fb-ink-2)}

/* ── Bottone della home (timbro, quasi squadrato — dal prototipo).
   Il verde è l'azione di navigazione; il teal resta solo di WhatsApp. ── */
.fiori-bottone{min-height:var(--fb-touch);display:inline-flex;align-items:center;justify-content:center;padding-inline:1.5rem;border-radius:2px;border:none;font-family:inherit;font-size:16.5px;font-weight:700;letter-spacing:.005em;text-decoration:none;background:var(--fb-verde);color:#fff;transition:background-color .2s,transform .14s}
.fiori-bottone:hover{background:var(--fb-verde-strong);color:#fff}
.fiori-bottone:active{transform:translateY(1px)}
.fiori-bottone--chiaro{background:var(--fb-carta);color:var(--fb-ink)}
.fiori-bottone--chiaro:hover{background:var(--fb-carta-2);color:var(--fb-ink)}

/* ── Coda arrivi ── */
.fiori-arrivi-coda{margin:1.75rem 0 0}
.fiori-arrivi-coda__frase{margin:0 0 .9rem;max-width:42ch;color:var(--fb-ink-2)}

/* ── Giri della settimana ── */
.fiori-giri{background:var(--fb-carta-2);padding-block:clamp(2.5rem,6vw,4rem);margin-block:clamp(2.5rem,6vw,4rem)}
.fiori-giri__dentro{max-width:60rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.fiori-giri__titolo{margin:0;font-family:var(--fb-font-display);font-size:var(--fb-fs-xl);color:var(--fb-ink)}
.fiori-giri__oggi{margin-top:.5rem;font-weight:700;color:var(--fb-verde-strong)}
.fiori-giri__elenco{margin:1.75rem 0 0;display:grid;gap:0}
.fiori-giro{display:grid;grid-template-columns:7.5rem 1fr;gap:.25rem 1rem;align-items:baseline;padding-block:.85rem;border-top:1px solid var(--fb-card-brd)}
.fiori-giro:last-child{border-bottom:1px solid var(--fb-card-brd)}
.fiori-giro dt{font-weight:700;color:var(--fb-ink)}
.fiori-giro dd{margin:0;display:flex;flex-wrap:wrap;gap:.15rem .75rem;align-items:baseline}
.fiori-giro__luogo{font-weight:600}
.fiori-giro__ore{color:var(--fb-ink-2);font-variant-numeric:tabular-nums}
.fiori-giri__coda{margin-top:1.75rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}

/* ── Consegna (fondo scuro) ── */
.fiori-consegna{background:var(--fb-ink);color:#fff;margin-block:3.5rem;padding-block:2.5rem}
.fiori-consegna__dentro{max-width:74rem;margin-inline:auto;padding-inline:var(--fb-gutter)}
.fiori-consegna__titolo{margin:0 0 1.5rem;font-family:var(--fb-font-display);font-size:var(--fb-fs-xl);font-weight:700;line-height:1;letter-spacing:-.025em;color:inherit}
.fiori-patti{margin:0;display:grid;gap:1.5rem}
.fiori-patto dt{font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:oklch(.8 .055 150)}
.fiori-patto dd{margin:.45rem 0 0;max-width:34ch;color:inherit}
.fiori-consegna__coda{margin:1.5rem 0 0}
@media(min-width:48rem){.fiori-patti{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ── Firma ── */
.fiori-firma{margin-block:3.5rem;text-align:start}
.fiori-firma__frase{margin:0;max-width:22ch;font-family:var(--fb-font-display);font-size:var(--fb-fs-xl);font-weight:500;line-height:1.06;letter-spacing:-.02em;color:var(--fb-verde);text-wrap:pretty}
.fiori-firma__coda{margin:1rem 0 0;font-size:14.5px;font-weight:700}

/* Le sezioni a tutta larghezza dentro il contenuto Astra. Il box-sizing e il
   reset dell'ul non si ereditano dal telaio: dichiarati qui, la home regge
   anche se il tema padre cambia i suoi default. overflow-x:clip assorbe i
   ~15px di scrollbar che width:100vw porta sui desktop con barra classica
   (clip, non hidden: niente scroll container, sticky intatti). */
.fiori-apertura,.fiori-consegna,.fiori-giri,.fiori-apertura *,.fiori-consegna *,.fiori-giri *,
.fb-wa-btn,.woocommerce ul.products li.product,.woocommerce ul.products li.product *{box-sizing:border-box}
.woocommerce ul.products{margin:0;padding:0;list-style:none}
html{overflow-x:clip}
.fiori-apertura.alignfull,.fiori-consegna.alignfull,.fiori-giri.alignfull{width:100vw;max-width:100vw;margin-inline:calc(50% - 50vw)}
