/* =====================================================================
   FF Theme · pagina Prezzi (/servizi/preventivo-siti-web/), dopo pagina.css
   Dal concept pagine/federicofloris-prezzi-concept.html (blocco «PAGINA PREZZI»).
   In più rispetto al concept: stati senza JavaScript, box «Concept gratuito della home» (#concept).
   ===================================================================== */

/* apertura: nel mini indice al posto della freccia c'è il prezzo di partenza */
.ff-jump i{font:400 .75rem/1 var(--ff-mono);letter-spacing:.04em;transform:none!important}

/* ===== 02 · Listini ===== */
.ff-list-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:clamp(36px,6vh,64px)}
.ff-cats{flex-wrap:wrap}
.ff-short{display:none}
.ff-cms{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.ff-cms .ff-switch button small{font:500 .68rem/1 var(--ff-mono);color:var(--accent)}
.ff-cms .ff-switch button[aria-pressed="true"] small{color:inherit;opacity:.8}
.ff-cms-note{margin:0;color:var(--muted);font-size:.92rem;max-width:52ch;display:flex;align-items:baseline;gap:4px 12px}
.ff-cms-note .ff-link{color:var(--fg);white-space:nowrap}
/* nota di blog ed e-commerce: sempre su una riga finché sta in riga con le schede */
.ff-nowrap{white-space:nowrap;max-width:none}
/* pulsante «?» (stesso stile delle icone a quadrato): compare solo quando la spiegazione non sta in riga */
.ff-cms-i{display:none;width:36px;height:36px;place-items:center;border:1px solid var(--line);background:none;cursor:pointer;color:var(--fg);transition:background-color var(--ff-t-fast),color var(--ff-t-fast),border-color var(--ff-t-fast)}
.ff-cms-i svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.ff-cms-i:hover,.ff-cms-i[aria-expanded="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
/* barra compatta (classe messa dal JS): la spiegazione diventa un fumetto sotto il «?» */
.ff-list-bar.is-compact .ff-cms-i{display:grid}
.ff-list-bar.is-compact .ff-cms-note{position:absolute;top:calc(100% + 10px);right:0;z-index:5;width:min(320px,calc(100vw - 32px));display:grid;gap:10px;padding:16px 18px;
  background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px -20px rgba(0,0,0,.35);color:var(--fg);white-space:normal;
  opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--ff-t-fast),transform var(--ff-t-fast) var(--ff-ease-out),visibility 0s var(--ff-t-fast)}
.ff-list-bar.is-compact .ff-cms-note.is-open{opacity:1;visibility:visible;transform:none;transition:opacity var(--ff-t-fast),transform var(--ff-t-fast) var(--ff-ease-out)}
.ff-list-bar.is-compact .ff-cms-note .ff-link{justify-self:start}
.ff-plans{margin-top:clamp(20px,3vh,28px)}
.ff-plans-empty{margin-top:clamp(28px,5vh,48px)}
/* schede: 4 in riga; se non ci stanno scorrono di lato (data-hscroll), sul telefono una sotto l'altra */
.ff-plan-row{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:clamp(12px,1.4vw,20px);
  overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:2px}
.ff-plan-row::-webkit-scrollbar{display:none}
.ff-plan-row.ff-ovf{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--fl,0px),#000 calc(100% - var(--fr,36px)),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 var(--fl,0px),#000 calc(100% - var(--fr,36px)),transparent 100%)}
.ff-plan{scroll-snap-align:start;display:grid;grid-template-rows:auto auto 1fr auto auto auto;gap:14px;align-content:start;padding:clamp(20px,2vw,28px);
  border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent);min-width:0;transition:border-color var(--ff-t-mid)}
