/* Contatti Modal - overlay + card */
:root{
  --cm-blue: #34546A;
  --cm-red: #6C3835;
  --cm-text: #2b3a47;
  --cm-muted: #64748b;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root{ color-scheme: light; }
}

.contact-modal{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(15,23,42,.6); backdrop-filter: blur(2px); z-index:9999; }
.contact-modal.open{ display:flex; }
.contact-modal[aria-hidden="true"]{ display:none; }

.contact-card{ position:relative; width:min(600px, calc(100vw - 28px)); max-height:min(90vh, 860px); overflow:auto; background:#fff; color:var(--cm-text); border-radius:14px; box-shadow:0 24px 70px rgba(0,0,0,.35); }

.cm-inner{ padding:22px 24px 10px; overflow-x:hidden; word-wrap:break-word; }

.cm-close{ position:absolute; top:10px; right:10px; width:36px; height:36px; border-radius:50%; border:0; background:#f1f5f9; color:#0f172a; font-size:22px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.cm-close:hover{ background:#e2e8f0; }

/* Header */
.cm-header{ display:flex; align-items:center; gap:12px; padding:6px 2px 14px; border-bottom:2px solid #e7eef6; }
.cm-header img{ height:72px; width:auto; display:block; }
.cm-title{ display:none; }

/* Identity */
.cm-name{ display:none; }
.cm-role{ display:none; }
.cm-agency{ margin:6px 0 6px; font-weight:600; letter-spacing:.03em; color:#304356; }
.cm-address{ display:flex; align-items:flex-start; gap:10px; color:#304356; margin:2px 0 18px; }
.cm-address svg{ flex:0 0 20px; margin-top:2px; }

/* Separators like the card */
.cm-sep, .cm-sep.thin{ display:none !important; }

/* Phones row */
.cm-phones{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin:12px 0 6px; align-items:stretch; }
.cm-phone{ display:flex; align-items:center; gap:12px; border:2px solid #d1d9e6; border-radius:12px; padding:10px 12px; color:#0f172a; text-decoration:none; background:#f8fafc; cursor: default; }
.cm-phone:hover{ background:#eef2f7; border-color:#c8d2e1; }
.cm-phone strong{ font-size:1.2rem; }
.cm-phone.whatsapp{ border-color:#b6e3c2; background:#f0fff4; }
.cm-phone.whatsapp:hover{ background:#e7ffef; }
/* Make phone numbers clickable but styled as text */
.cm-phone a{ color:inherit; text-decoration:none; cursor:pointer; }
.cm-phone a:hover{ text-decoration:underline; }

/* Socials + email */
.cm-socials{ display:flex; flex-direction:column; gap:8px; margin:12px 0 4px; }
.cm-social, .cm-email{ display:flex; align-items:center; gap:10px; color:#304356; text-decoration:none; padding:4px 6px; border-radius:8px; }
.cm-social:hover, .cm-email:hover{ background:#f1f5f9; }
.cm-email{ margin-top:6px; font-weight:600; }
.cm-email-text{ display:inline; }
/* Su desktop: nessun break */
@media (min-width: 641px){
  .cm-email-text wbr{ display:none; }
}
/* Su mobile: mantieni icona in linea, ma permetti break del testo */
@media (max-width: 640px){
  .cm-email{ align-items:flex-start; }
  .cm-email .cm-icon{ margin-top:2px; flex-shrink:0; }
}

/* Orari di apertura */
.cm-hours{ margin-top:20px; padding:16px; background:linear-gradient(135deg, #f8fafc 0%, #eef2f7 100%); border-radius:12px; border:1px solid #d1dae6; }
.cm-hours-title{ display:flex; align-items:center; gap:10px; margin:0 0 14px 0; font-size:1.05rem; font-weight:600; color:var(--cm-blue); }
.cm-hours-title .cm-icon{ width:20px; height:20px; }
.cm-hours-grid{ display:flex; flex-direction:column; gap:10px; }
.cm-hours-row{ display:flex; justify-content:space-between; align-items:center; padding:10px 14px; background:#ffffff; border-radius:10px; border:1px solid #e2e8f0; transition: all 0.2s ease; }
.cm-hours-row:hover{ border-color:#bcc8d8; box-shadow: 0 2px 8px rgba(52,84,106,0.08); }
.cm-day{ font-weight:600; color:#2b3a47; font-size:0.95rem; }
.cm-times{ display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.cm-time{ font-size:0.9rem; color:#475569; background:#f1f5f9; padding:4px 10px; border-radius:6px; font-weight:500; }
.cm-closed{ font-size:0.9rem; color:#94a3b8; font-style:italic; padding:4px 10px; }
.cm-hours-row.closed{ background:#f8fafc; border-style:dashed; }
.cm-hours-row.closed:hover{ border-color:#cbd5e1; box-shadow:none; }

/* Bottom bar to echo the card */
.cm-bottom-bar{ display:none !important; }

/* Icons */
.cm-icon{ width:22px; height:22px; display:block; flex:0 0 22px; color: var(--cm-blue); }
.cm-icon.big{ width:22px; height:22px; }
/* Colorize stroked icons (e.g., phone outline) */
.cm-icon [stroke]{ stroke: currentColor; }

/* Responsive */
@media (max-width: 640px){
  .cm-header img{ height:60px; }
  .cm-title{ font-size:1.8rem; }
  .cm-name{ font-size:1.35rem; }
  .cm-phones{ grid-template-columns: 1fr; }
  .cm-hours-row{ flex-direction:column; align-items:flex-start; gap:8px; }
  .cm-times{ justify-content:flex-start; width:100%; }
}
