/* ==========================================================
   PerfectFit v11 — Conversion, features, accessibility
   ==========================================================
   Loaded after the inline styles in PerfectFit.html so these
   rules cleanly override / extend everything above.
   ========================================================== */

/* ---------- Cookie consent banner ---------- */
.pf-cookie{
  position:fixed;bottom:0;left:0;right:0;z-index:9000;
  background:#fff;border-top:1px solid var(--pf-hair);
  box-shadow:0 -8px 30px -10px rgba(45,42,40,.18);
  padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px));
  transform:translateY(100%);transition:transform .35s ease;
  font-family:'DM Sans',sans-serif;
}
.pf-cookie.open{transform:translateY(0)}
.pf-cookie-inner{
  max-width:1080px;margin:0 auto;
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;
}
.pf-cookie-text{flex:1;min-width:260px;font-size:.82rem;color:var(--pf-ink-soft);line-height:1.5}
.pf-cookie-text strong{color:var(--pf-ink);font-weight:700}
.pf-cookie-text a{color:var(--deep-rose);text-decoration:none;font-weight:600;border-bottom:1px solid var(--pf-hair);padding-bottom:1px}
.pf-cookie-actions{display:flex;gap:8px;flex-shrink:0}
.pf-cookie-btn{
  padding:10px 18px;border-radius:8px;font-weight:700;font-size:.82rem;
  cursor:pointer;border:1.5px solid var(--pf-hair);background:#fff;color:var(--pf-ink);
  font-family:'DM Sans',sans-serif;transition:all .15s;
}
.pf-cookie-btn:hover{border-color:var(--deep-rose);color:var(--deep-rose)}
.pf-cookie-btn.primary{background:var(--deep-rose);color:#fff;border-color:var(--deep-rose)}
.pf-cookie-btn.primary:hover{background:var(--dark-rose);border-color:var(--dark-rose);color:#fff}
@media (max-width:600px){
  .pf-cookie-actions{width:100%;justify-content:stretch}
  .pf-cookie-btn{flex:1}
}

/* ---------- Sticky "Find My Size" CTA ---------- */
.pf-sticky-cta{
  position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0px));right:16px;z-index:200;
  display:flex;align-items:center;gap:8px;
  padding:12px 18px;background:var(--deep-rose);color:#fff;
  border-radius:24px;font-family:'DM Sans',sans-serif;font-weight:700;font-size:.84rem;
  border:none;cursor:pointer;letter-spacing:.2px;
  box-shadow:0 8px 22px -6px rgba(58,48,44,.4),0 2px 6px rgba(58,48,44,.18);
  opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity .25s ease,transform .25s ease,background .15s;
}
.pf-sticky-cta.show{opacity:1;transform:translateY(0);pointer-events:auto}
.pf-sticky-cta:hover{background:var(--dark-rose);transform:translateY(-2px)}
.pf-sticky-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
@media (min-width:760px){
  .pf-sticky-cta{bottom:24px;right:24px;padding:14px 22px;font-size:.88rem}
}

