/* =============================================================
   Contact Form 7 — PalmBeach premium form treatment
   Works inside Classic Editor, Gutenberg and WPBakery pages.
   ============================================================= */

.wpcf7{
  --pb4r-form-green-dark:#022c1f;
  --pb4r-form-green:#045c3a;
  --pb4r-form-bright:#12c670;
  --pb4r-form-amber:#f59c1a;
  --pb4r-form-amber2:#fbbf24;
  --pb4r-form-ink:#0a1a12;
  --pb4r-form-muted:#5a7264;
  --pb4r-form-border:rgba(10,26,18,.12);
  --pb4r-form-shadow:0 22px 58px rgba(10,26,18,.09);
  width:100%;
  color:var(--pb4r-form-ink);
  font-family:'DM Sans',sans-serif;
}

.wpcf7 form{
  position:relative;
}

/* Optional premium surface when the form is the main content on a page. */
.pb4r-entry-content > .wpcf7,
.wpb_text_column .wpcf7,
.vc_column-inner > .wpb_wrapper > .wpcf7{
  margin:1.5rem 0;
}

.wpcf7 p{
  margin:0 0 1.15rem;
}

.wpcf7 label{
  display:block;
  margin:0;
  color:var(--pb4r-form-green-dark);
  font-size:.79rem;
  font-weight:800;
  line-height:1.45;
  letter-spacing:.015em;
}

.wpcf7 .wpcf7-form-control-wrap{
  display:block;
  width:100%;
  margin-top:.48rem;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="time"],
.wpcf7 input[type="search"],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;
  min-height:54px;
  margin:0;
  padding:.92rem 1rem;
  border:1.5px solid #dfe6e1;
  border-radius:14px;
  outline:none;
  background:#fbfcfa;
  color:var(--pb4r-form-ink);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
  font:500 .93rem/1.45 'DM Sans',sans-serif;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;
  -webkit-appearance:none;
  appearance:none;
}

.wpcf7 textarea{
  min-height:150px;
  resize:vertical;
  line-height:1.65;
}

