/* Five Star Practice · PUO Matrix v1.3.1 · scoped, no framework dependency */
.fsp-matrix{--fsp-navy:#082e69;--fsp-gold:#be9a3d;--fsp-save-bg:#e5f3ff;--fsp-muted:#65748b;--fsp-border:#e1e7ef;--fsp-member-bg:#fff3d8;--fsp-member-text:#785514;--fsp-save-text:#082e69;--fsp-percent-text:#315b91;--fsp-stripe-bg:#f4f6f9;--fsp-head-bg:#eef3f9;--fsp-info-bg:#082e69;--fsp-info-color:#fff;--fsp-desktop-header-size:15px;--fsp-desktop-body-size:15px;--fsp-info-size:20px;--fsp-sticky-offset:0px;--fsp-body-text:#15345b;--fsp-row-padding:12px;font-family:inherit,Arial,sans-serif;color:#102c53;width:100%;max-width:100%;min-width:0;box-sizing:border-box;line-height:1.5;isolation:isolate}
.fsp-matrix *, .fsp-matrix *::before, .fsp-matrix *::after{box-sizing:border-box}
.fsp-matrix button,.fsp-matrix input,.fsp-matrix select{font:inherit}
.fsp-matrix button{cursor:pointer}
.fsp-matrix .fsp-hero{display:flex;align-items:stretch;justify-content:space-between;gap:20px;background:linear-gradient(114deg,var(--fsp-navy),#083b81);color:#fff;border-radius:17px 17px 0 0;padding:35px 38px;position:relative;overflow:hidden}
.fsp-matrix .fsp-hero:after{content:"";position:absolute;inset:auto -65px -125px auto;width:290px;height:290px;border-radius:50%;border:38px solid rgba(255,255,255,.035);pointer-events:none}
.fsp-matrix .fsp-hero-left{position:relative;z-index:1;min-width:0;flex:1}
.fsp-matrix .fsp-logo{display:block;width:auto;max-width:168px;max-height:57px;object-fit:contain;margin:0 0 14px;filter:none}
.fsp-matrix .fsp-eyebrow{display:flex;align-items:center;gap:9px;color:#f4d78f;font-size:10px!important;font-weight:800;letter-spacing:2.2px;margin-bottom:10px;text-transform:uppercase}
.fsp-matrix .fsp-gold-dot{background:var(--fsp-gold);height:7px;width:7px;border-radius:50%;display:inline-block;flex:none}
.fsp-matrix .fsp-hero h2{color:#fff!important;font-weight:750;font-size:clamp(24px,2.8vw,32px)!important;line-height:1.18!important;letter-spacing:-.8px;margin:0 0 9px!important;padding:0!important;border:0!important}
.fsp-matrix .fsp-hero p{color:#e2ebf7!important;margin:0!important;font-size:13px!important;line-height:1.6;max-width:630px}
.fsp-matrix .fsp-membership{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;gap:2px;padding:16px 18px;min-width:148px;border-radius:12px;border:1px solid rgba(242,202,111,.42);background:rgba(1,26,58,.35);position:relative;z-index:1}
.fsp-matrix .fsp-membership span{color:#dce6f3;text-transform:uppercase;letter-spacing:.7px;font-size:9px;font-weight:800}
.fsp-matrix .fsp-membership strong{color:#e8c16c;font-size:27px;font-weight:800;line-height:1.15;letter-spacing:-.5px}
.fsp-matrix .fsp-membership small{color:#c8d5e7;font-size:11px}
.fsp-matrix .fsp-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:15px 18px;background:#fff;border-inline:1px solid var(--fsp-border);border-bottom:1px solid var(--fsp-border)}
.fsp-matrix .fsp-tab{border-radius:999px;background:#f4f6f9;color:#224471;border:1px solid var(--fsp-border);font-size:12px;line-height:1.25;padding:10px 15px;font-weight:700;white-space:normal;text-align:center;min-width:0;transition:background .15s,color .15s,box-shadow .15s}
.fsp-matrix .fsp-tab:is(:hover,:focus-visible){border-color:var(--fsp-gold);box-shadow:0 0 0 2px #d8bc6c40}
.fsp-matrix .fsp-tab.is-active{background:var(--fsp-navy);color:#fff;border-color:var(--fsp-navy);box-shadow:inset 0 -3px var(--fsp-gold)}
.fsp-matrix .fsp-mobile-tabs{display:none;background:#fff;padding:15px 16px;border:1px solid var(--fsp-border);border-top:0}
.fsp-matrix .fsp-mobile-tabs label{display:block;font-size:11px;font-weight:800;color:var(--fsp-navy);margin-bottom:6px}
.fsp-matrix .fsp-mobile-tabs select{width:100%;border-radius:9px;border:1px solid #d7dfeb;background:#fff;min-height:43px;padding:0 12px;color:#163863}
.fsp-matrix .fsp-tools{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(170px,1fr);column-gap:14px;align-items:end;background:#f2f5f8;padding:16px 24px;border-inline:1px solid var(--fsp-border)}
.fsp-matrix .fsp-tools label{min-width:0;display:block;margin:0}
.fsp-matrix .fsp-tools label span{display:block;margin-bottom:7px;font-weight:800;font-size:11px;color:var(--fsp-navy)}
.fsp-matrix .fsp-tools input,.fsp-matrix .fsp-tools select{display:block;width:100%;max-width:100%;height:42px!important;min-height:42px;border-radius:9px!important;border:1px solid #d4deea!important;background:#fff!important;color:#213a59!important;font-size:12px!important;padding:0 12px!important;box-shadow:none!important;outline-offset:2px;margin:0!important}
.fsp-matrix .fsp-tools input:focus,.fsp-matrix .fsp-tools select:focus{outline:2px solid var(--fsp-gold);outline-offset:1px}
.fsp-matrix .fsp-mobile-pager{display:none}
.fsp-matrix .fsp-table-container{width:100%;max-width:100%;min-width:0;background:#fff;border-inline:1px solid var(--fsp-border);border-bottom:1px solid var(--fsp-border);border-radius:0 0 15px 15px;overflow:visible}
.fsp-matrix .fsp-table{border-collapse:separate!important;border-spacing:0!important;table-layout:fixed;width:100%!important;max-width:100%;min-width:0!important;background:#fff!important;margin:0!important;border:none!important;box-shadow:none!important;font-size:clamp(10px,1.02vw,12px);color:var(--fsp-body-text)}
.fsp-matrix .fsp-col-name{width:31%}.fsp-matrix .fsp-col-dose{width:11%}.fsp-matrix .fsp-col-member{width:12%}.fsp-matrix .fsp-col-percent{width:10%}.fsp-matrix .fsp-col-standard{width:12%}.fsp-matrix .fsp-col-save{width:13%}.fsp-matrix .fsp-col-break{width:11%}
.fsp-matrix .fsp-table thead th{background:var(--fsp-head-bg)!important;color:var(--fsp-navy)!important;text-align:right;font-size:10px;font-weight:900;letter-spacing:.15px;line-height:1.23;padding:17px 8px 14px;white-space:normal;overflow-wrap:anywhere;border:0!important;border-top:1px solid var(--fsp-border)!important;border-left:1px solid var(--fsp-border)!important;border-bottom:2px solid var(--fsp-border)!important;vertical-align:middle;box-shadow:none!important;text-transform:uppercase}
.fsp-matrix .fsp-table thead th:first-child{text-align:left;padding-left:23px}
/* Continuous, theme-resistant table grid: each cell owns its left and lower edge. */
.fsp-matrix .fsp-table thead tr > th:last-child,.fsp-matrix .fsp-table tbody tr > :last-child{border-right:1px solid var(--fsp-border)!important}
.fsp-matrix .fsp-table tbody tr{background:#fff}
.fsp-matrix .fsp-table tbody tr:nth-child(2n){background:var(--fsp-stripe-bg)}
.fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{font-size:inherit;font-weight:500;line-height:1.42;text-align:right;vertical-align:middle;overflow-wrap:anywhere;white-space:normal;padding:var(--fsp-row-padding) 8px;border:0!important;border-left:1px solid var(--fsp-border)!important;border-bottom:1px solid var(--fsp-border)!important;box-shadow:none!important;background:transparent}
/* Finish the visible table with a full-width closing rule, even when search
   hides the actual last DOM row. Gold and blue highlights continue to the edge. */
.fsp-matrix .fsp-table tbody tr.fsp-last-visible > th,
.fsp-matrix .fsp-table tbody tr.fsp-last-visible > td{border-bottom:2px solid #bac9da!important}
.fsp-matrix .fsp-table tbody tr.fsp-last-visible > td[data-col="member"]{border-bottom-color:var(--fsp-gold)!important}
.fsp-matrix .fsp-table tbody tr.fsp-last-visible > td[data-col="saving_unit"]{border-bottom-color:#5e9bca!important}
.fsp-matrix .fsp-table tbody th.fsp-name{font-size:inherit;font-weight:800;color:var(--fsp-navy);text-align:left;padding-left:23px}
.fsp-matrix .fsp-table tbody td.fsp-member-price{font-weight:800;color:var(--fsp-member-text);background:var(--fsp-member-bg)!important;box-shadow:inset 2px 0 0 rgba(190,154,61,.6),inset -2px 0 0 rgba(190,154,61,.6)!important}
.fsp-matrix .fsp-table tbody td.fsp-saving-pct{font-weight:800;color:var(--fsp-percent-text)}
.fsp-matrix .fsp-table tbody td.fsp-saving-unit{background:var(--fsp-save-bg)!important;color:var(--fsp-save-text);font-weight:900;font-size:1.11em;box-shadow:inset 2px 0 0 rgba(61,135,196,.48),inset -2px 0 0 rgba(61,135,196,.48)!important}
.fsp-matrix .fsp-table thead th[data-col="saving_unit"]{background:var(--fsp-save-bg)!important;border-top:3px solid #5e9bca!important;color:#074479!important}
.fsp-matrix .fsp-table thead th[data-col="member"]{background:var(--fsp-member-bg)!important;border-top:3px solid var(--fsp-gold)!important}
.fsp-matrix .fsp-table thead th[data-col="member"]{box-shadow:inset 2px 0 0 rgba(190,154,61,.6),inset -2px 0 0 rgba(190,154,61,.6)!important}
.fsp-matrix .fsp-table thead th[data-col="saving_unit"]{box-shadow:inset 2px 0 0 rgba(61,135,196,.48),inset -2px 0 0 rgba(61,135,196,.48)!important}
.fsp-matrix .fsp-table tbody tr:hover td:not(.fsp-member-price):not(.fsp-saving-unit),.fsp-matrix .fsp-table tbody tr:hover th{background:#ecf2f7!important}
.fsp-matrix .fsp-table [hidden],.fsp-matrix .fsp-table tbody[hidden],.fsp-matrix .fsp-table tr[hidden]{display:none!important}
.fsp-matrix .fsp-dose-wrap{display:inline-flex;position:relative;max-width:100%;align-items:center}
.fsp-matrix .fsp-dose-btn{border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;background:transparent!important;color:#214b76!important;display:inline-flex;align-items:center;gap:4px;font:inherit!important;line-height:inherit!important;font-size:inherit!important;text-align:right;max-width:100%;white-space:normal}
.fsp-matrix .fsp-dose-btn:is(:focus-visible,:hover){color:#0d609c!important;text-decoration:underline;text-decoration-style:dotted}
.fsp-matrix .fsp-info{display:inline-grid;flex:0 0 14px;place-items:center;background:#e0ebf4;color:#275786;font-family:Georgia,serif;font-size:10px;font-style:italic;font-weight:bold;width:14px;height:14px;border-radius:50%;text-decoration:none}
.fsp-matrix .fsp-dose-tip{visibility:hidden;opacity:0;pointer-events:none;position:absolute;z-index:50;width:max-content;max-width:min(280px,75vw);background:#102e59;color:#fff;box-shadow:0 12px 32px #07234840;text-align:left;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(3px);font-size:12px;font-weight:500;line-height:1.5;padding:11px 14px;border-radius:8px;transition:opacity .15s,transform .15s}
@media (hover:hover) and (pointer:fine){.fsp-matrix .fsp-dose-wrap:is(:hover,:focus-within) .fsp-dose-tip{visibility:visible;opacity:1;transform:translateX(-50%) translateY(0)}}
.fsp-matrix .fsp-empty{text-align:center!important;color:#6e7c91;padding:32px!important;margin:0!important;font-size:13px}
.fsp-matrix .fsp-footnote{color:#687c94;font-size:11px!important;line-height:1.6;margin:12px 2px!important}
.fsp-matrix .fsp-dose-dialog{border:none;max-width:min(440px,calc(100vw - 32px));width:420px;border-radius:17px;padding:24px;background:white;color:#15345b;box-shadow:0 20px 80px #00183860;position:fixed}
.fsp-matrix .fsp-dose-dialog::backdrop{background:#081a30a8}
.fsp-matrix .fsp-dose-dialog form{margin:0;padding:0;display:block}
.fsp-matrix .fsp-dose-dialog strong{color:var(--fsp-navy);font-size:18px;display:block;padding-right:20px}
.fsp-matrix .fsp-dose-dialog p{color:#304d71;line-height:1.65;font-size:14px;overflow-wrap:anywhere;margin:16px 0 24px}
.fsp-matrix .fsp-dialog-close{position:absolute;right:13px;top:8px;border:0;background:none;color:#576984;font-size:27px;padding:2px 9px}
.fsp-matrix .fsp-dialog-done{display:block;width:100%;background:var(--fsp-navy)!important;border:0!important;border-radius:8px;color:white!important;font-size:13px;font-weight:700;padding:12px}
@media (max-width:980px){
  .fsp-matrix .fsp-col-name{width:28%}.fsp-matrix .fsp-col-dose{width:12%}.fsp-matrix .fsp-col-member{width:12%}.fsp-matrix .fsp-col-percent{width:10%}.fsp-matrix .fsp-col-standard{width:12%}.fsp-matrix .fsp-col-save{width:14%}.fsp-matrix .fsp-col-break{width:12%}
  .fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{padding:10px 5px}
  .fsp-matrix .fsp-table thead th{padding:14px 5px}
  .fsp-matrix .fsp-table thead th:first-child,.fsp-matrix .fsp-table tbody th.fsp-name{padding-left:12px}
}
@media (max-width:800px){
  .fsp-matrix .fsp-hero{padding:26px 25px;gap:14px}
  .fsp-matrix .fsp-membership{min-width:134px;padding:12px}
  .fsp-matrix .fsp-membership strong{font-size:23px}
  .fsp-matrix .fsp-table-container{overflow-x:hidden;touch-action:pan-y;outline-offset:-3px}
  .fsp-matrix .fsp-table{font-size:12px!important;table-layout:fixed}
  .fsp-matrix .fsp-table colgroup{display:none!important}
  .fsp-matrix .fsp-table th,.fsp-matrix .fsp-table td{display:none!important}
  .fsp-matrix .fsp-table [data-col="name"],
  .fsp-matrix .fsp-table .fsp-mobile-visible{display:table-cell!important}
  .fsp-matrix .fsp-table [data-col="name"]{width:48%!important}
  .fsp-matrix .fsp-table .fsp-mobile-visible:not([data-col="name"]){width:26%!important}
  .fsp-matrix .fsp-table .fsp-mobile-last{border-right:1px solid var(--fsp-border)!important}
  .fsp-matrix .fsp-mobile-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f2f5f8;padding:10px 14px;border-inline:1px solid var(--fsp-border);border-bottom:1px solid var(--fsp-border)}
  .fsp-matrix .fsp-mobile-pager button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0!important;border:1px solid var(--fsp-navy)!important;background:var(--fsp-navy)!important;border-radius:10px!important;color:#fff!important;font-weight:800;box-shadow:none!important;line-height:1!important}
  /* Real SVG paths avoid icon-font corruption in Divi / Elementor and custom themes. */
  .fsp-matrix .fsp-mobile-pager button .fsp-arrow-icon{display:block!important;width:25px!important;height:25px!important;min-width:25px;min-height:25px;stroke:currentColor!important;stroke-width:2.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;fill:none!important;flex:none;overflow:visible}
  .fsp-matrix .fsp-mobile-pager button:disabled{cursor:not-allowed;opacity:.3}
  .fsp-matrix .fsp-mobile-pager button:not(:disabled):active{background:var(--fsp-gold)!important;border-color:var(--fsp-gold)!important}
  .fsp-matrix .fsp-mobile-pager button:focus-visible{outline:3px solid var(--fsp-gold);outline-offset:2px}
  .fsp-matrix .fsp-mobile-pager-center{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px}
  .fsp-matrix .fsp-mobile-pair{font-size:11px;font-weight:900;color:var(--fsp-navy);overflow-wrap:anywhere;line-height:1.3}
  .fsp-matrix .fsp-mobile-hint{font-size:10px;color:#64738b;line-height:1.3}
  .fsp-matrix .fsp-table tbody th.fsp-name{font-weight:750}
  .fsp-matrix .fsp-table thead th{font-size:10px}
  .fsp-matrix .fsp-dose-tip{display:none}
}
@media (max-width:600px){
  .fsp-matrix .fsp-hero{flex-direction:column;gap:17px;padding:25px 18px}
  .fsp-matrix .fsp-hero h2{font-size:25px!important;letter-spacing:-.4px}
  .fsp-matrix .fsp-membership{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-width:0;width:100%;padding:10px 14px}
  .fsp-matrix .fsp-membership strong{font-size:21px;margin-left:auto}
  .fsp-matrix .fsp-membership small{display:none}
  .fsp-matrix .fsp-membership span{max-width:120px;line-height:1.5}
  .fsp-matrix .fsp-tabs{display:none}
  .fsp-matrix .fsp-mobile-tabs{display:block}
  .fsp-matrix .fsp-tools{grid-template-columns:minmax(0,1fr);gap:11px;padding:15px}
  .fsp-matrix .fsp-table thead th{padding:12px 8px;font-size:10px}
  .fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{padding:13px 8px;font-size:11.5px}
  .fsp-matrix .fsp-table thead th:first-child,.fsp-matrix .fsp-table tbody th.fsp-name{padding-left:13px}
  .fsp-matrix .fsp-table tbody td.fsp-saving-unit{font-size:12.5px}
}
@media (max-width:380px){
  .fsp-matrix .fsp-mobile-hint{font-size:9px}
  .fsp-matrix .fsp-mobile-pager{gap:6px;padding-inline:8px}
  .fsp-matrix .fsp-mobile-pair{font-size:10px}
  .fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{font-size:10.5px;padding:11px 5px}
  .fsp-matrix .fsp-table thead th{font-size:9px;padding:12px 5px}
  .fsp-matrix .fsp-table thead th:first-child,.fsp-matrix .fsp-table tbody th.fsp-name{padding-left:9px}
}
@media print{.fsp-matrix .fsp-mobile-pager,.fsp-matrix .fsp-mobile-tabs,.fsp-matrix .fsp-tabs,.fsp-matrix .fsp-tools{display:none!important}.fsp-matrix .fsp-table th,.fsp-matrix .fsp-table td{display:table-cell!important}.fsp-matrix .fsp-table tbody[hidden]{display:none!important}.fsp-matrix .fsp-hero{color:#000;background:#fff;padding:12px}.fsp-matrix .fsp-hero h2,.fsp-matrix .fsp-hero p{color:#000!important}.fsp-matrix .fsp-table{font-size:9px!important}}

/* Prefer all seven original columns in print, regardless of the mobile selection. */
@media print{.fsp-matrix .fsp-table colgroup{display:table-column-group!important}.fsp-matrix .fsp-table [data-col]{display:table-cell!important}}


/* v1.3.1 · Desktop readability and scroll-friendly table headers.
 * Use CSS sticky on each TH (rather than THEAD) for reliable table behavior.
 * Keep the table's ancestors free of scroll containers; mobile uses `clip`.
 */
.fsp-matrix.fsp-sticky-enabled .fsp-table thead th{
  position:-webkit-sticky!important;position:sticky!important;
  top:var(--fsp-effective-sticky-top,calc(var(--fsp-sticky-offset,0px) + var(--wp-admin--admin-bar--height,0px)))!important;
  z-index:20!important;background-clip:padding-box!important;
  box-shadow:0 2px 0 var(--fsp-border)!important;
}
.fsp-matrix.fsp-sticky-enabled .fsp-table thead th[data-col="member"]{
  box-shadow:inset 2px 0 0 rgba(190,154,61,.6),inset -2px 0 0 rgba(190,154,61,.6),0 2px 0 var(--fsp-gold)!important;
}
.fsp-matrix.fsp-sticky-enabled .fsp-table thead th[data-col="saving_unit"]{
  box-shadow:inset 2px 0 0 rgba(61,135,196,.48),inset -2px 0 0 rgba(61,135,196,.48),0 2px 0 #5e9bca!important;
}
.fsp-matrix .fsp-info{
  background:var(--fsp-info-bg,#082e69)!important;
  color:var(--fsp-info-color,#fff)!important;
  border:1px solid var(--fsp-gold)!important;
  font-family:Arial,sans-serif!important;font-style:normal!important;
  font-weight:850!important;font-size:12px!important;
  flex:0 0 var(--fsp-info-size,20px)!important;
  width:var(--fsp-info-size,20px)!important;height:var(--fsp-info-size,20px)!important;
  vertical-align:middle;line-height:1!important;
}
.fsp-matrix .fsp-dose-btn{gap:7px!important}
.fsp-matrix .fsp-dose-tip{font-size:14px;max-width:min(340px,78vw)}
@media (min-width:801px){
  .fsp-matrix .fsp-table{font-size:var(--fsp-desktop-body-size,15px)!important;}
  .fsp-matrix .fsp-table thead th{font-size:var(--fsp-desktop-header-size,15px)!important;line-height:1.35!important;letter-spacing:0!important;padding:19px 10px!important;overflow-wrap:normal;word-break:normal;hyphens:auto;}
  .fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{
     font-size:var(--fsp-desktop-body-size,15px)!important;line-height:1.5!important;
     padding:var(--fsp-row-padding) 10px!important;
  }
  .fsp-matrix .fsp-table thead th:first-child,.fsp-matrix .fsp-table tbody th.fsp-name{padding-left:20px!important}
  .fsp-matrix .fsp-table tbody td.fsp-saving-unit{font-size:calc(var(--fsp-desktop-body-size,15px) + 1px)!important}
  .fsp-matrix .fsp-table col.fsp-col-name{width:28%}
  .fsp-matrix .fsp-table col.fsp-col-dose{width:10%}
  .fsp-matrix .fsp-table col.fsp-col-member{width:13%}
  .fsp-matrix .fsp-table col.fsp-col-percent{width:10%}
  .fsp-matrix .fsp-table col.fsp-col-standard{width:13%}
  .fsp-matrix .fsp-table col.fsp-col-save{width:14%}
  .fsp-matrix .fsp-table col.fsp-col-break{width:12%}
}
@media (min-width:801px) and (max-width:1050px){
  .fsp-matrix .fsp-table thead th{padding:15px 6px!important}
  .fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{padding:var(--fsp-row-padding) 6px!important}
  .fsp-matrix .fsp-table thead th:first-child,.fsp-matrix .fsp-table tbody th.fsp-name{padding-left:11px!important}
}
@media (max-width:800px){
  /* clip is NOT a scroll container, unlike overflow-x:hidden, so sticky works. */
  .fsp-matrix .fsp-table-container{overflow-x:clip!important;overflow-y:visible!important}
  .fsp-matrix .fsp-info{flex-basis:17px!important;width:17px!important;height:17px!important;font-size:11px!important}
  .fsp-matrix .fsp-dose-btn{gap:4px!important}
  .fsp-matrix .fsp-table thead th{background:var(--fsp-head-bg)!important}
}
@media print{
  .fsp-matrix .fsp-table thead th{position:static!important;top:auto!important}
  .fsp-matrix .fsp-table tbody th,.fsp-matrix .fsp-table tbody td{font-size:9px!important}
  .fsp-matrix .fsp-table thead th{font-size:9px!important}
}


/* v1.3.1 · Divi-safe sticky header. Fixed copy lives in <body>, outside
 * overflow:hidden / transforms on .et_pb_row, section and Code modules.
 * Scoped selectors intentionally reuse the shortcode's table styling.
 */
.fsp-matrix.fsp-sticky-portal{
  position:fixed!important;
  z-index:90!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  height:auto!important;
  min-height:0!important;
  max-width:none!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  pointer-events:none!important;
  box-shadow:0 5px 14px rgba(4,35,80,.12)!important;
  background:#fff!important;
}
.fsp-matrix.fsp-sticky-portal[hidden]{display:none!important;}
.fsp-matrix.fsp-sticky-portal .fsp-table{
  width:100%!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  margin:0!important;
}
.fsp-matrix.fsp-sticky-portal .fsp-table thead th{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  visibility:visible!important;
  background-clip:padding-box!important;
}
/* Hide the semantic header's pixels only while its visual duplicate is pinned.
 * This does NOT remove its width/height or heading semantics. */
.fsp-matrix.fsp-sticky-enabled.fsp-sticky-cloned .fsp-table thead th{
  visibility:hidden!important;
}
@media print{
  .fsp-matrix.fsp-sticky-portal{display:none!important;}
  .fsp-matrix.fsp-sticky-enabled.fsp-sticky-cloned .fsp-table thead th{visibility:visible!important;}
}

/* v2.0.0: Weight Loss catalog uses eight spreadsheet columns without drag scroll. */
@media (min-width:801px){
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-name{width:23%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-form{width:10%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-dose{width:13%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-member{width:11%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-percent{width:9%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-standard{width:11%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-save{width:12%}
.fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-break{width:11%}
.fsp-matrix.fsp-weight-loss .fsp-table thead th{font-size:var(--fsp-desktop-header-size,14px)!important;hyphens:auto;overflow-wrap:anywhere}
.fsp-matrix.fsp-weight-loss .fsp-table tbody th,.fsp-matrix.fsp-weight-loss .fsp-table tbody td{overflow-wrap:anywhere}
}
@media(max-width:800px){.fsp-matrix.fsp-weight-loss .fsp-table [data-col="name"]{width:48%!important}}

/* v3.1.0: high-contrast catalog source badges; scoped to avoid affecting Divi. */
.fsp-matrix .fsp-classification{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 15px;max-width:100%;}
.fsp-matrix .fsp-classification-badge{display:inline-flex;align-items:center;max-width:100%;border-radius:7px;border:1px solid #edc979;padding:8px 13px;font-size:12px!important;line-height:1.3!important;letter-spacing:.35px;font-weight:850!important;text-transform:uppercase;white-space:normal;overflow-wrap:anywhere;background:#f4ddb0;color:#172f55;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.fsp-matrix .fsp-classification-badge.fsp-classification-review{background:#e9eef6;color:#173c6b;border-color:#becce0}
.fsp-matrix .fsp-classification-note{font-size:12px;color:#ecf1f8;line-height:1.35;max-width:560px}
@media(max-width:600px){.fsp-matrix .fsp-classification{margin:5px 0 12px}.fsp-matrix .fsp-classification-badge{font-size:11px!important;padding:7px 10px;letter-spacing:0}}
@media print{.fsp-matrix .fsp-classification-badge{border:1px solid #667!important;color:#111!important;background:#eee!important}}


/* v3.2.3 — Gold-dot eyebrow matched to the approved label reference.
   Explicit children prevent Divi typography, pseudo-elements and icon fonts
   from changing the tiny uppercase wordmark. Applies to all nine catalogs. */
.fsp-matrix .fsp-hero .fsp-eyebrow{
    display:inline-flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:auto!important;
    gap:9px!important;
    margin:0 0 10px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:#f4d78f!important;
    font-family:inherit!important;
    font-size:10px!important;
    font-weight:800!important;
    letter-spacing:2.2px!important;
    line-height:1.4!important;
    text-align:left!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    vertical-align:middle!important;
    white-space:normal;
}
.fsp-matrix .fsp-hero .fsp-eyebrow .fsp-eyebrow-text{
    display:inline-block!important;
    flex:0 1 auto!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    color:#f4d78f!important;
    font:inherit!important;
    font-size:inherit!important;
    font-weight:inherit!important;
    letter-spacing:inherit!important;
    line-height:inherit!important;
    text-transform:uppercase!important;
    text-shadow:none!important;
}
.fsp-matrix .fsp-hero .fsp-eyebrow .fsp-gold-dot{
    display:inline-block!important;
    flex:0 0 7px!important;
    width:7px!important;
    min-width:7px!important;
    height:7px!important;
    min-height:7px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:50%!important;
    background:#be9a3d!important;
    box-shadow:none!important;
}
/* Do not let decorative Divi icons appear around the approved eyebrow. */
.fsp-matrix .fsp-hero .fsp-eyebrow::before,
.fsp-matrix .fsp-hero .fsp-eyebrow::after{
    content:none!important;
    display:none!important;
}

/* v3.2.5 — Two adjacent gold eyebrow labels for the eight 503A catalogs.
   Research Peptides continues to show only PROFESSIONAL USE ONLY by default.
   Each line remains distinct and readable in Divi and narrow phones. */
.fsp-matrix .fsp-hero .fsp-eyebrow{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
    max-width:100%!important;
    column-gap:13px!important;
    row-gap:6px!important;
    overflow-wrap:anywhere!important;
}
.fsp-matrix .fsp-hero .fsp-eyebrow .fsp-eyebrow-primary{
    display:inline-flex!important;align-items:center!important;gap:9px!important;
    min-width:0!important;max-width:100%!important;
}
.fsp-matrix .fsp-hero .fsp-eyebrow .fsp-eyebrow-divider{
    display:inline-block!important;flex:0 0 1px!important;
    width:1px!important;height:13px!important;
    background:rgba(244,215,143,.68)!important;
    margin:0!important;
}
.fsp-matrix .fsp-hero .fsp-eyebrow .fsp-eyebrow-additional{
    display:inline-block!important;min-width:0!important;max-width:100%!important;
    color:#f4d78f!important;font:inherit!important;font-size:inherit!important;
    font-weight:inherit!important;letter-spacing:inherit!important;
    line-height:inherit!important;text-transform:uppercase!important;
    overflow-wrap:anywhere!important;
}
@media(max-width:650px){
    .fsp-matrix .fsp-hero .fsp-eyebrow{row-gap:4px!important;}
    .fsp-matrix .fsp-hero .fsp-eyebrow .fsp-eyebrow-divider{display:none!important;}
    .fsp-matrix .fsp-hero .fsp-eyebrow .fsp-eyebrow-additional{flex:0 1 100%!important;padding-left:16px!important;}
}

/* v3.2.6: the floating pricing header must remain below Divi menus/dropdowns. */
body #main-header, body #top-header, body .et-l--header {z-index:1000!important}
body .et-l--header .et_pb_sticky--active {z-index:1001!important}

/* v3.2.7 — Mobile floating arrow bar + table headings form ONE sticky block.
   The original arrow bar reserves its page position but is hidden when cloned.
   Portal buttons must stay clickable even though the duplicate header is visual only. */
@media screen and (max-width:800px){
  .fsp-matrix.fsp-sticky-enabled.fsp-sticky-cloned > .fsp-mobile-pager{
    visibility:hidden!important;
  }
  .fsp-matrix.fsp-sticky-portal.fsp-sticky-mobile .fsp-sticky-pager{
    display:flex!important;
    visibility:visible!important;
    pointer-events:auto!important;
    margin:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  .fsp-matrix.fsp-sticky-portal.fsp-sticky-mobile .fsp-sticky-pager button{
    pointer-events:auto!important;
    touch-action:manipulation;
  }
  .fsp-matrix.fsp-sticky-portal.fsp-sticky-mobile .fsp-table{
    pointer-events:none!important;
  }
}
@media print{
  .fsp-matrix.fsp-sticky-enabled.fsp-sticky-cloned > .fsp-mobile-pager{
    visibility:visible!important;
  }
}

/* 3.4.0: standard price receives the blue highlight; savings/unit remains a neutral cell.
   Break-even data stays in WordPress but its public table column is omitted. */
.fsp-matrix .fsp-table td[data-col="saving_unit"],
.fsp-matrix .fsp-table thead th[data-col="saving_unit"]{
 background:transparent!important;color:var(--fsp-body-text)!important;
 box-shadow:none!important;border-top:1px solid var(--fsp-border)!important;
 font-weight:600!important;font-size:inherit!important;
}
.fsp-matrix .fsp-table thead th[data-col="saving_unit"]{background:var(--fsp-head-bg)!important;}
.fsp-matrix .fsp-table tbody td[data-col="standard"]{
 background:var(--fsp-save-bg)!important;color:var(--fsp-save-text)!important;
 font-weight:850!important;
 box-shadow:inset 2px 0 0 rgba(61,135,196,.48),inset -2px 0 0 rgba(61,135,196,.48)!important;
}
.fsp-matrix .fsp-table thead th[data-col="standard"]{
 background:var(--fsp-save-bg)!important;border-top:3px solid #5e9bca!important;
 box-shadow:inset 2px 0 0 rgba(61,135,196,.48),inset -2px 0 0 rgba(61,135,196,.48)!important;
 color:var(--fsp-save-text)!important;
}
.fsp-matrix.fsp-sticky-enabled .fsp-table thead th[data-col="saving_unit"]{
 box-shadow:0 2px 0 var(--fsp-border)!important;
}
.fsp-matrix.fsp-sticky-enabled .fsp-table thead th[data-col="standard"]{
 box-shadow:inset 2px 0 0 rgba(61,135,196,.48),inset -2px 0 0 rgba(61,135,196,.48),0 2px 0 #5e9bca!important;
}
.fsp-matrix .fsp-table tbody tr.fsp-last-visible > td[data-col="standard"]{border-bottom-color:#5e9bca!important;}
.fsp-matrix .fsp-table tbody tr.fsp-last-visible > td[data-col="saving_unit"]{border-bottom-color:#bac9da!important;}
.fsp-matrix .fsp-table tbody tr:hover td:not(.fsp-member-price):not(.fsp-standard-price){background:#ecf2f7!important}
@media (min-width:801px){
 .fsp-matrix:not(.fsp-weight-loss) .fsp-table col.fsp-col-name{width:33%}
 .fsp-matrix:not(.fsp-weight-loss) .fsp-table col.fsp-col-dose{width:13%}
 .fsp-matrix:not(.fsp-weight-loss) .fsp-table col.fsp-col-member{width:14%}
 .fsp-matrix:not(.fsp-weight-loss) .fsp-table col.fsp-col-percent{width:12%}
 .fsp-matrix:not(.fsp-weight-loss) .fsp-table col.fsp-col-standard{width:15%}
 .fsp-matrix:not(.fsp-weight-loss) .fsp-table col.fsp-col-save{width:13%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-name{width:26%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-form{width:11%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-dose{width:14%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-member{width:12%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-percent{width:10%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-standard{width:14%}
 .fsp-matrix.fsp-weight-loss .fsp-table col.fsp-col-save{width:13%}
}
/* Match the legacy body-cell rule's specificity so the old blue Save/Unit
   treatment never survives the theme cascade. */
.fsp-matrix .fsp-table tbody td.fsp-saving-unit{
  background:transparent!important;color:var(--fsp-body-text)!important;
  font-weight:600!important;font-size:inherit!important;box-shadow:none!important;
}
.fsp-matrix .fsp-table tbody tr:hover td.fsp-saving-unit{background:#ecf2f7!important}
