/* ==========================================================
   PerfectFit v13 — PWA install, recently viewed brands,
   Upclass offers (hidden), affiliate-link safety
   ========================================================== */

/* PWA install prompt */
.pf-pwa-banner{
  position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:14px;right:14px;z-index:300;
  background:var(--pf-ink);color:#FBF7F3;
  border-radius:14px;padding:14px 16px;
  display:none;align-items:center;gap:12px;
  font-family:'DM Sans',sans-serif;font-size:.84rem;
  box-shadow:0 18px 40px -10px rgba(0,0,0,.25);
  animation:pfPwaIn .35s ease;
}
@keyframes pfPwaIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.pf-pwa-banner.show{display:flex}
@media (min-width:760px){
  .pf-pwa-banner{left:auto;right:24px;bottom:24px;max-width:380px}
}
.pf-pwa-icon{
  width:38px;height:38px;border-radius:10px;
  background:var(--deep-rose);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.pf-pwa-icon svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pf-pwa-body{flex:1;min-width:0;line-height:1.4}
.pf-pwa-body strong{display:block;font-weight:700;letter-spacing:.1px}
.pf-pwa-body span{color:#C8B8AF;font-size:.76rem}
.pf-pwa-actions{display:flex;gap:6px;flex-shrink:0}
.pf-pwa-btn{
  padding:8px 14px;border-radius:8px;border:none;
  background:var(--deep-rose);color:#fff;
  font-family:inherit;font-size:.74rem;font-weight:700;letter-spacing:.2px;cursor:pointer;
}
.pf-pwa-btn:hover{background:var(--dark-rose)}
.pf-pwa-btn.ghost{background:transparent;color:#C8B8AF;border:1px solid #3A2F2A}
.pf-pwa-btn.ghost:hover{color:#fff;border-color:#C8B8AF}

/* iOS install guide modal */
.pf-ios-step{
  display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--pf-hair);
}
.pf-ios-step:last-child{border-bottom:none}
.pf-ios-step-n{
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  background:var(--deep-rose);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant Garamond',serif;font-weight:700;font-size:.86rem;
}
.pf-ios-step-text{font-size:.86rem;color:var(--pf-ink);line-height:1.5;flex:1}
.pf-ios-step-text strong{font-weight:700}
.pf-ios-step-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:4px;background:var(--pf-hair);
  vertical-align:middle;margin:0 3px;
}
.pf-ios-step-icon svg{width:12px;height:12px;stroke:var(--pf-ink);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

body[data-pf-theme="dark"] .pf-pwa-banner{background:#36302B}

/* Recently viewed brands */
.pf-recent-section{
  margin-top:24px;
  display:none; /* hidden until at least 1 brand recently viewed */
}
.pf-recent-section.has-items{display:block}
.pf-recent-rail{
  display:flex;gap:8px;overflow-x:auto;padding:4px 4px 12px;
  -webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;
}
.pf-recent-rail::-webkit-scrollbar{display:none}
.pf-recent-chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;border:1px solid var(--pf-hair);background:var(--pf-page);
  border-radius:24px;font-family:'Cormorant Garamond',serif;font-size:.92rem;
  color:var(--pf-ink-soft);text-decoration:none;flex-shrink:0;scroll-snap-align:start;
  transition:all .15s;font-weight:500;letter-spacing:.1px;
}
.pf-recent-chip:hover{border-color:var(--deep-rose);color:var(--deep-rose)}
.pf-recent-chip-size{
  font-family:'DM Sans',sans-serif;font-size:.66rem;font-weight:700;
  letter-spacing:.4px;color:var(--deep-rose);background:rgba(212,144,126,.12);
  padding:2px 7px;border-radius:8px;
}

/* Upclass (curated offers) — built but hidden by default */
.pf-upclass{
  display:none;
  margin-top:32px;background:linear-gradient(135deg,#FBF7F3,#FFF1E9);
  border:1px solid var(--pf-hair);border-radius:16px;padding:24px;
}
.pf-upclass.visible{display:block}
.pf-upclass-eyebrow{font-size:.62rem;letter-spacing:2.4px;text-transform:uppercase;color:var(--deep-rose);font-weight:700}
.pf-upclass-h{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:600;color:var(--pf-ink);letter-spacing:-.4px;margin-top:4px;line-height:1.15}
.pf-upclass-sub{font-size:.86rem;color:var(--pf-ink-soft);line-height:1.55;margin-top:4px;max-width:520px}
.pf-upclass-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}
@media (min-width:760px){.pf-upclass-grid{grid-template-columns:1fr 1fr 1fr}}
.pf-upclass-card{
  background:#fff;border:1px solid var(--pf-hair);border-radius:12px;padding:16px;
  text-decoration:none;color:var(--pf-ink);display:flex;flex-direction:column;
  transition:all .15s;cursor:pointer;
}
.pf-upclass-card:hover{border-color:var(--deep-rose);transform:translateY(-2px);box-shadow:0 6px 14px -4px rgba(45,42,40,.1)}
.pf-upclass-card-tag{
  font-size:.6rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--deep-rose);font-weight:700;
  margin-bottom:8px;
}
.pf-upclass-card-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--pf-ink);line-height:1.2;margin-bottom:4px}
.pf-upclass-card-brand{font-size:.74rem;color:var(--pf-ink-muted);margin-bottom:10px}
.pf-upclass-card-price{font-family:'DM Sans',sans-serif;font-size:.86rem;color:var(--pf-ink-soft);margin-top:auto;font-weight:600}
.pf-upclass-card-price s{color:var(--pf-ink-muted);font-weight:400;margin-right:6px}

body[data-pf-theme="dark"] .pf-upclass{background:linear-gradient(135deg,#231D1A,#2B2421)}
body[data-pf-theme="dark"] .pf-upclass-card{background:#1A1614}

/* Photo-based measurement visual guide (replaces SVG illustrations) */
.pf-vg-photo{padding:14px !important;overflow:hidden;border-radius:14px !important;background:linear-gradient(145deg,#FFF5F0,#FDF0EA) !important;border:1px solid var(--pf-hair) !important;margin-bottom:14px}
.pf-vg-row{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch;margin-bottom:10px}
@media (min-width:520px){
  .pf-vg-row{grid-template-columns:1.2fr 1fr}
}
.pf-vg-img{position:relative;width:100%;background:#fff;border-radius:10px;overflow:hidden;border:1px solid var(--pf-hair);min-height:200px;max-height:340px;display:flex;align-items:center;justify-content:center}
.pf-vg-img img{display:block;width:100%;height:100%;max-height:340px;object-fit:contain}
.pf-vg-label{
  position:absolute;left:10px;top:10px;
  padding:4px 10px;background:rgba(45,42,40,.78);color:#fff;
  border-radius:14px;font-family:'DM Sans',sans-serif;
  font-size:.62rem;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  pointer-events:none;
}
.pf-vg-svg{background:#fff;border-radius:10px;border:1px solid var(--pf-hair);padding:10px;display:flex;align-items:center;justify-content:center}
.pf-vg-svg svg{display:block;width:100%;height:auto;max-height:200px}
.pf-vg-photo .guide-tip{
  margin:0;border-radius:8px;
}
body[data-pf-theme="dark"] .pf-vg-photo{background:linear-gradient(145deg,#2B2421,#36302B) !important;border-color:#3A2F2A !important}
body[data-pf-theme="dark"] .pf-vg-img,
body[data-pf-theme="dark"] .pf-vg-svg{background:#1A1614;border-color:#3A2F2A}
