:root{
  --lr-glass-bg: rgba(255,255,255,.78);
  --lr-glass-brd: rgba(17,17,17,.08);
  --lr-shadow: 0 24px 64px rgba(0,0,0,.22);
  --lr-text:#111;
}

/* ===== Contenedor modal (id o clase) ===== */
#lr-contact-modal,
.lr-contact-modal{
  position: fixed !important;
  inset: 0 !important;
  z-index: 10050 !important;
  margin: 0 !important;
  opacity: 0;                 /* animable */
  pointer-events: none;       /* bloquea clics cuando está “cerrado” */
  transition: opacity .18s ease;
}

/* Estado abierto SOLO con aria-hidden */
#lr-contact-modal[aria-hidden="false"],
.lr-contact-modal[aria-hidden="false"]{
  opacity: 1;
  pointer-events: auto;
}

/* Scrim */
.lr-contact__scrim,
.lr-contact-scrim{
  position:absolute; inset:0;
  background: rgba(0,0,0,.40);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  opacity:.0; transition:opacity .18s ease;
}
#lr-contact-modal[aria-hidden="false"] .lr-contact__scrim,
.lr-contact-modal[aria-hidden="false"] .lr-contact-scrim{
  opacity:1;
}

/* ===== Panel (ambas variantes) ===== */
.lr-contact__panel,
.lr-contact-dialog{
  box-sizing:border-box;
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.70));
  border:1px solid var(--lr-glass-brd);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  backdrop-filter: blur(14px) saturate(160%);
  border-radius: 18px;
  box-shadow: var(--lr-shadow);
  color: var(--lr-text);
}

/* Desktop: centrado absoluto */
@media (min-width: 561px){
  .lr-contact__panel,
  .lr-contact-dialog{
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;

    width: min(720px, calc(100vw - 48px)) !important;
    max-height: min(84vh, 900px) !important;
    padding: 22px;
    overflow: auto;
  }
}

/* Móvil: bottom-sheet */
@media (max-width: 560px){
  .lr-contact__panel,
  .lr-contact-dialog{
    position: fixed !important;
    left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important;
    transform: none !important;
    width: 100% !important;
    padding: 18px 16px max(18px, env(safe-area-inset-bottom));
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -18px 48px rgba(0,0,0,.28);
  }
  /* handle */
  .lr-contact__panel::before,
  .lr-contact-dialog::before{
    content:"";
    display:block; width: 42px; height: 4px;
    margin: 6px auto 12px; border-radius: 2px;
    background: rgba(17,17,17,.18);
  }
}

/* Close */
.lr-contact__close,
.lr-contact-close{
  position:absolute; top:10px; right:10px;
  background:transparent; border:0; cursor:pointer;
  padding:8px; border-radius:10px; line-height:1;
  font-size:20px; color:#333;
}
.lr-contact__close:hover,
.lr-contact-close:hover{ background: rgba(17,17,17,.06); }

/* Inputs */
.lr-contact__panel input,
.lr-contact__panel select,
.lr-contact__panel textarea,
.lr-contact-dialog input,
.lr-contact-dialog select,
.lr-contact-dialog textarea{
  width:100%; box-sizing:border-box; display:block;
  font-size:16px; line-height:1.25;
  padding:12px 14px; margin:0 0 12px 0;
  border-radius:12px; border:1px solid var(--lr-glass-brd);
  background: rgba(255,255,255,.86); color:var(--lr-text);
}
.lr-contact__panel input,
.lr-contact__panel select,
.lr-contact-dialog input,
.lr-contact-dialog select{ height:48px; }
.lr-contact__panel textarea,
.lr-contact-dialog textarea{ min-height:140px; resize:vertical; }

.lr-contact__panel input:focus,
.lr-contact__panel select:focus,
.lr-contact__panel textarea:focus,
.lr-contact-dialog input:focus,
.lr-contact-dialog select:focus,
.lr-contact-dialog textarea:focus{
  border-color: rgba(17,17,17,.18);
  box-shadow: 0 0 0 3px rgba(17,17,17,.06);
  outline: none;
}

/* Botón enviar con estilo glass */
.lr-contact__panel button[type="submit"],
.lr-contact-dialog button[type="submit"]{
  width:100%; height:48px; border-radius:12px; font-weight:600;
  color: var(--lr-text);
  background: linear-gradient(180deg, rgba(255,255,255,.66), rgba(255,255,255,.45));
  border: 1px solid var(--lr-glass-brd);
  box-shadow: 0 10px 28px rgba(0,0,0,.06), inset 0 0 0 1px rgba(255,255,255,.35);
}

/* Prioridades sobre el scrim del menú */
.lr-menu-scrim{ z-index: 10000 !important; }
#lr-contact-modal, .lr-contact-modal{ z-index: 10050 !important; }