/* ---------- Region auto-detect notice ---------- */
.pf-region-notice{
  background:linear-gradient(180deg,#FFF8F2,#FFF3EA);
  border:1px solid #EFDFD4;
  border-radius:12px;padding:10px 14px;
  display:flex;align-items:center;gap:10px;
  font-size:.78rem;color:var(--pf-ink-soft);
  margin-bottom:10px;
}
.pf-region-notice-flag{font-size:1.1rem}
.pf-region-notice-action{margin-left:auto;font-size:.74rem;color:var(--deep-rose);font-weight:700;cursor:pointer;text-decoration:none;letter-spacing:.2px}

/* ---------- Brand match score chip on brand wall ---------- */
.pf-brand-mark.has-match{padding:14px 8px 18px}
.pf-brand-match{
  position:absolute;left:50%;bottom:6px;transform:translateX(-50%);
  font-size:.6rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  color:var(--sage,#5A7A50);
  background:rgba(143,165,133,.16);
  padding:2px 7px;border-radius:8px;
  font-family:'DM Sans',sans-serif;
  white-space:nowrap;
}
.pf-brand-match.size{color:var(--deep-rose);background:rgba(212,144,126,.12)}

/* ---------- Skeleton shimmer ---------- */
.pf-skeleton{
  background:linear-gradient(90deg,#F3EBE5 0%,#F8F1EC 40%,#F3EBE5 80%);
  background-size:200% 100%;
  animation:pfShim 1.2s ease-in-out infinite;
  border-radius:8px;
}
@keyframes pfShim{0%{background-position:200% 0}100%{background-position:-200% 0}}
.pf-skeleton-row{height:14px;margin:6px 0;border-radius:6px}
.pf-skeleton-row.lg{height:24px}
.pf-skeleton-row.xl{height:40px;border-radius:10px}
.pf-result-skeleton{padding:18px;display:flex;flex-direction:column;gap:8px;align-items:center}
.pf-result-skeleton .pf-skel-size{width:140px;height:60px}
.pf-result-skeleton .pf-skel-line{width:80%;height:12px}
.pf-result-skeleton .pf-skel-line.short{width:50%}

/* ---------- Glossary tooltip (inline definitions) ---------- */
.pf-glossary{
  border-bottom:1px dashed var(--deep-rose);
  cursor:help;
  position:relative;
  color:inherit;
}
.pf-glossary[aria-expanded="true"]{color:var(--deep-rose)}
.pf-tooltip{
  position:absolute;
  bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:var(--pf-ink);color:#fff;
  padding:10px 14px;border-radius:8px;
  font-size:.78rem;line-height:1.45;font-weight:400;
  width:240px;text-align:left;
  letter-spacing:.1px;
  box-shadow:0 8px 20px -6px rgba(0,0,0,.3);
  z-index:500;pointer-events:none;
  opacity:0;transform:translateX(-50%) translateY(4px);
  transition:opacity .15s,transform .15s;
}
.pf-tooltip::after{
  content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:var(--pf-ink);
}
.pf-glossary[aria-expanded="true"] .pf-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- Modals (fit card, compare) ---------- */
.pf-modal-backdrop{
  position:fixed;inset:0;z-index:9500;
  background:rgba(45,42,40,.45);backdrop-filter:blur(4px);
  display:none;align-items:center;justify-content:center;padding:20px;
  opacity:0;transition:opacity .25s;
}
.pf-modal-backdrop.open{display:flex;opacity:1}
.pf-modal{
  background:var(--pf-page);
  border-radius:16px;
  padding:24px;
  max-width:520px;width:100%;
  max-height:90vh;overflow-y:auto;
  font-family:'DM Sans',sans-serif;
  position:relative;
  transform:translateY(8px) scale(.98);transition:transform .25s ease;
}
.pf-modal-backdrop.open .pf-modal{transform:translateY(0) scale(1)}
.pf-modal-close{
  position:absolute;top:12px;right:12px;
  width:32px;height:32px;border-radius:50%;border:none;
  background:transparent;color:var(--pf-ink-muted);cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:1.4rem;line-height:1;
}
.pf-modal-close:hover{background:var(--pf-hair);color:var(--pf-ink)}
.pf-modal-h{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:600;letter-spacing:-.4px;color:var(--pf-ink);margin-bottom:6px}
.pf-modal-sub{font-size:.86rem;color:var(--pf-ink-soft);line-height:1.55;margin-bottom:18px}

/* Fit card */
.pf-fitcard{
  background:linear-gradient(135deg,#3A302C 0%,#5A4641 50%,var(--dark-rose) 100%);
  color:#fff;border-radius:16px;padding:28px 24px;text-align:center;
  position:relative;overflow:hidden;
}
.pf-fitcard::before{
  content:'';position:absolute;top:-50%;right:-30%;width:80%;height:200%;
  background:radial-gradient(ellipse,rgba(212,144,126,.35),transparent 60%);
  pointer-events:none;
}
.pf-fitcard-brand{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;letter-spacing:-.2px;margin-bottom:18px;position:relative}
.pf-fitcard-brand em{font-style:italic;color:#FFC8B5;font-weight:500}
.pf-fitcard-eyebrow{font-size:.66rem;letter-spacing:2px;text-transform:uppercase;opacity:.65;font-weight:600;position:relative}
.pf-fitcard-size{font-family:'Cormorant Garamond',serif;font-size:4rem;font-weight:600;line-height:1;letter-spacing:-1.5px;margin-top:6px;position:relative}
.pf-fitcard-conv{font-size:.84rem;opacity:.75;margin-top:6px;font-variant-numeric:tabular-nums;position:relative}
.pf-fitcard-sister{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);position:relative}
.pf-fitcard-sister-label{font-size:.62rem;letter-spacing:1.8px;text-transform:uppercase;opacity:.6;font-weight:700;margin-bottom:8px}
.pf-fitcard-sister-tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.pf-fitcard-sister-tags span{padding:4px 10px;background:rgba(255,255,255,.14);border-radius:14px;font-size:.78rem;font-weight:600;letter-spacing:.2px}
.pf-fitcard-shape{margin-top:14px;font-size:.76rem;opacity:.75;position:relative;font-style:italic}
.pf-fitcard-foot{margin-top:20px;font-size:.62rem;letter-spacing:2px;text-transform:uppercase;opacity:.5;font-weight:700;position:relative}

.pf-fitcard-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.pf-fitcard-btn{
  padding:11px 14px;border-radius:10px;border:1.5px solid var(--pf-hair);background:#fff;color:var(--pf-ink);
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:6px;letter-spacing:.2px;
  transition:all .15s;
}
.pf-fitcard-btn:hover{border-color:var(--deep-rose);color:var(--deep-rose)}
.pf-fitcard-btn.primary{background:var(--deep-rose);color:#fff;border-color:var(--deep-rose)}
.pf-fitcard-btn.primary:hover{background:var(--dark-rose);border-color:var(--dark-rose);color:#fff}
.pf-fitcard-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Compare modal */
.pf-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.pf-compare-col{
  background:#fff;border:1px solid var(--pf-hair);border-radius:12px;padding:14px;
}
.pf-compare-col-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--pf-ink);margin-bottom:6px}
.pf-compare-row{font-size:.78rem;color:var(--pf-ink-soft);padding:8px 0;border-bottom:1px solid var(--pf-hair);line-height:1.4}
.pf-compare-row:last-child{border-bottom:none}
.pf-compare-row strong{display:block;font-size:.66rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--pf-ink-muted);font-weight:700;margin-bottom:3px}
.pf-compare-pickers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.pf-compare-picker{
  padding:10px 12px;border:1.5px solid var(--pf-hair);border-radius:10px;
  font-family:'DM Sans',sans-serif;font-size:.82rem;color:var(--pf-ink);background:#fff;width:100%;cursor:pointer;
}
.pf-compare-picker:focus{outline:none;border-color:var(--deep-rose)}

/* ---------- Search on Guide page ---------- */
.pf-guide-search{
  margin-bottom:14px;position:relative;
}
.pf-guide-search input{
  width:100%;padding:11px 14px 11px 38px;
  border:1.5px solid var(--pf-hair);border-radius:10px;
  font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--pf-ink);
  background:var(--pf-page);outline:none;letter-spacing:.1px;
  transition:border-color .15s,box-shadow .15s;
}
.pf-guide-search input:focus{border-color:var(--deep-rose);box-shadow:0 0 0 3px rgba(181,104,90,.12)}
.pf-guide-search input::placeholder{color:var(--pf-ink-muted);font-weight:400}
.pf-guide-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--pf-ink-muted);fill:none;stroke-width:1.8;stroke-linecap:round}
.pf-search-hide{display:none !important}
.pf-search-highlight{background:rgba(212,144,126,.18);padding:0 2px;border-radius:3px}

