.vix-prosp { --vix-blue:#142e6a; --vix-green:#7dbf00; color:#25364b; font-size:16px; line-height:1.65; }
.vix-prosp * { box-sizing:border-box; }
.vix-prosp h1,.vix-prosp h2,.vix-prosp h3 { color:var(--vix-blue); line-height:1.2; }
.vix-prosp h1 { font-size:clamp(30px,4vw,48px); font-weight:700; max-width:840px; margin:12px 0 20px; }
.vix-prosp h2 { font-size:28px; margin:0 0 16px; }
.vix-prosp h3 { font-size:21px; margin:0 0 12px; }
.vix-prosp p { padding-bottom:0; margin:0 0 18px; }
.vix-prosp a { color:var(--vix-blue); text-decoration:underline; text-underline-offset:3px; }
.vix-prosp-wrap { max-width:1120px; margin:auto; padding:52px 28px; }
.vix-prosp-hero { background:#f1f5fa; border-top:5px solid var(--vix-green); }
.vix-prosp-eyebrow { color:#415370; font-weight:700; font-size:14px; letter-spacing:.07em; text-transform:uppercase; }
.vix-prosp-lead { max-width:760px; font-size:19px; }
.vix-prosp-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin:28px 0 10px; }
.vix-prosp a.vix-prosp-button,.vix-prosp .vix-prosp-button { display:inline-block; padding:14px 24px; background:var(--vix-blue); color:white; border:2px solid var(--vix-blue); border-radius:4px; font-size:16px; line-height:1.4; font-weight:700; text-decoration:none; cursor:pointer; min-height:48px; white-space:normal; }
.vix-prosp a.vix-prosp-button:hover,.vix-prosp .vix-prosp-button:hover { background:#0c75b9; border-color:#0c75b9; }
.vix-prosp a:focus-visible,.vix-prosp input:focus-visible,.vix-prosp select:focus-visible,.vix-prosp textarea:focus-visible { outline:3px solid #0c75b9; outline-offset:3px; }
.vix-prosp-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.vix-prosp-card { border:1px solid #d5dfec; border-top:4px solid var(--vix-green); border-radius:4px; padding:26px; background:white; }
.vix-prosp-card p { margin-bottom:0; }
.vix-prosp-note { padding:22px 26px; border-left:4px solid var(--vix-green); background:#f1f5fa; margin:28px 0; }
.vix-prosp-note p:last-child { margin-bottom:0; }
.vix-prosp-steps { padding-left:24px; display:grid; gap:14px; margin:22px 0; }
.vix-prosp-form-area { background:#f8fafc; border-top:1px solid #d5dfec; scroll-margin-top:100px; }
.vix-prosp-section { padding:26px; margin:30px 0; border:1px solid #c4cfde; border-radius:4px; background:white; min-width:0; }
.vix-prosp-section>legend { font-size:22px; line-height:1.3; color:var(--vix-blue); font-weight:700; padding:0 10px; max-width:100%; }
.vix-prosp-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.vix-prosp-wide { grid-column:1/-1; }
.vix-prosp-field { min-width:0; }
.vix-prosp-field label,.vix-prosp-field legend { font-weight:600; font-size:16px; display:block; margin-bottom:8px; line-height:1.5; }
.vix-prosp-field fieldset { border:0; padding:0; margin:0; min-width:0; }
.vix-prosp-field input:not([type=checkbox]),.vix-prosp-field select,.vix-prosp-field textarea { width:100%; min-height:48px; padding:11px 12px; background:#fff; border:1px solid #8294aa; border-radius:3px; color:#25364b; font-size:16px; }
.vix-prosp-field textarea { height:104px; min-height:104px; resize:vertical; }
/* Divi emits global CF7 declarations with !important. Override only this form. */
.vix-prosp-field .wpcf7-text,.vix-prosp-field .wpcf7-textarea { background:#fff!important; border:1px solid #8294aa!important; border-radius:3px!important; color:#25364b!important; padding:11px 12px!important; }
.vix-prosp .wpcf7-submit { color:#fff!important; }
.vix-prosp .wpcf7-submit:disabled { opacity:.65; cursor:not-allowed; }
.vix-prosp-field small { display:block; color:#495a71; font-size:14px; line-height:1.5; margin-top:7px; }
.vix-prosp .wpcf7-checkbox { display:flex; flex-wrap:wrap; gap:8px 24px; }
.vix-prosp .wpcf7-list-item { margin:0; }
.vix-prosp .wpcf7-list-item label { display:flex; align-items:flex-start; gap:10px; padding:6px 0; margin:0; cursor:pointer; font-weight:400; }
.vix-prosp input[type=checkbox] { flex:none; width:20px; height:20px; margin:3px 0 0; accent-color:var(--vix-blue); }
.vix-prosp-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.vix-prosp .wpcf7-response-output { margin:24px 0!important; padding:18px!important; font-weight:600; border-radius:4px; }
.vix-prosp .wpcf7-not-valid-tip { color:#a32222; font-size:14px; }
.vix-prosp-breadcrumb { margin-bottom:24px; font-size:14px; }
@media(max-width:760px) { .vix-prosp-wrap { padding:36px 20px; } .vix-prosp-cards,.vix-prosp-grid { grid-template-columns:1fr; } .vix-prosp-section { padding:18px 14px; } .vix-prosp-section>legend { font-size:19px; } .vix-prosp h2 { font-size:25px; } .vix-prosp-actions { gap:18px; } .vix-prosp .vix-prosp-button { width:100%; text-align:center; } }

/* Reversed photographic hero, matching the drainage service's visual treatment. */
.vix-prosp-hero--photo { position:relative; isolation:isolate; overflow:hidden; display:flex; justify-content:flex-end; align-items:stretch; min-height:560px; border-top:0; background:#05254b; }
.vix-prosp-hero-image { position:absolute; inset:0; z-index:-1; display:block; width:100%; height:100%; object-fit:cover; object-position:left top; }
.vix-prosp-hero-panel { display:flex; flex-direction:column; justify-content:center; width:min(580px,52%); margin-right:8.4%; padding:30px 34px; text-align:center; background:rgba(5,37,75,.87); border-right:5px solid #a8ce39; color:#fff; }
.vix-prosp-hero-panel .vix-prosp-eyebrow { color:#fff; letter-spacing:.16em; margin-bottom:24px; }
.vix-prosp-hero-panel h1 { color:#fff; max-width:none; font-size:clamp(30px,3.5vw,44px); line-height:1.08; margin:0 0 24px; }
.vix-prosp-hero-panel .vix-prosp-lead { font-size:19px; line-height:1.5; margin:0 0 24px; }
.vix-prosp-hero-panel .vix-prosp-actions { flex-direction:column; justify-content:center; gap:18px; margin:14px 0 0; }
.vix-prosp-hero-panel a { color:#fff; }
.vix-prosp-hero-panel a.vix-prosp-button { background:transparent; border-color:#fff; border-radius:0; padding:12px 20px; font-size:17px; }
.vix-prosp-hero-panel a.vix-prosp-button:hover { background:#fff; color:#05254b; }
.vix-prosp-hero-panel a:focus-visible { outline-color:#a8ce39; }
.vix-prosp-hero-phone { display:block; font-size:15px; }
@media(max-width:760px) {
  .vix-prosp-hero--photo { display:block; min-height:0; }
  .vix-prosp-hero-image { position:relative; inset:auto; height:300px; object-position:left top; }
  .vix-prosp-hero-panel { width:100%; margin:0; padding:32px 22px; border-right:0; border-top:5px solid #a8ce39; background:#05254b; }
  .vix-prosp-hero-panel h1 { font-size:32px; }
  .vix-prosp-hero-panel .vix-prosp-lead { font-size:18px; }
}
/* Divi's text module can add empty paragraphs around the hero image. */
.vix-prosp-hero--photo > p:empty,.vix-prosp-hero-panel > p:empty { display:none; }

/* Progressive intake and the private, standalone continuation editor. */
.vix-prosp [hidden] { display:none!important; }
.vix-prosp-contact { max-width:860px; }
.vix-prosp-contact .vix-prosp-consent { margin-top:24px; }
.vix-prosp-project { margin-top:24px; }
.vix-prosp-save-state { padding:16px 20px; background:#edf5e5; border-left:4px solid #7dbf00; }
.vix-prosp-save-error { background:#fff0ed; border-color:#ac2828; }
.vix-prosp-details { margin:30px 0; border:1px solid #c4cfde; border-radius:4px; padding:20px; background:#fff; }
.vix-prosp-details summary { color:#142e6a; font-weight:700; cursor:pointer; padding:8px 0; }
.vix-prosp-details[open] summary { margin-bottom:20px; }
.vix-prosp-details button { margin-top:24px; }
.vix-prosp-personal-link { margin-top:24px!important; overflow-wrap:anywhere; }
.vix-prosp button:disabled { opacity:.6; cursor:wait; }
.vix-prosp button:focus-visible,.vix-prosp summary:focus-visible { outline:3px solid #0c75b9; outline-offset:3px; }
.vix-prosp-continuation { margin:0; background:#f8fafc; font-family:Arial,sans-serif; }
.vix-prosp-continuation .vix-prosp-wrap { max-width:940px; }