.ff-plan:hover{border-color:color-mix(in srgb,var(--fg) 40%,transparent)}
.ff-plan-k{margin:0;color:var(--muted);display:flex;justify-content:space-between;gap:10px}
.ff-plan-k b{font-weight:400;color:var(--accent)}
.ff-plan h3{font-size:clamp(1.35rem,1.6vw,1.65rem)}
.ff-plan-d{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}
.ff-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding-top:14px;border-top:1px solid var(--line)}
.ff-price small{font:400 .72rem/1 var(--ff-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ff-price b{font:600 clamp(2.3rem,3.2vw,3.2rem)/1 var(--ff-sans);letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.ff-price span{font-size:1.35rem;font-weight:600}
/* senza CMS: il prezzo con WordPress resta barrato accanto, così si vede il risparmio */
.ff-price s{flex-basis:100%;font:400 .9rem/1.2 var(--ff-sans);color:var(--muted);text-decoration-color:var(--accent)}
.ff-price em{flex-basis:100%;font:400 .7rem/1.4 var(--ff-mono);font-style:normal;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
/* prezzo senza CMS scritto: serve solo senza JavaScript (con il JS lo mostra l'interruttore) */
.ff-plan-st{margin:-6px 0 0;font:400 .72rem/1.4 var(--ff-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
.ff-js .ff-plan-st{display:none}
/* costi annui sotto il prezzo: cifra in evidenza, voci in chiaro */
.ff-plan-y{margin:-4px 0 0;display:grid;gap:3px;font-size:.84rem;line-height:1.45;color:var(--muted)}
.ff-plan-y b{font:400 .7rem/1.4 var(--ff-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ff-plan-y strong{font-weight:600;font-size:.95rem;color:var(--fg);white-space:nowrap}
.ff-plan-a{display:grid;gap:12px}
.ff-plan-a .ff-btn{width:100%}
.ff-plan-l{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:.88rem}
.ff-plan-l button,.ff-plan-l a{background:none;border:0;padding:0 0 1px;border-bottom:1px solid var(--line);color:var(--fg);text-decoration:none;cursor:pointer;font:inherit;transition:color var(--ff-t-fast),border-color var(--ff-t-fast)}
.ff-plan-l button:hover,.ff-plan-l a:hover{color:var(--accent);border-color:var(--accent)}
.ff-plans-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:clamp(24px,4vh,40px)}
.ff-plans-foot .ff-info-note{margin:0}

/* Senza JavaScript: tutti i listini uno sotto l'altro; schede, interruttori e «Componi» non servono (non farebbero nulla) */
html:not(.ff-js) .ff-list-bar,html:not(.ff-js) .ff-comp,html:not(.ff-js) #ff-cms-b{display:none}
html:not(.ff-js) .ff-plan-panel+.ff-plan-panel{margin-top:clamp(12px,1.4vw,20px)}
/* con JavaScript si vede solo il listino della scheda scelta */
.ff-js .ff-plan-panel:not(.is-on){display:none}

/* Componi il tuo sito: in alto titolo e totale, sotto le righe di scelta a tutta larghezza.
   La colonna del titolo non scende sotto ~24rem: il paragrafo resta al massimo su tre righe */
.ff-comp{display:grid;grid-template-columns:minmax(min(100%,24rem),1fr) auto;gap:clamp(20px,3vh,32px) clamp(24px,4vw,64px);align-items:start;margin-top:clamp(28px,5vh,48px);
  padding:clamp(22px,2.6vw,36px);border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent)}
.ff-comp-h{display:grid;gap:10px;min-width:0}
.ff-comp-h>.ff-mono{margin:0;color:var(--accent)}
.ff-comp-h h3{font-size:clamp(1.5rem,2.2vw,2.1rem)}
.ff-comp-h p:last-child{margin:0;color:var(--muted);font-size:.95rem;max-width:52ch}
.ff-comp-rows{grid-column:1/-1;display:grid;min-width:0;border-top:1px solid var(--line)}
.ff-comp-row{border:0;border-bottom:1px solid var(--line);margin:0;padding:12px 0;display:grid;grid-template-columns:9rem minmax(0,1fr);align-items:center;gap:10px 20px;min-width:0}
.ff-comp-row legend{float:left;padding:0;color:var(--muted)}
/* scelte a pari larghezza (Nessuno + una per offerta, --n dal template), con il prezzo sotto */
.ff-scene .ff-comp-row .ff-opts{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));overflow:visible;margin-inline:0;padding:0}
@media (min-width:600px){ .ff-scene .ff-comp-row .ff-opts{-webkit-mask-image:none;mask-image:none} .ff-scene .ff-comp-row .ff-opts>*{white-space:normal} }
.ff-comp-row .ff-opts span{padding:9px 12px;font-size:.92rem;height:100%}
.ff-comp-row .ff-opts span small{font:400 .7rem/1.2 var(--ff-mono);letter-spacing:.03em;margin-top:3px}
.ff-comp-t{grid-column:2;grid-row:1;display:grid;gap:12px;justify-items:end;text-align:right;min-width:0}
.ff-comp-sum{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 8px}
.ff-comp-sum small{flex-basis:100%;font:400 .72rem/1 var(--ff-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ff-comp-sum b{font:600 clamp(2.8rem,4vw,4rem)/1 var(--ff-sans);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.ff-comp-sum span{font-size:1.5rem;font-weight:600}
.ff-comp-sum em{flex-basis:100%;font:400 .7rem/1.4 var(--ff-mono);font-style:normal;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
/* riga dello sconto: la base si paga una volta sola */
.ff-comp-base{margin:0;padding-bottom:10px;border-bottom:1px solid var(--line);font:400 .74rem/1.4 var(--ff-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ff-comp-base b{font-weight:500;color:var(--accent);margin-left:6px;white-space:nowrap}
.ff-comp-t .ff-btn:disabled{opacity:.4;cursor:default}

/* ===== 03 · Con o senza CMS: testo e confronto a sinistra, disegno a destra ===== */
.ff-cmp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(40px,6vw,120px);align-items:center}
.ff-cmp-txt{display:grid;gap:clamp(24px,4vh,36px);min-width:0}
.ff-cmp-t{margin:0;border-top:1px solid var(--line)}
.ff-cmp-t>div{display:grid;grid-template-columns:minmax(9rem,.8fr) minmax(0,1fr) minmax(0,1fr);gap:4px 20px;padding:12px 0;border-bottom:1px solid var(--line);align-items:baseline}
.ff-cmp-t dt{color:var(--muted);font-size:.9rem}
.ff-cmp-t dd{margin:0;font-size:.95rem;transition:color var(--ff-t-mid),opacity var(--ff-t-mid)}
.ff-cmp-h dd{font:400 .72rem/1 var(--ff-mono);letter-spacing:.06em;text-transform:uppercase}
/* la colonna scelta resta piena, l'altra si attenua; l'intestazione scelta è magenta (data-mode lo mette il JS) */
.ff-cmp-t[data-mode="wp"] dd[data-col="static"],.ff-cmp-t[data-mode="static"] dd[data-col="wp"]{opacity:.38}
.ff-cmp-t[data-mode="wp"] .ff-cmp-h dd[data-col="wp"],.ff-cmp-t[data-mode="static"] .ff-cmp-h dd[data-col="static"]{color:var(--accent)}

/* ===== 04 · Costi annui e assistenza ===== */
.ff-costs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,72px);margin-top:clamp(40px,7vh,72px)}
.ff-costs-col{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-content:start;min-width:0}
.ff-costs-col h3{font:400 .75rem/1 var(--ff-mono)!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--muted)}
.ff-ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
/* ogni voce su una riga: il nome si tronca con i puntini e scorre al passaggio del mouse, il valore resta intero */
.ff-ledger li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.ff-ledger b{font-weight:600;font-size:1.08rem}
.ff-ledger span{flex:none;font:400 .82rem/1.4 var(--ff-mono);color:var(--muted);text-align:right;white-space:nowrap}
.ff-costs-col .ff-info-note{margin:0}

/* ===== 05 · Galleria di design: piccole finestre del browser con il nome del design ===== */
.ff-mocks{list-style:none;margin:clamp(40px,7vh,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.4vw,20px)}
.ff-mocks a{display:grid;grid-template-rows:auto 1fr auto;min-height:clamp(170px,22vh,220px);border:1px solid var(--line);text-decoration:none;background:color-mix(in srgb,var(--surface) 60%,transparent);transition:border-color var(--ff-t-mid),transform var(--ff-t-mid) var(--ff-ease-out)}
.ff-mocks a::before{content:"";height:24px;border-bottom:1px solid var(--line);
  background:radial-gradient(circle,var(--muted) 2.2px,transparent 2.6px) 12px 50%/12px 12px no-repeat,radial-gradient(circle,var(--muted) 2.2px,transparent 2.6px) 24px 50%/12px 12px no-repeat,radial-gradient(circle,var(--muted) 2.2px,transparent 2.6px) 36px 50%/12px 12px no-repeat}
.ff-mocks b{align-self:center;padding:14px 18px;font:italic 400 clamp(1.6rem,2.4vw,2.4rem)/1 var(--ff-serif);letter-spacing:-.01em}
.ff-mocks small{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;padding:10px 14px;border-top:1px solid var(--line);font:400 .7rem/1.3 var(--ff-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ff-mocks small i{font-style:normal;color:var(--fg);transition:color var(--ff-t-fast)}
.ff-mocks a:hover{border-color:var(--accent);transform:translateY(-3px)}
.ff-mocks a:hover small i{color:var(--accent)}
.ff-mocks-a{margin-top:clamp(28px,5vh,48px)}

/* ===== 06 · Concept gratuito della home (aggiunta): stessa scheda di «Componi», testo a sinistra e tre passi a destra ===== */
.ff-gift{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(28px,4vw,72px);align-items:start;margin-top:clamp(56px,9vh,96px);
  padding:clamp(22px,2.6vw,36px);border:1px solid var(--line);border-left:3px solid var(--accent);background:color-mix(in srgb,var(--surface) 70%,transparent);scroll-margin-top:calc(var(--ff-head) + 24px)}
.ff-gift-h{display:grid;gap:14px;align-content:start;min-width:0}
.ff-gift-h>.ff-mono{margin:0;color:var(--accent)}
.ff-page .ff-gift h3{font-size:clamp(1.5rem,2.2vw,2.1rem)}
.ff-gift-h p:not(.ff-mono){margin:0;max-width:52ch}
.ff-gift-h .ff-gift-note{color:var(--muted);font-size:.95rem}
.ff-gift-h .ff-actions{margin-top:6px}
.ff-gift-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ff-gift-steps li{display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:4px 12px;padding:14px 0;border-bottom:1px solid var(--line)}
.ff-gift-steps span{color:var(--accent);padding-top:.3em}
.ff-gift-steps b{font-size:1.1rem;font-weight:600;letter-spacing:-.015em}
.ff-gift-steps p{grid-column:2;margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}

/* ===== Desktop stretto e tablet ===== */
@media (max-width:1180px){
  .ff-mocks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ff-comp-row .ff-opts span{padding:8px 10px;font-size:.86rem}
}
@media (min-width:900px) and (max-width:1180px){
  .ff-comp-row{grid-template-columns:6.5rem minmax(0,1fr)}
  .ff-cmp-grid{grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:clamp(32px,4vw,56px)}
  .ff-cmp-t>div{grid-template-columns:1fr 1fr}
  .ff-cmp-t dt{grid-column:1/-1}
}
@media (max-width:899px){
  /* tablet e telefono: totale sotto le scelte, tutto in una colonna (niente testo schiacciato a sinistra) */
  .ff-comp{grid-template-columns:1fr}
  .ff-comp-t{justify-items:start;text-align:left;grid-column:1;grid-row:3}
  .ff-comp-sum{justify-content:flex-start}
  .ff-comp-row{grid-template-columns:1fr}
  .ff-cmp-grid{display:flex;flex-direction:column;align-items:stretch;gap:24px}
  .ff-cmp-grid .ff-slot{order:-1}
  .ff-costs-grid{grid-template-columns:minmax(0,1fr)}
  /* qui la riga dei pulsanti sta dentro una colonna: niente sbordo fino ai lati dello schermo */
  .ff-scene .ff-costs-col .ff-actions,.ff-scene .ff-gift .ff-actions{margin-inline:-3px;padding-inline:3px}
  .ff-cmp-t>div{grid-template-columns:1fr 1fr}
  .ff-cmp-t dt{grid-column:1/-1}
  .ff-gift{grid-template-columns:1fr}
}
@media (max-width:599px){
  .ff-plan-row{grid-template-columns:1fr;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .ff-plans .ff-hs-nav{display:none!important}
  .ff-mocks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ff-list-bar{flex-direction:column;align-items:stretch}
  /* telefono: la nota di blog ed e-commerce torna testo sotto le schede, senza «?» */
  .ff-nowrap{white-space:normal}
  .ff-scene .ff-comp-row .ff-opts{display:flex;overflow-x:auto}
  /* telefono: le tre schede su una riga, a pari larghezza, con le etichette brevi */
  .ff-cats{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
  .ff-cats button{justify-content:center;padding-inline:6px;white-space:nowrap}
  .ff-cats button small{display:none}
  .ff-long{display:none}.ff-short{display:inline}
}