/* ---------- Newsletter signup card ---------- */
.pf-newsletter{
  margin-top:20px;
  background:linear-gradient(180deg,#FFFBF8,#fff);
  border:1px solid var(--pf-hair);
  border-radius:14px;padding:18px 20px;
}
.pf-newsletter-h{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;color:var(--pf-ink);letter-spacing:-.2px;margin-bottom:4px}
.pf-newsletter-b{font-size:.82rem;color:var(--pf-ink-soft);line-height:1.55;margin-bottom:12px}
.pf-newsletter-form{display:flex;gap:6px}
.pf-newsletter-form input{
  flex:1;padding:11px 14px;border:1.5px solid var(--pf-hair);border-radius:10px;
  font-family:'DM Sans',sans-serif;font-size:.86rem;color:var(--pf-ink);outline:none;
}
.pf-newsletter-form input:focus{border-color:var(--deep-rose)}
.pf-newsletter-form button{
  padding:11px 16px;background:var(--deep-rose);color:#fff;border:none;border-radius:10px;
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;letter-spacing:.2px;
}
.pf-newsletter-form button:hover{background:var(--dark-rose)}
.pf-newsletter-foot{font-size:.7rem;color:var(--pf-ink-muted);margin-top:8px;line-height:1.5}
.pf-newsletter-ok{font-size:.84rem;color:var(--sage,#5A7A50);font-weight:600;padding:10px 0}

/* Decline / dismiss */
.pf-newsletter-decline{
  width:28px;height:28px;border-radius:50%;border:none;background:transparent;
  color:var(--pf-ink-muted);cursor:pointer;font-size:1.2rem;line-height:1;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-family:inherit;
}
.pf-newsletter-decline:hover{background:var(--pf-hair);color:var(--pf-ink)}

.pf-newsletter-loading{
  padding:14px;text-align:center;font-size:.8rem;color:var(--pf-ink-muted);
  border:1px dashed var(--pf-hair);border-radius:10px;
}

/* EmailOctopus form normalisation — match our visual */
#pfNewsletterForm form{display:block;margin:0}
#pfNewsletterForm input[type="text"],
#pfNewsletterForm input[type="email"]{
  width:100% !important;
  padding:11px 14px !important;
  border:1.5px solid var(--pf-hair) !important;
  border-radius:10px !important;
  font-family:'DM Sans',sans-serif !important;
  font-size:.86rem !important;
  color:var(--pf-ink) !important;
  background:var(--pf-page) !important;
  outline:none !important;
  margin-bottom:8px !important;
  box-shadow:none !important;
  letter-spacing:.1px;
}
#pfNewsletterForm input:focus{border-color:var(--deep-rose) !important}
#pfNewsletterForm button,
#pfNewsletterForm input[type="submit"]{
  width:100% !important;
  padding:11px 16px !important;
  background:var(--deep-rose) !important;
  color:#fff !important;
  border:none !important;
  border-radius:10px !important;
  font-family:'DM Sans',sans-serif !important;
  font-size:.86rem !important;
  font-weight:700 !important;
  letter-spacing:.3px !important;
  cursor:pointer !important;
  box-shadow:none !important;
  text-transform:none !important;
}
#pfNewsletterForm button:hover,
#pfNewsletterForm input[type="submit"]:hover{background:var(--dark-rose) !important}
#pfNewsletterForm label{
  display:block !important;
  font-size:.74rem !important;
  font-weight:600 !important;
  color:var(--pf-ink-soft) !important;
  margin-bottom:4px !important;
  letter-spacing:.1px;
}
/* EmailOctopus often wraps in divs we want neutral */
#pfNewsletterForm > div{margin-bottom:0 !important}
body[data-pf-theme="dark"] #pfNewsletterForm input{background:#1A1614 !important;color:#F4EDE7 !important;border-color:#3A2F2A !important}

