.rp-root{
    --rp-green:#004225;
    --rp-green-deep:#003319;
    --rp-amber:#CD8510;
    --rp-amber-deep:#B5750E;
    --rp-pine:#101914;
    --rp-silver:#E9EBED;
    --rp-grey:#7D8281;
    --rp-grey-aa:#5b6160;
    --rp-white:#FFFFFF;
    --rp-moss:#2D7A3F;
    --rp-clay:#C0392B;
    --rp-idle:#7D8281;
    --rp-r-sm:4px;
    --rp-r-md:8px;
    --rp-r-lg:16px;
    --rp-whisper:0 2px 8px rgba(0,0,0,.06);
    --rp-lift:0 8px 24px rgba(0,0,0,.10);
    --rp-feature:0 20px 48px rgba(0,0,0,.14);
    --rp-ease:250ms ease;
    font-family:Montserrat,system-ui,sans-serif;
    font-weight:400;
    font-size:16px;
    line-height:1.6;
    color:var(--rp-pine);
  }
  .rp-root *{box-sizing:border-box;}
  .rp-page{max-width:1180px;margin:0 auto;padding:0 24px;}

  /* ---------- FEATURE PANEL (green hero) ---------- */
  .rp-feature{
    position:relative;
    background:
      radial-gradient(1200px 460px at 78% -10%, rgba(45,122,63,.55), transparent 60%),
      linear-gradient(180deg,#0a5234 0%, var(--rp-green) 52%, var(--rp-green-deep) 100%);
    color:var(--rp-white);
    overflow:hidden;
  }
  .rp-feature::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(16,25,20,.45) 100%);
    pointer-events:none;
  }
  .rp-feature__inner{
    position:relative;z-index:1;
    max-width:1180px;margin:0 auto;
    padding:72px 24px 120px;
  }
  .rp-feature__lead-col{max-width:760px;}
  .rp-h1{
    font-weight:900;
    font-size:clamp(38px,6.2vw,72px);
    line-height:1.04;
    letter-spacing:-0.5px;
    text-transform:uppercase;
    margin:0 0 18px;
  }
  .rp-h1 em{font-style:normal;color:#bfe0cd;}
  .rp-lead{
    font-size:clamp(16px,2vw,19px);
    line-height:1.6;
    max-width:60ch;
    margin:0;
    color:#e2ece6;
  }

  /* ---------- FLOATING SELECTOR CARD ---------- */
  .rp-checker{
    position:relative;
    z-index:2;
    max-width:1180px;
    margin:-72px auto 0;
    padding:0 24px;
  }
  .rp-checker__card{
    background:var(--rp-white);
    border-radius:var(--rp-r-lg);
    box-shadow:var(--rp-feature);
    padding:28px 28px 24px;
  }
  .rp-checker__title{
    font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
    color:var(--rp-green);margin:0 0 4px;
  }
  .rp-checker__hint{
    font-size:14px;color:var(--rp-grey-aa);margin:0 0 20px;
  }

  /* selector row — one line on desktop */
  .rp-selectors{
    display:grid;
    grid-template-columns:repeat(4,1fr) auto;
    gap:16px;
    align-items:end;
  }
  .rp-field{display:flex;flex-direction:column;gap:7px;min-width:0;}
  .rp-field label{
    font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
    color:var(--rp-pine);
  }
  .rp-select{
    appearance:none;-webkit-appearance:none;
    font-family:inherit;font-size:15px;font-weight:700;color:var(--rp-pine);
    background-color:var(--rp-white);
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23004225' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat:no-repeat;background-position:right 14px center;
    border:2px solid #d4d8d6;
    border-radius:var(--rp-r-sm);
    padding:0 38px 0 14px;
    height:52px;
    width:100%;
    cursor:pointer;
    transition:border-color var(--rp-ease),box-shadow var(--rp-ease);
  }
  .rp-select:hover:not(:disabled){border-color:var(--rp-green);}
  .rp-select:focus-visible{outline:3px solid var(--rp-amber);outline-offset:2px;border-color:var(--rp-green);}
  .rp-select:disabled{
    background-color:#f4f5f5;color:#aeb3b2;cursor:not-allowed;
    border-color:#e3e5e4;opacity:1;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b7bbba' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  }
  .rp-reset{
    height:52px;
    display:inline-flex;align-items:center;justify-content:center;
    font-family:inherit;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
    background:transparent;color:var(--rp-green);
    border:2px solid var(--rp-green);
    border-radius:var(--rp-r-sm);
    padding:0 22px;
    cursor:pointer;white-space:nowrap;
    transition:all var(--rp-ease);
  }
  .rp-reset:hover{background:var(--rp-green);color:var(--rp-white);}
  .rp-reset:focus-visible{outline:3px solid var(--rp-amber);outline-offset:2px;}

  .rp-notlisted-row{margin-top:16px;}
  .rp-link{
    background:none;border:0;padding:0;cursor:pointer;
    font-family:inherit;font-size:14px;font-weight:700;color:var(--rp-green);
    text-decoration:underline;text-underline-offset:3px;
    transition:color var(--rp-ease);
  }
  .rp-link:hover{color:var(--rp-amber-deep);}
  .rp-link:focus-visible{outline:3px solid var(--rp-amber);outline-offset:3px;border-radius:2px;}
  .rp-link::before{content:"↗ ";font-weight:900;}

  /* ---------- RESULTS ---------- */
  .rp-results{padding:56px 0 80px;}
  .rp-verdict{
    display:flex;align-items:center;gap:14px;
    margin:0 0 32px;
    min-height:28px;
  }
  .rp-verdict__icon{
    flex:0 0 auto;width:30px;height:30px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    color:#fff;font-size:16px;font-weight:900;line-height:1;
  }
  .rp-verdict__text{font-size:clamp(18px,2.4vw,24px);font-weight:700;line-height:1.25;margin:0;}
  .rp-verdict__sub{display:block;font-size:14px;font-weight:400;color:var(--rp-grey-aa);margin-top:2px;}
  .rp-verdict.is-empty .rp-verdict__icon{background:var(--rp-grey);}
  .rp-verdict.is-good .rp-verdict__icon{background:var(--rp-moss);}
  .rp-verdict.is-bad .rp-verdict__icon{background:var(--rp-clay);}
  .rp-verdict.is-soft .rp-verdict__icon{background:var(--rp-pine);}
  .rp-verdict.is-unknown .rp-verdict__icon{background:var(--rp-pine);}
  .rp-verdict__text strong{color:var(--rp-green);}

  /* unknown / get-in-touch panel */
  .rp-help{
    display:none;
    background:var(--rp-white);
    border:2px solid var(--rp-silver);
    border-radius:var(--rp-r-lg);
    box-shadow:var(--rp-whisper);
    padding:32px 32px 30px;
    max-width:680px;
  }
  .rp-help.is-shown{display:block;}
  .rp-help h2{font-size:22px;font-weight:700;color:var(--rp-green);margin:0 0 10px;}
  .rp-help p{margin:0 0 22px;color:#3a423d;}
  .rp-btn-primary{
    display:inline-flex;align-items:center;justify-content:center;
    font-family:inherit;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:1.5px;
    background:var(--rp-green);color:#fff;
    border:0;border-radius:var(--rp-r-sm);
    padding:16px 36px;min-height:44px;
    text-decoration:none;cursor:pointer;
    transition:all var(--rp-ease);
  }
  .rp-btn-primary:hover{background:var(--rp-green-deep);transform:translateY(-1px);}
  .rp-btn-primary:focus-visible{outline:3px solid var(--rp-amber);outline-offset:2px;}

  /* review-only note: which SKUs are placeholders */
  .rp-placeholder-note{
    margin:0 0 26px;
    padding:13px 18px;
    background:#fbf3e2;
    border:1px solid #e8d3a4;
    border-left:4px solid var(--rp-amber);
    border-radius:var(--rp-r-sm);
    font-size:13px;line-height:1.5;color:#6b5418;
  }
  .rp-placeholder-note strong{color:#5a4513;}

  /* product card grid — auto-fits to the product count: 2 products sit as a
     comfortable 2-up and shrink toward a max of 4 per row as the range grows,
     then wrap to a second row. Cards never drop below ~240px so they stay legible. */
  .rp-cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:24px;
  }
  .rp-card{
    display:flex;flex-direction:column;
    background:var(--rp-white);
    border-radius:var(--rp-r-md);
    overflow:hidden;
    box-shadow:var(--rp-whisper);
    transition:transform var(--rp-ease),box-shadow var(--rp-ease);
  }
  .rp-card:hover{transform:translateY(-3px);box-shadow:var(--rp-lift);}

  /* (a) compatibility banner — only checker-computed element */
  .rp-banner{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    flex-wrap:wrap;
    padding:13px 16px;
    font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;
    color:#fff;
  }
  .rp-banner.is-idle{background:var(--rp-idle);}
  .rp-banner.is-good{background:var(--rp-moss);}
  .rp-banner.is-bad{background:var(--rp-clay);}
  .rp-banner.is-soft{background:var(--rp-pine);}
  .rp-banner__status{display:inline-flex;align-items:center;gap:8px;min-width:0;}
  .rp-banner__status .rp-tick{font-size:15px;font-weight:900;flex:0 0 auto;}
  .rp-banner__status .rp-tick:empty{display:none;}
  .rp-banner__weight{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;opacity:.95;}
  .rp-banner__weight svg{width:14px;height:14px;flex:0 0 auto;}

  /* (b) image */
  .rp-card__img{position:relative;aspect-ratio:4/3;}
  .rp-card__ph{
    width:100%;height:100%;
    background:
      radial-gradient(120% 90% at 20% 10%, rgba(45,122,63,.6), transparent 55%),
      linear-gradient(140deg,#0a5234 0%, var(--rp-green) 48%, var(--rp-pine) 100%);
    position:relative;
  }
  .rp-card__ph::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:34%;
    background:linear-gradient(180deg,transparent, rgba(16,25,20,.5));
  }
  .rp-card__phlabel{
    position:absolute;left:16px;bottom:13px;z-index:1;
    color:rgba(255,255,255,.92);font-size:12px;font-weight:700;
    text-transform:uppercase;letter-spacing:1.2px;
  }
  .rp-badge-sale{
    position:absolute;top:14px;left:14px;z-index:2;
    background:var(--rp-amber);color:#fff;
    font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;
    padding:6px 10px;border-radius:var(--rp-r-sm);
  }

  /* (c) body */
  .rp-card__body{padding:20px 20px 24px;display:flex;flex-direction:column;flex:1;}
  .rp-card__name{font-size:20px;font-weight:700;color:var(--rp-green);margin:0 0 4px;}
  .rp-card__type{font-size:12px;font-weight:700;color:var(--rp-grey-aa);text-transform:uppercase;letter-spacing:1px;margin:0 0 16px;}
  .rp-specs{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px;}
  .rp-specs li{position:relative;padding-left:24px;font-size:14px;color:#2b322e;line-height:1.45;}
  .rp-specs li::before{
    content:"";position:absolute;left:0;top:2px;width:16px;height:16px;
    background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23004225' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center/contain;
  }
  .rp-card__foot{margin-top:auto;}
  .rp-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin:0 0 16px;}
  .rp-price__now{font-size:27px;font-weight:900;color:var(--rp-green);line-height:1;}
  .rp-price__was{font-size:16px;font-weight:700;color:var(--rp-grey);text-decoration:line-through;}
  .rp-card__cta{width:100%;font-size:13px;padding:15px 18px;letter-spacing:1px;}

  /* ---------- MOBILE CAROUSEL SCAFFOLD (desktop = inert) ---------- */
  .rp-carousel{position:relative;}
  .rp-carousel__controls{display:none;}
  .rp-carousel__dots{display:none;}

  /* ---------- FIT BAR REVIEW SECTION ---------- */
  .rp-fitsection{background:var(--rp-white);border-top:1px solid #dfe2e1;padding:72px 0 88px;}
  .rp-section-head{max-width:760px;margin:0 0 12px;}
  .rp-section-head h2{
    font-size:clamp(26px,3.5vw,38px);font-weight:700;line-height:1.2;color:var(--rp-pine);margin:0 0 12px;
  }
  .rp-section-head p{margin:0;color:#3a423d;}
  .rp-section-note{font-size:13px;color:var(--rp-grey-aa);margin:34px 0 10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;}

  /* slim strip — NO image / title / price */
  .rp-strip{
    display:flex;align-items:center;gap:14px;
    padding:14px 18px;
    border-radius:var(--rp-r-md);
    font-size:15px;font-weight:700;line-height:1.35;
    color:#fff;
    box-shadow:var(--rp-whisper);
  }
  .rp-strip + .rp-strip{margin-top:14px;}
  .rp-strip__icon{
    flex:0 0 auto;width:30px;height:30px;border-radius:50%;
    background:rgba(255,255,255,.18);
    display:inline-flex;align-items:center;justify-content:center;
    font-size:16px;font-weight:900;
  }
  .rp-strip__msg{flex:1;min-width:0;}
  .rp-strip__msg span{display:block;font-weight:400;font-size:13px;opacity:.92;margin-top:1px;}
  .rp-strip__link{
    flex:0 0 auto;
    font-family:inherit;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;
    color:#fff;background:rgba(255,255,255,.14);
    border:1.5px solid rgba(255,255,255,.55);
    border-radius:var(--rp-r-sm);
    padding:9px 16px;min-height:44px;display:inline-flex;align-items:center;
    cursor:pointer;text-decoration:none;white-space:nowrap;
    transition:all var(--rp-ease);
  }
  .rp-strip__link:hover{background:rgba(255,255,255,.26);}
  .rp-strip__link:focus-visible{outline:3px solid #fff;outline-offset:2px;}
  .rp-strip.is-empty{background:var(--rp-pine);}
  .rp-strip.is-good{background:var(--rp-moss);}
  .rp-strip.is-bad{background:var(--rp-clay);}
  .rp-strip.is-soft{background:var(--rp-pine);}
  .rp-strip.is-unknown{background:var(--rp-pine);}
  .rp-strip-caption{font-size:13px;color:var(--rp-grey-aa);margin:8px 2px 0;font-style:normal;}

  .rp-live-wrap{
    margin-top:34px;padding:24px;border:2px dashed #cfd3d2;border-radius:var(--rp-r-md);background:var(--rp-silver);
  }
  .rp-live-wrap .rp-section-note{margin:0 0 14px;}
  .rp-live-wrap .rp-strip{box-shadow:none;}

  /* ---------- USP STRIP ---------- */
  .rp-usp{
    display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;
    padding:18px 20px;background:var(--rp-pine);color:#fff;
    font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;text-align:center;
  }
  .rp-usp__sep{color:var(--rp-amber);}

  /* ---------- MODAL ---------- */
  .rp-modal{
    position:fixed;inset:0;z-index:100;
    display:none;align-items:flex-start;justify-content:center;
    padding:40px 20px;overflow-y:auto;
  }
  .rp-modal.is-open{display:flex;}
  .rp-modal__backdrop{position:fixed;inset:0;background:rgba(16,25,20,.62);}
  .rp-modal__dialog{
    position:relative;z-index:1;
    width:100%;max-width:760px;
    background:var(--rp-white);
    border-radius:var(--rp-r-lg);
    box-shadow:var(--rp-feature);
    padding:30px 30px 28px;
    margin:auto 0;
  }
  .rp-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px;}
  .rp-modal__title{font-size:22px;font-weight:700;color:var(--rp-green);margin:0;}
  .rp-modal__close{
    flex:0 0 auto;width:44px;height:44px;border-radius:var(--rp-r-sm);
    background:var(--rp-silver);border:0;cursor:pointer;
    font-size:22px;font-weight:700;color:var(--rp-pine);line-height:1;
    display:inline-flex;align-items:center;justify-content:center;
    transition:background var(--rp-ease);
  }
  .rp-modal__close:hover{background:#dadedc;}
  .rp-modal__close:focus-visible{outline:3px solid var(--rp-amber);outline-offset:2px;}
  .rp-modal__hint{font-size:14px;color:var(--rp-grey-aa);margin:0 0 22px;}
  .rp-modal .rp-selectors{grid-template-columns:repeat(2,1fr);}
  .rp-modal .rp-reset{grid-column:1 / -1;}
  .rp-modal__verdict{margin-top:22px;}

  .rp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

  /* ---------- RESPONSIVE ---------- */
  /* the card grid auto-fits (max 4 per row); only the selectors need explicit steps */
  @media (max-width:980px){
    .rp-selectors{grid-template-columns:repeat(2,1fr);}
    .rp-reset{grid-column:1 / -1;}
  }
  @media (max-width:720px){
    .rp-feature__inner{padding:56px 20px 110px;}
    .rp-page{padding:0 18px;}
    .rp-checker{padding:0 18px;}
    .rp-strip{flex-wrap:wrap;}
    .rp-strip__msg{flex:1 1 60%;}
  }

  /* ---------- MOBILE CAROUSEL (below tablet breakpoint) ---------- */
  @media (max-width:640px){
    .rp-cards{
      display:flex;
      grid-template-columns:none;
      gap:0;
      overflow-x:auto;
      overflow-y:hidden;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      padding-bottom:4px;
      scroll-padding-left:0;
    }
    .rp-cards::-webkit-scrollbar{display:none;}
    .rp-card{
      flex:0 0 85%;
      scroll-snap-align:start;
      margin-right:14px;
    }
    .rp-card:last-child{margin-right:0;}

    .rp-carousel__controls{
      display:flex;align-items:center;justify-content:center;gap:18px;
      margin-top:18px;
    }
    .rp-carousel__arrow{
      flex:0 0 auto;width:44px;height:44px;border-radius:50%;
      background:var(--rp-white);border:2px solid var(--rp-green);
      color:var(--rp-green);cursor:pointer;
      display:inline-flex;align-items:center;justify-content:center;
      transition:all var(--rp-ease);
    }
    .rp-carousel__arrow svg{width:20px;height:20px;}
    .rp-carousel__arrow:hover:not(:disabled){background:var(--rp-green);color:#fff;}
    .rp-carousel__arrow:focus-visible{outline:3px solid var(--rp-amber);outline-offset:2px;}
    .rp-carousel__arrow:disabled{opacity:.35;cursor:not-allowed;}

    .rp-carousel__dots{
      display:flex;align-items:center;justify-content:center;gap:9px;
    }
    .rp-carousel__dot{
      position:relative;
      width:10px;height:10px;padding:0;border-radius:50%;
      border:0;background:#c2c7c5;cursor:pointer;
      transition:background var(--rp-ease),transform var(--rp-ease);
    }
    /* invisible 44px hit area while keeping the 10px visual dot */
    .rp-carousel__dot::after{
      content:"";position:absolute;top:50%;left:50%;
      width:44px;height:44px;transform:translate(-50%,-50%);
    }
    .rp-carousel__dot.is-active{background:var(--rp-green);transform:scale(1.25);}
    .rp-carousel__dot:focus-visible{outline:3px solid var(--rp-amber);outline-offset:2px;}
  }

  @media (max-width:480px){
    .rp-selectors{grid-template-columns:1fr;}
    .rp-modal .rp-selectors{grid-template-columns:1fr;}
    .rp-checker__card{padding:22px 18px 20px;}
    .rp-strip__link{flex:1 1 100%;justify-content:center;}
    .rp-card{flex-basis:86%;}
  }
  @media (prefers-reduced-motion:reduce){
    .rp-root *{transition:none !important;animation:none !important;}
    .rp-card:hover,.rp-btn-primary:hover{transform:none;}
    .rp-cards{scroll-behavior:auto;}
  }
