/* ================= BO CONTACT FORM WIDGET — default styling =================
   Scoped under .bo-contact-form-wrap. Matches source CSS exactly:
   two-column layout, card-style form, sticky detail column with
   steps / inquiry links / trust stats.
   ========================================================================= */

.bo-contact-form-wrap{
  --cf-navy: #031B39;
  --cf-accent: #1083E6;
  --cf-slate: #54627A;
  --cf-slate-light: #8B97A8;
  --cf-line: #E4E8EE;
  --cf-line-strong: #D6DCE5;
  --cf-bg: #F7F9FC;
  --cf-ease: cubic-bezier(.22,1,.36,1);
  --cf-ease-spring: cubic-bezier(.34,1.56,.64,1);
  font-family:'Roboto', sans-serif;
}

.bo-contact-form-wrap .contact-main{
  padding:80px 0 96px;
  background:var(--cf-bg);
}
.bo-contact-form-wrap .cf-wrap{ max-width:1220px; margin:0 auto; padding:0 40px; }
.bo-contact-form-wrap .contact-main-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:64px;
  align-items:start;
}

/* ---------- Shared eyebrow ---------- */
.bo-contact-form-wrap .cf-eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cf-accent);
  font-weight:500;
  display:flex;
  align-items:center;
  gap:10px;
}
.bo-contact-form-wrap .cf-eyebrow::before{
  content:'';
  width:18px; height:1px;
  background:var(--cf-accent);
  display:inline-block;
}

/* ---------- Form column header ---------- */
.bo-contact-form-wrap .cf-header{ margin-bottom:36px; }
.bo-contact-form-wrap .cf-header .cf-eyebrow{ margin-bottom:14px; }
.bo-contact-form-wrap .cf-header h2{
  font-family:'Roboto Slab', serif;
  font-weight:600;
  letter-spacing:-0.01em;
  line-height:1.15;
  color:var(--cf-navy);
  font-size:32px;
  margin-bottom:12px;
}
.bo-contact-form-wrap .cf-header p{
  font-size:14.5px;
  color:var(--cf-slate);
  line-height:1.6;
  margin:0;
}

/* ---------- Form card ---------- */
.bo-contact-form-wrap .cf-form{
  background:#fff;
  border:1px solid var(--cf-line);
  border-radius:20px;
  padding:36px 38px;
  box-shadow:0 30px 60px -40px rgba(3,27,57,.14);
}
.bo-contact-form-wrap .cf-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-bottom:16px;
}
.bo-contact-form-wrap .field{ margin-bottom:16px; }
.bo-contact-form-wrap .field label{
  display:block;
  font-size:12px;
  font-weight:600;
  color:var(--cf-navy);
  margin-bottom:7px;
  letter-spacing:.02em;
}
.bo-contact-form-wrap .field input,
.bo-contact-form-wrap .field select,
.bo-contact-form-wrap .field textarea{
  width:100%;
  border:1px solid var(--cf-line-strong);
  border-radius:9px;
  padding:12px 14px;
  font-family:'Roboto', sans-serif;
  font-size:13.5px;
  color:var(--cf-navy);
  background:var(--cf-bg);
  transition:border-color .3s var(--cf-ease), box-shadow .3s var(--cf-ease), background .3s var(--cf-ease);
  -webkit-appearance:none;
  appearance:none;
}
.bo-contact-form-wrap .field input:focus,
.bo-contact-form-wrap .field select:focus,
.bo-contact-form-wrap .field textarea:focus{
  outline:none;
  border-color:var(--cf-accent);
  box-shadow:0 0 0 3px rgba(16,131,230,.1);
  background:#fff;
}
.bo-contact-form-wrap .field textarea{ resize:vertical; min-height:110px; }
.bo-contact-form-wrap .field.has-error input,
.bo-contact-form-wrap .field.has-error select,
.bo-contact-form-wrap .field.has-error textarea{
  border-color:#E23F3F;
  box-shadow:0 0 0 3px rgba(226,63,63,.1);
}
.bo-contact-form-wrap .field-error-msg{
  display:none;
  font-size:11.5px;
  color:#E23F3F;
  margin-top:6px;
}
.bo-contact-form-wrap .field.has-error .field-error-msg{ display:block; }

