/* Formulario «Solicita tu cita» (propio de la web, sin Google Forms) */
.sf { display: grid; gap: 1.25rem; margin-top: 1.25rem; }
.sf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
@media (max-width: 640px) { .sf-row { grid-template-columns: 1fr; } }
.sf-field { display: flex; flex-direction: column; gap: .4rem; border: 0; padding: 0; margin: 0; min-width: 0; }
.sf-label, .sf legend.sf-label { font-weight: 600; font-size: .95rem; color: #2d3436; padding: 0; margin-bottom: .1rem; }
.sf-label .sf-req { color: #9B6B9E; margin-left: .15rem; }
.sf-hint { font-size: .85rem; color: #5b6b6b; margin: 0; }
.sf input[type="text"], .sf input[type="email"], .sf input[type="tel"], .sf input[type="date"], .sf textarea {
  width: 100%; font: inherit; color: #2d3436; background: #f8fcfb;
  border: 1px solid rgba(86,167,164,.45); border-radius: .9rem; padding: .8rem 1rem; box-sizing: border-box;
}
.sf textarea { min-height: 7.5rem; resize: vertical; line-height: 1.5; }
.sf input:focus, .sf textarea:focus { outline: 2px solid #56a7a4; outline-offset: 1px; }
.sf-options { display: flex; flex-direction: column; gap: .5rem; }
.sf-opt { display: flex; align-items: center; gap: .65rem; font-size: .97rem; color: #2d3436; cursor: pointer; line-height: 1.4; }
.sf-opt input[type="radio"], .sf-opt input[type="checkbox"] { width: 1.15rem; height: 1.15rem; accent-color: #56a7a4; flex: none; margin: 0; }
.sf-opt input[type="text"] { flex: 1; padding: .5rem .8rem; }
.sf-box { background: rgba(174,141,191,.14); border: 1px dashed rgba(125,90,122,.45); border-radius: 1rem; padding: 1rem 1.2rem; }
.sf-box p { margin: 0 0 .7rem; font-size: .92rem; color: #4a4a4a; line-height: 1.55; }
.sf-legal { font-size: .82rem; color: #4a4a4a; line-height: 1.55; margin: 0 0 .7rem; }
.sf-legal a { color: #3f8b88; }
.sf-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sf-submit { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 0; cursor: pointer; font: inherit; font-weight: 600;
  color: #fff; background: linear-gradient(135deg, #6fb7b4, #4f9c99); padding: .95rem 2rem; border-radius: 999px; justify-self: start; }
.sf-submit:disabled { opacity: .6; cursor: wait; }
.sf-msg { margin: 0; padding: .9rem 1.1rem; border-radius: .9rem; font-size: .95rem; line-height: 1.5; display: none; }
.sf-msg.ok { display: block; background: #e3f4ee; color: #1f5c4d; border: 1px solid #9fd3c2; }
.sf-msg.error { display: block; background: #fbeaea; color: #7a2b2b; border: 1px solid #e3b1b1; }

/* Casillas y botones de opción: anulan los estilos generales de la web para campos de texto
   (relleno, borde y fondo) que las dejaban inservibles, y muestran el cursor normal */
.sf input[type="checkbox"], .sf input[type="radio"] {
  -webkit-appearance: auto !important; appearance: auto !important;
  width: 1.2rem !important; height: 1.2rem !important; min-width: 1.2rem;
  padding: 0 !important; margin: 0 !important; border: initial !important; background: initial !important;
  cursor: pointer !important; opacity: 1 !important; position: relative; z-index: 2; pointer-events: auto;
}
.sf .sf-opt, .sf .sf-submit { cursor: pointer !important; position: relative; z-index: 2; }
.sf, .sf * { cursor: auto; }
.sf input[type="text"], .sf input[type="email"], .sf input[type="tel"], .sf input[type="date"], .sf textarea { cursor: text !important; }
