/* ============================================================================
   SRH — Modulo contatto riusabile (drawer). Si appoggia ai token di styles.css.
   Trigger: qualunque elemento con [data-contact] o href="#contatto".
   ============================================================================ */
.srh-contact-backdrop {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(2,4,10,0.66); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  opacity: 0; pointer-events: none; transition: opacity .35s ease;
}
.srh-contact-backdrop.open { opacity: 1; pointer-events: auto; }

.srh-contact {
  position: fixed; top: 0; right: 0; z-index: 201;
  width: min(460px, 92vw); height: 100%;
  background: linear-gradient(180deg, var(--night), var(--bg-2) 60%, var(--bg));
  border-left: 1px solid var(--line-2);
  box-shadow: -30px 0 80px -30px rgba(0,0,0,0.8);
  transform: translateX(102%); transition: transform .42s cubic-bezier(.2,.7,.2,1);
  overflow-y: auto; padding: 30px 30px 40px;
  color: var(--ink); font-family: var(--sans);
}
.srh-contact.open { transform: none; }

.srh-contact .cc-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 6px; }
.srh-contact .cc-kicker {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.24em;
  text-transform: uppercase; color: var(--accent);
}
.srh-contact h3 { font-family: var(--serif); font-size: 30px; line-height: 1.08; margin: 8px 0 6px; font-weight: 400; }
.srh-contact .cc-sub { color: var(--ink-dim); font-size: 14px; line-height: 1.5; margin-bottom: 8px; }
.srh-contact .cc-ctx {
  display: inline-flex; align-items: center; gap: 7px; margin: 10px 0 18px;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; color: var(--ink-faint);
  border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px;
}
.srh-contact .cc-ctx b { color: var(--accent); font-weight: 500; }

.srh-contact .cc-close {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9px;
  border: 1px solid var(--line-2); background: transparent; color: var(--ink-dim);
  font-size: 18px; cursor: pointer; transition: all .25s ease;
}
.srh-contact .cc-close:hover { color: var(--accent); border-color: var(--accent); }

.srh-contact label { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-faint); margin: 14px 0 6px; }
.srh-contact input[type=text], .srh-contact input[type=email], .srh-contact textarea, .srh-contact select {
  width: 100%; box-sizing: border-box; background: rgba(8,14,30,0.6);
  border: 1px solid var(--line-2); border-radius: 10px; padding: 11px 13px;
  color: var(--ink); font-family: var(--sans); font-size: 14px; transition: border-color .25s ease;
}
.srh-contact input:focus, .srh-contact textarea:focus, .srh-contact select:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(61,240,230,0.12);
}
.srh-contact textarea { min-height: 78px; resize: vertical; }

.srh-contact .cc-chan { display: flex; gap: 8px; flex-wrap: wrap; }
.srh-contact .cc-chan button {
  flex: 1 1 auto; padding: 9px 10px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--line-2); background: transparent; color: var(--ink-dim);
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; transition: all .25s ease;
}
.srh-contact .cc-chan button.sel { border-color: var(--accent); color: var(--accent); background: rgba(61,240,230,0.08); }

.srh-contact .cc-consent { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 4px; }
.srh-contact .cc-consent input { margin-top: 3px; flex: 0 0 auto; }
.srh-contact .cc-consent label { margin: 0; text-transform: none; letter-spacing: 0; font-family: var(--sans);
  font-size: 12px; color: var(--ink-dim); line-height: 1.45; }
.srh-contact .cc-consent a { color: var(--accent); }

.srh-contact .cc-submit {
  width: 100%; margin-top: 18px; padding: 14px; border-radius: 12px; cursor: pointer;
  border: none; background: var(--accent); color: #05202a;
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600;
  transition: transform .25s ease, box-shadow .25s ease;
}
.srh-contact .cc-submit:hover { transform: translateY(-2px); box-shadow: 0 14px 36px -14px var(--accent); }
.srh-contact .cc-err { color: #ff9d9d; font-size: 12px; margin-top: 10px; min-height: 14px; }

.srh-contact .cc-note { font-size: 11px; color: var(--ink-faint); line-height: 1.5; margin-top: 16px;
  border-top: 1px solid var(--line); padding-top: 14px; }

/* stato di conferma */
.srh-contact .cc-done { display: none; text-align: center; padding: 40px 6px; }
.srh-contact.done .cc-form { display: none; }
.srh-contact.done .cc-done { display: block; }
.srh-contact .cc-done .cc-check {
  width: 56px; height: 56px; margin: 0 auto 18px; border-radius: 50%;
  border: 2px solid var(--accent); display: grid; place-items: center; color: var(--accent); font-size: 26px;
}
.srh-contact .cc-done h3 { margin-bottom: 8px; }
.srh-contact .cc-done p { color: var(--ink-dim); font-size: 14px; line-height: 1.55; }

@media (prefers-reduced-motion: reduce) {
  .srh-contact, .srh-contact-backdrop { transition: none; }
}

/* footer di navigazione condiviso (site-footer.js) */
.foot-nav {
  width: 100%; order: -1; display: flex; flex-wrap: wrap; gap: 8px 22px;
  padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--line);
}
.foot-nav a {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em;
  color: var(--ink-faint); text-decoration: none; transition: color .2s ease;
}
.foot-nav a:hover { color: var(--accent); }
.foot-nav a[aria-current="page"] { color: var(--ink); }
.page-foot .page-wrap .foot-nav { flex-basis: 100%; }
.foot .wrap .foot-nav { flex-basis: auto; width: 100%; }

/* footer ristrutturato: riga 1 brand + payoff, riga 2 dati legali */
.foot-brand { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; }
.foot-brand .sesa { height: 22px; opacity: 0.9; }
.foot-brand .fdiv { width: 1px; height: 20px; background: var(--line-2); }
.foot-brand .fsrh { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-dim); }
.foot-brand .fsrh b { color: var(--ink); font-weight: 600; }
.foot-brand .foot-payoff { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-faint); }
.foot-legal { display: block; color: var(--ink-faint); font-family: var(--mono); font-size: 10px; letter-spacing: 0.03em; line-height: 1.7; margin-top: 6px; }
.page-foot .page-wrap .foot-brand, .page-foot .page-wrap .foot-legal { flex-basis: 100%; }
.page-foot .page-wrap .foot-brand .foot-payoff { margin-left: auto; }
.foot .wrap .foot-brand { justify-content: center; }