.bo-contact-form-wrap .cf-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:8px;
  flex-wrap:wrap;
}
.bo-contact-form-wrap .cf-submit-btn{
  font-family:'Roboto', sans-serif;
  font-weight:600;
  font-size:13.5px;
  padding:11px 22px;
  border-radius:7px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  border:1px solid transparent;
  cursor:pointer;
  white-space:nowrap;
  background:var(--cf-navy);
  color:#fff;
  transition:all .35s var(--cf-ease);
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 8px 20px -8px rgba(11,31,58,.45);
}
.bo-contact-form-wrap .cf-submit-btn:hover{ background:#0B2A52; transform:translateY(-2px); }
.bo-contact-form-wrap .cf-submit-btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.bo-contact-form-wrap .cf-foot p{
  font-size:11.5px;
  color:var(--cf-slate-light);
  max-width:240px;
  line-height:1.5;
  margin:0;
}
.bo-contact-form-wrap .cf-foot p a{ color:var(--cf-accent); text-decoration:underline; }

.bo-contact-form-wrap .cf-form-message{
  display:none;
  margin-top:16px;
  padding:12px 16px;
  border-radius:9px;
  font-size:13px;
  line-height:1.5;
}
.bo-contact-form-wrap .cf-form-message.is-visible{ display:block; }
.bo-contact-form-wrap .cf-form-message.is-success{
  background:rgba(16,131,230,.08);
  color:var(--cf-navy);
  border:1px solid rgba(16,131,230,.2);
}
.bo-contact-form-wrap .cf-form-message.is-error{
  background:rgba(226,63,63,.08);
  color:#a12222;
  border:1px solid rgba(226,63,63,.2);
}

/* ---------- Detail column ---------- */
.bo-contact-form-wrap .contact-detail-col{ position:sticky; top:92px; }
.bo-contact-form-wrap .cd-block{ margin-bottom:0; }
.bo-contact-form-wrap .cd-divider{
  height:1px;
  background:var(--cf-line);
  margin:28px 0;
}

/* Steps */
.bo-contact-form-wrap .cd-steps{ display:flex; flex-direction:column; gap:0; }
.bo-contact-form-wrap .cd-step{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:18px 0;
  border-bottom:1px solid var(--cf-line);
}
.bo-contact-form-wrap .cd-step:last-child{ border-bottom:none; }
.bo-contact-form-wrap .cd-step-num{
  font-family:'IBM Plex Mono', monospace;
  font-size:10px;
  letter-spacing:.14em;
  color:var(--cf-accent);
  font-weight:500;
  flex-shrink:0;
  margin-top:2px;
  width:24px;
}
.bo-contact-form-wrap .cd-step strong{
  display:block;
  font-size:14px;
  font-weight:600;
  color:var(--cf-navy);
  margin-bottom:5px;
  font-family:'Roboto', sans-serif;
}
.bo-contact-form-wrap .cd-step span{ font-size:13px; color:var(--cf-slate); line-height:1.55; }

/* Inquiry links */
.bo-contact-form-wrap .cd-inquiry-link{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid var(--cf-line);
  text-decoration:none;
  transition:padding-left .3s var(--cf-ease);
}
.bo-contact-form-wrap .cd-inquiry-link:first-of-type{ border-top:1px solid var(--cf-line); }
.bo-contact-form-wrap .cd-inquiry-link:hover{ padding-left:6px; }
.bo-contact-form-wrap .cd-inq-icon{
  width:36px; height:36px;
  border-radius:9px;
  background:var(--cf-bg);
  border:1px solid var(--cf-line);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:all .3s var(--cf-ease-spring);
}
.bo-contact-form-wrap .cd-inquiry-link:hover .cd-inq-icon{
  background:var(--cf-navy);
  border-color:var(--cf-navy);
  transform:scale(1.08) rotate(-4deg);
}
.bo-contact-form-wrap .cd-inq-icon svg{
  width:15px; height:15px;
  stroke:var(--cf-navy);
  transition:stroke .3s var(--cf-ease);
}
.bo-contact-form-wrap .cd-inquiry-link:hover .cd-inq-icon svg{ stroke:#fff; }
.bo-contact-form-wrap .cd-inquiry-link strong{
  display:block;
  font-size:13.5px;
  font-weight:600;
  color:var(--cf-navy);
  margin-bottom:3px;
  font-family:'Roboto', sans-serif;
}
.bo-contact-form-wrap .cd-inquiry-link span{ font-size:12.5px; color:var(--cf-slate-light); }
.bo-contact-form-wrap .cd-inq-arrow{
  width:14px; height:14px;
  stroke:var(--cf-slate-light);
  margin-left:auto;
  flex-shrink:0;
  transition:transform .3s var(--cf-ease), stroke .3s var(--cf-ease);
}
.bo-contact-form-wrap .cd-inquiry-link:hover .cd-inq-arrow{
  transform:translateX(4px);
  stroke:var(--cf-navy);
}

/* Trust stats */
.bo-contact-form-wrap .cd-trust{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:1px solid var(--cf-line);
  border-radius:14px;
  overflow:hidden;
}
.bo-contact-form-wrap .cd-trust-stat{
  padding:18px 16px;
  text-align:center;
  border-right:1px solid var(--cf-line);
  transition:background .3s var(--cf-ease);
}
.bo-contact-form-wrap .cd-trust-stat:last-child{ border-right:none; }
.bo-contact-form-wrap .cd-trust-stat:hover{ background:var(--cf-bg); }
.bo-contact-form-wrap .ct-num{
  display:block;
  font-family:'Roboto Slab', serif;
  font-size:22px;
  font-weight:500;
  color:var(--cf-navy);
  margin-bottom:4px;
}
.bo-contact-form-wrap .ct-lab{
  display:block;
  font-size:11px;
  color:var(--cf-slate-light);
  line-height:1.4;
}

/* ---------- Reveal helpers ---------- */
.bo-contact-form-wrap .reveal-left{
  opacity:0; transform:translateX(-34px);
  transition:opacity .8s var(--cf-ease), transform .8s var(--cf-ease);
}
.bo-contact-form-wrap .reveal-left.in{ opacity:1; transform:translateX(0); }
.bo-contact-form-wrap .reveal-right{
  opacity:0; transform:translateX(34px);
  transition:opacity .8s var(--cf-ease), transform .8s var(--cf-ease);
}
.bo-contact-form-wrap .reveal-right.in{ opacity:1; transform:translateX(0); }

@media (prefers-reduced-motion: reduce){
  .bo-contact-form-wrap .reveal-left,
  .bo-contact-form-wrap .reveal-right{ opacity:1; transform:none; transition:none; }
}

/* ---------- Editor-active safety net ----------
   Elementor adds this class to the preview iframe <body> so plugins can
   force-show scroll-reveal content while editing, independent of any
   JS timing race. */
body.elementor-editor-active .bo-contact-form-wrap .reveal-left,
body.elementor-editor-active .bo-contact-form-wrap .reveal-right{
  opacity:1 !important; transform:none !important;
}

/* ================= RESPONSIVE ================= */
@media (max-width:980px){
  .bo-contact-form-wrap .contact-main-grid{ grid-template-columns:1fr; gap:48px; }
  .bo-contact-form-wrap .contact-detail-col{ position:static; top:auto; }
  .bo-contact-form-wrap .cf-form{ padding:30px 28px; }
}
@media (max-width:640px){
  .bo-contact-form-wrap .cf-wrap{ padding:0 20px; }
  .bo-contact-form-wrap .contact-main{ padding:56px 0 64px; }
  .bo-contact-form-wrap .cf-header h2{ font-size:26px; }
  .bo-contact-form-wrap .cf-form{ padding:24px 20px; border-radius:16px; }
  .bo-contact-form-wrap .cf-row{ grid-template-columns:1fr; gap:0; margin-bottom:0; }
  .bo-contact-form-wrap .cf-foot{ flex-direction:column; align-items:flex-start; gap:14px; }
  .bo-contact-form-wrap .cf-submit-btn{ width:100%; justify-content:center; }
  .bo-contact-form-wrap .cf-foot p{ max-width:none; }
  .bo-contact-form-wrap .cd-trust{ grid-template-columns:1fr; }
  .bo-contact-form-wrap .cd-trust-stat{
    border-right:none;
    border-bottom:1px solid var(--cf-line);
  }
  .bo-contact-form-wrap .cd-trust-stat:last-child{ border-bottom:none; }
}