/* Scoped campaign banner. The existing site's layout and visual identity remain intact. */
.esp32-promo{display:grid;grid-template-columns:180px minmax(0,1fr) 225px;align-items:center;gap:25px;margin:22px 0 28px;padding:24px;border:1px solid #286361;border-radius:14px;background:linear-gradient(110deg,#123e3e,#183b45);color:#fff;box-shadow:0 12px 30px #122e3812;scroll-margin-top:160px}
.esp32-promo-image{display:block;overflow:hidden;border-radius:10px;background:#fff;aspect-ratio:1}
.esp32-promo-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .2s}
.esp32-promo-image:hover img{transform:scale(1.035)}
.esp32-promo-copy{min-width:0}.esp32-promo-label{margin:0 0 10px;color:#c9ec93;font-size:11px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase}
.esp32-promo h2{margin:0 0 12px;max-width:540px;color:#fff;font-size:clamp(23px,2.5vw,31px);font-weight:800;letter-spacing:-.8px;line-height:1.15}
.esp32-promo-copy>p:not(.esp32-promo-label){margin:0 0 13px;color:#dbe8e6;font-size:14px;line-height:1.65}.esp32-promo-copy strong{color:#fff}.esp32-promo-detail{font-size:12px;color:#e5f4cb;text-underline-offset:4px;text-decoration:underline}
.esp32-promo-purchase{display:flex;flex-direction:column;align-items:stretch;gap:8px;border-left:1px solid #ffffff28;padding-left:24px}.esp32-promo-price{font-size:25px;line-height:1.2;letter-spacing:-.5px;color:#fff}.esp32-promo #campaign-stock{font-size:11px;line-height:1.5;color:#dbe8e6}
.esp32-promo-buy{display:flex;align-items:center;justify-content:center;min-height:44px;padding:11px 15px;border:1px solid #d2f2a1;border-radius:7px;background:#d2f2a1;color:#17342b;font-size:13px;font-weight:800;text-decoration:none}.esp32-promo-buy:hover{background:#e2ffc0;color:#17342b}.esp32-promo-add{min-height:36px;padding:7px 10px;border:1px solid #ffffff50;border-radius:7px;background:transparent;color:white;font-size:12px;cursor:pointer}.esp32-promo-add:hover{background:#ffffff12}.esp32-promo-add:disabled{opacity:.5;cursor:default}.esp32-promo-purchase small{font-size:10px;color:#dbe8e6}.esp32-promo a:focus-visible,.esp32-promo button:focus-visible{outline:3px solid #d2f2a1;outline-offset:4px}
@media(max-width:900px){.esp32-promo{grid-template-columns:145px minmax(0,1fr);gap:18px;padding:20px}.esp32-promo-purchase{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-left:0;border-top:1px solid #ffffff28;padding:16px 0 0;align-items:center;column-gap:18px}.esp32-promo-price{grid-column:1;grid-row:1}.esp32-promo #campaign-stock{grid-column:1;grid-row:2}.esp32-promo-buy{grid-column:2;grid-row:1}.esp32-promo-add{grid-column:2;grid-row:2}.esp32-promo-purchase small{grid-column:1/-1}}
@media(max-width:540px){.esp32-promo{grid-template-columns:100px minmax(0,1fr);gap:14px;margin:14px 0 22px;padding:16px}.esp32-promo h2{font-size:21px;letter-spacing:-.5px}.esp32-promo-label{font-size:9px;letter-spacing:.7px;margin-bottom:8px}.esp32-promo-copy>p:not(.esp32-promo-label){font-size:12px;line-height:1.5;margin-bottom:8px}.esp32-promo-detail{font-size:11px}.esp32-promo-price{font-size:22px}.esp32-promo-purchase{gap:8px 12px;padding-top:12px}.esp32-promo-buy{font-size:12px;padding:10px}.esp32-promo #campaign-stock{font-size:10px}}
@media(max-width:360px){.esp32-promo{grid-template-columns:80px minmax(0,1fr);padding:13px;gap:12px}.esp32-promo h2{font-size:19px}.esp32-promo-price{font-size:20px}}
@media(prefers-reduced-motion:reduce){.esp32-promo-image img{transition:none}}
