.tvd-contact-form{
  --tvd-form-primary-color:#293d8f;
  --tvd-form-button-text-color:#ffffff;
  --tvd-form-text-color:#333333;
  --tvd-form-label-color:#101828;
  --tvd-form-border-color:#d9d9d9;
  --tvd-form-background-color:#ffffff;
  --tvd-form-input-background:#f7f7f7;
  --tvd-form-focus-color:#293d8f;
  --tvd-form-error-color:#d63638;
  --tvd-form-success-color:#16833b;
  --tvd-form-border-radius:12px;
  --tvd-form-input-height:44px;
  --tvd-form-spacing:18px;
  --tvd-form-button-width:auto;
  --tvd-form-submit-align:left;
  --tvd-form-max-width:100%;
  --tvd-form-padding:0px;
  position:relative;
  display:flex;
  flex-wrap:wrap;
  gap:var(--tvd-form-spacing);
  color:var(--tvd-form-text-color);
  width:100%;max-width:var(--tvd-form-max-width);margin-inline:auto;padding:var(--tvd-form-padding);background:var(--tvd-form-background-color);
}
.tvd-contact-form *{box-sizing:border-box}
.tvd-contact-form .tvd-contact-honeypot{display:none!important;position:absolute!important;left:-10000px!important;width:0!important;height:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}
.tvd-contact-form .tvd-contact-form-message{width:100%}
.tvd-contact-form .tvd-contact-form-message:empty{display:none}
.tvd-contact-form .tvd-contact-form-success,.tvd-contact-form .tvd-contact-form-error{padding:12px 16px;border-radius:var(--tvd-form-border-radius);margin:0 0 var(--tvd-form-spacing)}
.tvd-contact-form .tvd-contact-form-success{color:var(--tvd-form-success-color);background:#ecfdf3;border:1px solid #a7f3d0}
.tvd-contact-form .tvd-contact-form-error{color:var(--tvd-form-error-color);background:#fef3f2;border:1px solid #fecdca}
.tvd-contact-form .tvd-form-builder-layout,.tvd-contact-form .tvd-form-row{display:flex;flex-wrap:wrap;gap:var(--tvd-form-spacing);width:100%}
.tvd-contact-form .tvd-form-row--2>.tvd-field-width-100{flex-basis:calc(50% - var(--tvd-form-spacing));max-width:calc(50% - var(--tvd-form-spacing))}
.tvd-contact-form .tvd-form-row--3>.tvd-field-width-100{flex-basis:calc(33.333% - var(--tvd-form-spacing));max-width:calc(33.333% - var(--tvd-form-spacing))}
.tvd-contact-form .tvd-contact-field{display:flex;flex-direction:column;gap:6px;margin:0}
.tvd-contact-form .tvd-field-width-100{flex:1 1 100%;max-width:100%}
.tvd-contact-form .tvd-field-width-50{flex:1 1 calc(50% - var(--tvd-form-spacing));max-width:calc(50% - var(--tvd-form-spacing))}
.tvd-contact-form .tvd-field-width-33{flex:1 1 calc(33.333% - var(--tvd-form-spacing));max-width:calc(33.333% - var(--tvd-form-spacing))}
.tvd-contact-form .tvd-field-width-25{flex:1 1 calc(25% - var(--tvd-form-spacing));max-width:calc(25% - var(--tvd-form-spacing))}
.tvd-contact-form label{color:var(--tvd-form-label-color);font-weight:600;line-height:1.35}
.tvd-contact-form .tvd-contact-required{color:var(--tvd-form-error-color)}
.tvd-contact-form input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form select,.tvd-contact-form textarea{width:100%;min-height:var(--tvd-form-input-height);border:1px solid var(--tvd-form-border-color);border-radius:var(--tvd-form-border-radius);background:var(--tvd-form-input-background);color:var(--tvd-form-text-color);padding:10px 12px;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.tvd-contact-form textarea{min-height:120px;resize:vertical}
.tvd-contact-form input:hover,.tvd-contact-form select:hover,.tvd-contact-form textarea:hover{border-color:color-mix(in srgb,var(--tvd-form-border-color) 70%,var(--tvd-form-focus-color))}
.tvd-contact-form input:focus,.tvd-contact-form select:focus,.tvd-contact-form textarea:focus{outline:0;border-color:var(--tvd-form-focus-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--tvd-form-focus-color) 22%,transparent);background:#ffffff}
.tvd-contact-form [aria-invalid="true"]{border-color:var(--tvd-form-error-color)}
.tvd-contact-form [aria-invalid="true"]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--tvd-form-error-color) 20%,transparent)}
.tvd-contact-form .tvd-contact-help{color:#667085}
.tvd-contact-form .tvd-contact-field-error{display:none;color:var(--tvd-form-error-color);font-size:.9em}
.tvd-contact-form .tvd-contact-field-error:not(:empty){display:block}
.tvd-contact-form .tvd-contact-choices{display:flex;flex-wrap:wrap;gap:10px 16px}
.tvd-contact-form .tvd-contact-choices label{font-weight:400}
.tvd-contact-form .tvd-contact-submit{width:100%;margin:0;text-align:var(--tvd-form-submit-align)}
.tvd-contact-form button[type="submit"]{position:relative;width:var(--tvd-form-button-width);min-height:var(--tvd-form-input-height);border:0;border-radius:var(--tvd-form-border-radius);background:var(--tvd-form-primary-color);color:var(--tvd-form-button-text-color);padding:10px 22px;cursor:pointer;font-weight:650;box-shadow:0 6px 16px color-mix(in srgb,var(--tvd-form-primary-color) 24%,transparent);transition:transform .18s ease,filter .18s ease,opacity .18s ease,box-shadow .18s ease}
.tvd-contact-form button[type="submit"]:hover{filter:brightness(1.06);transform:translateY(-1px)}
.tvd-contact-form button[type="submit"]:disabled,.tvd-contact-form button[type="submit"][aria-busy="true"]{cursor:not-allowed;opacity:.68;transform:none}
.tvd-contact-form .is-valid{border-color:var(--tvd-form-success-color)}
.tvd-contact-form.tvd-theme-card{padding:clamp(20px,4vw,38px);border:1px solid color-mix(in srgb,var(--tvd-form-border-color) 70%,transparent);border-radius:calc(var(--tvd-form-border-radius) + 6px);box-shadow:0 18px 45px rgba(16,24,40,.1)}
.tvd-contact-form.tvd-theme-minimal{background:transparent}.tvd-contact-form.tvd-theme-minimal input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form.tvd-theme-minimal select,.tvd-contact-form.tvd-theme-minimal textarea{border-width:0 0 1px;border-radius:0;padding-inline:2px;background:transparent;box-shadow:none}.tvd-contact-form.tvd-theme-minimal input:focus,.tvd-contact-form.tvd-theme-minimal select:focus,.tvd-contact-form.tvd-theme-minimal textarea:focus{border-color:var(--tvd-form-focus-color);box-shadow:0 2px 0 var(--tvd-form-focus-color)}
.tvd-contact-form.tvd-theme-dark{--tvd-form-background-color:#111827;--tvd-form-input-background:#1f2937;--tvd-form-text-color:#e5e7eb;--tvd-form-label-color:#f9fafb;--tvd-form-border-color:#374151;--tvd-form-focus-color:#818cf8;padding:clamp(20px,4vw,38px);border-radius:calc(var(--tvd-form-border-radius) + 6px)}.tvd-contact-form.tvd-theme-dark input:focus,.tvd-contact-form.tvd-theme-dark select:focus,.tvd-contact-form.tvd-theme-dark textarea:focus{background:#1f2937}
.tvd-contact-form.tvd-density-compact{--tvd-form-spacing:10px;--tvd-form-input-height:38px}.tvd-contact-form.tvd-density-spacious{--tvd-form-spacing:26px;--tvd-form-input-height:52px}
.tvd-contact-form.tvd-input-filled input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form.tvd-input-filled select,.tvd-contact-form.tvd-input-filled textarea{border-color:transparent;background:color-mix(in srgb,var(--tvd-form-input-background) 88%,var(--tvd-form-border-color))}.tvd-contact-form.tvd-input-filled input:focus,.tvd-contact-form.tvd-input-filled select:focus,.tvd-contact-form.tvd-input-filled textarea:focus{border-color:var(--tvd-form-focus-color)}
.tvd-contact-form.tvd-input-underline input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form.tvd-input-underline select,.tvd-contact-form.tvd-input-underline textarea{border-width:0 0 1px;border-radius:0;padding-inline:2px;background:transparent;box-shadow:none}.tvd-contact-form.tvd-input-underline input:focus,.tvd-contact-form.tvd-input-underline select:focus,.tvd-contact-form.tvd-input-underline textarea:focus{border-color:var(--tvd-form-focus-color);box-shadow:0 2px 0 var(--tvd-form-focus-color)}
.tvd-contact-form.tvd-button-gradient button[type="submit"]{background:linear-gradient(135deg,var(--tvd-form-primary-color),color-mix(in srgb,var(--tvd-form-primary-color) 62%,#7c3aed))}.tvd-contact-form.tvd-button-outline button[type="submit"]{border:2px solid var(--tvd-form-primary-color);background:transparent;color:var(--tvd-form-primary-color);box-shadow:none}.tvd-contact-form.tvd-button-outline button[type="submit"]:hover{background:color-mix(in srgb,var(--tvd-form-primary-color) 8%,transparent)}
.tvd-contact-form.tvd-label-inline .tvd-contact-field:not(.tvd-contact-field-hidden){display:grid;grid-template-columns:minmax(110px,28%) 1fr;align-items:start;column-gap:14px}.tvd-contact-form.tvd-label-inline .tvd-contact-field>label{padding-top:calc((var(--tvd-form-input-height) - 1.35em)/2)}.tvd-contact-form.tvd-label-inline .tvd-contact-field>.tvd-contact-help,.tvd-contact-form.tvd-label-inline .tvd-contact-field>.tvd-contact-field-error{grid-column:2}
.tvd-contact-form.is-submitting{cursor:progress}.tvd-contact-form.is-submitting button[type="submit"]{padding-right:46px}.tvd-contact-form.is-submitting button[type="submit"]:after{content:"";position:absolute;right:17px;top:50%;width:15px;height:15px;margin-top:-8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tvd-form-spin .65s linear infinite}.tvd-contact-form-message:not(:empty){animation:tvd-form-message-in .25s ease both}
@keyframes tvd-form-spin{to{transform:rotate(360deg)}}@keyframes tvd-form-message-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.tvd-contact-form *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media (max-width:640px){
  .tvd-contact-form .tvd-field-width-50,.tvd-contact-form .tvd-field-width-33,.tvd-contact-form .tvd-field-width-25,.tvd-contact-form .tvd-form-row--2>.tvd-field-width-100,.tvd-contact-form .tvd-form-row--3>.tvd-field-width-100{flex-basis:100%;max-width:100%}.tvd-contact-form.tvd-label-inline .tvd-contact-field:not(.tvd-contact-field-hidden){display:flex}.tvd-contact-form.tvd-label-inline .tvd-contact-field>label{padding-top:0}
}

/* Shared default form: compact glass card that also fits legacy newsletter banners. */
.tvd-contact-form.tvd-default-contact{
  --tvd-form-primary-color:#2f7d32;--tvd-form-focus-color:#4b9b45;--tvd-form-border-color:rgba(255,255,255,.38);
  --tvd-form-input-background:rgba(255,255,255,.96);--tvd-form-text-color:#17211a;--tvd-form-label-color:#fff;
  --tvd-form-border-radius:12px;--tvd-form-input-height:46px;--tvd-form-spacing:11px;--tvd-form-button-width:100%;
  width:min(100%,680px);padding:clamp(14px,2vw,20px);border:1px solid rgba(255,255,255,.25);border-radius:18px;
  background:linear-gradient(145deg,rgba(18,31,22,.82),rgba(12,20,15,.68));box-shadow:0 20px 50px rgba(0,0,0,.24);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden;
}
.tvd-contact-form.tvd-default-contact .tvd-form-builder-layout{gap:11px}
.tvd-contact-form.tvd-default-contact .tvd-form-row{gap:11px}
.tvd-contact-form.tvd-default-contact .tvd-form-row--2>.tvd-field-width-100{flex-basis:calc(50% - 5.5px);max-width:calc(50% - 5.5px)}
.tvd-contact-form.tvd-default-contact .tvd-contact-field{position:relative;gap:5px}
.tvd-contact-form.tvd-default-contact label{font-size:13px;font-weight:700;letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,0,0,.28)}
.tvd-contact-form.tvd-default-contact input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form.tvd-default-contact textarea{
  min-height:46px;padding:10px 14px;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.96);box-shadow:0 5px 16px rgba(0,0,0,.08);font-size:14px;
}
.tvd-contact-form.tvd-default-contact textarea{height:72px;min-height:72px;resize:vertical}
.tvd-contact-form.tvd-default-contact button[type="submit"]{min-height:48px;border-radius:12px;background:linear-gradient(135deg,#4b9b45,#23662b);box-shadow:0 10px 24px rgba(29,105,43,.34);font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.045em}
.tvd-contact-form.tvd-default-contact button[type="submit"]:before{content:"✉";margin-right:9px;font-size:17px}
.tvd-contact-form.tvd-default-contact .tvd-contact-form-success,.tvd-contact-form.tvd-default-contact .tvd-contact-form-error{margin:0;padding:9px 12px;font-size:13px}
.webtvd-tvdeditorz-iframe .tvd-contact-form.tvd-default-contact .tvd-contact-form-message:empty,.webtvd-tvdeditorz-iframe .tvd-contact-form.tvd-default-contact .tvd-contact-field-error:empty{display:none!important}
@media(max-width:640px){
  .tvd-contact-form.tvd-default-contact{padding:14px;border-radius:15px}.tvd-contact-form.tvd-default-contact .tvd-form-row--2>.tvd-field-width-100{flex-basis:100%;max-width:100%}.tvd-contact-form.tvd-default-contact textarea{height:82px}
}

/* A banner normally positions its text box absolutely. Let banners containing
   the shared form participate in normal flow so validation messages can grow
   the section instead of being clipped or overlapping the following block. */
.tvd-hero-panel:has(.tvd-default-contact){height:auto!important;min-height:0!important;padding-top:0!important;overflow:visible!important}
.tvd-hero-panel:has(.tvd-default-contact)>.tvd-hero-panel__inner{position:relative!important;height:auto!important;min-height:0!important}
.tvd-hero-panel:has(.tvd-default-contact) .layzers-banner{height:auto!important;min-height:0!important;overflow:visible!important}
.tvd-hero-panel:has(.tvd-default-contact) .text-box{position:relative!important;inset:auto!important;transform:none!important;height:auto!important;margin:0 auto!important;padding:clamp(48px,7vw,82px) 0!important}
.tvd-hero-panel:has(.tvd-default-contact) .text-box-content,.tvd-hero-panel:has(.tvd-default-contact) .text-inner{height:auto!important;min-height:0!important}
@media(max-width:640px){.tvd-hero-panel:has(.tvd-default-contact) .text-box{width:min(94%,680px)!important;padding:38px 0!important}}

/* Consultation preset. Scoped under its own class so existing forms keep their current design. */
.tvd-contact-form .tvd-consultation-form{
  --tvd-consultation-blue:#1555e8;
  width:min(100%,1070px);margin:0 auto;padding:clamp(28px,4vw,10px);border-radius:24px;container-type:inline-size;
  background:linear-gradient(135deg,#fff 0%,#fbfcff 100%);box-shadow:0 18px 55px rgba(34,67,122,.12);
}
.tvd-contact-form .tvd-consultation-form__header{text-align:center;max-width:660px;margin:0 auto clamp(32px,4vw,54px)}
.tvd-contact-form .tvd-consultation-form__icon{width:92px;height:92px;display:grid;place-items:center;margin:0 auto 24px;border-radius:50%;color:var(--tvd-consultation-blue);background:radial-gradient(circle at 35% 30%,#f8fbff 0 14%,#d9e5ff 42%,#bfd2ff 100%);box-shadow:0 0 0 14px rgba(35,100,239,.045)}
.tvd-contact-form .tvd-consultation-form__icon svg{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.tvd-contact-form .tvd-consultation-form__icon circle{fill:currentColor;stroke:none}
.tvd-contact-form .tvd-consultation-form h2{margin:0;color:#102d57;font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.12;text-transform:uppercase;letter-spacing:.02em}
.tvd-contact-form .tvd-consultation-form__divider{display:block;position:relative;width:82px;height:6px;margin:18px auto 26px;border-radius:99px;background:#2d68ef}
.tvd-contact-form .tvd-consultation-form__divider:after{content:"";position:absolute;left:92px;top:0;width:6px;height:6px;border-radius:50%;background:#2d68ef}
.tvd-contact-form .tvd-consultation-form__header p{margin:0;color:#405779;font-size:clamp(16px,1.7vw,20px);line-height:1.55}
.tvd-contact-form .tvd-consultation-form .tvd-form-builder-layout{gap:24px}
.tvd-contact-form .tvd-consultation-form .tvd-form-row{gap:clamp(20px,5vw,72px)}
.tvd-contact-form .tvd-consultation-form .tvd-field-width-50{flex-basis:calc(50% - 36px);max-width:calc(50% - 36px)}
.tvd-contact-form .tvd-consultation-form .tvd-contact-field{gap:14px}
.tvd-contact-form .tvd-consultation-form label{display:flex;align-items:center;gap:10px;color:#121927;font-size:16px;font-weight:600}
.tvd-contact-form .tvd-consultation-form .tvd-contact-field label:before{color:var(--tvd-consultation-blue);font-size:20px;font-weight:400;line-height:1}
.tvd-contact-form .tvd-consultation-form .tvd-consultation-form__field-name label:before{content:"♙"}
.tvd-contact-form .tvd-consultation-form .tvd-consultation-form__field-phone label:before{content:"☎"}
.tvd-contact-form .tvd-consultation-form .tvd-consultation-form__field-email label:before{content:"✉";font-size:22px}
.tvd-contact-form .tvd-consultation-form .tvd-consultation-form__field-message label:before{content:"✎"}
.tvd-contact-form .tvd-consultation-form input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form .tvd-consultation-form textarea{min-height:64px;padding:14px 18px;border:1px solid #cbd7eb;border-radius:14px;background:#fff;color:#17233a;font-size:16px}
.tvd-contact-form .tvd-consultation-form textarea{min-height:90px;height:90px;resize:vertical}
.tvd-contact-form .tvd-consultation-form input::placeholder,.tvd-contact-form .tvd-consultation-form textarea::placeholder{color:#8292ad;opacity:1}
.tvd-contact-form .tvd-consultation-form input:focus,.tvd-contact-form .tvd-consultation-form textarea:focus{border-color:var(--tvd-consultation-blue);box-shadow:0 0 0 4px rgba(21,85,232,.12)}
.tvd-contact-form .tvd-consultation-form .tvd-contact-submit{text-align:center;margin-top:4px}
.tvd-contact-form .tvd-consultation-form .tvd-contact-submit button{width:min(100%,420px);min-height:76px;border-radius:16px;background:linear-gradient(135deg,#1260ee,#1947d8);box-shadow:0 14px 28px rgba(24,76,215,.22);font-size:22px;font-weight:700;text-transform:uppercase}
.tvd-contact-form .tvd-consultation-form .tvd-contact-submit button:before{content:"➤";display:inline-block;margin-right:14px;font-size:25px;transform:rotate(-35deg)}
.tvd-contact-form .tvd-consultation-form__privacy{margin:20px 0 0;text-align:center;color:#7788a4;font-size:15px}.tvd-contact-form .tvd-consultation-form__privacy span{color:var(--tvd-consultation-blue);font-size:22px;vertical-align:-2px}
@container (max-width:640px){
  .tvd-contact-form .tvd-consultation-form__icon{width:70px;height:70px;margin-bottom:16px}.tvd-contact-form .tvd-consultation-form__icon svg{width:40px;height:40px}.tvd-contact-form .tvd-consultation-form h2{font-size:28px}.tvd-contact-form .tvd-consultation-form .tvd-form-row{gap:24px}.tvd-contact-form .tvd-consultation-form .tvd-field-width-50{flex-basis:100%;max-width:100%}.tvd-contact-form .tvd-consultation-form input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form .tvd-consultation-form textarea{min-height:58px;font-size:15px}.tvd-contact-form .tvd-consultation-form textarea{height:84px}.tvd-contact-form .tvd-consultation-form .tvd-contact-submit button{min-height:64px;font-size:19px}
}
/* A contact form may be placed in a narrow footer column; keep that variant compact. */
#footer .tvd-contact-form .tvd-consultation-form{padding:22px 18px;border-radius:16px}
#footer .tvd-contact-form .tvd-consultation-form__header{margin-bottom:28px}
#footer .tvd-contact-form .tvd-consultation-form__icon{width:64px;height:64px;margin-bottom:14px}
#footer .tvd-contact-form .tvd-consultation-form__icon svg{width:36px;height:36px}
#footer .tvd-contact-form .tvd-consultation-form h2{font-size:26px!important;line-height:1.2;overflow-wrap:normal;word-break:normal}
#footer .tvd-contact-form .tvd-consultation-form__divider{margin:14px auto 20px}
#footer .tvd-contact-form .tvd-consultation-form__header p{font-size:15px}
#footer .tvd-contact-form .tvd-consultation-form label{font-size:15px}
#footer .tvd-contact-form .tvd-consultation-form input:not([type="checkbox"]):not([type="radio"]),#footer .tvd-contact-form .tvd-consultation-form textarea{min-height:56px;padding:12px 14px;font-size:15px}
#footer .tvd-contact-form .tvd-consultation-form .tvd-contact-submit button{min-height:62px;font-size:18px}
@media (max-width:640px){
  .tvd-contact-form .tvd-consultation-form{padding:28px 20px;border-radius:18px}.tvd-contact-form .tvd-consultation-form__icon{width:76px;height:76px;margin-bottom:18px}.tvd-contact-form .tvd-consultation-form__icon svg{width:44px;height:44px}.tvd-contact-form .tvd-consultation-form__divider{margin:18px auto 24px}.tvd-contact-form .tvd-consultation-form .tvd-form-row{gap:28px}.tvd-contact-form .tvd-consultation-form .tvd-field-width-50{flex-basis:100%;max-width:100%}.tvd-contact-form .tvd-consultation-form label{font-size:18px}.tvd-contact-form .tvd-consultation-form input:not([type="checkbox"]):not([type="radio"]),.tvd-contact-form .tvd-consultation-form textarea{min-height:64px;padding:14px 16px;font-size:16px;border-radius:14px}.tvd-contact-form .tvd-consultation-form textarea{height:96px}.tvd-contact-form .tvd-consultation-form .tvd-contact-submit button{min-height:72px;border-radius:16px;font-size:21px}.tvd-contact-form .tvd-consultation-form .tvd-contact-submit button:before{font-size:25px;margin-right:12px}.tvd-contact-form .tvd-consultation-form__privacy{font-size:15px}
}
