/* Kane's Observations — theme-locked public campaign banners. */
.ko-campaign-slot[hidden]{display:none!important}
.ko-campaign-slot{position:relative;width:100%;isolation:isolate}
.ko-campaign-banner{--ko-campaign-accent:#517893;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;min-height:126px;padding:28px clamp(24px,4vw,72px);overflow:hidden;border-block:1px solid #ccd6dc;background:linear-gradient(110deg,#fffdf8 0%,#f4f1e9 57%,#e9f0f4 100%);color:#17232b;box-shadow:inset 0 1px 0 rgba(255,255,255,.82)}
.ko-campaign-banner::before{content:"";position:absolute;z-index:-1;top:-120px;right:clamp(26px,9vw,150px);width:280px;height:280px;border:1px solid color-mix(in srgb,var(--ko-campaign-accent) 20%,transparent);border-radius:50%;box-shadow:0 0 0 34px color-mix(in srgb,var(--ko-campaign-accent) 5%,transparent),0 0 0 68px color-mix(in srgb,var(--ko-campaign-accent) 3%,transparent)}
.ko-campaign-banner::after{content:"";position:absolute;z-index:-1;inset:0 auto 0 0;width:5px;background:var(--ko-campaign-accent)}
.ko-campaign-banner--flash_sale{--ko-campaign-accent:#9d3f39}
.ko-campaign-banner--upcoming_sale{--ko-campaign-accent:#315f7c}
.ko-campaign-banner--new_release{--ko-campaign-accent:#526b61}
.ko-campaign-banner--announcement{--ko-campaign-accent:#6c5a7b}
.ko-campaign-copy{min-width:0;max-width:940px}
.ko-campaign-kicker{display:flex;align-items:center;gap:10px;margin:0 0 8px;color:var(--ko-campaign-accent);font:800 12px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.19em;text-transform:uppercase}
.ko-campaign-kicker::before{content:"";width:24px;height:2px;background:currentColor}
.ko-campaign-headline{margin:0;color:#17232b;font:600 clamp(25px,2.5vw,39px)/1.05 Georgia,'Times New Roman',serif;letter-spacing:-.025em;text-wrap:balance}
.ko-campaign-body{max-width:760px;margin:9px 0 0;color:#53616a;font:500 14px/1.58 Arial,Helvetica,sans-serif;text-wrap:pretty}
.ko-campaign-action{position:relative;z-index:1;display:inline-flex;min-width:158px;min-height:46px;align-items:center;justify-content:center;padding:12px 19px;border:1px solid #315f7c;border-radius:7px;background:#315f7c;color:#fff;text-decoration:none;font:800 12px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.13em;text-align:center;text-transform:uppercase;box-shadow:0 8px 18px rgba(49,95,124,.17);transition:background .18s ease,border-color .18s ease,transform .18s ease}
.ko-campaign-action::after{content:"\2192";margin-left:10px;font-size:16px;line-height:0}
.ko-campaign-action:hover,.ko-campaign-action:focus-visible{border-color:#17232b;background:#17232b;outline:3px solid rgba(81,120,147,.24);outline-offset:3px;transform:translateY(-1px)}
.ko-campaign-slot[data-ko-campaign-slot="homepage_strip"]{margin:0}
.shop-main .ko-campaign-slot[data-ko-campaign-slot="shop_banner"]{margin-top:28px}
.shop-main .ko-campaign-banner{border:1px solid #ccd6dc;border-radius:13px;box-shadow:0 13px 32px rgba(23,35,43,.075)}
@media(max-width:700px){
  .ko-campaign-banner{grid-template-columns:1fr;gap:20px;min-height:0;padding:25px 22px 24px}
  .ko-campaign-banner::before{top:-105px;right:-95px;width:235px;height:235px}
  .ko-campaign-headline{font-size:clamp(25px,8vw,34px);line-height:1.08}
  .ko-campaign-body{font-size:14px;line-height:1.55}
  .ko-campaign-action{width:100%;min-height:48px}
  .shop-main .ko-campaign-slot[data-ko-campaign-slot="shop_banner"]{margin-top:20px}
}
@media(prefers-reduced-motion:reduce){.ko-campaign-action{transition:none}}
