/* Fluent Forms, restyled to match the Poli PR design.
   Loaded only on pages that show a form. Colours come from the tokens in site.css. */

.ff-wrap .fluentform .ff-el-group{margin-bottom:20px}
.ff-wrap .fluentform .ff-el-input--label label{font-family:var(--font-body);font-weight:600;font-size:15px;color:var(--text)}
.ff-wrap .fluentform .ff-el-is-required.asterisk-right label:after{color:var(--error)}
.ff-wrap .fluentform .ff-el-form-control{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-ctrl);background:var(--white);font:inherit;font-size:16px;color:var(--text);box-shadow:none;transition:border-color .2s,box-shadow .2s}
.ff-wrap .fluentform textarea.ff-el-form-control{min-height:130px;resize:vertical}
.ff-wrap .fluentform .ff-el-form-control:focus{outline:none;border-color:var(--purple-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--purple-2) 18%,transparent)}
.ff-wrap .fluentform .ff-el-form-check label{font-size:15px;color:var(--text)}
.ff-wrap .fluentform input[type=checkbox],.ff-wrap .fluentform input[type=radio]{accent-color:var(--purple)}
.ff-wrap .fluentform .ff-el-help-message{font-size:13.5px;color:var(--text-2)}
.ff-wrap .fluentform .error,.ff-wrap .fluentform .text-danger{color:var(--error);font-size:13.5px}
.ff-wrap .fluentform .ff-btn-submit,.ff-wrap .fluentform .ff-btn-next,.ff-wrap .fluentform .ff-btn-prev{font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:13px;min-height:48px;padding:0 28px;border-radius:var(--radius-ctrl);border:2px solid var(--purple);background:var(--purple)!important;color:var(--white)!important;cursor:pointer;transition:background .2s,border-color .2s}
.ff-wrap .fluentform .ff-btn-submit:hover,.ff-wrap .fluentform .ff-btn-next:hover{background:var(--purple-2)!important;border-color:var(--purple-2)}
.ff-wrap .fluentform .ff-btn-prev{background:transparent!important;color:var(--purple)!important}
.ff-wrap .ff-message-success{border:0;border-left:4px solid var(--success);background:#f2fbf7;color:var(--text);padding:16px 18px;border-radius:var(--radius-ctrl);box-shadow:none}
/* multi-step brief: progress bar in brand colours */
.ff-wrap .ff-step-titles li.ff_active:before,.ff-wrap .ff-step-titles li.ff_completed:before{background:var(--purple);border-color:var(--purple)}
.ff-wrap .ff-el-progress-bar{background:var(--purple)}

/* tick boxes and radio buttons on every form (v1.3.12): bigger, text wraps beside the box, 2-column lists as a grid */
.ff-wrap .fluentform .ff-el-form-check{margin-bottom:0}
.ff-wrap .fluentform .ff-el-form-check-label{display:flex;align-items:flex-start;gap:12px;padding:7px 0;cursor:pointer;line-height:1.45}
.ff-wrap .fluentform .ff-el-form-check-input{width:20px;height:20px;margin:1px 0 0;flex:none}
.ff-wrap .fluentform .ff-el-form-check:has(input:checked) .ff-el-form-check-label{color:var(--purple-dark);font-weight:500}
.ff-wrap .fluentform .ff-el-group.ff_list_2col .ff-el-input--content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.ff-wrap .fluentform .ff-el-group.ff_list_2col .ff-el-form-check{display:block;width:auto;max-width:none;min-height:0;padding:0;margin:0}
.ff-wrap .fluentform .ff-el-input--label label{color:var(--purple-dark)}
@media (max-width:699px){.ff-wrap .fluentform .ff-el-group.ff_list_2col .ff-el-input--content{grid-template-columns:minmax(0,1fr)}}

/* consent (terms) tick boxes: box and text side by side with a gap (v1.3.15) */
.ff-wrap .fluentform .ff-el-form-check label.ff_tc_label{display:flex;align-items:flex-start;gap:12px;margin:0}
.ff-wrap .fluentform .ff_tc_label .ff_tc_checkbox{flex:none;display:block;width:auto;padding:0;margin:0}
.ff-wrap .fluentform .ff_tc_label .ff_t_c{flex:1;min-width:0;display:block;padding:0;margin:0}

/* ---------- newsletter sign-up (footer, News sidebar, News band, mosaic tile) - v1.3.11
   Fluent's subscription form puts its fields in a 3-column container. Stack it by default;
   switch to one row only when the form itself has room (container query). */
.ff-wrap.ff-ph-foot{padding:0;border:0;border-radius:0;background:none;display:block;container-type:inline-size}
.ff-wrap.ff-ph-foot .fluentform form{display:block}
.ff-wrap.ff-ph-foot .fluentform fieldset{min-inline-size:0!important}
.ff-wrap.ff-ph-foot .ff-t-container{display:flex;flex-direction:column;gap:10px;margin:0}
.ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell{flex:none!important;flex-basis:auto!important;width:100%;max-width:none;padding:0!important;margin:0}
.ff-wrap.ff-ph-foot .fluentform .ff-el-group{margin:0}
.ff-wrap.ff-ph-foot .fluentform .ff-el-input--label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ff-wrap.ff-ph-foot .fluentform .ff-el-form-control{min-height:48px;padding:0 14px;font-size:15px;border-radius:var(--radius-ctrl)}
.ff-wrap.ff-ph-foot .fluentform .ff-btn-submit{width:100%;min-width:0!important;min-height:48px;margin:0;padding:0 24px;letter-spacing:.1em}
.ff-wrap.ff-ph-foot .fluentform .error{font-size:13px;margin-top:4px}
.ff-wrap.ff-ph-foot .ff-message-success{border:0;border-left:4px solid var(--lilac-soft);border-radius:var(--radius-ctrl);padding:14px 16px;font-size:15px;box-shadow:none}
@container (min-width:520px){
  .ff-wrap.ff-ph-foot .ff-t-container{flex-direction:row;align-items:flex-start}
  .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell{flex:1 1 0!important;min-width:0;width:auto}
  .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell:last-child{flex:0 0 auto!important}
  .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit{width:auto}
}
/* footer (dark): outline fields, white button */
.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control{background:rgba(255,255,255,.06);color:var(--white);border:1px solid rgba(255,255,255,.4)}
.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control::placeholder{color:rgba(255,255,255,.65);opacity:1}
.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control:focus{border-color:var(--lilac-soft);box-shadow:0 0 0 3px rgba(210,180,222,.35)}
.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control[aria-invalid=true],.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-el-is-error .ff-el-form-control{border-color:#FF8FA3}
.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit,.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit:focus{background:var(--white)!important;color:var(--purple)!important;border-color:var(--white)!important}
.site-footer .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit:hover{background:var(--lilac-soft)!important;border-color:var(--lilac-soft)!important;color:var(--purple-dark)!important}
.site-footer .ff-wrap.ff-ph-foot .fluentform .error,.site-footer .ff-wrap.ff-ph-foot .fluentform .text-danger{color:#FFB3C1}
.site-footer .ff-wrap.ff-ph-foot .ff-message-success{background:rgba(255,255,255,.06);color:var(--white)}
.site-footer .nl-note{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.7)}

/* ---------- Get started: campaign brief, option B (step rail) - v1.3.11 */
.gs-brief .gs-wrap{max-width:calc(1080px + var(--gutter)*2)}
.gs-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:40px}
.gs-intro-text{max-width:620px;display:flex;flex-direction:column;gap:12px}
.gs-intro h2{font-weight:900;font-size:clamp(28px,3.4vw,40px);line-height:1.05;color:var(--purple)}
.gs-intro .gs-note{margin:0;color:var(--text-2);line-height:1.6}
.gs-few{flex:0 0 340px;background:#EFE6F2;border-radius:var(--radius-card);padding:20px 22px;display:flex;flex-direction:column;gap:10px}
.gs-few p{margin:0;color:var(--purple-dark);font-size:15px;line-height:1.5}
.gs-few p b{font-weight:600}
.gs-few a{font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--purple);text-decoration:underline;text-underline-offset:4px;padding:4px 0;align-self:flex-start}
.gs-few a:hover{color:var(--purple-dark)}
.gs-body{display:flex;gap:32px;align-items:flex-start}
.gs-body .form-card{flex:1;min-width:0;border:0;padding:44px 48px}
/* rail (built by brief.js from the form's own step titles) */
.gs-rail{flex:0 0 280px;position:sticky;top:100px;background:var(--purple-dark);color:var(--white);border-radius:var(--radius-card);padding:28px 24px}
.gs-rail[hidden]{display:none}
.gs-rail-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gs-rail-now{display:none;flex-direction:column;gap:2px}
.gs-rail-k,.gs-rail-pct{font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--lilac-soft)}
.gs-rail-t{font-weight:600;font-size:16px;line-height:1.3}
.gs-rail-toggle{display:none;min-height:44px;padding:0 12px;border:1px solid #7D5A8C;background:none;color:var(--white);border-radius:var(--radius-ctrl);font:inherit;font-size:13px;cursor:pointer}
.gs-rail-toggle:after{content:" ▾"}
.gs-rail.open .gs-rail-toggle:after{content:" ▴"}
.gs-rail-bar{height:4px;background:var(--purple);border-radius:2px;margin:14px 0 14px;overflow:hidden}
.gs-rail-bar i{display:block;height:100%;background:var(--lilac-soft);border-radius:2px;transition:width .3s}
.gs-rail-seg{display:none;grid-template-columns:repeat(var(--n,8),minmax(0,1fr));gap:4px;margin-top:12px}
.gs-rail-seg span{height:5px;border-radius:3px;background:var(--purple)}
.gs-rail-seg span.done{background:var(--lilac)}
.gs-rail-seg span.cur{background:var(--white)}
.gs-rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.gs-rail-list li{display:flex;align-items:center;gap:12px;padding:10px 0;color:#BFA9C9;font-size:15px;line-height:1.3}
.gs-rail-list .n{width:28px;height:28px;border-radius:50%;border:1px solid #7D5A8C;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}
.gs-rail-list li.done{color:#D5C4DB}
.gs-rail-list li.done .n{background:var(--lilac);border-color:var(--lilac);color:var(--white);font-size:0}
.gs-rail-list li.done .n:before{content:"✓";font-size:13px}
.gs-rail-list li.cur{background:var(--purple);border-radius:8px;margin:0 -12px;padding:10px 12px;color:var(--white);font-weight:600}
.gs-rail-list li.cur .n{background:var(--white);border-color:var(--white);color:var(--purple-dark);font-weight:700}
.gs-rail-save{margin-top:18px;width:100%;min-height:44px;border:1px solid var(--lilac);background:none;color:var(--white);border-radius:var(--radius-ctrl);font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s}
.gs-rail-save:hover{background:var(--purple)}
/* card heading for the current step */
.gs-step-head{margin-bottom:26px}
.gs-step-head .k{display:block;font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--lilac);margin-bottom:6px}
.gs-step-head h3{font-weight:700;font-size:28px;line-height:1.15;color:var(--purple-dark);text-transform:none;letter-spacing:-.01em}
/* when the rail is running, Fluent's own progress bar and save buttons are replaced */
.gs-ready .ff-step-header{display:none}
.gs-ready .ff-brief-save{display:none}
/* fields */
.gs-brief .ff-wrap .fluentform .ff-el-form-control{min-height:52px}
.gs-brief .ff-wrap .fluentform .ff-el-input--label label{color:var(--purple-dark)}
.gs-brief .ff-wrap .fluentform .ff-el-form-check{margin-bottom:0}
.gs-brief .ff-wrap .fluentform .ff-el-form-check-label{display:flex;align-items:center;gap:12px;padding:8px 0;cursor:pointer}
.gs-brief .ff-wrap .fluentform .ff-el-form-check-input{width:20px;height:20px;margin:0;flex:none}
.gs-brief .ff-wrap .fluentform .ff-el-form-check:has(input:checked) .ff-el-form-check-label{color:var(--purple-dark);font-weight:500}
.gs-brief .ff-wrap .fluentform .ff-el-group.ff_list_2col .ff-el-input--content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.gs-brief .ff-wrap .fluentform .ff-el-group.ff_list_2col .ff-el-form-check{display:block;width:auto;max-width:none;min-height:0;padding:0;margin:0}
/* service tiles */
.gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-input--content{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-form-check-label{min-height:88px;height:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;padding:15px;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:10px;transition:border-color .2s,background .2s}
.gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-form-check-label:hover{border-color:var(--lilac)}
.gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-form-check:has(input:checked) .ff-el-form-check-label{border:2px solid var(--purple);padding:14px;background:#F8F2FA;font-weight:600}
/* step buttons: Back (text), Save (outline), Next (solid) */
.gs-brief .ff-wrap .step-nav{display:flex;align-items:center;gap:12px;border-top:1px solid #EEE;padding-top:24px;margin-top:8px}
.gs-brief .ff-wrap .step-nav:after{display:none}
.gs-brief .ff-wrap .step-nav .ff-btn{float:none!important}
.gs-brief .ff-wrap .step-nav .ff-btn-next,.gs-brief .ff-wrap .step-nav .ff-btn-submit{margin-left:auto;min-height:52px;padding:0 32px;letter-spacing:.12em}
.gs-brief .ff-wrap .fluentform .step-nav .ff-btn-prev{border-color:transparent;padding:0 4px;letter-spacing:.1em}
.gs-brief .ff-wrap .fluentform .step-nav .ff-btn-prev:before{content:"← "}
.gs-brief .ff-wrap .fluentform .step-nav .ff-btn-prev:hover{color:var(--purple-dark)!important;background:transparent!important}
.gs-brief .ff-wrap .step-nav .ff-brief-save{display:none;margin:0}
.gs-brief .ff-wrap .step-nav .ff-btn-save-progress{min-height:48px;padding:0 18px;border:1px solid var(--lilac);border-radius:var(--radius-ctrl);background:var(--white)!important;color:var(--purple)!important;font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.gs-brief .ff-wrap .step-nav .ff-btn-save-progress:hover{background:#F8F2FA!important}

/* short Save label on phones; brand colour for Fluent's help icons */
.gs-sv-s{display:none}
.gs-brief .ff-wrap .ff-el-tooltip svg{fill:var(--lilac)}

/* "Next: Campaign type" on desktop, just "Next" on smaller screens */
.gs-nx{font-weight:inherit}

/* tablet: rail becomes a stepper across the top */
@media (max-width:1099px){
  .gs-intro{flex-direction:column;align-items:stretch;gap:20px}
  .gs-few{flex:none}
  .gs-body{flex-direction:column;gap:20px;align-items:stretch}
  .gs-body .form-card{padding:36px 32px}
  .gs-rail{position:static;flex:none;padding:22px 24px}
  .gs-rail-now{display:flex;flex-direction:row;align-items:baseline;gap:8px}
  .gs-rail-now .gs-rail-t{font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--white)}
  .gs-rail-now .gs-rail-t:before{content:"· ";color:var(--lilac-soft)}
  .gs-rail-pct .lbl{display:none}
  .gs-rail-bar{display:none}
  .gs-rail-list{display:grid;grid-template-columns:repeat(var(--n,8),minmax(0,1fr));gap:8px;margin-top:18px}
  .gs-rail-list li,.gs-rail-list li.cur{flex-direction:column;gap:8px;padding:0;margin:0;background:none;text-align:center;font-size:12px;font-weight:500}
  .gs-rail-list li.cur{color:var(--white);font-weight:600}
  .gs-rail-save{display:none}
  .gs-step-head h3{font-size:24px}
  .gs-nx{display:none}
  .gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-input--content{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gs-brief .ff-wrap .step-nav .ff-brief-save{display:block}
}
/* phone: compact progress block with an "All steps" list */
@media (max-width:699px){
  .gs-intro h2{font-size:26px}
  .gs-few{padding:16px 18px}
  .gs-body .form-card{padding:24px 18px}
  .gs-rail{padding:16px 18px}
  .gs-rail-now{flex-direction:column;gap:2px}
  .gs-rail-now .gs-rail-k{font-size:11px}
  .gs-rail-now .gs-rail-t{font-family:var(--font-body);font-size:16px;letter-spacing:0;text-transform:none}
  .gs-rail-now .gs-rail-t:before{content:none}
  .gs-rail-pct{display:none}
  .gs-rail-toggle{display:block}
  .gs-rail-seg{display:grid}
  .gs-rail-list{display:none;grid-template-columns:none;gap:2px;margin-top:14px}
  .gs-rail.open .gs-rail-list{display:flex;flex-direction:column}
  .gs-rail-list li,.gs-rail-list li.cur{flex-direction:row;gap:12px;padding:8px 0;text-align:left;font-size:15px}
  .gs-rail-list li.cur{background:var(--purple);margin:0 -10px;padding:8px 10px;border-radius:8px}
  .gs-step-head{display:none}
  .gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-input--content{grid-template-columns:minmax(0,1fr);gap:8px}
  .gs-brief .ff-wrap .fluentform .ff-el-group:has(input[data-name="services"]) .ff-el-form-check-label{min-height:52px;flex-direction:row;align-items:center;justify-content:flex-start}
  .gs-brief .ff-wrap .fluentform .ff-el-group.ff_list_2col .ff-el-input--content{grid-template-columns:minmax(0,1fr)}
  .gs-brief .ff-wrap .fluentform .ff-el-form-check-label{min-height:44px;padding:4px 0}
  .gs-brief .ff-wrap .step-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .gs-brief .ff-wrap .step-nav .ff-btn-next,.gs-brief .ff-wrap .step-nav .ff-btn-submit{grid-column:1/-1;order:-1;width:100%;margin:0;min-height:54px}
  .gs-brief .ff-wrap .fluentform .step-nav .ff-btn-prev{border:1px solid var(--border);min-height:48px}
  .gs-brief .ff-wrap .step-nav .ff-brief-save .ff-btn-save-progress{width:100%;padding:0 10px}
  .gs-brief .ff-wrap .step-nav>:only-child{grid-column:1/-1}
  .gs-sv-l{display:none}.gs-sv-s{display:inline}
}

/* Contact form: campaign services as boxes like the Services page, in sections per service type (v1.3.14, selectors strengthened in v1.3.15).
   The first box of each type starts a new row, with a small heading and a fine divider line above it.
   Sections are matched by the service name, so renaming a service in Fluent means updating these lines. */
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-input--content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check{position:relative;display:block;width:auto;max-width:none;min-height:0;padding:0;margin:0}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check-label{position:relative;display:flex;align-items:center;height:100%;min-height:54px;box-sizing:border-box;margin:0;padding:12px 16px 12px 48px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--white);font-weight:600;color:var(--purple-dark);line-height:1.35;transition:border-color .2s,background .2s}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check-label:hover{border-color:var(--lilac)}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check-input{position:absolute;left:16px;top:50%;margin:-10px 0 0}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input:checked) .ff-el-form-check-label{border-color:var(--purple);box-shadow:inset 0 0 0 1px var(--purple);background:#F8F2FA;font-weight:600}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check-input:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
/* section starts */
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Management"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="One-Page Campaign Website"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Advertising"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Campaign Consulting"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Graphic Design & Branding"]){grid-column-start:1}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Management"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="One-Page Campaign Website"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Advertising"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Campaign Consulting"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Graphic Design & Branding"]):before{position:absolute;left:0;top:-36px;width:calc(200% + 10px);box-sizing:border-box;padding-top:14px;border-top:1px solid var(--border);font-family:var(--font-head);font-weight:700;font-size:11px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--purple-2)}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="One-Page Campaign Website"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Advertising"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Campaign Consulting"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Graphic Design & Branding"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Candidate & Group Website"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Voter & Supporter Lead Generation"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Speech Writing"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Printing"]){margin-top:46px}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Management"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Content"]){margin-top:32px}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Management"]):before{top:-22px;padding-top:0;border-top:0}
@media (max-width:699px){
  .ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-input--content{grid-template-columns:minmax(0,1fr)}
  .ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Management"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="One-Page Campaign Website"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Advertising"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Campaign Consulting"]):before,.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Graphic Design & Branding"]):before{width:100%}
  .ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Candidate & Group Website"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Voter & Supporter Lead Generation"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Speech Writing"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Printing"]),.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Content"]){margin-top:0}
}

