/*!
 * Proximo 3 - Field Service Cost Benefit Calculator: front end.
 * Everything is scoped to .p3fsroi so it cannot restyle the host theme.
 */

@font-face{font-family:'Gotham HTF';src:url('../fonts/GothamHTF-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Agency FB';src:url('../fonts/AgencyFB-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap;}

.p3fsroi{
  /* --- brand palette (Proximo 3 brand reference) --- */
  --p3-red:#EE163B;          /* accent: large headings, rules, eyebrows, stats */
  --p3-red-deep:#CC0F32;     /* proximo3.com red-text token: links, buttons - 5.70:1 on white */
  --p3-pink-mid:#F47389;
  --p3-pink-light:#F8A1B1;
  --p3-charcoal:#2D2E35;
  --p3-ink:#3C3C3C;
  --p3-white:#FFFFFF;
  --p3-g900:#2E2E2E; --p3-g700:#505050; --p3-g500:#727272;
  --p3-g300:#D2D2D2; --p3-g200:#E6E6E6; --p3-g100:#F1F3F2;
  --p3-border-ui:#8A8A8A;    /* form control boundaries - 3.45:1 on white (WCAG 1.4.11) */
  --p3-font-display:'Gotham HTF','Montserrat',system-ui,-apple-system,sans-serif;
  --p3-font-body:'Montserrat',system-ui,-apple-system,sans-serif;
  --p3-font-accent:'Agency FB','Gotham HTF','Montserrat',system-ui,sans-serif;
  --p3-radius:8px; --p3-radius-lg:16px;
  --p3-shadow-button:0 15px 30px rgba(45,46,53,.20);
  --p3-shadow-card:0 8px 24px rgba(45,46,53,.10);

  font-family:var(--p3-font-body);
  /* Everything inside sizes in em off this one declaration, so a host theme's
     root font-size (Elementor-era themes love html{font-size:62.5%}) cannot
     shrink the whole block. 1em still honours a larger reader default; the
     floor stops a theme making it unreadable. */
  font-size:max(1em, 15px);
  color:var(--p3-ink);
  background:var(--p3-white);
  text-align:left;
}
.p3fsroi *,.p3fsroi *::before,.p3fsroi *::after{box-sizing:border-box;}
.p3fsroi p,.p3fsroi ul,.p3fsroi ol,.p3fsroi li,.p3fsroi h1,.p3fsroi h2,
.p3fsroi h3,.p3fsroi h4,.p3fsroi h5,.p3fsroi h6,.p3fsroi table,.p3fsroi figure,.p3fsroi fieldset{margin:0;padding:0;}
.p3fsroi ul,.p3fsroi ol{list-style:none;}
.p3fsroi h1,.p3fsroi h2,.p3fsroi h3,.p3fsroi h4,.p3fsroi h5,.p3fsroi h6{
  font-family:var(--p3-font-display);font-weight:500;line-height:1.2;color:var(--p3-ink);}
.p3fsroi p{line-height:1.6;}
.p3fsroi a{color:var(--p3-red-deep);text-decoration:underline;}
.p3fsroi a:hover{text-decoration:none;}
.p3fsroi ::selection{background:var(--p3-pink-light);color:var(--p3-ink);}

/* --- focus: always visible, >=3:1, never removed (2.4.7) --- */
.p3fsroi :focus-visible{outline:3px solid var(--p3-red-deep);outline-offset:2px;border-radius:4px;}
.p3fsroi .p3f-statband :focus-visible,
.p3fsroi .p3f-send :focus-visible{outline-color:var(--p3-white);}
.p3fsroi [tabindex="-1"]:focus{outline:none;}

.p3fsroi .p3f-wrap{max-width:1080px;margin:0 auto;padding:0 20px;}
.p3fsroi .p3f-vh{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* =========================== eyebrow =========================== */
.p3fsroi .p3f-eyebrow{font-family:var(--p3-font-accent);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:1em;color:var(--p3-pink-light);margin-bottom:10px;}

/* ============================ shell ============================ */
.p3fsroi .p3f-main{background:var(--p3-g100);padding:36px 0 56px;}
.p3fsroi .p3f-card{background:var(--p3-white);border:1px solid var(--p3-g200);
  border-radius:var(--p3-radius-lg);box-shadow:var(--p3-shadow-card);padding:clamp(20px,3.2vw,36px);}
.p3fsroi .p3f-card + .p3f-card{margin-top:22px;}

/* ------------------------ progress rail ------------------------ */
.p3fsroi .p3f-rail ol{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.p3fsroi .p3f-rail li{flex:1 1 120px;min-width:96px;padding-top:10px;
  border-top:4px solid var(--p3-g300);font-size:.8em;color:var(--p3-g700);line-height:1.35;}
.p3fsroi .p3f-rail li .p3f-rn{display:block;font-family:var(--p3-font-accent);font-weight:700;
  font-size:1.2em;color:var(--p3-g700);}  /* 1.2 of the li's .8em, not of the block */
.p3fsroi .p3f-rail li[data-state="done"]{border-top-color:var(--p3-pink-mid);}
/* a tick as well as a colour, so completed steps do not read by colour alone (1.4.1) */
.p3fsroi .p3f-rail li[data-state="done"] .p3f-rn::after{content:"\00a0\2713";}
.p3fsroi .p3f-rail li[data-state="now"]{border-top-color:var(--p3-red);color:var(--p3-ink);font-weight:600;}
.p3fsroi .p3f-rail li[data-state="now"] .p3f-rn{color:var(--p3-red-deep);}
.p3fsroi .p3f-count{font-size:.85em;color:var(--p3-g700);margin-bottom:24px;}

/* --------------------------- steps ---------------------------- */
.p3fsroi .p3f-step[hidden]{display:none;}
.p3fsroi .p3f-step .p3f-step-title{font-size:clamp(1.35em,2.6vw,1.8em);color:var(--p3-ink);}
.p3fsroi .p3f-step > p.p3f-intro{color:var(--p3-g700);margin:10px 0 4px;max-width:64ch;}
.p3fsroi .p3f-optflag{display:inline-block;font-family:var(--p3-font-accent);font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;font-size:.8em;color:var(--p3-g700);
  background:var(--p3-g100);border:1px solid var(--p3-g300);border-radius:999px;
  padding:4px 12px;margin-top:12px;}

.p3fsroi .p3f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
  gap:20px 26px;margin-top:26px;}
.p3fsroi .p3f-field{min-width:0;}
.p3fsroi .p3f-field--wide{grid-column:1/-1;}

.p3fsroi .p3f-label,.p3fsroi .p3f-legend{display:block;font-weight:600;font-size:.98em;
  color:var(--p3-ink);margin-bottom:6px;}
.p3fsroi .p3f-req{color:var(--p3-red-deep);font-weight:700;}
.p3fsroi .p3f-hint{display:block;font-size:.83em;color:var(--p3-g700);margin-bottom:8px;}
.p3fsroi .p3f-err{display:block;font-size:.85em;font-weight:600;color:var(--p3-red-deep);margin-top:6px;}
.p3fsroi .p3f-err::before{content:"\26A0\00a0\00a0";}
.p3fsroi .p3f-err[hidden]{display:none;}

/* form controls - high specificity plus a few !important so WP themes cannot hijack them */
.p3fsroi .p3f-input,.p3fsroi .p3f-select{
  -webkit-appearance:none !important;appearance:none !important;
  font-family:var(--p3-font-body) !important;font-size:1em !important;font-weight:500;
  color:var(--p3-ink) !important;background-color:var(--p3-white) !important;
  border:2px solid var(--p3-border-ui) !important;border-radius:var(--p3-radius) !important;
  box-shadow:none !important;width:100% !important;max-width:100%;
  padding:11px 13px !important;margin:0 !important;min-height:46px;display:block;}
.p3fsroi .p3f-select{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1 6 6 11 1' fill='none' stroke='%232D2E35' stroke-width='2'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;background-position:right 14px center !important;
  background-size:12px 8px !important;padding-right:40px !important;}
.p3fsroi .p3f-input:focus,.p3fsroi .p3f-select:focus{border-color:var(--p3-charcoal) !important;}
.p3fsroi .p3f-input[aria-invalid="true"],.p3fsroi .p3f-select[aria-invalid="true"]{
  border-color:var(--p3-red-deep) !important;background-color:#FDF2F4 !important;}
.p3fsroi .p3f-money{position:relative;}
.p3fsroi .p3f-money .p3f-cur{position:absolute;left:13px;top:50%;transform:translateY(-50%);
  font-weight:600;color:var(--p3-g700);pointer-events:none;}
.p3fsroi .p3f-money .p3f-input{padding-left:30px !important;}

/* radio groups - 44px targets, comfortably over the 24px floor (2.5.8) */
.p3fsroi fieldset.p3f-fs{border:0;min-width:0;}
.p3fsroi .p3f-opts{display:flex;flex-wrap:wrap;gap:8px;}
.p3fsroi .p3f-opt{position:relative;}
.p3fsroi .p3f-opt input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;margin:0;cursor:pointer;}
.p3fsroi .p3f-opt span{display:block;min-height:44px;min-width:64px;padding:11px 20px;
  border:2px solid var(--p3-border-ui);border-radius:var(--p3-radius);background:var(--p3-white);
  font-weight:600;font-size:.95em;text-align:center;color:var(--p3-ink);}
.p3fsroi .p3f-opt input:checked + span{background:var(--p3-charcoal);border-color:var(--p3-charcoal);
  color:var(--p3-white);}
.p3fsroi .p3f-opt input:checked + span::before{content:"\2713\00a0\00a0";}
.p3fsroi .p3f-opt input:focus-visible + span{outline:3px solid var(--p3-red-deep);outline-offset:2px;}
.p3fsroi fieldset[data-invalid="true"] .p3f-opt span{border-color:var(--p3-red-deep);}

.p3fsroi .p3f-check{display:flex;gap:12px;align-items:flex-start;
  background:var(--p3-g100);border:1px solid var(--p3-g300);border-radius:var(--p3-radius);padding:16px;}
.p3fsroi .p3f-check input{-webkit-appearance:none;appearance:none;flex:0 0 auto;
  width:26px !important;height:26px;margin:0 !important;border:2px solid var(--p3-charcoal) !important;
  border-radius:5px !important;background-color:var(--p3-white) !important;cursor:pointer;}
/* the tick is a background image, not ::after — pseudo-elements do not render
   on <input>, so an ::after tick would silently never appear */
.p3fsroi .p3f-check input:checked{background-color:var(--p3-charcoal) !important;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8.5 6 12l7.5-8' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;background-position:center !important;
  background-size:17px 17px !important;}
.p3fsroi .p3f-check span{font-size:.92em;line-height:1.55;color:var(--p3-ink);}
.p3fsroi .p3f-check[data-invalid="true"]{border-color:var(--p3-red-deep);background:#FDF2F4;}

/* error summary (3.3.1) */
.p3fsroi .p3f-errsum{border:2px solid var(--p3-red-deep);background:#FDF2F4;
  border-radius:var(--p3-radius);padding:18px 20px;margin-bottom:24px;}
.p3fsroi .p3f-errsum[hidden]{display:none;}
.p3fsroi .p3f-errsum .p3f-errsum-title{font-size:1.05em;color:var(--p3-red-deep);margin-bottom:8px;}
.p3fsroi .p3f-errsum ul{list-style:disc;padding-left:22px;}
.p3fsroi .p3f-errsum li{margin-top:5px;font-size:.92em;}
.p3fsroi .p3f-errsum a{color:var(--p3-red-deep);font-weight:600;}

/* soft, non-blocking sanity note */
.p3fsroi .p3f-note{border-left:4px solid var(--p3-pink-mid);background:var(--p3-g100);
  padding:14px 16px;border-radius:0 var(--p3-radius) var(--p3-radius) 0;margin-top:22px;
  font-size:.9em;color:var(--p3-g700);line-height:1.55;}
.p3fsroi .p3f-note[hidden]{display:none;}
.p3fsroi .p3f-note strong{color:var(--p3-ink);}

/* buttons */
.p3fsroi .p3f-btn{font-family:var(--p3-font-display) !important;font-size:1.0625em !important;font-weight:500;
  letter-spacing:.01em;border-radius:var(--p3-radius) !important;border:2px solid transparent !important;
  padding:13px 30px !important;min-height:48px;cursor:pointer;text-align:center;
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  transition:transform .15s ease,background-color .15s ease;width:auto !important;}
.p3fsroi .p3f-btn--primary{background-color:var(--p3-red-deep) !important;color:var(--p3-white) !important;
  box-shadow:var(--p3-shadow-button) !important;}
.p3fsroi .p3f-btn--primary:hover{background-color:#B60E2B !important;transform:translateY(-1px);}
.p3fsroi .p3f-btn--dark{background-color:var(--p3-charcoal) !important;color:var(--p3-white) !important;
  box-shadow:var(--p3-shadow-button) !important;}
.p3fsroi .p3f-btn--dark:hover{background-color:#1E1F24 !important;transform:translateY(-1px);}
.p3fsroi .p3f-btn--ghost{background-color:transparent !important;color:var(--p3-charcoal) !important;
  border-color:var(--p3-charcoal) !important;box-shadow:none !important;}
.p3fsroi .p3f-btn--ghost:hover{background-color:var(--p3-charcoal) !important;color:var(--p3-white) !important;}
.p3fsroi .p3f-send .p3f-btn--ghost{color:var(--p3-white) !important;border-color:var(--p3-white) !important;}
.p3fsroi .p3f-send .p3f-btn--ghost:hover{background-color:var(--p3-white) !important;color:var(--p3-charcoal) !important;}
.p3fsroi .p3f-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;}
.p3fsroi .p3f-btn[hidden]{display:none;}
.p3fsroi .p3f-navrow{display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  margin-top:32px;padding-top:24px;border-top:1px solid var(--p3-g200);}
.p3fsroi .p3f-navrow .p3f-spacer{flex:1 1 auto;}

/* ========================== results ========================== */
.p3fsroi #p3f-results[hidden]{display:none;}
.p3fsroi .p3f-statband{background:var(--p3-charcoal);color:var(--p3-white);
  border-radius:var(--p3-radius-lg);padding:clamp(22px,3.4vw,36px);box-shadow:var(--p3-shadow-card);}
.p3fsroi .p3f-statband .p3f-band-title{color:var(--p3-white);font-size:clamp(1.4em,2.8vw,1.9em);}
.p3fsroi .p3f-statband > p{color:#E4E4E7;margin-top:12px;max-width:66ch;font-size:.95em;}
.p3fsroi .p3f-statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:22px;margin-top:28px;}
.p3fsroi .p3f-stat{border-top:4px solid var(--p3-red);padding-top:14px;}
.p3fsroi .p3f-stat .p3f-num{font-family:var(--p3-font-accent);font-weight:700;line-height:1;
  font-size:clamp(2.2em,5.4vw,3.1em);color:var(--p3-white);display:block;}
.p3fsroi .p3f-stat .p3f-cap{display:block;margin-top:9px;font-size:.9em;
  color:var(--p3-pink-light);font-weight:600;line-height:1.4;}
.p3fsroi .p3f-stat .p3f-sub{display:block;margin-top:5px;font-size:.82em;color:#D8D8DC;line-height:1.45;}

.p3fsroi .p3f-card .p3f-card-title{font-size:1.25em;color:var(--p3-ink);}
.p3fsroi .p3f-card .p3f-card-title + p{
  color:var(--p3-g700);font-size:.92em;margin-top:8px;max-width:72ch;}
.p3fsroi .p3f-kicker{font-family:var(--p3-font-accent);font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;font-size:.82em;color:var(--p3-red-deep);margin-bottom:6px;}

.p3fsroi .p3f-tblwrap{overflow-x:auto;margin-top:18px;}
.p3fsroi table.p3f-tbl{width:100%;border-collapse:collapse;font-size:.94em;min-width:420px;}
.p3fsroi table.p3f-tbl caption{text-align:left;font-weight:600;color:var(--p3-g700);
  font-size:.95em;padding-bottom:10px;}
.p3fsroi table.p3f-tbl th,.p3fsroi table.p3f-tbl td{
  text-align:left;padding:11px 14px;border-bottom:1px solid var(--p3-g200);vertical-align:top;}
.p3fsroi table.p3f-tbl thead th{background:var(--p3-charcoal);color:var(--p3-white);
  font-family:var(--p3-font-display);font-weight:500;border-bottom:0;}
.p3fsroi table.p3f-tbl thead th:first-child{border-radius:var(--p3-radius) 0 0 0;}
.p3fsroi table.p3f-tbl thead th:last-child{border-radius:0 var(--p3-radius) 0 0;}
.p3fsroi table.p3f-tbl tbody th{font-weight:500;color:var(--p3-ink);}
.p3fsroi table.p3f-tbl .p3f-n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.p3fsroi table.p3f-tbl tr.p3f-total th,.p3fsroi table.p3f-tbl tr.p3f-total td{
  font-weight:700;color:var(--p3-ink);background:var(--p3-g100);border-bottom:0;}
.p3fsroi table.p3f-tbl td.p3f-pos{color:#0E6B3D;font-weight:600;}
.p3fsroi table.p3f-tbl td.p3f-neg{color:var(--p3-red-deep);font-weight:600;}

.p3fsroi .p3f-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:22px;}
.p3fsroi .p3f-mini{border:1px solid var(--p3-g200);border-radius:var(--p3-radius);
  padding:18px;background:var(--p3-g100);}
.p3fsroi .p3f-mini .p3f-mnum{font-family:var(--p3-font-accent);font-weight:700;font-size:2em;
  line-height:1;color:var(--p3-red-deep);display:block;}
.p3fsroi .p3f-mini .p3f-mcap{display:block;margin-top:7px;font-size:.88em;color:var(--p3-g700);
  font-weight:600;line-height:1.45;}

.p3fsroi .p3f-chart{margin-top:22px;background:var(--p3-g100);border:1px solid var(--p3-g200);
  border-radius:var(--p3-radius);padding:18px 18px 12px;}
.p3fsroi .p3f-chart svg{display:block;width:100%;height:auto;}
.p3fsroi .p3f-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:.82em;color:var(--p3-g700);}
.p3fsroi .p3f-legend span{display:flex;align-items:center;gap:7px;}
.p3fsroi .p3f-swatch{width:14px;height:14px;border-radius:3px;flex:0 0 auto;border:1px solid rgba(45,46,53,.4);}

.p3fsroi details.p3f-det{margin-top:22px;border:1px solid var(--p3-g200);
  border-radius:var(--p3-radius);background:var(--p3-white);}
.p3fsroi details.p3f-det > summary{cursor:pointer;padding:15px 18px;font-weight:600;
  font-family:var(--p3-font-display);color:var(--p3-ink);min-height:48px;display:flex;align-items:center;}
.p3fsroi details.p3f-det[open] > summary{border-bottom:1px solid var(--p3-g200);}
.p3fsroi details.p3f-det .p3f-detbody{padding:18px;}
.p3fsroi .p3f-assume{list-style:disc;padding-left:22px;}
.p3fsroi .p3f-assume li{margin-top:8px;font-size:.9em;color:var(--p3-g700);line-height:1.55;}
.p3fsroi .p3f-assume li strong{color:var(--p3-ink);}

.p3fsroi .p3f-flags li{padding:11px 14px 11px 40px;position:relative;background:var(--p3-g100);
  border-radius:var(--p3-radius);margin-top:8px;font-size:.9em;line-height:1.55;color:var(--p3-g700);}
.p3fsroi .p3f-flags li::before{content:"\2139";position:absolute;left:15px;top:11px;
  font-weight:700;color:var(--p3-red-deep);}

/* send block */
.p3fsroi .p3f-send{background:var(--p3-charcoal);color:var(--p3-white);border-radius:var(--p3-radius-lg);
  padding:clamp(22px,3.4vw,36px);margin-top:22px;box-shadow:var(--p3-shadow-card);}
.p3fsroi .p3f-send .p3f-send-title{color:var(--p3-white);font-size:1.35em;}
.p3fsroi .p3f-send p{color:#E4E4E7;margin-top:10px;max-width:64ch;font-size:.95em;}
.p3fsroi .p3f-send .p3f-to{margin-top:18px;font-size:.92em;color:var(--p3-pink-light);font-weight:600;}
.p3fsroi .p3f-send .p3f-to a{color:var(--p3-pink-light);}
.p3fsroi .p3f-sendrow{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:22px;}
.p3fsroi .p3f-outcome{margin-top:20px;padding:16px 18px;border-radius:var(--p3-radius);
  font-size:.93em;line-height:1.55;border:2px solid;}
.p3fsroi .p3f-outcome[hidden]{display:none;}
.p3fsroi .p3f-outcome--ok{background:#12341F;border-color:#4FB37B;color:#EAF6EF;}
.p3fsroi .p3f-outcome--bad{background:#3C1520;border-color:var(--p3-pink-mid);color:#FCE9ED;}
.p3fsroi .p3f-outcome--info{background:#25262C;border-color:#9A9AA3;color:#E4E4E7;}
.p3fsroi .p3f-outcome a{color:var(--p3-pink-light);}
.p3fsroi .p3f-payload{margin-top:14px;}
.p3fsroi .p3f-payload pre{background:#1B1C21;color:#E4E4E7;border:1px solid #43444C;
  border-radius:var(--p3-radius);padding:14px;overflow:auto;max-height:320px;
  font-size:.78em;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  white-space:pre;}

/* spinner */
.p3fsroi .p3f-spin{width:17px;height:17px;border:2px solid rgba(255,255,255,.45);
  border-top-color:var(--p3-white);border-radius:50%;animation:p3fspin .7s linear infinite;}
@keyframes p3fspin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){
  .p3fsroi *,.p3fsroi *::before,.p3fsroi *::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;}
}
/* forced colours / Windows high contrast */
@media (forced-colors:active){
  .p3fsroi .p3f-opt input:checked + span{border:3px solid CanvasText;}
  .p3fsroi .p3f-rail li{border-top-color:CanvasText;}
  .p3fsroi .p3f-btn{border:2px solid ButtonText !important;}
  .p3fsroi .p3f-swatch{border:1px solid CanvasText;}
}
.p3fsroi [id]{scroll-margin-top:calc(var(--p3f-sticky, 0px) + 24px);}

/* print / save-as-PDF of the results: the calculator alone, every table open and
   unscrolled, and long cards free to break across pages */
@media print{
  @page{margin:14mm 12mm;}
  body:has(#p3f-results:not([hidden])){margin:0 !important;background:#fff !important;}
  body:has(#p3f-results:not([hidden])) *:not(:has(.p3fsroi)):not(.p3fsroi):not(.p3fsroi *){display:none !important;}
  body:has(#p3f-results:not([hidden])) :has(.p3fsroi){position:static !important;margin:0 !important;padding:0 !important;border:0 !important;
    box-shadow:none !important;background:#fff !important;max-width:none !important;width:auto !important;
    min-height:0 !important;height:auto !important;overflow:visible !important;transform:none !important;}
  .p3fsroi{font-size:10pt;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .p3fsroi .p3f-send{display:none !important;}
  .p3fsroi .p3f-main{background:#fff;padding:0;}
  .p3fsroi .p3f-wrap{max-width:none;padding:0;}
  .p3fsroi .p3f-card,.p3fsroi .p3f-statband{box-shadow:none;border:1px solid #999;border-radius:6px;
    padding:12px 14px;break-inside:auto;page-break-inside:auto;}
  .p3fsroi .p3f-card + .p3f-card,.p3fsroi .p3f-statband + .p3f-card{margin-top:10px;}
  .p3fsroi .p3f-kicker,.p3fsroi .p3f-card-title,.p3fsroi .p3f-band-title,
  .p3fsroi table.p3f-tbl caption{break-after:avoid;page-break-after:avoid;}
  .p3fsroi .p3f-statband{background:#fff !important;color:#000 !important;}
  .p3fsroi .p3f-statband .p3f-band-title,.p3fsroi .p3f-stat .p3f-num{color:#000 !important;}
  .p3fsroi .p3f-stat .p3f-cap,.p3fsroi .p3f-stat .p3f-sub,
  .p3fsroi .p3f-statband > p{color:#333 !important;}
  .p3fsroi .p3f-statgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;}
  .p3fsroi .p3f-stat{break-inside:avoid;page-break-inside:avoid;}
  .p3fsroi .p3f-stat .p3f-num{font-size:20pt;}
  .p3fsroi .p3f-two{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;}
  .p3fsroi .p3f-mini{padding:10px;break-inside:avoid;page-break-inside:avoid;}
  .p3fsroi .p3f-mini .p3f-mnum{font-size:15pt;}
  .p3fsroi .p3f-tblwrap{overflow:visible !important;margin-top:10px;}
  .p3fsroi table.p3f-tbl{min-width:0 !important;font-size:8.5pt;}
  .p3fsroi table.p3f-tbl th,.p3fsroi table.p3f-tbl td{padding:5px 7px;}
  .p3fsroi table.p3f-tbl tr{break-inside:avoid;page-break-inside:avoid;}
  .p3fsroi table.p3f-tbl thead{display:table-header-group;}
  .p3fsroi table.p3f-tbl thead th{background:#DDD !important;color:#000 !important;}
  .p3fsroi .p3f-chart{padding:10px;break-inside:avoid;page-break-inside:avoid;}
  .p3fsroi details.p3f-det{border:0;margin-top:10px;}
  .p3fsroi details.p3f-det > summary{display:block;list-style:none;padding:0 0 6px;min-height:0;border:0;font-weight:600;}
  .p3fsroi details.p3f-det > summary::-webkit-details-marker{display:none;}
  .p3fsroi .p3f-printonly{display:block;margin-top:12px;padding-top:8px;border-top:1px solid #999;font-size:8.5pt;color:#333;break-inside:avoid;}
  .p3fsroi details.p3f-det .p3f-detbody{padding:0;}
  .p3fsroi .p3f-flags li,.p3fsroi .p3f-assume li{break-inside:avoid;page-break-inside:avoid;}
}
/* where the browser supports it, show closed details even if the print event never fired */
@media print{
  .p3fsroi details.p3f-det::details-content{content-visibility:visible;}
}

/* ===================== plugin additions ===================== */
/* honeypot: off-screen and out of the tab order */
.p3fsroi .p3f-hp{position:absolute !important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
.p3fsroi .p3f-loading{padding:8px 0;color:var(--p3-g700);}
.p3fsroi [data-pwp][hidden],.p3fsroi [data-benefit][hidden],.p3fsroi [data-costs][hidden],.p3fsroi [data-table][hidden],.p3fsroi [data-list][hidden]{display:none !important;}
.p3fsroi .p3f-consent-link{white-space:nowrap;}
@media screen{.p3fsroi .p3f-printonly{display:none !important;}}
.p3fsroi .p3f-noscript{margin:0;}
.p3fsroi .p3f-outcome--ok{background:#12341F;border-color:#4FB37B;color:#EAF6EF;}
/* line up the inputs across a row */
/* Help text wraps to different lengths in neighbouring fields, which left the
   inputs in a row at different heights. Each field is a column and its label
   takes up the slack, so the inputs always share a baseline. */
.p3fsroi .p3f-field{display:flex;flex-direction:column;}
.p3fsroi .p3f-field > .p3f-label{flex-grow:1;}
