/* Font self-hosted (nessuna chiamata a Google Fonts) e banner dei consensi, comuni alle pagine. */
@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 300; src: url(/fonts/montserrat-latin-300-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 400; src: url(/fonts/montserrat-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 500; src: url(/fonts/montserrat-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 600; src: url(/fonts/montserrat-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 700; src: url(/fonts/montserrat-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Dancing Script"; font-style: normal; font-display: swap; font-weight: 400 700; src: url(/fonts/dancing-script-latin-wght-normal.woff2) format("woff2"); }

.consent { font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.consent-card { position: fixed; right: 12px; bottom: 12px; left: 12px; z-index: 50; max-width: 380px; padding: 16px 16px 14px;
  border: 1px solid #e5d0a3; border-radius: 14px; background: #fff; color: #072a47; box-shadow: 0 18px 48px -24px #072a4766;
  animation: consent-in .22s ease both; }
.consent-card[hidden], .consent-tab[hidden] { display: none; }
.consent-card p { margin: 0; color: #4a5b6e; font-size: 13.5px; line-height: 1.5; }
.consent-card a { color: #072a47; font-weight: 600; white-space: nowrap; }
.consent-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.consent-actions button { min-height: 40px; padding: 0 14px; border: 1px solid #072a47; border-radius: 999px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.consent-reject { background: #fff; color: #072a47; }
.consent-accept { background: #072a47; color: #f3e8d2; }
.consent-tab { position: fixed; bottom: 12px; left: 0; z-index: 50; display: grid; place-items: center; width: 38px; height: 38px; padding: 0 2px 0 0;
  border: 1px solid #e5d0a3; border-left: 0; border-radius: 0 999px 999px 0; background: #f3e8d2; color: #072a47;
  box-shadow: 0 10px 26px -16px #072a4773; cursor: pointer; opacity: .86; }
.consent-tab:hover { opacity: 1; }
/* Mentre si scrive in un campo (tastiera aperta su mobile) la linguetta non copre niente. */
body:has(textarea:focus, input[type=text]:focus, input[type=email]:focus, input[type=tel]:focus) .consent-tab { display: none; }
.consent-actions button:focus-visible, .consent-tab:focus-visible, .consent-card a:focus-visible { outline: 3px solid #7eb1c6; outline-offset: 2px; }
@media (min-width: 760px) { .consent-card { right: auto; left: 20px; bottom: 20px; } }
@keyframes consent-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .consent-card { animation: none; } }