/* ---------- Remeasure banner ---------- */
.pf-remeasure-banner{
  background:linear-gradient(135deg,#FFF8F2,#FFF3EA);
  border:1px solid #EFDFD4;border-radius:14px;
  padding:16px 18px;margin-bottom:16px;
  display:flex;gap:14px;align-items:center;
}
.pf-remeasure-banner svg{width:22px;height:22px;stroke:var(--deep-rose);fill:none;stroke-width:1.6;flex-shrink:0}
.pf-remeasure-banner-body{flex:1;font-size:.84rem;color:var(--pf-ink);line-height:1.5}
.pf-remeasure-banner-body strong{font-weight:700}
.pf-remeasure-banner button{
  padding:8px 14px;border:none;border-radius:8px;background:var(--deep-rose);color:#fff;
  font-family:'DM Sans',sans-serif;font-weight:700;font-size:.74rem;letter-spacing:.4px;text-transform:uppercase;cursor:pointer;
}
.pf-remeasure-banner button:hover{background:var(--dark-rose)}
.pf-remeasure-banner .pf-dismiss{
  background:transparent;color:var(--pf-ink-muted);
  font-size:.7rem;font-weight:600;text-transform:none;letter-spacing:.2px;
  padding:6px 8px;
}
.pf-remeasure-banner .pf-dismiss:hover{background:var(--pf-hair);color:var(--pf-ink)}

/* ============================================================
   ACCESSIBILITY — settings panel + theme/contrast/CB/text/motion
   ============================================================ */

/* Settings entry button (floating, bottom-left) */
.pf-a11y-fab{
  position:fixed;left:14px;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:300;
  width:44px;height:44px;border-radius:50%;
  background:#fff;border:1px solid var(--pf-hair);
  color:var(--pf-ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(45,42,40,.12);
  transition:transform .15s,box-shadow .15s;
}
.pf-a11y-fab svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pf-a11y-fab:hover{transform:scale(1.06);box-shadow:0 6px 16px rgba(45,42,40,.18)}
@media (min-width:760px){
  .pf-a11y-fab{bottom:24px;left:24px;width:48px;height:48px}
}

/* Settings panel */
.pf-a11y-panel{
  position:fixed;left:14px;bottom:140px;z-index:9100;
  width:320px;max-width:calc(100vw - 28px);
  background:#fff;border-radius:16px;border:1px solid var(--pf-hair);
  box-shadow:0 20px 50px -10px rgba(45,42,40,.25),0 6px 14px rgba(45,42,40,.08);
  font-family:'DM Sans',sans-serif;
  display:none;overflow:hidden;
}
.pf-a11y-panel.open{display:block;animation:pfFadeUp .25s ease}
@media (min-width:760px){.pf-a11y-panel{bottom:88px;left:24px}}
@keyframes pfFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.pf-a11y-head{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--pf-hair)}
.pf-a11y-title{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:600;letter-spacing:-.3px;color:var(--pf-ink)}
.pf-a11y-close{width:24px;height:24px;border-radius:50%;border:none;background:var(--pf-hair);color:var(--pf-ink-soft);cursor:pointer;font-size:.9rem;line-height:1;display:flex;align-items:center;justify-content:center}
.pf-a11y-body{padding:14px 16px;max-height:65vh;overflow-y:auto}
.pf-a11y-section{margin-bottom:14px}
.pf-a11y-section:last-child{margin-bottom:0}
.pf-a11y-label{font-size:.7rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--pf-ink-muted);font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}
.pf-a11y-opts{display:flex;gap:4px;flex-wrap:wrap}
.pf-a11y-opt{flex:1;min-width:0;padding:7px 8px;border:1px solid var(--pf-hair);border-radius:8px;background:#fff;cursor:pointer;font-size:.74rem;font-weight:600;color:var(--pf-ink-soft);text-align:center;font-family:'DM Sans',sans-serif;transition:all .15s}
.pf-a11y-opt:hover{border-color:var(--deep-rose)}
.pf-a11y-opt.active{border-color:var(--deep-rose);background:rgba(212,144,126,.08);color:var(--deep-rose)}
.pf-a11y-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}
.pf-a11y-row-label{font-size:.84rem;color:var(--pf-ink);font-weight:600}
.pf-a11y-toggle{position:relative;width:36px;height:20px;background:var(--pf-hair);border-radius:20px;cursor:pointer;transition:background .2s;flex-shrink:0}
.pf-a11y-toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:transform .2s}
.pf-a11y-toggle.on{background:var(--deep-rose)}
.pf-a11y-toggle.on::after{transform:translateX(16px)}
.pf-a11y-reset{
  margin-top:10px;width:100%;padding:8px;border:1px dashed var(--pf-hair);background:transparent;
  border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.74rem;color:var(--pf-ink-muted);font-weight:600;cursor:pointer;
}
.pf-a11y-reset:hover{border-color:var(--deep-rose);color:var(--deep-rose)}

