/* ---------- Físicas · cierre, redes y formulario ---------- */
.opr-fc{position:relative !important; overflow:hidden !important}
.opr-fc::before{content:'' !important; position:absolute !important; left:50% !important; top:-44% !important; width:min(940px,120%) !important; aspect-ratio:1 !important;
  transform:translateX(-50%) !important; pointer-events:none !important; opacity:.16 !important;
  background:radial-gradient(circle at center, var(--p500), transparent 60%) !important}

.opr-fc-cabeza{position:relative !important; display:flex !important; flex-direction:column !important; align-items:center !important;
  text-align:center !important; max-width:720px !important; margin:0 auto !important}
.opr-fc-cabeza .opr-entradilla{margin-left:auto !important; margin-right:auto !important; text-align:center !important}
.opr-fc-ctas{display:flex !important; flex-wrap:wrap !important; gap:11px !important; justify-content:center !important; margin-top:28px !important}
.opr-fc-ctas .opr-btn{padding:14px 23px !important; font-size:.9375rem !important}

.opr-fc-redes{position:relative !important; display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:10px !important;
  margin-top:clamp(34px,4vw,52px) !important}
.opr-fc-red{display:flex !important; flex-direction:column !important; padding:20px 20px 22px !important; border-radius:var(--radio) !important;
  background:var(--superficie) !important; box-shadow:inset 0 0 0 1px var(--borde) !important;
  transition:box-shadow .18s ease, transform .18s ease !important}
.opr-fc-red:hover{box-shadow:inset 0 0 0 1px var(--borde2), var(--sombra-s) !important; transform:translateY(-2px) !important}
.opr-fc-red-ic{width:36px !important; height:36px !important; border-radius:10px !important; display:grid !important; place-items:center !important;
  background:var(--p100) !important; color:var(--suave) !important; margin-bottom:14px !important}
.opr-fc-red-ic svg{width:18px !important; height:18px !important}
.opr-fc-red.es-tg .opr-fc-red-ic{background:var(--p950) !important; color:#fff !important}
.opr-fc-red b{font-size:.96875rem !important; font-weight:700 !important; letter-spacing:-.016em !important}
.opr-fc-red > span:last-child{margin-top:5px !important; font-size:.84375rem !important; line-height:1.45 !important; color:var(--tenue) !important; text-wrap:pretty !important}

.opr-fc-firma{position:relative !important; display:flex !important; align-items:center !important; gap:18px !important; flex-wrap:wrap !important;
  justify-content:center !important; text-align:center !important; margin-top:clamp(30px,3.4vw,44px) !important;
  padding:20px clamp(20px,2.6vw,30px) !important; border-radius:var(--radio) !important; background:var(--p950) !important}
img.opr-fc-firma-logo{height:24px !important; width:auto !important; display:block !important}
.opr-fc-firma p{font-size:.8125rem !important; font-weight:500 !important; color:var(--p400) !important; text-wrap:pretty !important}

/* --- capa flotante: barra móvil y formulario --- */
.opr.opr-fc-flotante{position:fixed !important; left:0 !important; right:0 !important; bottom:0 !important; z-index:1200 !important;
  background:transparent !important; pointer-events:none !important}

.opr-fc-barra{display:none !important; align-items:center !important; gap:12px !important; pointer-events:auto !important;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom)) !important; background:rgba(255,255,255,.94) !important;
  -webkit-backdrop-filter:saturate(1.6) blur(12px) !important; backdrop-filter:saturate(1.6) blur(12px) !important;
  box-shadow:0 -1px 0 var(--borde), 0 -16px 32px -26px rgba(18,23,28,.5) !important;
  transform:translateY(110%) !important; transition:transform .3s cubic-bezier(.32,.72,.16,1) !important}
.opr-fc-barra.es-visible{transform:none !important}
.opr-fc-barra-txt{display:flex !important; flex-direction:column !important; gap:1px !important; min-width:0 !important; flex:1 !important}
.opr-fc-barra-txt b{font-size:.875rem !important; font-weight:700 !important; letter-spacing:-.014em !important}
.opr-fc-barra-txt i{font-size:.71875rem !important; color:var(--tenue) !important}
.opr-fc-barra .opr-btn{flex:none !important; padding:12px 20px !important; font-size:.875rem !important}
@media (max-width:860px){ .opr-fc-barra{display:flex !important} }

/* --- modal --- */
.opr-fc-modal{position:fixed !important; inset:0 !important; z-index:5 !important; pointer-events:auto !important;
  display:flex !important; align-items:center !important; justify-content:center !important; padding:18px !important;
  background:rgba(18,23,28,.62) !important; overflow-y:auto !important}
.opr-fc-caja{position:relative !important; width:100% !important; max-width:560px !important; max-height:calc(100svh - 36px) !important; overflow-y:auto !important;
  padding:clamp(24px,3vw,34px) !important; border-radius:var(--radio) !important; background:var(--superficie) !important;
  box-shadow:0 40px 80px -30px rgba(18,23,28,.6) !important;
  transform:translateY(10px) scale(.985) !important; opacity:0 !important;
  transition:transform .3s cubic-bezier(.32,.72,.16,1), opacity .24s ease !important}
