/* SoloTutes Festival Celebrations — restrained, brand-friendly presentation */
.st-festival-overlay{position:fixed;inset:0;z-index:999990;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(7,20,43,.66);backdrop-filter:blur(5px)}
.st-festival-overlay.is-visible{display:flex}
.st-festival-modal{position:relative;box-sizing:border-box;width:min(460px,100%);padding:34px 28px 26px;border:1px solid rgba(56,189,248,.35);border-radius:22px;background:#fff;color:#10213d;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.28);font-family:inherit;animation:stFestivalEnter .35s ease-out}
.st-festival-close{position:absolute;top:10px;right:13px;width:34px;height:34px;border:0;border-radius:50%;background:#eef6fb;color:#20334f;font-size:25px;line-height:1;cursor:pointer}
.st-festival-emblem{font-size:42px;line-height:1.2;margin:0 0 12px}
.st-festival-modal h2{margin:0 0 12px;color:#102c55;font-size:clamp(24px,5vw,32px);font-weight:800;line-height:1.2}
.st-festival-message{margin:0 auto 20px;max-width:360px;color:#52647b;font-size:15px;line-height:1.7}
.st-festival-offer{display:flex;flex-direction:column;gap:5px;margin:0 0 18px;padding:14px;border:1px dashed var(--st-festival-accent,#38bdf8);border-radius:13px;background:#f1faff}
.st-festival-offer strong{color:#12345d;font-size:16px}.st-festival-offer span{color:#5a6c82;font-size:13px;line-height:1.5}
.st-festival-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 24px;border-radius:999px;background:var(--st-festival-accent,#38bdf8);color:#082747!important;font-weight:700;text-decoration:none!important;transition:transform .2s,filter .2s}
.st-festival-cta:hover{filter:brightness(.96);transform:translateY(-1px)}
.st-festival-dismiss{display:block;margin:14px auto 0;padding:7px 12px;border:0;background:transparent;color:#6b7b8e;font-size:13px;cursor:pointer}
.st-festival-decor{position:fixed;top:22%;z-index:9990;display:flex;flex-direction:column;align-items:center;gap:18px;pointer-events:none;user-select:none;opacity:.82}
.st-festival-decor-left{left:10px}.st-festival-decor-right{right:10px}
.st-festival-decor span{font-size:25px;color:#f5b942;text-shadow:0 2px 12px rgba(245,185,66,.3);animation:stFestivalFloat 3.5s ease-in-out infinite}
.st-festival-decor span:nth-child(2){animation-delay:.7s;font-size:19px}.st-festival-decor span:nth-child(3){animation-delay:1.3s;font-size:27px}
@keyframes stFestivalFloat{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-9px) rotate(5deg)}}
@keyframes stFestivalEnter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:600px){.st-festival-decor{top:auto;bottom:12%;gap:12px;opacity:.55}.st-festival-decor-left{left:4px}.st-festival-decor-right{right:4px}.st-festival-decor span{font-size:18px}.st-festival-decor span:nth-child(3){font-size:21px}.st-festival-modal{padding:30px 20px 22px;border-radius:18px}}
@media(prefers-reduced-motion:reduce){.st-festival-modal,.st-festival-decor span{animation:none}.st-festival-cta{transition:none}}

/* Managed offers landing page */
.st-festival-offers-page{max-width:1180px;margin:0 auto;padding:24px 18px 60px;color:var(--st-text,#14243d)}
.st-festival-offers-hero{position:relative;overflow:hidden;margin:0 0 34px;padding:clamp(28px,6vw,64px) 24px;border:1px solid rgba(56,189,248,.25);border-radius:24px;background:linear-gradient(135deg,#10294d,#164c78);color:#fff;text-align:center}
.st-festival-offers-kicker{display:inline-block;margin-bottom:12px;color:#9de5ff;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.st-festival-offers-hero h1{margin:0 0 12px;color:#fff;font-size:clamp(28px,5vw,46px);line-height:1.15}
.st-festival-offers-hero p{max-width:680px;margin:0 auto;color:#d8eaf7;font-size:16px;line-height:1.7}
.st-festival-offers-section{margin:32px 0}
.st-festival-offers-section h2{margin:0 0 18px;color:var(--st-heading,#102c55);font-size:clamp(21px,3vw,28px)}
.st-festival-offers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(245px,100%),1fr));gap:18px}
.st-festival-product-card{overflow:hidden;border:1px solid var(--st-border,#dce7f1);border-radius:17px;background:var(--st-card-bg,#fff);box-shadow:0 8px 24px rgba(16,44,85,.06);transition:transform .2s,box-shadow .2s}
.st-festival-product-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(16,44,85,.11)}
.st-festival-product-image{display:block;aspect-ratio:16/9;overflow:hidden;background:#eef6fb}
.st-festival-product-image img{width:100%;height:100%;object-fit:cover}
.st-festival-product-content{padding:18px}
.st-festival-product-badge{display:inline-block;margin-bottom:10px;padding:5px 9px;border-radius:999px;background:#e4f7ff;color:#075985;font-size:11px;font-weight:700}
.st-festival-product-card h3{margin:0 0 12px;font-size:17px;line-height:1.45}
.st-festival-product-card h3 a{color:var(--st-heading,#102c55);text-decoration:none}
.st-festival-price{display:flex;align-items:center;gap:10px;margin:0 0 15px}
.st-festival-price del{color:#8291a4;font-size:13px}
.st-festival-price strong{color:#087ca8;font-size:23px;font-weight:800}
.st-festival-product-cta{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:10px;background:var(--st-festival-accent,#38bdf8);color:#082747!important;font-weight:750;text-decoration:none!important}
@media(max-width:600px){.st-festival-offers-page{padding:14px 12px 40px}.st-festival-offers-hero{border-radius:17px}.st-festival-offers-grid{gap:12px}.st-festival-product-content{padding:14px}}

.st-festival-cursor-spark{position:fixed;z-index:1000000;pointer-events:none;color:#f6bd45;font-size:15px;line-height:1;text-shadow:0 0 8px rgba(255,197,74,.8);transform:translate(-50%,-50%);animation:stFestivalSpark .65s ease-out forwards}
.st-festival-product-card:hover{border-color:rgba(56,189,248,.55)}
.st-festival-product-card:hover .st-festival-product-badge{animation:stFestivalBadge .65s ease-out}
@keyframes stFestivalSpark{0%{opacity:1;transform:translate(-50%,-50%) scale(.65) rotate(0)}55%{opacity:1;transform:translate(calc(-50% + 9px),calc(-50% - 12px)) scale(1.2) rotate(35deg)}100%{opacity:0;transform:translate(calc(-50% + 20px),calc(-50% - 28px)) scale(.2) rotate(75deg)}
}
@keyframes stFestivalBadge{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