.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Social Media Management"]):before{content:"Social"}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="One-Page Campaign Website"]):before{content:"Websites"}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Advertising"]):before{content:"Reach"}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Campaign Consulting"]):before{content:"Strategy & media"}
.ff-wrap .fluentform .ff-el-group.pp-service-tiles .ff-el-form-check:has(input[value="Graphic Design & Branding"]):before{content:"Design & print"}

/* Contact page: lilac mailing list box under the side boxes (v1.3.16) */
.aside-box.lilac{background:var(--lilac-soft);border-color:var(--lilac-soft);color:var(--purple-dark)}
.aside-box.lilac h3{color:var(--purple-dark)}
.aside-box.lilac p{margin:0 0 16px;font-size:15px;line-height:1.5}
.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control{background:var(--white);color:var(--text);border:1px solid color-mix(in srgb,var(--purple) 25%,transparent)}
.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control::placeholder{color:var(--text-2);opacity:1}
.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control:focus{border-color:var(--purple-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--purple-2) 18%,transparent)}
.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit,.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit:focus{background:var(--purple)!important;color:var(--white)!important;border-color:var(--purple)!important}
.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit:hover{background:var(--purple-dark)!important;border-color:var(--purple-dark)!important}
.aside-box.lilac .ff-wrap.ff-ph-foot .ff-message-success{background:rgba(255,255,255,.6);color:var(--purple-dark);border-left-color:var(--purple)}
.aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .error{color:#a3122e}
.aside-box.lilac .ff-ph.ff-ph-foot{border-color:color-mix(in srgb,var(--purple) 35%,transparent);background:rgba(255,255,255,.35)}
.aside-box.lilac .ff-ph.ff-ph-foot .ff-ph-label{color:var(--purple)}
.aside-box.lilac .ff-ph.ff-ph-foot .ff-ph-name{color:var(--purple-dark)}
/* Contact page sign-up box: name and email side by side with the button underneath on tablets and desktops,
   everything stacked on phones (v1.3.16) */
@media (min-width:700px){
  .aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell,.aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell:last-child{width:auto;min-width:0}
  .aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell:last-child{grid-column:1/-1}
  .aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit{width:100%}
  .aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-el-form-control{font-size:14px;padding:0 12px}
}
@media (max-width:699px){
  .aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container{flex-direction:column}
  .aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell,.aside-box.lilac .ff-wrap.ff-ph-foot .ff-t-container .ff-t-cell:last-child{flex:none!important;width:100%}
  .aside-box.lilac .ff-wrap.ff-ph-foot .fluentform .ff-btn-submit{width:100%}
}
.aside-box.lilac h3{margin-bottom:18px}
.aside-box.lilac p.nl-small{margin:14px 0 0;font-size:13.5px;line-height:1.5}

/* Brief, "What you already have": one tick box per row with its link field beside it (desktop)
   or underneath it (tablet and phone). Fields are moved into place by brief.js (v1.3.17). */
.ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-input--content{display:flex!important;flex-direction:column;gap:0}
.ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:20px;align-items:center;width:auto!important;max-width:none;min-height:0;padding:6px 0!important;margin:0!important;border-bottom:1px solid #EEE}
.ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check:last-child{border-bottom:0}
.ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check-label{grid-column:1;margin:0}
.ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check>.ff-el-group{grid-column:2;margin:0!important}
.ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check>.ff-el-group .ff-el-form-control{min-height:46px}
.pp-moved-empty{display:none!important}
@media (max-width:1099px){
  .ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check{grid-template-columns:minmax(0,1fr);row-gap:6px}
  .ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check>.ff-el-group{grid-column:1;padding:0 0 8px 32px}
}
@media (max-width:699px){
  .ff-wrap .fluentform .ff-el-group.pp-asset-links .ff-el-form-check>.ff-el-group{padding-left:0}
}

/* Side-by-side fields where one shows its label and the other only a placeholder (e.g. "How did you hear about us?" and
   "Who referred you?"): line the box without a label up with its neighbour's box instead of its label (v1.3.17) */
.ff-wrap .fluentform .ff-t-container:has(.ff-el-input--label) > .ff-t-cell:has(> .ff-el-group.ff-el-form-hide_label){align-self:flex-end}
@media (max-width:640px){.ff-wrap .fluentform .ff-t-container > .ff-t-cell{align-self:auto!important}}