.wpcf7 select{
  padding-right:3rem;
  background-image:
    linear-gradient(45deg,transparent 50%,var(--pb4r-form-green) 50%),
    linear-gradient(135deg,var(--pb4r-form-green) 50%,transparent 50%);
  background-position:
    calc(100% - 20px) 50%,
    calc(100% - 15px) 50%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder{
  color:#8a9b91;
  opacity:1;
}

.wpcf7 input[type="text"]:hover,
.wpcf7 input[type="email"]:hover,
.wpcf7 input[type="url"]:hover,
.wpcf7 input[type="tel"]:hover,
.wpcf7 input[type="number"]:hover,
.wpcf7 input[type="date"]:hover,
.wpcf7 input[type="time"]:hover,
.wpcf7 input[type="search"]:hover,
.wpcf7 select:hover,
.wpcf7 textarea:hover{
  border-color:rgba(4,92,58,.28);
  background:#fff;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 input[type="time"]:focus,
.wpcf7 input[type="search"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus{
  border-color:var(--pb4r-form-bright);
  background:#fff;
  box-shadow:0 0 0 4px rgba(18,198,112,.11),0 10px 28px rgba(10,26,18,.05);
}

/* Invalid field treatment. */
.wpcf7 .wpcf7-not-valid{
  border-color:#e35d6a !important;
  background:#fffafa !important;
}

.wpcf7 .wpcf7-not-valid:focus{
  box-shadow:0 0 0 4px rgba(227,93,106,.10) !important;
}

.wpcf7 .wpcf7-not-valid-tip{
  display:flex;
  align-items:center;
  gap:.4rem;
  margin-top:.42rem;
  color:#c83f4d;
  font-size:.73rem;
  font-weight:700;
  line-height:1.45;
}

.wpcf7 .wpcf7-not-valid-tip::before{
  content:"!";
  width:17px;
  height:17px;
  display:inline-grid;
  place-items:center;
  flex:0 0 17px;
  border-radius:50%;
  background:#fee2e2;
  font-size:.68rem;
  font-weight:900;
}

/* Checkboxes, radio controls and acceptance. */
.wpcf7 .wpcf7-list-item{
  margin:.35rem 1rem .35rem 0;
}

.wpcf7 .wpcf7-list-item label{
  display:inline-flex;
  align-items:flex-start;
  gap:.55rem;
  color:var(--pb4r-form-muted);
  font-size:.82rem;
  font-weight:600;
  cursor:pointer;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"]{
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin:.08rem 0 0;
  accent-color:var(--pb4r-form-green);
  cursor:pointer;
}

/* File input. */
.wpcf7 input[type="file"]{
  width:100%;
  padding:.75rem;
  border:1.5px dashed rgba(4,92,58,.22);
  border-radius:14px;
  background:#f7fbf8;
  color:var(--pb4r-form-muted);
  font:600 .82rem 'DM Sans',sans-serif;
}

.wpcf7 input[type="file"]::file-selector-button{
  margin-right:.8rem;
  padding:.6rem .85rem;
  border:0;
  border-radius:10px;
  background:#e6f8ed;
  color:var(--pb4r-form-green);
  font-weight:800;
  cursor:pointer;
}

/* Submit button. */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"]{
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:.92rem 1.65rem;
  border:0;
  border-radius:14px;
  background:linear-gradient(135deg,var(--pb4r-form-bright),var(--pb4r-form-green));
  color:#fff;
  box-shadow:0 14px 32px rgba(18,198,112,.22);
  font:800 .92rem/1 'DM Sans',sans-serif;
  letter-spacing:.015em;
  cursor:pointer;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 button[type="submit"]:hover,
.wpcf7 button[type="submit"]:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(18,198,112,.30);
  filter:saturate(1.06);
  outline:none;
}

.wpcf7 input[type="submit"]:active,
.wpcf7 button[type="submit"]:active{
  transform:translateY(0);
}

.wpcf7 input[type="submit"]:disabled,
.wpcf7 button[type="submit"]:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
}

/* CF7 spinner. */
.wpcf7 .wpcf7-spinner{
  margin:0 0 0 .75rem;
  background-color:var(--pb4r-form-green);
  opacity:.8;
}

/* Response messages. */
.wpcf7 form .wpcf7-response-output{
  margin:1rem 0 0;
  padding:.9rem 1rem;
  border:1px solid rgba(4,92,58,.17);
  border-radius:14px;
  background:#f0fdf4;
  color:var(--pb4r-form-green-dark);
  font-size:.82rem;
  font-weight:700;
  line-height:1.55;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{
  border-color:#f3c878;
  background:#fffbeb;
  color:#8a5a09;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output{
  border-color:#fecaca;
  background:#fef2f2;
  color:#b42332;
}

.wpcf7 form.sent .wpcf7-response-output{
  border-color:#a7efc1;
  background:#ecfdf3;
  color:#05603a;
}

/* Common two-column CF7 utility classes. Users can add these around fields. */
.pb4r-cf7-grid,
.wpcf7 .pb4r-cf7-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 1rem;
}

.pb4r-cf7-full,
.wpcf7 .pb4r-cf7-full{
  grid-column:1 / -1;
}

/* Keep forms elegant when inserted into WPBakery rows. */
.vc_row .wpcf7,
.wpb_wrapper .wpcf7{
  max-width:100%;
}

@media(max-width:700px){
  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="url"],
  .wpcf7 input[type="tel"],
  .wpcf7 input[type="number"],
  .wpcf7 input[type="date"],
  .wpcf7 input[type="time"],
  .wpcf7 input[type="search"],
  .wpcf7 select,
  .wpcf7 textarea{
    font-size:16px; /* Prevent iOS zoom on focus. */
  }

  .pb4r-cf7-grid,
  .wpcf7 .pb4r-cf7-grid{
    grid-template-columns:1fr;
    gap:0;
  }

  .wpcf7 input[type="submit"],
  .wpcf7 button[type="submit"]{
    width:100%;
  }
}

@media(prefers-reduced-motion:reduce){
  .wpcf7 *,
  .wpcf7 *::before,
  .wpcf7 *::after{
    transition-duration:.01ms !important;
  }
}
