.elementor-15193 .elementor-element.elementor-element-f748b77{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-15193 .elementor-element.elementor-element-f748b77:not(.elementor-motion-effects-element-type-background), .elementor-15193 .elementor-element.elementor-element-f748b77 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-15193 .elementor-element.elementor-element-2e63269 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-15193 .elementor-element.elementor-element-2e63269.elementor-element{--align-self:center;}/* Start custom CSS for container, class: .elementor-element-f748b77 *//* ========= CF7 x Elementor — Modern, Clean, Accessible =========
   Usage:
   1) In Elementor, select the container with your CF7 shortcode.
      Advanced → CSS Classes:  cf7-modern grid-2   (or grid-3 / omit)
   2) Paste this CSS into that container’s Custom CSS or Site Settings → Custom CSS.
   3) Done. Tweak variables if needed.
================================================================= */

.cf7-modern{
  --cf7-bg:#ffffff;
  --cf7-text:#0f172a;        /* slate-900 */
  --cf7-muted:#64748b;       /* slate-500 */
  --cf7-border:#e2e8f0;      /* slate-200 */
  --cf7-ring:#6366f1;        /* indigo-500 */
  --cf7-danger:#ef4444;      /* red-500 */
  --cf7-success:#10b981;     /* emerald-500 */
  --cf7-radius:14px;
  --cf7-space:14px;
  --cf7-input-h:52px;
  --cf7-shadow:0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(2,6,23,.06);
  --cf7-ring-shadow:0 0 0 4px rgba(99,102,241,.15);
}

/* Optional compact variant: add class "compact" alongside cf7-modern */
.cf7-modern.compact{
  --cf7-space:10px; --cf7-input-h:46px; --cf7-radius:12px;
}

/* Dark mode tuning (optional) */
@media (prefers-color-scheme: dark){
  .cf7-modern{
    --cf7-bg:#2F3241;
    --cf7-text:#e5e7eb;
    --cf7-muted:#94a3b8;
    --cf7-border:#1f2a3a;
    --cf7-shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 30px rgba(0,0,0,.35);
    --cf7-ring-shadow:0 0 0 4px rgba(99,102,241,.25);
  }
}

/* Card wrapper */
.cf7-modern .wpcf7 form{
  background:var(--cf7-bg);
  border:1px solid var(--cf7-border);
  border-radius:20px;
  padding:clamp(16px,3vw,28px);
  box-shadow:var(--cf7-shadow);
}

/* Spacing & default CF7 <p> rows */
.cf7-modern .wpcf7-form p{
  margin:0 0 var(--cf7-space);
}

/* Optional auto-grid layouts via container class grid-2 / grid-3 */
.cf7-modern.grid-2 .wpcf7-form,
.cf7-modern.grid-3 .wpcf7-form{
  display:grid;
  gap:var(--cf7-space);
}
.cf7-modern.grid-2 .wpcf7-form{ grid-template-columns:1fr; }
.cf7-modern.grid-3 .wpcf7-form{ grid-template-columns:1fr; }
@media (min-width: 768px){
  .cf7-modern.grid-2 .wpcf7-form{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cf7-modern.grid-3 .wpcf7-form{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.cf7-modern.grid-2 .wpcf7-form p,
.cf7-modern.grid-3 .wpcf7-form p{ margin:0; } /* grid controls spacing */

/* Labels */
.cf7-modern .wpcf7-form label{
  display:block;
  font-weight:600;
  color:var(--cf7-text);
  margin-bottom:6px;
}

/* Inputs, textareas, selects */
.cf7-modern .wpcf7 input[type="text"],
.cf7-modern .wpcf7 input[type="email"],
.cf7-modern .wpcf7 input[type="url"],
.cf7-modern .wpcf7 input[type="tel"],
.cf7-modern .wpcf7 input[type="number"],
.cf7-modern .wpcf7 input[type="date"],
.cf7-modern .wpcf7 input[type="file"],
.cf7-modern .wpcf7 textarea,
.cf7-modern .wpcf7 select{
  width:100%;
  height:var(--cf7-input-h);
  border:1px solid var(--cf7-border);
  border-radius:var(--cf7-radius);
  background:#fff;
  color:var(--cf7-text);
  padding:12px 14px;
  line-height:1.2;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease, transform .02s ease-in;
  -webkit-appearance:none; appearance:none;
}
.cf7-modern .wpcf7 textarea{
  min-height:140px;
  height:auto;
  resize:vertical;
}
@media (prefers-color-scheme: dark){
  .cf7-modern .wpcf7 input[type],
  .cf7-modern .wpcf7 textarea,
  .cf7-modern .wpcf7 select{
    background:#0f172a;
  }
}

/* Placeholder & focus */
.cf7-modern .wpcf7 ::placeholder{ color:var(--cf7-muted); opacity:.9; }
.cf7-modern .wpcf7 input:focus,
.cf7-modern .wpcf7 textarea:focus,
.cf7-modern .wpcf7 select:focus{
  border-color:var(--cf7-ring);
  box-shadow:var(--cf7-ring-shadow);
}

/* Hover micro-lift */
@media (hover:hover){
  .cf7-modern .wpcf7 input[type],
  .cf7-modern .wpcf7 textarea,
  .cf7-modern .wpcf7 select{ transform:translateZ(0); }
  .cf7-modern .wpcf7 input[type]:hover,
  .cf7-modern .wpcf7 textarea:hover,
  .cf7-modern .wpcf7 select:hover{ border-color:#cbd5e1; }
}

/* Checkboxes & radios (modern browsers) */
.cf7-modern .wpcf7-list-item{ display:inline-flex; align-items:center; gap:8px; margin:6px 12px 6px 0; }
.cf7-modern .wpcf7-list-item label{ margin:0; font-weight:500; color:var(--cf7-text); }
.cf7-modern .wpcf7 input[type="checkbox"],
.cf7-modern .wpcf7 input[type="radio"]{
  width:18px; height:18px;
  accent-color:var(--cf7-ring);
  cursor:pointer;
}
.cf7-modern .wpcf7 input[type="checkbox"]{ border-radius:6px; }
.cf7-modern .wpcf7 input[type="radio"]{ border-radius:50%; }

/* File input */
.cf7-modern .wpcf7 input[type="file"]{
  height:auto;
  padding:10px;
}

/* Submit button */
.cf7-modern .wpcf7 input[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:48px; padding:0 22px;
  border:0; border-radius:9999px;
  background:var(--cf7-ring);
  color:#fff; font-weight:700; letter-spacing:.2px;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(99,102,241,.25);
  transition:transform .12s ease, box-shadow .2s ease, opacity .2s ease;
}
.cf7-modern .wpcf7 input[type="submit"]:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(99,102,241,.35);
}
.cf7-modern .wpcf7 input[type="submit"]:disabled{ opacity:.6; cursor:not-allowed; }

/* CF7 spinner positioning */
.cf7-modern .wpcf7 .ajax-loader{
  margin-left:12px; vertical-align:middle;
}

/* Required asterisk */
.cf7-modern .wpcf7 .required{ color:var(--cf7-danger); }

/* Validation states */
.cf7-modern .wpcf7 .wpcf7-not-valid{
  border-color:var(--cf7-danger) !important;
  box-shadow:0 0 0 4px rgba(239,68,68,.12) !important;
}
.cf7-modern .wpcf7 .wpcf7-not-valid-tip{
  display:block; margin-top:6px; font-size:12px; line-height:1.3;
  color:var(--cf7-danger);
}

/* Response / status messages */
.cf7-modern .wpcf7 .wpcf7-response-output{
  margin-top:16px; padding:12px 14px;
  border-radius:12px; border:1px solid var(--cf7-border);
  background:rgba(148,163,184,.08); color:var(--cf7-text);
}
.cf7-modern .wpcf7 form.sent .wpcf7-response-output{
  border-color:var(--cf7-success);
  background:rgba(16,185,129,.08); color:var(--cf7-text);
}
.cf7-modern .wpcf7 form.invalid .wpcf7-response-output,
.cf7-modern .wpcf7 form.failed .wpcf7-response-output,
.cf7-modern .wpcf7 form.spam .wpcf7-response-output{
  border-color:var(--cf7-danger);
  background:rgba(239,68,68,.08);
}

/* Accessibility: visible keyboard focus for submit button */
.cf7-modern .wpcf7 input[type="submit"]:focus-visible{
  outline:2px solid transparent; box-shadow:0 0 0 4px rgba(99,102,241,.35);
}

/* Reduce CF7’s default <br> spacing feel without breaking layouts */
.cf7-modern .wpcf7 br{ display:none; }/* End custom CSS */