body.sj-recommendation-open { overflow:hidden; }
.sjr-modal { --sjr-green:#2f6658; --sjr-ink:#12372e; --sjr-muted:#6f7e79; --sjr-line:#dfe5e1; position:fixed; z-index:1400; inset:0; display:grid; place-items:center; padding:14px; font-family:var(--sans,"Inter",Arial,sans-serif); }
.sjr-modal__backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(12,30,25,.7); backdrop-filter:blur(9px); cursor:default; }
.sjr-dialog { position:relative; z-index:1; width:min(680px,100%); max-height:calc(100dvh - 28px); overflow-y:auto; overscroll-behavior:contain; color:var(--sjr-ink); background:#fff; border:1px solid rgba(255,255,255,.78); border-radius:22px; box-shadow:0 38px 100px rgba(3,24,18,.4); animation:sjr-rise .24s ease-out both; }
.sjr-dialog__close { position:absolute; z-index:4; top:15px; right:15px; width:40px; height:40px; display:grid; place-items:center; padding:0; border:1px solid rgba(18,55,46,.13); border-radius:50%; color:var(--sjr-ink); background:rgba(255,255,255,.94); box-shadow:0 8px 22px rgba(18,55,46,.08); cursor:pointer; font-size:25px; font-weight:300; line-height:1; }
.sjr-dialog__close:hover { background:#f5f8f6; transform:translateY(-1px); }
.sjr-dialog__header { padding:20px 64px 14px 27px; border-bottom:1px solid var(--sjr-line); background:linear-gradient(145deg,#fbfaf5,#fff 76%); }
.sjr-dialog__brand { display:flex; align-items:center; gap:9px; margin:0 0 9px; color:var(--sjr-green); font-size:12px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.sjr-dialog__brand span { width:24px; height:24px; display:grid; place-items:center; flex:none; border-radius:50%; color:#fff; background:var(--sjr-green); font-size:12px; letter-spacing:0; }
.sjr-dialog__header h2 { margin:0; color:var(--sjr-ink); font-family:var(--serif,Georgia,serif); font-size:clamp(25px,4vw,30px); font-weight:500; letter-spacing:-.035em; line-height:1.08; }
.sjr-dialog__status { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 27px 9px; color:#77847f; font-size:12px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.sjr-dialog__progress { height:4px; margin:0 27px; overflow:hidden; border-radius:999px; background:#e7ebe8; }
.sjr-dialog__progress span { display:block; width:100%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--sjr-green),#568b76); }
.sjr-result { padding:16px 27px 25px; text-align:center; }
.sjr-result__mark { width:44px; height:44px; display:grid; place-items:center; margin:0 auto 11px; border-radius:50%; color:#fff; background:var(--sjr-green); box-shadow:0 10px 24px rgba(47,102,88,.2); }
.sjr-result__eyebrow { margin:0 0 8px; color:var(--sjr-green); font-size:12px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.sjr-result > h2 { max-width:610px; margin:0 auto; color:var(--sjr-ink); font-family:var(--serif,Georgia,serif); font-size:clamp(25px,4.6vw,32px); font-weight:500; letter-spacing:-.035em; line-height:1.08; text-wrap:balance; }
.sjr-result__intro { max-width:610px; margin:9px auto 0; color:var(--sjr-muted); font-size:13px; line-height:1.52; }
.sjr-result__context { display:inline-flex; margin-top:9px; padding:5px 9px; border:1px solid #e2e6df; border-radius:999px; color:#536b63; background:#f7f5ef; font-size:11px; font-weight:750; }
.sjr-product { display:grid; grid-template-columns:205px minmax(0,1fr); margin:16px 0 12px; overflow:hidden; border:1px solid rgba(18,55,46,.14); border-radius:4px 18px 4px 18px; background:linear-gradient(135deg,#f8f5ee,#fff); box-shadow:0 13px 31px rgba(18,55,46,.08); text-align:left; }
.sjr-product__media { position:relative; min-height:190px; display:grid; place-items:center; overflow:hidden; padding:16px; border-right:1px solid rgba(18,55,46,.09); background:#f7f4ed; }
.sjr-product__media img { width:100%; height:100%; max-height:200px; object-fit:contain; mix-blend-mode:multiply; }
.sjr-product__badge { position:absolute; z-index:2; top:9px; left:9px; min-height:27px; display:inline-flex; align-items:center; padding:4px 8px; border:1px solid rgba(18,55,46,.13); border-radius:999px; color:#496158; background:rgba(255,254,250,.94); font-size:11px; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.sjr-product__placeholder { width:74px; height:74px; display:grid; place-items:center; border-radius:24px; color:#b18448; background:#fff; box-shadow:0 14px 32px rgba(18,55,46,.08); font-size:32px; }
.sjr-product__copy { min-width:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:18px 20px; }
.sjr-product__eyebrow { margin:0 0 7px; color:#c65035; font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.sjr-product h3 { margin:0 0 7px; color:var(--sjr-ink); font-family:var(--serif,Georgia,serif); font-size:19px; font-weight:600; letter-spacing:-.02em; line-height:1.18; }
.sjr-product__meta { margin:0 0 9px; color:#71807b; font-size:12px; line-height:1.35; }
.sjr-product__price { color:var(--sjr-ink); font-size:20px; font-weight:900; }
.sjr-product__link { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:10px; margin-top:12px; padding:10px 14px; border-radius:9px; color:#fff; background:linear-gradient(135deg,#ff7a00,#f34a00); box-shadow:0 11px 25px rgba(255,91,0,.25); font-size:12px; font-weight:900; line-height:1.2; text-align:center; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.sjr-product__link:hover,.sjr-product__link:focus-visible { color:#fff; transform:translateY(-2px); box-shadow:0 15px 32px rgba(255,91,0,.34); }
.sjr-product__link.is-internal { background:linear-gradient(135deg,#427565,#275446); box-shadow:0 11px 25px rgba(39,84,70,.2); }
.sjr-result__disclosure { max-width:620px; margin:0 auto; color:#7a8782; font-size:11px; line-height:1.52; }
.sjr-tradeoffs { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:15px; text-align:left; }
.sjr-tradeoffs section { padding:14px; border:1px solid rgba(18,55,46,.12); border-radius:12px; background:#f7faf8; }
.sjr-tradeoffs .is-positive { border-color:rgba(47,102,88,.18); background:rgba(47,102,88,.05); }
.sjr-tradeoffs .is-negative { border-color:rgba(198,80,53,.16); background:rgba(198,80,53,.04); }
.sjr-tradeoffs strong { display:block; margin-bottom:7px; color:var(--sjr-green); font-size:11px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.sjr-tradeoffs .is-negative strong { color:#c65035; }
.sjr-tradeoffs ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.sjr-tradeoffs li { position:relative; padding-left:16px; color:#5d6f68; font-size:12px; line-height:1.42; }
.sjr-tradeoffs li::before { position:absolute; left:0; color:var(--sjr-green); content:"✓"; font-weight:900; }
.sjr-tradeoffs .is-negative li::before { color:#c65035; content:"–"; }
.sjr-result__chips { display:flex; flex-wrap:wrap; justify-content:center; gap:5px; margin-top:13px; }
.sjr-result__chips span { padding:5px 8px; border:1px solid #e1e6e2; border-radius:999px; color:#526a62; background:#f7f6f1; font-size:10px; }
.sjr-result__footer { margin-top:15px; padding-top:13px; border-top:1px solid #e6ebe8; }
.sjr-result__footer p { margin:0; color:#8a9692; font-size:10px; }
.sjr-result__footer button { margin-top:8px; padding:6px 0; border:0; border-bottom:1px solid currentColor; color:var(--sjr-green); background:transparent; cursor:pointer; font-size:11px; font-weight:800; }
@keyframes sjr-rise { from { opacity:0; transform:translateY(14px) scale(.985); } to { opacity:1; transform:none; } }
@media (max-width:620px) {
  .sjr-modal { place-items:end center; padding:7px 7px 0; }
  .sjr-dialog { max-height:calc(100dvh - 7px); border-radius:20px 20px 0 0; }
  .sjr-dialog__header { padding:17px 51px 13px 16px; }
  .sjr-dialog__brand { font-size:10px; letter-spacing:.1em; }
  .sjr-dialog__header h2 { font-size:24px; }
  .sjr-dialog__close { top:10px; right:10px; width:36px; height:36px; }
  .sjr-dialog__status { padding:12px 16px 7px; font-size:10px; }
  .sjr-dialog__progress { margin-inline:16px; }
  .sjr-result { padding:14px 15px 22px; }
  .sjr-result__mark { width:38px; height:38px; margin-bottom:8px; }
  .sjr-result__eyebrow { font-size:10px; letter-spacing:.11em; }
  .sjr-result > h2 { font-size:25px; }
  .sjr-product { grid-template-columns:118px minmax(0,1fr); margin-top:12px; }
  .sjr-product__media { min-height:190px; padding:9px; }
  .sjr-product__media img { max-height:135px; }
  .sjr-product__copy { padding:12px 10px; }
  .sjr-product h3 { font-size:16px; }
  .sjr-product__price { font-size:17px; }
  .sjr-product__link { width:100%; padding:8px 9px; }
  .sjr-tradeoffs { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .sjr-dialog,.sjr-dialog__close,.sjr-product__link { animation:none; transition:none; } }