.opr-fc-modal.es-abierto .opr-fc-caja{transform:none !important; opacity:1 !important}
.opr-fc-cerrar{position:absolute !important; top:12px !important; right:12px !important; width:34px !important; height:34px !important; border-radius:999px !important;
  display:grid !important; place-items:center !important; color:var(--tenue) !important; transition:background .16s, color .16s !important}
.opr-fc-cerrar:hover{background:var(--p100) !important; color:var(--tinta) !important}
.opr-fc-cerrar svg{width:16px !important; height:16px !important}

.opr-fc-kick{display:block !important; font-size:.75rem !important; font-weight:700 !important; color:var(--tenue) !important; margin-bottom:5px !important}
.opr-fc-ayuda{margin-top:8px !important; margin-bottom:18px !important; font-size:.90625rem !important; color:var(--suave) !important; max-width:46ch !important}

.opr-fc-fila{display:grid !important; grid-template-columns:1fr 1fr !important; gap:10px !important}
.opr-fc-campo{display:flex !important; flex-direction:column !important; gap:5px !important; margin-bottom:11px !important}
.opr-fc-campo > span{font-size:.8125rem !important; font-weight:600 !important; color:var(--suave) !important}
.opr-fc-campo input,.opr-fc-campo textarea{width:100% !important; padding:11px 13px !important; border-radius:var(--radio-s) !important;
  background:var(--p50) !important; box-shadow:inset 0 0 0 1.5px var(--borde) !important; font-size:.9375rem !important; color:var(--tinta) !important;
  transition:box-shadow .16s ease, background .16s ease !important; resize:vertical !important}
.opr-fc-campo input:focus,.opr-fc-campo textarea:focus{background:var(--superficie) !important;
  box-shadow:inset 0 0 0 1.5px var(--p700) !important; outline:none !important}
.opr-fc-campo.es-mal input,.opr-fc-campo.es-mal textarea{background:var(--no100) !important; box-shadow:inset 0 0 0 1.5px var(--no600) !important}

.opr-fc-check{display:flex !important; align-items:flex-start !important; gap:10px !important; margin:4px 0 16px !important;
  font-size:.84375rem !important; line-height:1.45 !important; color:var(--suave) !important; cursor:pointer !important}
.opr-fc-check input{flex:none !important; width:19px !important; height:19px !important; margin-top:1px !important; border-radius:6px !important;
  background:var(--p50) !important; box-shadow:inset 0 0 0 1.5px var(--borde2) !important; position:relative !important}
.opr-fc-check input:checked{background:var(--p950) !important; box-shadow:inset 0 0 0 1.5px var(--p950) !important}
.opr-fc-check input:checked::after{content:'' !important; position:absolute !important; left:6px !important; top:2.5px !important; width:5px !important; height:10px !important;
  border-right:2px solid #fff !important; border-bottom:2px solid #fff !important; transform:rotate(42deg) !important}
.opr-fc-check a{font-weight:600 !important; color:var(--tinta) !important; text-decoration:underline !important}
.opr-fc-check.es-mal{color:var(--no600) !important}
.opr-fc-check.es-mal input{box-shadow:inset 0 0 0 1.5px var(--no600) !important}
input.opr-fc-trampa{position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important}

.opr-fc-enviar{width:100% !important; padding:14px 20px !important}
.opr-fc-pie-nota{margin-top:10px !important; text-align:center !important}

.opr-fc-hecho{display:flex !important; flex-direction:column !important; align-items:center !important; text-align:center !important; gap:11px !important;
  padding:14px 0 6px !important}
.opr-fc-hecho-ic{width:52px !important; height:52px !important; border-radius:999px !important; display:grid !important; place-items:center !important;
  background:var(--ok100) !important; color:var(--ok600) !important}
.opr-fc-hecho-ic svg{width:24px !important; height:24px !important}
.opr-fc-hecho p{max-width:42ch !important; font-size:.9375rem !important; color:var(--suave) !important; text-wrap:pretty !important}
.opr-fc-hecho .opr-btn{margin-top:6px !important; padding:12px 22px !important; font-size:.9375rem !important}

@media (max-width:820px){
  .opr-fc-redes{grid-template-columns:1fr !important; gap:8px !important}
  .opr-fc-red{flex-direction:row !important; align-items:flex-start !important; gap:14px !important; flex-wrap:wrap !important; padding:16px 18px !important}
  .opr-fc-red-ic{margin-bottom:0 !important}
  .opr-fc-red > span:last-child{flex:1 1 100% !important; margin-top:2px !important}
}
@media (max-width:560px){
  .opr-fc-ctas .opr-btn{flex:1 1 100% !important}
  .opr-fc-fila{grid-template-columns:1fr !important; gap:0 !important}
  .opr-fc-caja{padding:22px 18px !important}
}
