/* ===== dal Ricamatore — brand overrides sopra webflow-style.css ===== */
:root{ --brand-gold:#CB9847; --brand-gold-dark:#a97e37; --brand-black:#000; }

/* Tipografia: Avenir Next (nativa su Apple) con Mulish come fallback */
body, h1,h2,h3,h4,h5,h6, .button, .navbar-link, .text-field, .form-text-field,
input, select, textarea, .description, .tiny-text, .label {
  font-family:'Avenir Next', Avenir, 'Mulish', 'Segoe UI', Roboto, system-ui, sans-serif !important;
}
h1,h2,h3,h4,h5,h6,.button{ font-weight:700; }

/* Accento oro */
a{ transition:color .15s; }
p a, .footer-link:hover, .navbar-link:hover{ color:var(--brand-gold); }
/* CTA: oro come colore base (il template le ha rosse) */
.button{ background-color:var(--brand-gold) !important; color:#000 !important; }
.button:hover{ background-color:#000 !important; color:#fff !important; }
.button.secondary{ background-color:transparent !important; color:#000 !important; border-color:#000; }
.button.secondary:hover{ background-color:#000 !important; color:#fff !important; }
.promo-banner{ background-color:var(--brand-gold) !important; }
.promo-banner h2, .promo-banner p{ color:#fff; }
.accent{ color:var(--brand-gold); }
strong.price{ font-weight:700; }
strong.price .accent{ font-weight:800; }

/* Logo badge */
.brand-lockup{ display:flex; align-items:center; gap:10px; text-decoration:none; color:#000; }
.brand-lockup svg{ width:34px; height:34px; flex:0 0 34px; }
.brand-name{ font-weight:700; font-size:18px; letter-spacing:-.01em; white-space:nowrap; }
.brand-name em{ font-style:normal; font-weight:400; font-size:12px; display:block; line-height:1; color:#777; }

/* Placeholder box (loghi brand, mappa, foto mancanti) */
.ph-box{ background:#f2f1ef; border:1px solid #e4e3e0; border-radius:12px; display:flex;
  align-items:center; justify-content:center; color:#9a9993; font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; min-height:64px; text-align:center; padding:8px; }
.brand-logos{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; width:100%; margin-top:16px; }

/* Tabella prezzi / tempi */
.data-table{ width:100%; border-collapse:collapse; font-size:15px; }
.data-table th{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#888;
  text-align:left; font-weight:600; }
.data-table th,.data-table td{ border-bottom:1px solid #e6e5e2; padding:14px 6px; }
.data-table tr:last-child td{ border-bottom:none; }
.data-table td:last-child,.data-table th:last-child{ text-align:right; font-weight:600; }

/* Form multi-step */
.prog{ display:flex; gap:8px; margin:0 0 28px; }
.prog div{ flex:1; height:5px; border-radius:99px; background:#e6e5e2; }
.prog div.done{ background:var(--brand-gold); }
.fstep{ display:none; }
.fstep.active{ display:block; }
.opts{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:8px 0 4px; }
.opt{ border:1.5px solid #dddddd; border-radius:10px; padding:16px 12px; text-align:center;
  font-size:14px; font-weight:600; cursor:pointer; background:#fff; transition:all .12s; }
.opt:hover{ border-color:#000; }
.opt.sel{ background:#000; color:var(--brand-gold); border-color:#000; }
.opt.span2{ grid-column:1/3; }
.fld{ display:block; font-size:12px; font-weight:700; margin:18px 0 6px; letter-spacing:.02em; }
.chk{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color:#555; margin-top:14px; line-height:1.5; }
.chk input{ margin-top:3px; accent-color:#000; }
.btn-row{ display:flex; gap:10px; margin-top:24px; }
.btn-row .button{ flex:1; }

/* Strip contatti */
.cta-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:18px; width:100%; }
.cta-strip a{ border:1.5px solid #dddddd; border-radius:10px; padding:13px 6px; text-align:center;
  font-size:12px; font-weight:700; color:#000; text-decoration:none; transition:all .12s; }
.cta-strip a:hover{ border-color:var(--brand-gold); color:var(--brand-gold); }

/* Griglia card prodotti (5 sezioni) */
.services-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; width:100%; }
.service-card{ border:1px solid #e6e5e2; border-radius:16px; padding:18px; text-decoration:none;
  color:#000; background:#fff; transition:box-shadow .15s, transform .15s; display:block; }
.service-card:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(0,0,0,.08); }
.service-card .ph-box, .service-card img{ height:120px; width:100%; object-fit:cover; border-radius:10px; margin-bottom:12px; }
.service-card h5{ margin:0 0 2px; }
.service-card p{ margin:0; font-size:13px; color:#777; }
.service-card.span2{ grid-column:1/3; }
@media(max-width:600px){ .services-grid{ grid-template-columns:1fr; } .service-card.span2{ grid-column:auto; }
  .brand-logos{ grid-template-columns:repeat(2,1fr); } .cta-strip{ grid-template-columns:repeat(2,1fr); } }

/* Note/avvisi */
.notice{ background:#f9f4ea; border:1px solid #eadfc9; border-radius:12px; padding:14px 16px;
  font-size:13px; line-height:1.6; }

/* Brand fornitori */
.clients-wrapper{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.brand-card{ border:1px solid #e6e5e2; border-radius:14px; padding:18px 14px; text-decoration:none;
  color:#000; text-align:center; transition:all .15s; display:flex; flex-direction:column; gap:6px; }
.brand-card:hover{ border-color:var(--brand-gold); transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.07); }
.brand-card strong{ font-size:15px; letter-spacing:.04em; }
.brand-card span{ font-size:11.5px; color:#777; line-height:1.45; }
@media(max-width:700px){ .clients-wrapper{ grid-template-columns:repeat(2,1fr); } }

.brand-logo-img{ height:44px; width:auto; max-width:100%; margin:0 auto 4px; object-fit:contain; }

/* Logo: esteso di base, tondo dopo lo scroll */
.logo-swap{ position:relative; display:inline-flex; align-items:center; }
.logo-full{ transition:opacity .28s ease, transform .28s ease; }
.logo-round{ position:absolute; left:0; top:50%; opacity:0; transform:translateY(-50%) scale(.8) rotate(-20deg);
  transition:opacity .28s ease, transform .28s ease; pointer-events:none; }
body.scrolled .logo-full{ opacity:0; transform:scale(.92); }
body.scrolled .logo-round{ opacity:1; transform:translateY(-50%) scale(1) rotate(0deg); }
@media (prefers-reduced-motion: reduce){ .logo-full,.logo-round{ transition:none; } }

/* Loghi ufficiali */
.logo-full{ height:46px; width:auto; }
.logo-round{ height:42px; width:42px; }
.footer-logo{ height:56px; width:auto; background:#fff; border-radius:10px; padding:6px 10px; }

/* Form preventivo: contenuto e centrato */
#quote-form{ width:100%; max-width:560px; margin:0 auto; }
#quote-form .btn-row{ margin-top:24px; }

/* Cookie banner */
#cookie-banner{ position:fixed; left:0; right:0; bottom:0; z-index:9999; background:#141414; color:#fff;
  box-shadow:0 -4px 24px rgba(0,0,0,.2); padding:16px; }
#cookie-banner .cc-inner{ max-width:1000px; margin:0 auto; display:flex; align-items:center; gap:20px;
  flex-wrap:wrap; justify-content:space-between; }
#cookie-banner .cc-text{ font-size:13px; line-height:1.5; color:#d6d6d0; margin:0; flex:1; min-width:240px; }
#cookie-banner .cc-text a{ color:var(--brand-gold); text-decoration:underline; }
#cookie-banner .cc-btns{ display:flex; gap:10px; flex-shrink:0; }
#cookie-banner .cc-btn{ border:none; border-radius:999px; padding:11px 22px; font-family:inherit;
  font-size:12px; font-weight:700; cursor:pointer; letter-spacing:.02em; }
#cookie-banner .cc-reject{ background:transparent; color:#fff; border:1.5px solid #555; }
#cookie-banner .cc-reject:hover{ border-color:#fff; }
#cookie-banner .cc-accept{ background:var(--brand-gold); color:#000; }
#cookie-banner .cc-accept:hover{ background:#fff; }
@media(max-width:600px){ #cookie-banner .cc-inner{ flex-direction:column; align-items:stretch; }
  #cookie-banner .cc-btns{ justify-content:stretch; } #cookie-banner .cc-btn{ flex:1; } }

/* Badge B2B/B2C */
.badge-bb{ display:inline-block; background:var(--brand-gold); color:#000; font-weight:800;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; padding:6px 14px; border-radius:999px; margin-bottom:14px; }

/* DTF: blocco CTA finale centrato */
.dtf-cta{ max-width:640px; margin:0 auto; text-align:center; background:var(--soft,#f6f5f2);
  border:1px solid var(--line,#ececea); border-radius:18px; padding:40px 32px; }
.dtf-cta .button{ display:inline-flex; margin-top:8px; }

/* Chi ti risponde: logo al posto del ritratto */
.manager-banner .risponde-logo{ width:140px; height:140px; object-fit:contain; flex:0 0 140px; }
