/* Modal de contacto — FMG Agro */

.cm-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(27,36,16,.72);
  backdrop-filter:blur(3px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:40px 20px;overflow-y:auto;
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;
}
.cm-overlay.is-open{opacity:1;visibility:visible;}

.cm-dialog{
  background:var(--paper,#f4f3ef);
  width:100%;max-width:560px;
  border-top:3px solid var(--gold,#a2742f);
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  transform:translateY(-14px);transition:transform .22s ease;
  margin:auto;
}
.cm-overlay.is-open .cm-dialog{transform:translateY(0);}

.cm-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:30px 34px 0 34px;
}
.cm-kicker{
  font-family:var(--mono,monospace);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold,#a2742f);margin-bottom:8px;
}
.cm-title{
  font-family:var(--serif,serif);font-size:31px;line-height:1.15;
  font-weight:500;color:var(--ink,#1b2410);margin:0;
}
.cm-intro{
  padding:14px 34px 0 34px;font-size:14.5px;line-height:1.6;
  color:var(--soft,#575a4f);max-width:46ch;
}
.cm-close{
  background:none;border:none;cursor:pointer;padding:4px;line-height:1;
  font-size:26px;color:var(--soft,#575a4f);transition:color .15s;flex-shrink:0;
}
.cm-close:hover{color:var(--ink,#1b2410);}

.cm-form{padding:24px 34px 34px 34px;}
.cm-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cm-field{display:flex;flex-direction:column;}
.cm-field--wide{grid-column:1 / -1;}
.cm-field label{
  font-family:var(--mono,monospace);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--soft,#575a4f);margin-bottom:7px;
}
.cm-field .cm-req{color:var(--gold,#a2742f);}
.cm-field input,.cm-field select,.cm-field textarea{
  font-family:var(--sans,sans-serif);font-size:14.5px;color:var(--ink,#1b2410);
  background:#fff;border:1px solid var(--rule,#dcdad2);border-radius:0;
  padding:11px 13px;width:100%;outline:none;transition:border-color .16s;
}
.cm-field textarea{resize:vertical;min-height:118px;line-height:1.55;}
.cm-field input:focus,.cm-field select:focus,.cm-field textarea:focus{
  border-color:var(--olive,#4a6a2e);
}
.cm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.cm-actions{
  display:flex;align-items:center;gap:16px;margin-top:24px;flex-wrap:wrap;
}
.cm-submit{
  border:1px solid var(--olive,#4a6a2e);background:var(--olive,#4a6a2e);color:var(--paper,#f4f3ef);
  padding:13px 26px;font-family:var(--mono,monospace);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .16s;
}
.cm-submit:hover:not(:disabled){background:var(--olive-d,#2f4420);border-color:var(--olive-d,#2f4420);}
.cm-submit:disabled{opacity:.55;cursor:default;}
.cm-alt{font-size:13px;color:var(--soft,#575a4f);}
.cm-alt a{color:var(--olive,#4a6a2e);border-bottom:1px solid currentColor;}

.cm-note{
  margin-top:16px;font-size:12.5px;line-height:1.55;color:var(--soft,#575a4f);
}
.cm-msg{
  margin-top:18px;padding:13px 16px;font-size:13.5px;line-height:1.5;display:none;
}
.cm-msg.is-error{display:block;background:#fdf0ee;border-left:3px solid #b3402f;color:#8c2f21;}
.cm-msg.is-ok{display:block;background:#eef3e8;border-left:3px solid var(--olive,#4a6a2e);color:var(--olive-d,#2f4420);}

.cm-done{padding:34px;text-align:center;display:none;}
.cm-done.is-visible{display:block;}
.cm-done h3{
  font-family:var(--serif,serif);font-size:27px;font-weight:500;
  color:var(--ink,#1b2410);margin:0 0 12px 0;
}
.cm-done p{font-size:14.5px;line-height:1.6;color:var(--soft,#575a4f);margin:0 0 24px 0;}

@media (max-width:560px){
  .cm-overlay{padding:0;}
  .cm-dialog{max-width:none;min-height:100%;}
  .cm-grid{grid-template-columns:1fr;}
  .cm-head,.cm-intro,.cm-form{padding-left:22px;padding-right:22px;}
  .cm-title{font-size:26px;}
}
