/* Componenti condivisi tra sito e landing: notifiche del modulo, banner cookie, campo anti-spam. */
.hp-field { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.hc-toast { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(74, 102, 112, 0.25); backdrop-filter: blur(4px); animation: hcFade 0.25s ease; }
.hc-toast-box { max-width: 420px; width: 100%; padding: 1.75rem 1.5rem; background: #fdfcfa; border: 1px solid #e8e4dd; border-radius: 8px; box-shadow: 0 12px 40px rgba(74, 102, 112, 0.18); font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif; animation: hcSlide 0.3s ease; }
.hc-toast-box.success { border-left: 4px solid #c9a227; }
.hc-toast-box.error { border-left: 4px solid #a83d3d; }
.hc-toast-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; font-size: 1.25rem; }
.hc-toast-box.success .hc-toast-icon { background: rgba(201, 162, 39, 0.15); color: #a67c00; }
.hc-toast-box.error .hc-toast-icon { background: rgba(168, 61, 61, 0.12); color: #a83d3d; }
.hc-toast-text { font-size: 1rem; line-height: 1.5; color: #2d3e42; margin-bottom: 1.25rem; }
.hc-toast-close { display: block; width: 100%; padding: 0.625rem 1rem; font-size: 0.875rem; font-weight: 500; color: #2d3e42; background: #f5f2ed; border: 1px solid #e8e4dd; border-radius: 6px; cursor: pointer; }
.hc-toast-close:hover { background: #e8e4dd; }
@keyframes hcFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes hcSlide { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }

.consent-banner { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 1500; max-width: 760px; margin: 0 auto; display: flex; align-items: center; gap: 1.25rem 2rem; flex-wrap: wrap; padding: 1.25rem 1.5rem; background: #fdfcfa; border: 1px solid #e8e4dd; border-top: 2px solid #c9a227; box-shadow: 0 12px 40px rgba(74, 102, 112, 0.16); font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif; padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px)); }
.consent-banner[hidden] { display: none; }
.consent-banner p { flex: 1 1 320px; margin: 0; font-size: 0.85rem; line-height: 1.6; color: #5a7a8a; }
.consent-banner a { color: #4a6670; }
.consent-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.consent-btn { padding: 0.7rem 1.4rem; font: 500 0.8rem/1 'Inter', system-ui, sans-serif; letter-spacing: 0.04em; color: #fff; background: #4a6670; border: 1px solid #4a6670; cursor: pointer; transition: background 0.3s ease, color 0.3s ease; }
.consent-btn:hover { background: #3c5560; }
.consent-btn--ghost { color: #4a6670; background: transparent; border-color: #c5d3db; }
.consent-btn--ghost:hover { background: #f2efe9; }

/* Landing: le immagini responsive sono avvolte in <picture> */
.lp-hero-visual picture, .lp-how-visual picture { display: contents; }