/* Skip-to-content link */
.pf-skip{
  position:absolute;top:-100px;left:0;
  background:var(--deep-rose);color:#fff;padding:10px 16px;
  font-weight:700;font-size:.84rem;z-index:10000;
  text-decoration:none;border-radius:0 0 8px 0;
}
.pf-skip:focus{top:0}

/* === Dark mode === */
body[data-pf-theme="dark"]{
  --pf-paper:#1A1614;
  --pf-page:#231D1A;
  --pf-ink:#F4EDE7;
  --pf-ink-soft:#C8B8AF;
  --pf-ink-muted:#8A7A72;
  --pf-hair:#3A2F2A;
  --pf-hair-strong:#4A3F38;
}
body[data-pf-theme="dark"] .pf-cookie{background:#231D1A;border-top-color:#3A2F2A}
body[data-pf-theme="dark"] .pf-modal{background:#231D1A}
body[data-pf-theme="dark"] .pf-newsletter-form input,
body[data-pf-theme="dark"] .pf-guide-search input,
body[data-pf-theme="dark"] .pf-compare-picker{background:#1A1614;color:#F4EDE7;border-color:#3A2F2A}
body[data-pf-theme="dark"] .pf-a11y-panel{background:#231D1A}
body[data-pf-theme="dark"] .pf-a11y-opt,
body[data-pf-theme="dark"] .pf-cookie-btn{background:#1A1614;color:#F4EDE7;border-color:#3A2F2A}
body[data-pf-theme="dark"] .pf-topnav{background:rgba(26,22,20,.88)}
body[data-pf-theme="dark"] .bottom-nav{background:rgba(35,29,26,.94)}
body[data-pf-theme="dark"] .pf-sticky-cta{box-shadow:0 8px 22px -6px rgba(0,0,0,.5)}
body[data-pf-theme="dark"] .pf-tooltip{background:#F4EDE7;color:#1A1614}
body[data-pf-theme="dark"] .pf-tooltip::after{border-top-color:#F4EDE7}
body[data-pf-theme="dark"] .pf-skeleton{background:linear-gradient(90deg,#2B2421 0%,#36302B 40%,#2B2421 80%)}
body[data-pf-theme="dark"] .pf-region-notice,
body[data-pf-theme="dark"] .pf-remeasure-banner{background:linear-gradient(135deg,#2B2421,#36302B);border-color:#3A2F2A}
body[data-pf-theme="dark"] .pf-brands-tag{color:var(--pf-ink-muted)}
body[data-pf-theme="dark"] .pf-quick-icon,
body[data-pf-theme="dark"] .pf-why-icon,
body[data-pf-theme="dark"] #homeCTA .pf-action-icon,
body[data-pf-theme="dark"] .pf-fitcard-btn:not(.primary){background:#2B2421}
body[data-pf-theme="dark"] .pf-fitcard-btn:not(.primary){color:#F4EDE7;border-color:#3A2F2A}

/* Logo swap for dark mode */
body[data-pf-theme="dark"] .pf-logo-light{display:none !important}
body[data-pf-theme="dark"] .pf-logo-dark{display:block !important}

/* === Comprehensive dark-mode coverage for original components === */
body[data-pf-theme="dark"] .card,
body[data-pf-theme="dark"] .visual-guide,
body[data-pf-theme="dark"] .m-step,
body[data-pf-theme="dark"] .guide-tip,
body[data-pf-theme="dark"] .shape-detail-inner,
body[data-pf-theme="dark"] .btype-detail-inner,
body[data-pf-theme="dark"] .mat-card,
body[data-pf-theme="dark"] .brand-detail,
body[data-pf-theme="dark"] .shape-svg-wrap,
body[data-pf-theme="dark"] .style-rec,
body[data-pf-theme="dark"] .btype-feat,
body[data-pf-theme="dark"] .mat-best,
body[data-pf-theme="dark"] .shop-card{
  background:#231D1A !important;
  border-color:#3A2F2A !important;
  color:#F4EDE7;
}
body[data-pf-theme="dark"] .visual-guide{
  background:linear-gradient(145deg,#2B2421,#36302B) !important;
}
body[data-pf-theme="dark"] .guide-tip{
  background:#1A1614 !important;
}
body[data-pf-theme="dark"] .card-title,
body[data-pf-theme="dark"] .input-label,
body[data-pf-theme="dark"] .m-step-text,
body[data-pf-theme="dark"] .m-step-text strong,
body[data-pf-theme="dark"] .shape-name,
body[data-pf-theme="dark"] .btype-name,
body[data-pf-theme="dark"] .mat-name,
body[data-pf-theme="dark"] .shop-name,
body[data-pf-theme="dark"] .style-name,
body[data-pf-theme="dark"] .brand-detail-size{color:#F4EDE7 !important}
body[data-pf-theme="dark"] .card-subtitle,
body[data-pf-theme="dark"] .shape-desc,
body[data-pf-theme="dark"] .btype-tagline,
body[data-pf-theme="dark"] .mat-type,
body[data-pf-theme="dark"] .shop-desc,
body[data-pf-theme="dark"] .style-why,
body[data-pf-theme="dark"] .mat-desc,
body[data-pf-theme="dark"] .shape-detail-text,
body[data-pf-theme="dark"] .btype-detail-text,
body[data-pf-theme="dark"] .result-standard{color:#C8B8AF !important}
body[data-pf-theme="dark"] .input-field{
  background:#1A1614 !important;
  color:#F4EDE7 !important;
  border-color:#3A2F2A !important;
}
body[data-pf-theme="dark"] .input-field:focus{border-color:var(--deep-rose) !important}
body[data-pf-theme="dark"] .input-field::placeholder{color:#8A7A72 !important}
body[data-pf-theme="dark"] .unit-toggle{background:#2B2421 !important}
body[data-pf-theme="dark"] .unit-btn{color:#C8B8AF}
body[data-pf-theme="dark"] .unit-btn.active{background:var(--deep-rose);color:#fff}
body[data-pf-theme="dark"] .step-dot:not(.active):not(.done){background:#3A2F2A;color:#8A7A72}
body[data-pf-theme="dark"] .step-line{background:#3A2F2A}
body[data-pf-theme="dark"] .step-line.done{background:var(--sage,#8FA585)}
body[data-pf-theme="dark"] .tab-bar{background:#2B2421}
body[data-pf-theme="dark"] .tab-btn{color:#C8B8AF}
body[data-pf-theme="dark"] .tab-btn.active{background:#1A1614;color:var(--deep-rose)}
body[data-pf-theme="dark"] .country-chip,
body[data-pf-theme="dark"] .brand-chip,
body[data-pf-theme="dark"] .region-chip,
body[data-pf-theme="dark"] .sister-tag{background:#1A1614 !important;border-color:#3A2F2A !important;color:#C8B8AF !important}
body[data-pf-theme="dark"] .country-chip.active,
body[data-pf-theme="dark"] .brand-chip.active,
body[data-pf-theme="dark"] .region-chip.active{border-color:var(--deep-rose) !important;color:var(--deep-rose) !important;background:rgba(212,144,126,.08) !important}
body[data-pf-theme="dark"] .size-table th{color:#C8B8AF;border-bottom-color:#3A2F2A}
body[data-pf-theme="dark"] .size-table td{color:#F4EDE7;border-bottom-color:#3A2F2A}
body[data-pf-theme="dark"] .size-table tr.hl td{background:rgba(212,144,126,.1) !important;color:var(--deep-rose) !important}
body[data-pf-theme="dark"] .result-hero{background:linear-gradient(135deg,#2B2421,#3A302C) !important}
body[data-pf-theme="dark"] .result-size-label{color:#C8B8AF}
body[data-pf-theme="dark"] .sister-box{background:#2B2421 !important;color:#F4EDE7}
body[data-pf-theme="dark"] .sister-title{color:#F4EDE7}
body[data-pf-theme="dark"] .sister-desc{color:#C8B8AF}
body[data-pf-theme="dark"] .btn-secondary{background:transparent !important;color:var(--deep-rose) !important;border-color:#3A2F2A !important}
body[data-pf-theme="dark"] .brand-note{background:#2B2421 !important;color:#F4EDE7}
body[data-pf-theme="dark"] .brand-note strong{color:#F4EDE7}
body[data-pf-theme="dark"] .edu-card{background:#2B2421 !important}
body[data-pf-theme="dark"] .edu-card.rose,
body[data-pf-theme="dark"] .edu-card.sage,
body[data-pf-theme="dark"] .edu-card.lavender,
body[data-pf-theme="dark"] .edu-card.sky,
body[data-pf-theme="dark"] .edu-card.gold{background:linear-gradient(135deg,#2B2421,#36302B) !important}
body[data-pf-theme="dark"] .edu-title{color:#F4EDE7}
body[data-pf-theme="dark"] .edu-text{color:#C8B8AF}
body[data-pf-theme="dark"] .edu-text strong{color:#F4EDE7}
body[data-pf-theme="dark"] .avoid-box{background:rgba(199,80,80,.12) !important;color:#F4EDE7}
body[data-pf-theme="dark"] .avoid-box strong{color:#F4EDE7}
body[data-pf-theme="dark"] .btype-pro{background:rgba(143,165,133,.18) !important;color:#D4E8C8}
body[data-pf-theme="dark"] .btype-con{background:rgba(199,80,80,.18) !important;color:#F0C8C8}
body[data-pf-theme="dark"] .mat-best{background:#1A1614 !important;color:#C8B8AF}
body[data-pf-theme="dark"] .mat-bar-bg{background:#3A2F2A}
body[data-pf-theme="dark"] .shape-header{background:transparent}
body[data-pf-theme="dark"] .shape-header:hover,
body[data-pf-theme="dark"] .shape-header.active{background:rgba(212,144,126,.08)}
body[data-pf-theme="dark"] .shape-item,
body[data-pf-theme="dark"] .btype-item{border-bottom-color:#3A2F2A}
body[data-pf-theme="dark"] .shape-svg-wrap.active{background:rgba(212,144,126,.08)}
body[data-pf-theme="dark"] .shop-logo{background:rgba(212,144,126,.18) !important;color:var(--deep-rose) !important}
body[data-pf-theme="dark"] .shop-tag{background:rgba(143,165,133,.18) !important;color:#A8C898}
body[data-pf-theme="dark"] .shop-arrow{color:#8A7A72}
body[data-pf-theme="dark"] .shop-featured{background:linear-gradient(135deg,#231D1A,#2B2421) !important;border-color:var(--deep-rose) !important}
body[data-pf-theme="dark"] .shop-featured .shop-logo{background:var(--deep-rose) !important;color:#fff !important}
body[data-pf-theme="dark"] .disclaimer{color:#8A7A72}
body[data-pf-theme="dark"] .back-btn{background:rgba(35,29,26,.95) !important;border-color:#3A2F2A !important;color:var(--deep-rose) !important}
body[data-pf-theme="dark"] .store-mode-fab{background:linear-gradient(135deg,var(--deep-rose),var(--dark-rose)) !important}

/* Hardcoded inline background-fff cleanup — common containers */
body[data-pf-theme="dark"] [style*="background:#fff"],
body[data-pf-theme="dark"] [style*="background: #fff"],
body[data-pf-theme="dark"] [style*="background:white"],
body[data-pf-theme="dark"] [style*="background: white"],
body[data-pf-theme="dark"] [style*="background:#FFF"],
body[data-pf-theme="dark"] [style*="background:#FFFFFF"]{
  background:#231D1A !important;
}
body[data-pf-theme="dark"] [style*="color:#4A3636"],
body[data-pf-theme="dark"] [style*="color: #4A3636"],
body[data-pf-theme="dark"] [style*="color:#2D2A28"],
body[data-pf-theme="dark"] [style*="color:#3A3633"]{color:#F4EDE7 !important}
body[data-pf-theme="dark"] [style*="color:#8B7B7B"],
body[data-pf-theme="dark"] [style*="color:#9B8B8B"],
body[data-pf-theme="dark"] [style*="color:#6A5A5A"],
body[data-pf-theme="dark"] [style*="color:#5A4A4A"]{color:#C8B8AF !important}
body[data-pf-theme="dark"] [style*="color:#C4B8B0"],
body[data-pf-theme="dark"] [style*="color:#B0A09A"],
body[data-pf-theme="dark"] [style*="color:#B8A8A8"]{color:#8A7A72 !important}
body[data-pf-theme="dark"] [style*="border:1px solid #F0E8E4"],
body[data-pf-theme="dark"] [style*="border:1px solid #F0E6E0"]{border-color:#3A2F2A !important}
body[data-pf-theme="dark"] [style*="background:linear-gradient(135deg,#FFF5F0"],
body[data-pf-theme="dark"] [style*="background:linear-gradient(135deg,#FFF8F5"],
body[data-pf-theme="dark"] [style*="background:linear-gradient(135deg,#F2E0D6"],
body[data-pf-theme="dark"] [style*="background:linear-gradient(135deg,#FFFAF7"]{
  background:linear-gradient(135deg,#2B2421,#36302B) !important;
}

/* === Color filter — also apply to fixed FABs so theme stays consistent === */

/* === High contrast === */
body[data-pf-contrast="high"]{
  --pf-hair:#000;
  --pf-hair-strong:#000;
  --pf-ink:#000;
  --pf-ink-soft:#1a1a1a;
  --pf-ink-muted:#3a3a3a;
}
body[data-pf-contrast="high"][data-pf-theme="dark"]{
  --pf-hair:#fff;
  --pf-hair-strong:#fff;
  --pf-ink:#fff;
  --pf-ink-soft:#f0f0f0;
  --pf-ink-muted:#d0d0d0;
}
body[data-pf-contrast="high"] *{border-color:currentColor !important}
body[data-pf-contrast="high"] .pf-cookie-btn,
body[data-pf-contrast="high"] .pf-a11y-opt,
body[data-pf-contrast="high"] .pf-newsletter-form button,
body[data-pf-contrast="high"] .pf-fitcard-btn,
body[data-pf-contrast="high"] .pf-cta-meta,
body[data-pf-contrast="high"] .pf-topnav-cta,
body[data-pf-contrast="high"] #homeCTA .pf-primary-cta{font-weight:700 !important}

/* === Color-blind filters (SVG-driven via .pf-svgfilters in DOM) === */
body[data-pf-cb="protanopia"] .container,
body[data-pf-cb="protanopia"] .bottom-nav,
body[data-pf-cb="protanopia"] .pf-topnav,
body[data-pf-cb="protanopia"] .pf-sticky-cta,
body[data-pf-cb="protanopia"] .pf-cookie{filter:url(#pf-cb-protanopia)}
body[data-pf-cb="deuteranopia"] .container,
body[data-pf-cb="deuteranopia"] .bottom-nav,
body[data-pf-cb="deuteranopia"] .pf-topnav,
body[data-pf-cb="deuteranopia"] .pf-sticky-cta,
body[data-pf-cb="deuteranopia"] .pf-cookie{filter:url(#pf-cb-deuteranopia)}
body[data-pf-cb="tritanopia"] .container,
body[data-pf-cb="tritanopia"] .bottom-nav,
body[data-pf-cb="tritanopia"] .pf-topnav,
body[data-pf-cb="tritanopia"] .pf-sticky-cta,
body[data-pf-cb="tritanopia"] .pf-cookie{filter:url(#pf-cb-tritanopia)}
body[data-pf-cb="grayscale"] .container,
body[data-pf-cb="grayscale"] .bottom-nav,
body[data-pf-cb="grayscale"] .pf-topnav,
body[data-pf-cb="grayscale"] .pf-sticky-cta,
body[data-pf-cb="grayscale"] .pf-cookie{filter:grayscale(1)}

/* === Text size === */
body[data-pf-text="lg"]{font-size:18px}
body[data-pf-text="xl"]{font-size:20px}
body[data-pf-text="xxl"]{font-size:22px}

/* === Reduce motion === */
body[data-pf-motion="reduced"] *,
body[data-pf-motion="reduced"] *::before,
body[data-pf-motion="reduced"] *::after{
  animation-duration:.01ms !important;
  animation-iteration-count:1 !important;
  transition-duration:.01ms !important;
  scroll-behavior:auto !important;
}

/* === Underline all links === */
body[data-pf-underline="on"] a:not(.pf-topnav-cta):not(.pf-cookie-btn):not(.pf-a11y-opt):not(.pf-fitcard-btn){
  text-decoration:underline !important;
  text-underline-offset:2px;
}

/* === Focus states (always-on improvement) === */
:focus-visible{
  outline:2px solid var(--deep-rose);
  outline-offset:2px;
  border-radius:4px;
}
button:focus-visible,a:focus-visible,input:focus-visible{
  outline:2px solid var(--deep-rose);
  outline-offset:3px;
}

/* === Visually hidden (for screen-reader only labels) === */
.pf-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* === Overlap fixes: floating action stack === */

/* On mobile, the back button sits top-left over the page-header.
   Top nav is hidden on mobile, so no wordmark overlap there. */

/* Floating action stack: a11y (left), feedback (right middle), sticky CTA (right bottom), store-mode-fab (right top) */
@media (min-width:760px){
  .pf-sticky-cta{bottom:24px;right:24px;z-index:201}
  .pf-feedback-fab{right:24px;bottom:96px;z-index:202}
  .pf-a11y-fab{left:24px;bottom:24px;z-index:200}
  /* Store-mode FAB lifted above feedback FAB on desktop */
  .store-mode-fab{bottom:168px !important;right:24px !important;z-index:199}
}

/* Store-mode bottom-sheet → friendlier modal on desktop */
@media (min-width:760px){
  .store-panel{
    left:50% !important;right:auto !important;
    bottom:auto !important;top:50% !important;
    transform:translate(-50%, calc(-50% + 100vh)) !important;
    width:480px;max-width:92vw;
    border-radius:18px !important;
    max-height:80vh !important;
    box-shadow:0 30px 60px -10px rgba(45,42,40,.35),0 8px 20px rgba(45,42,40,.1) !important;
  }
  .store-panel.open{
    transform:translate(-50%, -50%) !important;
  }
  .store-panel-handle{display:none}
  .store-backdrop{background:rgba(45,42,40,.45) !important;backdrop-filter:blur(4px)}
}
/* Mobile store-panel: ensure scroll & safe-area padding so it doesn't feel infinite */
@media (max-width:759px){
  .store-panel{max-height:80vh !important;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
  .store-panel-handle{margin-top:8px}
}
/* On mobile, all floating buttons live above the bottom-nav */
@media (max-width:759px){
  .pf-a11y-fab{left:14px;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:200}
  .pf-feedback-fab{right:14px;bottom:calc(140px + env(safe-area-inset-bottom,0px));z-index:202}
  .pf-sticky-cta{right:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:201}
  /* When the sticky CTA is showing AND feedback fab is present, push feedback up */
  body:has(.pf-sticky-cta.show) .pf-feedback-fab{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  /* Store mode fab needs to coexist — push it above feedback if both present */
  .store-mode-fab{bottom:calc(196px + env(safe-area-inset-bottom,0px)) !important;right:14px !important;z-index:199}
}

/* === Refined favicon target — replace if browser exposes ::picture === */

/* ===== Print styles (for "Print my result") ===== */
@media print{
  body{background:#fff !important;color:#000 !important}
  .bottom-nav,.pf-topnav,.pf-sticky-cta,.pf-a11y-fab,.pf-a11y-panel,
  #pfTweaks,.pf-cookie,#backBtn,.store-mode-fab{display:none !important}
  .page{padding:0 !important}
  .page-header{padding:0 0 12px !important}
  .pf-fitcard{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
