/* =====================================================================
   Caseificio Fontemanna — banner e preferenze cookie
   Usa i token di fontemanna.css / adozioni.css, con fallback espliciti
   così il banner resta leggibile anche se il CSS di pagina non carica.
   ===================================================================== */

.fm-cc,
.fm-cc-modal{
  --cc-bosco:var(--bosco,#1f3a2b);
  --cc-oro:var(--pecorino,#c9a227);
  --cc-lana:var(--lana,#f4efe4);
  --cc-carta:var(--carta,#fbf8f1);
  --cc-bordo:var(--bordo,#e3dccc);
  --cc-ink:var(--inchiostro,#2a2722);
  --cc-ink-soft:var(--inchiostro-soft,#5c574d);
  font-family:var(--font-body,system-ui,sans-serif);
}

/* ---------------------------------------------------------------- banner */
.fm-cc{
  position:fixed;inset:auto 0 0 0;z-index:2147483000;
  background:var(--cc-bosco);color:var(--cc-lana);
  border-top:3px solid var(--cc-oro);
  box-shadow:0 -14px 40px -20px rgba(0,0,0,.7);
  padding:20px 0;
  transform:translateY(110%);transition:transform .35s ease;
}
.fm-cc.is-open{transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.fm-cc{transition:none}}

.fm-cc-inner{
  max-width:var(--maxw,1180px);margin:0 auto;padding:0 22px;
  display:flex;gap:26px;align-items:center;flex-wrap:wrap;
}
.fm-cc-text{flex:1 1 380px;min-width:280px}
.fm-cc-text h2{
  font-family:var(--font-display,Georgia,serif);
  font-size:19px;font-weight:600;margin:0 0 6px;color:var(--cc-lana);line-height:1.25;
}
.fm-cc-text p{margin:0;font-size:14.5px;line-height:1.55;color:#e6e0d2}
.fm-cc-text a{color:var(--cc-oro);text-decoration:underline;text-underline-offset:2px}

.fm-cc-actions{
  flex:0 1 auto;display:flex;gap:10px;flex-wrap:wrap;align-items:center;
}

/* I due bottoni di scelta hanno peso grafico identico: il rifiuto non
   deve mai essere meno visibile dell'accettazione (Linee guida Garante). */
.fm-cc-btn{
  font:inherit;font-size:15px;font-weight:600;
  padding:12px 22px;border-radius:999px;cursor:pointer;
  border:2px solid transparent;white-space:nowrap;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.fm-cc-btn:focus-visible{outline:3px solid var(--cc-oro);outline-offset:3px}
.fm-cc-btn--choice{background:var(--cc-oro);color:#231d05;border-color:var(--cc-oro)}
.fm-cc-btn--choice:hover{background:var(--pecorino-2,#a8851b);border-color:var(--pecorino-2,#a8851b)}
.fm-cc-btn--link{
  background:transparent;color:var(--cc-lana);border-color:transparent;
  text-decoration:underline;text-underline-offset:3px;padding:12px 10px;font-weight:500;
}
.fm-cc-btn--link:hover{color:var(--cc-oro)}

@media (max-width:720px){
  .fm-cc-inner{gap:16px}
  .fm-cc-actions{width:100%}
  .fm-cc-btn--choice{flex:1 1 140px;text-align:center}
}

/* ---------------------------------------------------------------- modale */
.fm-cc-modal{
  position:fixed;inset:0;z-index:2147483001;
  background:rgba(22,44,32,.62);
  display:none;align-items:center;justify-content:center;padding:20px;
}
.fm-cc-modal.is-open{display:flex}

.fm-cc-panel{
  background:var(--cc-carta);color:var(--cc-ink);
  width:min(600px,100%);max-height:calc(100vh - 40px);overflow-y:auto;
  border-radius:var(--radius,14px);border:1px solid var(--cc-bordo);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.6);
}
.fm-cc-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:24px 26px 14px;border-bottom:1px solid var(--cc-bordo);
}
.fm-cc-head h2{
  font-family:var(--font-display,Georgia,serif);
  font-size:24px;font-weight:600;margin:0;line-height:1.2;
}
.fm-cc-close{
  background:none;border:none;font-size:26px;line-height:1;cursor:pointer;
  color:var(--cc-ink-soft);padding:2px 6px;border-radius:8px;
}
.fm-cc-close:hover{color:var(--cc-ink)}
.fm-cc-close:focus-visible{outline:3px solid var(--cc-oro);outline-offset:2px}

.fm-cc-body{padding:20px 26px 6px}
.fm-cc-body>p{margin:0 0 18px;font-size:15px;line-height:1.6;color:var(--cc-ink-soft)}

.fm-cc-cat{
  border:1px solid var(--cc-bordo);border-radius:12px;
  padding:16px 18px;margin-bottom:14px;background:#fff;
}
.fm-cc-cat-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.fm-cc-cat h3{font-size:16px;font-weight:600;margin:0;font-family:inherit}
.fm-cc-cat p{margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--cc-ink-soft)}
.fm-cc-fixed{
  font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  color:var(--cc-ink-soft);background:var(--cc-lana);
  border:1px solid var(--cc-bordo);border-radius:999px;padding:5px 12px;white-space:nowrap;
}

/* interruttore */
.fm-cc-switch{position:relative;display:inline-block;width:52px;height:30px;flex:none}
.fm-cc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.fm-cc-slider{
  position:absolute;inset:0;background:#c4bdae;border-radius:999px;
  transition:background .2s ease;pointer-events:none;
}
.fm-cc-slider::before{
  content:"";position:absolute;width:22px;height:22px;left:4px;top:4px;
  background:#fff;border-radius:50%;transition:transform .2s ease;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.fm-cc-switch input:checked+.fm-cc-slider{background:var(--cc-bosco)}
.fm-cc-switch input:checked+.fm-cc-slider::before{transform:translateX(22px)}
.fm-cc-switch input:focus-visible+.fm-cc-slider{outline:3px solid var(--cc-oro);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  .fm-cc-slider,.fm-cc-slider::before{transition:none}
}

.fm-cc-foot{
  display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;
  padding:16px 26px 24px;border-top:1px solid var(--cc-bordo);margin-top:14px;
}
.fm-cc-foot .fm-cc-btn--choice{background:var(--cc-bosco);color:var(--cc-lana);border-color:var(--cc-bosco)}
.fm-cc-foot .fm-cc-btn--choice:hover{background:var(--bosco-2,#162c20);border-color:var(--bosco-2,#162c20)}
.fm-cc-foot .fm-cc-btn--ghost{
  background:transparent;color:var(--cc-ink);border-color:var(--cc-bordo);
}
.fm-cc-foot .fm-cc-btn--ghost:hover{border-color:var(--cc-ink-soft)}
@media (max-width:520px){
  .fm-cc-foot{justify-content:stretch}
  .fm-cc-foot .fm-cc-btn{flex:1 1 100%;text-align:center}
}

/* link "Preferenze cookie" nei footer */
.fm-cc-reopen{
  background:none;border:none;padding:0;font:inherit;cursor:pointer;
  color:inherit;text-decoration:underline;text-underline-offset:2px;
}
