.wcpbo-wrap{
  display:grid;
  gap:14px;
  margin:22px 0;
  font-family:inherit;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:visible;
}
.wcpbo-wrap *{box-sizing:border-box;}
.wcpbo-card{
  position:relative;
  display:grid;
  grid-template-columns:34px 84px minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:116px;
  padding:18px 22px;
  border:1.5px solid rgba(29,79,55,.22);
  border-radius:22px;
  background:linear-gradient(135deg,#fff,#f7fbf5);
  box-shadow:0 10px 30px rgba(16,52,35,.08);
  cursor:pointer;
  text-align:left;
  transition:.18s ease;
  color:#173c2b;
  white-space:normal;
  overflow:visible;
}
.wcpbo-card:hover,.wcpbo-card.is-selected{border-color:#2e7d4f;box-shadow:0 14px 38px rgba(29,79,55,.16);transform:translateY(-1px)}
.wcpbo-card.is-selected{background:linear-gradient(135deg,#f4fbf3,#fffaf1)}
.wcpbo-radio{width:22px;height:22px;border:2px solid #2e7d4f;border-radius:50%;display:block;position:relative;background:#fff;flex:0 0 auto}
.wcpbo-card.is-selected .wcpbo-radio:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#c59a52}
.wcpbo-media{min-width:0;display:flex;align-items:center;justify-content:center}
.wcpbo-media img{max-width:78px;max-height:78px;width:auto;height:auto;object-fit:contain}
.wcpbo-content{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:100%}
.wcpbo-title{font-size:22px;font-weight:750;letter-spacing:-.02em;color:#153b2b;line-height:1.12;overflow-wrap:anywhere}
.wcpbo-subtitle,.wcpbo-saving,.wcpbo-note{font-size:15px;color:#46634f;line-height:1.28;overflow-wrap:anywhere}
.wcpbo-free{display:inline-flex;width:max-content;max-width:100%;padding:5px 12px;border:1px solid rgba(197,154,82,.55);border-radius:999px;color:#7a5825;font-size:14px;margin-top:4px;background:#fffaf0;line-height:1.2;overflow-wrap:anywhere}
.wcpbo-pricebox{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:106px;max-width:100%}
.wcpbo-price{font-size:24px;font-weight:800;color:#9a6a32;line-height:1.12;overflow-wrap:anywhere;text-align:right}
.wcpbo-old{font-size:16px;color:#8a8a8a;text-decoration:line-through;line-height:1.15;overflow-wrap:anywhere;text-align:right}
.wcpbo-badge{position:absolute;top:-12px;right:18px;background:#1d4f37;color:#fff;padding:8px 16px;border-radius:12px;box-shadow:0 10px 24px rgba(29,79,55,.22);font-weight:650;letter-spacing:.01em;line-height:1.15;max-width:calc(100% - 36px);white-space:normal;text-align:center;z-index:2}
@media(max-width:640px){
  .wcpbo-wrap{gap:12px;margin:18px 0;overflow:visible;}
  .wcpbo-card{
    grid-template-columns:30px 72px minmax(0,1fr);
    gap:10px;
    width:100%;
    max-width:100%;
    min-height:auto;
    padding:18px 14px;
    border-radius:20px;
    overflow:visible;
  }
  .wcpbo-card.has-badge,
  .wcpbo-card:has(.wcpbo-badge){padding-top:44px;}
  .wcpbo-radio{width:24px;height:24px;align-self:center}
  .wcpbo-media img{max-width:66px;max-height:66px}
  .wcpbo-content{grid-column:3;gap:3px;}
  .wcpbo-title{font-size:20px;line-height:1.08;}
  .wcpbo-subtitle,.wcpbo-saving,.wcpbo-note{font-size:14px;line-height:1.25;}
  .wcpbo-free{font-size:13px;padding:5px 10px;margin-top:3px;}
  .wcpbo-pricebox{grid-column:3;align-items:flex-start;min-width:0;width:100%;margin-top:4px;}
  .wcpbo-price{font-size:20px;line-height:1.1;text-align:left;max-width:100%;}
  .wcpbo-old{font-size:14px;line-height:1.15;text-align:left;max-width:100%;}
  .wcpbo-badge{top:10px;right:10px;max-width:calc(100% - 20px);font-size:13px;padding:7px 11px;border-radius:12px;}
}
@media(max-width:380px){
  .wcpbo-card{grid-template-columns:26px 58px minmax(0,1fr);gap:8px;padding:16px 10px;}
  .wcpbo-media img{max-width:56px;max-height:56px}
  .wcpbo-title{font-size:18px;}
  .wcpbo-price{font-size:18px;}
  .wcpbo-subtitle,.wcpbo-saving,.wcpbo-note{font-size:13px;}
  .wcpbo-free{font-size:12px;}
}


/* 1.0.4: responsive container-safe layout fix.
   Keeps the wide desktop design, but when the product summary column is narrow
   it switches the price area underneath the text instead of squeezing words vertically. */
.wcpbo-wrap{container-type:inline-size;}
.wcpbo-card{isolation:isolate;}
.wcpbo-title,.wcpbo-subtitle,.wcpbo-saving,.wcpbo-note,.wcpbo-price,.wcpbo-old{
  word-break:normal;
  overflow-wrap:break-word;
  hyphens:none;
}
@container (max-width: 720px){
  .wcpbo-card{
    grid-template-columns:32px 78px minmax(170px,1fr);
    grid-template-areas:
      "radio image content"
      "radio image price";
    align-items:center;
    gap:12px 14px;
    padding:18px 16px;
    overflow:visible;
  }
  .wcpbo-radio{grid-area:radio;align-self:center;}
  .wcpbo-media{grid-area:image;}
  .wcpbo-content{grid-area:content;min-width:0;width:100%;}
  .wcpbo-pricebox{grid-area:price;align-items:flex-start;min-width:0;width:100%;max-width:100%;}
  .wcpbo-price,.wcpbo-old{text-align:left;white-space:normal;}
  .wcpbo-title{font-size:22px;line-height:1.12;}
  .wcpbo-subtitle,.wcpbo-saving,.wcpbo-note{font-size:15px;line-height:1.26;}
  .wcpbo-price{font-size:23px;line-height:1.12;}
  .wcpbo-old{font-size:15px;line-height:1.15;}
  .wcpbo-card.has-badge,
  .wcpbo-card:has(.wcpbo-badge){padding-top:42px;}
  .wcpbo-badge{top:10px;right:12px;font-size:14px;padding:7px 12px;max-width:calc(100% - 24px);}
}
@container (max-width: 460px){
  .wcpbo-card{
    grid-template-columns:28px 64px minmax(0,1fr);
    grid-template-areas:
      "radio image content"
      "radio image price";
    gap:10px;
    padding:16px 12px;
    border-radius:20px;
  }
  .wcpbo-card.has-badge,
  .wcpbo-card:has(.wcpbo-badge){padding-top:42px;}
  .wcpbo-media img{max-width:62px;max-height:62px;}
  .wcpbo-title{font-size:19px;line-height:1.1;}
  .wcpbo-subtitle,.wcpbo-saving,.wcpbo-note{font-size:13.5px;line-height:1.23;}
  .wcpbo-price{font-size:19px;line-height:1.12;}
  .wcpbo-old{font-size:13px;}
  .wcpbo-free{font-size:12px;padding:5px 9px;}
  .wcpbo-badge{font-size:12.5px;padding:7px 10px;border-radius:11px;}
}
@container (max-width: 340px){
  .wcpbo-card{
    grid-template-columns:26px 54px minmax(0,1fr);
    padding:15px 10px;
    gap:8px;
  }
  .wcpbo-media img{max-width:52px;max-height:52px;}
  .wcpbo-title{font-size:17px;}
  .wcpbo-price{font-size:17px;}
  .wcpbo-subtitle,.wcpbo-saving,.wcpbo-note{font-size:12.5px;}
}
