/*
Theme Name: Stream Widget Store
Description: Minimal creator storefront. Custom child theme for Storefront.
Template: storefront
Version: 1.0.0
Text Domain: stream-widget-store
*/
:root{--sws-paper:#f7f5f0;--sws-white:#fff;--sws-ink:#202020;--sws-muted:#65625e;--sws-purple:#6735c4;--sws-lilac:#ece5f7;--sws-kraft:#e5d6be;--sws-line:#dedbd5}
*{box-sizing:border-box}html{scroll-behavior:smooth}.sws{background:var(--sws-paper);color:var(--sws-ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;margin:0}.sws h1,.sws h2,.sws h3,.sws h4{font-family:Arial,Helvetica,sans-serif;color:var(--sws-ink);font-weight:700;margin:0;letter-spacing:-.045em;line-height:1.08}.sws h1{font-size:clamp(42px,5.8vw,78px)}.sws h2{font-size:clamp(30px,3.25vw,44px)}.sws h3{font-size:23px;letter-spacing:-.035em}.sws p{margin:0 0 20px}.sws a{color:inherit;text-decoration:none;transition:color .15s ease}.sws a:hover{color:var(--sws-purple)}.sws img{display:block;max-width:100%;height:auto;border-radius:0}.sws button,.sws input,.sws select,.sws textarea{font:inherit}.sws button{cursor:pointer}.sws button:disabled{cursor:not-allowed}.sws :focus-visible{outline:3px solid var(--sws-purple);outline-offset:4px}.sws [hidden]{display:none!important}.sws-shell{width:min(1240px,calc(100% - 80px));margin-inline:auto}.sws-purple{color:var(--sws-purple)}.sws-skip{position:absolute;left:16px;top:-100px;z-index:99999;background:white;padding:12px}.sws-skip:focus{top:10px}.sws-header{border-bottom:1px solid var(--sws-line);background:var(--sws-paper);position:sticky;top:0;z-index:50}.sws-header-inner{height:98px;display:flex;gap:40px;align-items:center;justify-content:space-between}.sws-brand{display:flex;align-items:center;gap:9px;font-size:20px;font-weight:800;letter-spacing:-1.1px;white-space:nowrap}.sws-brand img{border-radius:50%;width:42px;height:42px}.sws-nav{display:flex;gap:30px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sws-header-actions{display:flex;gap:26px;align-items:center}.sws-icon-link{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sws-ink)}.sws-icon-link:hover{color:var(--sws-ink)}.sws-icon{width:21px;height:21px}.sws-icon-label{color:var(--sws-muted);font-weight:600}.sws-cart-count{position:absolute;top:-6px;right:-13px;background:var(--sws-purple);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.sws-menu-toggle{display:none}.sws-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.65px;display:block;margin-bottom:19px}.sws-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;min-height:620px;padding:36px 0 38px}.sws-hero h1{margin:0 0 28px;line-height:1.02;max-width:700px}.sws-underline{position:relative;z-index:0}.sws-underline:after{content:"";position:absolute;background:#c6b1e8;height:10px;bottom:4px;left:2%;width:98%;z-index:-1;transform:rotate(-2deg);clip-path:polygon(0 20%,100% 0,97% 80%,2% 100%)}.sws-hero-copy>p{font-size:18px;color:var(--sws-muted);line-height:1.65}.sws-hero-copy em{font-style:normal;color:var(--sws-ink)}.sws-hero-actions{display:flex;align-items:center;gap:28px;margin:32px 0}.sws-button,.sws .button,.sws button.button,.sws input[type=submit],.sws .woocommerce a.button{display:inline-flex;justify-content:center;align-items:center;gap:30px;min-height:52px;padding:15px 23px;border:1px solid var(--sws-purple);border-radius:5px;background:var(--sws-purple);color:white;font-weight:600;font-size:14px;line-height:1.4;text-decoration:none;box-shadow:none;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.sws-button:hover,.sws .button:hover{background:#5123a8;color:white;transform:translateY(-2px);box-shadow:0 10px 22px rgba(103,53,196,.28)}.sws-button:active,.sws .button:active{transform:translateY(0);box-shadow:none}.sws-text-link{font-size:13px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:4px;display:inline-block}.sws-hero-note{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:var(--sws-muted)}.sws-hero-note span+span:before{content:"·";margin-right:14px}.sws-hero-art{position:relative;isolation:isolate}.sws-hero-art>img{mix-blend-mode:multiply;width:100%}.sws-paper-label{position:absolute;right:3%;bottom:0;transform:rotate(-7deg);padding:18px 23px;background:var(--sws-kraft);font-size:17px;line-height:1.3;box-shadow:3px 5px 0 #27201c10;clip-path:polygon(1% 2%,98% 0,100% 97%,3% 100%)}.sws-platform-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--sws-line);border-bottom:1px solid var(--sws-line);padding:24px 0;font-size:21px;font-weight:700;letter-spacing:-.7px}.sws-platform-strip>span:first-child{font-size:10px;font-weight:500;letter-spacing:1.3px;color:var(--sws-muted)}.sws-section{padding:78px 0;border-bottom:1px solid var(--sws-line)}.sws-section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:36px}.sws-section-heading .sws-eyebrow{margin-bottom:13px}.sws-section-heading>p{font-size:14px;color:var(--sws-muted);margin:0}.sws-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.sws-card{min-width:0;display:block!important}.sws-card-art{height:285px;position:relative;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.sws-static{background:#e9dece}.sws-animated{background:#e9e1f3}.sws-bundle{background:#e2e5d8}.sws-card-art>.sws-emote{width:46%;max-height:70%;transform:rotate(-7deg);border:5px solid white;border-radius:8px;background:white;filter:drop-shadow(5px 6px 0 #34293816)}.sws-card-art.sws-animated>.sws-emote{width:42%;transform:rotate(8deg)}.sws-card-art.sws-bundle>div{display:flex;width:75%;gap:8px;transform:rotate(-5deg)}.sws-card-art.sws-bundle .sws-emote{width:50%;border:4px solid white;border-radius:8px;filter:drop-shadow(3px 4px 0 #27221a15)}.sws-tag{position:absolute;bottom:16px;left:16px;background:#ffffffd9;padding:4px 9px;border-radius:3px;font-size:9px;letter-spacing:1px;font-weight:700}.sws-motion{position:absolute;right:20%;top:14%;font-size:44px;color:#8057b2;transform:rotate(10deg)}.sws-card-copy{padding:21px 0 0}.sws-card-copy .sws-eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:9px}.sws-card h3{font-size:21px;display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.sws-card-copy>p{font-size:13px;color:var(--sws-muted);line-height:1.6;margin-bottom:15px}.sws-card .sws-text-link{font-size:12px}.sws-emote{position:relative;display:block;overflow:hidden;flex-shrink:0;background:white}.sws-emote img{position:absolute;height:auto;max-width:none}.sws-steps{list-style:none;padding:0;margin:40px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:50px;counter-reset:steps}.sws-step-number{display:block;color:var(--sws-purple);font-size:14px;margin-bottom:18px;font-weight:700}.sws-steps h3{font-size:21px;margin-bottom:12px}.sws-steps p{font-size:14px;color:var(--sws-muted);max-width:300px;margin:0}.sws-sizes{display:flex;gap:24px;align-items:center;background:#efece5;padding:19px 24px;border-radius:5px;font-size:11px;justify-content:space-between}.sws-sizes strong{letter-spacing:1px;font-size:9px}.sws-personality{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.sws-personality-art{background:#e9dece;padding:45px 30px 28px;border-radius:7px;transform:rotate(-1deg)}.sws-personality-art>div{display:flex;gap:12px}.sws-personality-art .sws-emote{width:calc((100% - 24px)/3);border:5px solid white;border-radius:8px}.sws-personality-art>span{display:block;text-align:center;font-size:11px;margin-top:26px;letter-spacing:.4px}.sws-personality h2{margin-bottom:22px}.sws-personality p{font-size:15px;color:var(--sws-muted);max-width:360px}.sws-tools-banner{background:var(--sws-lilac);border:1px solid #dcd1ec;display:flex;justify-content:space-between;align-items:center;gap:30px;border-radius:8px;padding:35px 38px;margin-top:65px}.sws-tools-banner h2{font-size:29px;margin-bottom:14px}.sws-tools-banner p{font-size:14px;color:var(--sws-muted);margin:0}.sws-tools-banner .sws-eyebrow{font-size:9px;margin-bottom:12px}.sws-button-outline{background:transparent;color:var(--sws-ink);border-color:#998bab;white-space:nowrap}.sws-faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;border:0}.sws-faq details{border-bottom:1px solid var(--sws-line);padding:17px 0}.sws-faq summary{font-size:14px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:15px}.sws-faq summary:after{content:"+";font-size:18px;font-weight:400}.sws-faq details[open] summary:after{content:"−"}.sws-faq details p{font-size:14px;color:var(--sws-muted);padding-top:16px;margin:0}.sws-footer{position:relative;background:#e6ded0;padding:78px 0 24px}.sws-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px}.sws-footer-grid>div>p{font-size:12px;color:var(--sws-muted);margin:19px 0}.sws-footer h2{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:17px;letter-spacing:0;margin-bottom:20px}.sws-footer-grid>div:not(:first-child)>a{display:block;font-size:12px;color:var(--sws-muted);padding-bottom:8px}.sws-footer-bottom{border-top:1px solid #d9d4ca;padding-top:22px;margin-top:32px;display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;align-items:center;font-size:10px;color:var(--sws-muted)}.sws-disclaimer{font-size:9px;color:var(--sws-muted);margin:13px 0 0!important}.sws-page{padding:32px 0 70px;min-height:60vh}.sws-breadcrumbs,.sws .woocommerce-breadcrumb{font-size:11px;margin-bottom:36px;color:var(--sws-muted)}.sws-breadcrumbs span{margin-left:10px}.sws-page-heading{margin:24px 0 45px;max-width:850px}.sws-page-heading h1{font-size:clamp(38px,5vw,62px);margin-bottom:20px}.sws-page-heading p{color:var(--sws-muted);max-width:650px}.sws-content{max-width:920px}.sws-content h2{font-size:28px;margin:30px 0 18px}.sws-content a{color:var(--sws-purple);text-decoration:underline}.sws-product-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:start}.sws-gallery-panel{aspect-ratio:1.02;background:#eee7f6;border:1px solid #e0d6eb;border-radius:9px;padding:26px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center}.sws-gallery-panel>.sws-eyebrow{align-self:start;font-size:9px;letter-spacing:1.3px}.sws-emote-main{width:46%;margin:0 auto 16px;transform:rotate(-5deg)}.sws-emote-main>.sws-emote{border:5px solid #fff;border-radius:8px;filter:drop-shadow(4px 6px 0 #3c21551a)}.sws-emote-row{display:flex;gap:17px;width:80%}.sws-emote-row>.sws-emote{width:calc((100% - 34px)/3);border:4px solid white;border-radius:6px}.sws-gallery-caption{font-size:11px;margin-top:28px;color:#685674}.sws-original{padding:0;background:var(--sws-kraft)}.sws-original img{width:100%}.sws-thumbnails{display:flex;gap:12px;align-items:center;margin-top:16px}.sws-thumbnails button{width:78px;height:62px;border:1px solid var(--sws-line);padding:5px;background:#fff;border-radius:4px;overflow:hidden}.sws-thumbnails button[aria-pressed=true]{border:2px solid var(--sws-purple)}.sws-thumbnails img{max-height:48px;width:auto;margin:auto}.sws-thumbnails>span{font-size:10px;color:var(--sws-muted);line-height:1.5}.sws-product-summary h1{font-size:clamp(40px,4.2vw,58px);line-height:1.05;margin-bottom:20px}.sws-product-summary>.sws-eyebrow{font-size:9px;margin-bottom:13px}.sws-lede{font-size:14px;color:var(--sws-muted);line-height:1.75;max-width:470px}.sws-configurator fieldset{margin:21px 0 0;padding:0;border:0;background:none}.sws-configurator legend{font-size:12px;font-weight:700;padding:0;margin-bottom:10px;display:block}.sws-options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.sws-options label{cursor:pointer;position:relative;font-size:12px;margin:0}.sws-options input{position:absolute;opacity:0;width:1px;height:1px}.sws-options label>span{display:flex;align-items:center;justify-content:center;gap:5px;min-height:49px;border:1px solid #d5d0c8;background:#fcfbf8;border-radius:4px;text-align:center;padding:10px 6px;line-height:1.4}.sws-options input:checked+span{border:2px solid var(--sws-purple);background:#efe7fa;color:#5425a4;padding:9px 5px}.sws-options input:focus-visible+span{outline:3px solid var(--sws-purple);outline-offset:3px}.sws-options input:disabled+span{opacity:.4;text-decoration:line-through;cursor:not-allowed}.sws-price{font-size:25px;font-weight:700;margin:22px 0 12px;letter-spacing:-.5px}.sws-price small{display:block;font-size:11px;font-weight:400;color:var(--sws-muted);letter-spacing:0;margin-top:3px}.sws-price-savings{font-size:12px;font-weight:700;color:#3f7a4d;margin:-6px 0 12px}.sws-price-savings s{color:var(--sws-muted);font-weight:400;margin-right:6px}.sws-ready-badge{display:inline-flex;align-items:center;gap:7px;background:#f1ede2;border-radius:999px;padding:.45rem .95rem;font-size:11px;font-weight:600;color:var(--sws-ink);margin:0 0 14px}.sws-create{width:100%;font-size:13px;letter-spacing:.5px;min-height:54px;justify-content:space-between}.sws-create:disabled{opacity:.7}.sws-availability{font-size:11px;color:var(--sws-muted);margin:10px 0 0!important}.sws-trust{text-align:center;font-size:10px;line-height:1.8;color:var(--sws-muted);margin-top:13px!important}.sws-after-purchase{border-top:1px solid var(--sws-line);margin-top:21px;padding-top:17px}.sws-after-purchase>span{font-size:9px;font-weight:700;letter-spacing:1px}.sws-after-purchase>p{font-size:11px;color:var(--sws-muted);margin-top:5px}.sws-after-purchase b{margin:0 6px;color:#a59baf}.sws-tool-intro{max-width:800px;margin:65px auto;text-align:center}.sws-tool-intro h1{margin-bottom:25px}.sws-tool-intro>p{font-size:18px;color:var(--sws-muted)}.sws-tool-flow{display:flex;gap:22px;justify-content:center;list-style:decimal;padding:25px 25px 30px;font-size:12px}.sws-tool-flow li{margin-left:12px}.sws .woocommerce{max-width:100%}.sws .woocommerce table{background:transparent}.sws .woocommerce table th,.sws .woocommerce table td{padding:18px}.sws .woocommerce input.input-text,.sws .woocommerce textarea,.sws .woocommerce select{background:white;border:1px solid var(--sws-line);border-radius:4px;padding:12px;box-shadow:none}.sws .woocommerce .woocommerce-info,.sws .woocommerce .woocommerce-message{background:#eee8f7;color:var(--sws-ink);border-left:4px solid var(--sws-purple)}.sws .woocommerce a{color:var(--sws-purple)}.sws .woocommerce a.button{color:white}.sws .woocommerce-MyAccount-navigation{background:#eeeae2;padding:24px;border-radius:5px}.sws .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0}.sws .woocommerce-MyAccount-navigation li{padding:10px 0}.sws .woocommerce form .form-row label{font-size:13px}.sws .woocommerce h2,.sws .woocommerce h3{margin:25px 0 18px;font-size:26px}.sws .woocommerce .cart_totals{padding:24px;background:#eeeae2;border-radius:6px}.sws .woocommerce .cart_totals h2{margin-top:0}.sws table.shop_table{border:1px solid var(--sws-line);border-radius:5px}.sws .woocommerce .quantity .qty{width:70px}.sws .woocommerce-checkout #payment{background:#eeeae2}.sws .woocommerce-checkout #payment .payment_box{background:#e2d9ed}.sws-content:has(.woocommerce){max-width:none}.sws .site-main{padding:0}
@media(min-width:1450px){.sws-shell{width:min(1320px,calc(100% - 120px))}.sws-hero{min-height:660px}.sws-hero-art{max-width:580px;margin-left:auto}.sws-card-art{height:305px}}
@media(max-width:1100px){.sws-shell{width:calc(100% - 48px)}.sws-header-inner{gap:20px}.sws-brand{font-size:17px}.sws-nav{gap:18px}.sws-header-actions{gap:13px}.sws-hero{min-height:530px}.sws-hero h1{font-size:60px}.sws-product-layout{gap:35px}.sws-card-art{height:230px}.sws-card h3{font-size:19px}.sws-sizes{gap:15px}.sws-personality{gap:40px}.sws-hero-note{gap:8px}.sws-hero-note span+span:before{margin-right:8px}}
@media(max-width:800px){.sws-header-inner{height:78px;flex-wrap:wrap;position:relative;gap:10px}.sws-brand{font-size:18px}.sws-header-actions{margin-left:auto}.sws-header-actions>a:first-child{display:none}.sws-menu-toggle{display:flex;align-items:center;gap:9px;order:3;background:transparent;color:var(--sws-ink);padding:8px;border:1px solid var(--sws-line);border-radius:4px;font-size:11px}.sws-nav{display:none;position:absolute;top:77px;left:-24px;right:-24px;padding:22px 24px;background:var(--sws-paper);border-bottom:1px solid var(--sws-line);z-index:100}.sws-nav.is-open{display:flex;flex-direction:column;gap:0}.sws-nav a{padding:12px}.sws-hero{grid-template-columns:1fr 1fr;gap:10px;min-height:465px;padding:30px 0}.sws-hero h1{font-size:45px}.sws-hero-copy>p{font-size:15px}.sws-hero-actions{gap:18px;flex-wrap:wrap;margin:23px 0}.sws-hero-note{display:none}.sws-eyebrow{font-size:8px;letter-spacing:1.2px}.sws-paper-label{font-size:14px;padding:14px;bottom:-15px}.sws-platform-strip{font-size:18px}.sws-platform-strip>span:first-child{font-size:8px;max-width:100px}.sws-section{padding:55px 0}.sws-section-heading{margin-bottom:28px}.sws-section-heading>p{display:none}.sws-cards{gap:18px}.sws-card-art{height:190px}.sws-card h3{font-size:17px}.sws-card-copy .sws-eyebrow{font-size:7px;letter-spacing:.6px}.sws-card-copy>p{font-size:12px}.sws-card .sws-text-link{font-size:10px}.sws-tag{font-size:7px;bottom:10px;left:10px}.sws-steps{gap:24px}.sws-steps h3{font-size:18px}.sws-steps p{font-size:12px}.sws-sizes{flex-wrap:wrap;font-size:10px;justify-content:start;gap:10px 25px}.sws-personality{gap:30px}.sws-personality-art{padding:35px 20px 24px}.sws-tools-banner{padding:28px;flex-direction:column;align-items:start;margin-top:45px}.sws-faq{gap:30px}.sws-footer-grid{grid-template-columns:1.5fr 1fr 1fr;gap:26px}.sws-footer-grid>div:first-child{grid-column:1/-1}.sws-footer-grid>div>p{margin-bottom:0}.sws-product-layout{gap:30px}.sws-gallery-panel{padding:18px}.sws-gallery-caption{font-size:9px;margin-top:20px}.sws-product-summary h1{font-size:38px}.sws-product-summary>.sws-eyebrow{font-size:7px}.sws-lede{font-size:12px}.sws-options{gap:5px}.sws-options label{font-size:10px}.sws-price{font-size:23px}.sws-after-purchase>p{font-size:10px}.sws-thumbnails>span{font-size:8px}}
@media(max-width:580px){.sws-shell{width:calc(100% - 36px)}.sws-brand{font-size:16px;gap:6px}.sws-brand img{width:34px;height:34px}.sws-header-inner{height:70px}.sws-header-actions{gap:16px}.sws-icon-label{display:none}.sws-cart-count{top:-6px;right:-8px}.sws-menu-toggle{font-size:10px;padding:7px;gap:5px}.sws-nav{top:69px;left:-18px;right:-18px}.sws-hero{grid-template-columns:1fr;padding:38px 0 25px;gap:2px}.sws-hero h1{font-size:clamp(43px,12.5vw,65px);margin-bottom:22px}.sws-hero-copy>p{font-size:16px}.sws-hero-actions{flex-wrap:nowrap;gap:23px;margin-bottom:10px}.sws-button{padding:14px 19px;font-size:12px;gap:17px}.sws-hero-art{width:90%;max-width:370px;margin:-5px auto 0}.sws-paper-label{bottom:7px;right:0}.sws-platform-strip{gap:14px;flex-wrap:wrap;justify-content:space-around;font-size:17px;padding:18px 0}.sws-platform-strip>span:first-child{max-width:none;flex-basis:100%;text-align:center;font-size:8px}.sws-section{padding:44px 0}.sws h2{font-size:32px}.sws-section-heading{display:block}.sws-section-heading>.sws-text-link{margin-top:17px}.sws-cards{grid-template-columns:1fr;gap:34px}.sws-card-art{height:285px}.sws-card-art>.sws-emote{max-width:160px}.sws-card-art.sws-animated>.sws-emote{max-width:140px}.sws-card-art.sws-bundle>div{max-width:240px}.sws-card h3{font-size:23px}.sws-card-copy .sws-eyebrow{font-size:8px;letter-spacing:1.2px}.sws-card-copy>p{font-size:14px}.sws-card .sws-text-link{font-size:12px}.sws-tag{font-size:8px;left:15px;bottom:15px}.sws-steps{grid-template-columns:1fr;gap:26px;margin:28px 0}.sws-steps li{padding-left:46px;position:relative}.sws-step-number{position:absolute;left:0;top:0}.sws-steps h3{font-size:20px}.sws-steps p{font-size:14px;max-width:none}.sws-sizes{display:block;text-align:center;padding:20px 10px}.sws-sizes>span{display:block;font-size:10px;margin-top:10px}.sws-personality{grid-template-columns:1fr;gap:36px}.sws-personality-art{max-width:100%}.sws-personality h2 br{display:none}.sws-personality p{max-width:none}.sws-tools-banner{padding:25px 22px}.sws-tools-banner h2{font-size:29px}.sws-tools-banner .sws-button{white-space:normal}.sws-faq{grid-template-columns:1fr;gap:18px}.sws-faq h2 br{display:none}.sws-faq summary{font-size:13px}.sws-footer-grid{grid-template-columns:1fr 1fr;gap:30px}.sws-footer-grid>div:last-child{grid-column:1/-1}.sws-footer-grid>div:last-child>a{display:inline-block;margin-right:20px}.sws-footer-bottom{display:block;line-height:2}.sws-footer-bottom>div{display:block}.sws-footer-secure{margin-top:4px}.sws-page{padding-top:22px}.sws-breadcrumbs,.sws .woocommerce-breadcrumb{margin-bottom:25px;font-size:10px}.sws-product-layout{grid-template-columns:1fr;gap:32px}.sws-gallery-panel{aspect-ratio:1.08;padding:23px 34px}.sws-gallery-caption{font-size:10px}.sws-thumbnails button{height:51px;width:66px}.sws-thumbnails img{max-height:39px}.sws-thumbnails>span{font-size:9px}.sws-product-summary h1{font-size:46px}.sws-product-summary h1 br{display:none}.sws-product-summary>.sws-eyebrow{font-size:8px}.sws-lede{font-size:14px}.sws-options{gap:8px}.sws-options label{font-size:11px}.sws-options label>span{min-height:52px}.sws-after-purchase>p{font-size:11px}.sws-create{font-size:13px}.sws-price{font-size:29px}.sws-tool-flow{display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:left}.sws .woocommerce table th,.sws .woocommerce table td{padding:10px}.sws .woocommerce-MyAccount-navigation{margin-bottom:28px}.sws .woocommerce .cart_totals{padding:18px}.sws-step-dot{width:30px;height:30px;font-size:.72rem}.sws-step-label{font-size:.6rem}.sws-steps-nav::before,.sws-steps-nav::after{top:15px}.sws-step-next{font-size:.72rem;padding:.8rem 1rem}.sws-step-back{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* --- Scroll container fix ---------------------------------------------
   overflow-x on <body> turned the body into the scrolling element, which
   broke window scrolling, in-page anchors (#how-it-works, skip link) and
   sticky positioning. Moving the horizontal clip to <html> hands scrolling
   back to the viewport. */
html { overflow-x: hidden; }
body { overflow-x: visible; overflow-y: visible; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }


/* --- Proof section ------------------------------------------------------
   The source artwork is Etsy listing material: torn paper, washi tape and
   paper clips around the useful part. .sws-crop scales past those borders
   so only the artwork shows, until clean cut-outs replace these files. */
.sws-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.sws-review { margin: 0; padding: 1.5rem; border: 1px solid rgba(0,0,0,.09); border-radius: 14px; background: #fff; }
.sws-review p { margin: .5rem 0 1rem; }
.sws-review cite { font-style: normal; font-weight: 700; font-size: .9rem; }
.sws-stars { letter-spacing: .2em; color: #6b3fd4; }
@media (max-width: 860px) {
  .sws-review-grid { grid-template-columns: 1fr; }
}


/* --- Product facts -----------------------------------------------------
   Replaces the centred grey trust line. Left-aligned to match the rest of
   the summary column, and says something a buyer can act on. */
.sws-facts { list-style: none; margin: 1.75rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid rgba(0,0,0,.1); display: grid; gap: 1rem; text-align: left; }
.sws-facts li { display: grid; gap: .15rem; }
.sws-facts b { font-size: .95rem; }
.sws-facts span { font-size: .85rem; line-height: 1.5; opacity: .7; }
.sws-product-layout .sws-product-summary { align-content: start; }
.sws-after-purchase { margin-top: 1.75rem; }


/* --- Deliverables + pose catalogue ------------------------------------- */
.sws-deliver { display: grid; grid-template-columns: 1.1fr 1fr; gap: 3rem; align-items: center; }
.sws-deliver-list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.1rem; }
.sws-deliver-list li { display: grid; gap: .2rem; padding-left: 1.25rem; position: relative; }
.sws-deliver-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: .45rem; height: .45rem; border-radius: 50%; background: #6b3fd4; }
.sws-deliver-list b { font-size: .98rem; }
.sws-deliver-list span { font-size: .87rem; line-height: 1.55; opacity: .72; }
.sws-pose-note { margin-top: 1rem; font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; opacity: .55; }
@media (max-width: 860px) {
  .sws-deliver { grid-template-columns: 1fr; gap: 2rem; }
}


/* --- Stepped configurator ---------------------------------------------- */
.sws-steps-nav{position:relative;display:flex;list-style:none;margin:0 0 1.6rem;padding:0;--progress:0%}
.sws-steps-nav::before{content:'';position:absolute;top:18px;left:calc(100%/6);right:calc(100%/6);height:2px;background:#e2ddd3;z-index:0}
.sws-steps-nav::after{content:'';position:absolute;top:18px;left:calc(100%/6);width:calc(var(--progress) * (100% - 100%/3) / 100);max-width:calc(100% - 100%/3);height:2px;background:var(--sws-ink);z-index:0;transition:width .25s ease}
.sws-steps-nav li{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;cursor:pointer;text-align:center}
.sws-step-dot{width:36px;height:36px;border-radius:50%;border:2px solid #e2ddd3;background:var(--sws-paper);color:#8a8378;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;margin-bottom:7px;transition:background .2s,border-color .2s,color .2s}
.sws-step-label{font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a8378;transition:color .2s}
.sws-steps-nav li.is-done .sws-step-dot,.sws-steps-nav li.is-current .sws-step-dot{background:var(--sws-ink);border-color:var(--sws-ink);color:#fff}
.sws-steps-nav li.is-current .sws-step-label,.sws-steps-nav li.is-done .sws-step-label{color:var(--sws-ink)}
.sws-step-actions{display:flex;align-items:center;gap:12px;margin:1.3rem 0 .4rem}
.sws-step-actions[hidden]{display:none!important}
.sws-step-back{width:44px;height:44px;flex-shrink:0;border-radius:50%;border:2px solid #e2ddd3;background:#fff;color:var(--sws-ink);font-size:1rem;display:inline-flex;align-items:center;justify-content:center}
.sws-step-back:hover{border-color:var(--sws-ink)}
.sws-step-next{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--sws-ink);color:#fff;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.95rem 1.4rem}
.sws-step-next:hover{background:#000}
.sws-step[hidden]{display:none}
.sws-upload-field{margin:0 0 18px}
.sws-upload-field label{display:block;font-size:12px;font-weight:700;margin-bottom:8px}
.sws-upload-field input[type=file]{display:block;width:100%;font-size:12px;padding:10px;border:1px dashed #d5d0c8;border-radius:6px;background:#fcfbf8}
.sws-upload-hint{font-size:11px;color:var(--sws-muted);margin:8px 0 0}
.sws-upload-warn{font-size:11px;color:#a4472f;margin:8px 0 0}
.sws-upload-preview{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.sws-upload-preview figure{margin:0;width:72px}
.sws-upload-preview img{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--sws-line)}
.sws-upload-preview figcaption{font-size:9px;color:var(--sws-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sws-upload-field textarea{width:100%;border:1px solid #d5d0c8;border-radius:6px;padding:12px;font-size:13px;background:#fcfbf8;resize:vertical}
.sws-upload-field textarea:focus-visible{outline:3px solid var(--sws-purple);outline-offset:2px}
.sws-step-poses{max-height:min(60vh,520px);overflow-y:auto;padding-right:.4rem}
.sws-pose-hint{font-size:.85rem;opacity:.7;margin:.8rem 0 .4rem}
.sws-pose-missing{font-size:.9rem;opacity:.75}


/* --- Product gallery: real portfolio examples, per pack format ---------
   Replaces the generic mascot-crop placeholder. Panels are full-bleed
   photos/video (object-fit: cover) inside the existing square frame, with
   the caption as a bottom-anchored overlay so the frame size stays fixed
   whichever format is selected. */
.sws-gallery-panel.sws-gallery-photo { padding: 0; overflow: hidden; background: var(--sws-kraft); position: relative; }
.sws-gallery-panel.sws-gallery-photo img,
.sws-gallery-panel.sws-gallery-photo video { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.sws-gallery-panel.sws-gallery-photo .sws-gallery-caption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 10px 14px; font-size: 11px; color: #fff; background: linear-gradient(to top, rgba(32,25,42,.72), transparent); }
.sws-thumb-play { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: 18px; color: var(--sws-purple); background: #efe7fa; border-radius: 2px; }
@media (max-width: 580px) {
  .sws-gallery-panel.sws-gallery-photo .sws-gallery-caption { font-size: 10px; padding: 8px 10px; }
}


/* --- Footer: wave divider, newsletter, social, legal/secure bar --------- */
main .sws-section:last-of-type { border-bottom: 0; }
.sws-footer-wave { position: absolute; top: -52px; left: 0; width: 100%; height: 80px; line-height: 0; overflow: hidden; pointer-events: none; }
.sws-footer-wave svg { width: 100%; height: 100%; display: block; }
.sws-footer-wave path { fill: #e6ded0; filter: drop-shadow(0 -6px 10px rgba(32,25,20,.05)); }
.sws-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.sws-newsletter { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.sws-newsletter input[type=email] { flex: 1; min-width: 140px; background: #fff; border: 1px solid var(--sws-line); border-radius: 4px; padding: 12px 14px; font-size: 13px; }
.sws-newsletter button { border: 1px solid var(--sws-purple); background: var(--sws-purple); color: #fff; font-size: 12px; font-weight: 600; padding: 0 18px; border-radius: 4px; white-space: nowrap; }
.sws-newsletter button:hover { background: #5123a8; }
.sws-newsletter-msg { flex-basis: 100%; font-size: 11px; margin: 4px 0 0 !important; color: var(--sws-purple); }
.sws-newsletter-msg.is-error { color: #b3412c; }
.sws-social { display: flex; gap: 10px; margin-top: 16px; }
.sws-social a { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: #e3ddef; color: var(--sws-purple); font-size: 11px; font-weight: 700; }
.sws-social a:hover { background: var(--sws-purple); color: #fff; }
.sws-footer-legal a { color: var(--sws-muted); padding-bottom: 0; }
.sws-footer-legal a:hover { color: var(--sws-purple); }
.sws-footer-sep { margin: 0 8px; opacity: .6; }
.sws-footer-secure { display: flex; align-items: center; gap: 10px; }
.sws-card-badges { display: flex; gap: 6px; }
.sws-card-badges span { border: 1px solid #cfc9bd; border-radius: 3px; padding: 2px 6px; font-size: 9px; letter-spacing: .2px; background: #fff; }


/* --- Pack & format cards -------------------------------------------------
   Richer tiles for step 1 (pack) and step 2 (format): a "Most Popular"
   badge, a price hint on pack tiles, and an icon on format tiles. The
   card box is its own .sws-tile element (not the bare label>span the base
   .sws-options rule already styles) so JS can update the pack count text
   without wiping the price hint or badge that live alongside it. */
.sws-pack-options label, .sws-format-options label { position: relative; }
.sws-options .sws-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 74px; padding: 12px 6px; }
.sws-pack-count { display: block; }
.sws-tile-price { display: block; font-size: 10px; font-weight: 400; opacity: .65; }
.sws-options input:checked + .sws-tile .sws-tile-price { opacity: .8; }
.sws-format-icon { font-size: 16px; line-height: 1; color: var(--sws-purple); }
/* Higher specificity than the base ".sws-options label>span" rule (2 classes
   beats 1 class + 2 elements), since .sws-badge is also a direct span child
   of the label and would otherwise inherit that rule's card-box styling. */
.sws-options .sws-badge { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); display: inline-block; min-height: 0; border: 0; background: var(--sws-purple); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .3px; padding: 3px 9px; border-radius: 99px; white-space: nowrap; line-height: 1.4; z-index: 1; }
.sws-card-popular .sws-tile { margin-top: 2px; }
.sws-format-note { font-size: 11px; color: var(--sws-muted); margin: 0 0 8px; min-height: 1.4em; }


/* --- Trust row -----------------------------------------------------------
   Replaces the long-form facts list with a compact 4-icon row, matching
   the reference layout (icon + one short line each). */
.sws-trust-row { list-style: none; margin: 1.5rem 0 0; padding: 1.15rem 0 0; border-top: 1px solid rgba(0,0,0,.1); display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; text-align: center; }
.sws-trust-row li { display: flex; flex-direction: column; align-items: center; gap: .35rem; }
.sws-trust-icon { width: 30px; height: 30px; flex-shrink: 0; border-radius: 50%; background: #efe7fa; color: var(--sws-purple); display: flex; align-items: center; justify-content: center; font-size: 13px; }
.sws-trust-row li > span:last-child { font-size: .72rem; line-height: 1.3; opacity: .75; }
@media (max-width: 580px) {
  .sws-trust-row { grid-template-columns: repeat(2, 1fr); gap: 1rem .5rem; }
}


/* --- Homepage: hero trust badges ----------------------------------------
   A quick-scan row of real, already-established facts (licence, revisions,
   turnaround) directly under the hero, before the platform strip. */
.sws-hero-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; padding: 20px 0 26px; }
.sws-hero-badges span { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--sws-line); border-radius: 999px; padding: 8px 16px; font-size: 12px; font-weight: 600; color: var(--sws-ink); }
.sws-hero-badges i { color: var(--sws-purple); font-style: normal; font-size: 13px; }
@media (max-width: 580px) {
  .sws-hero-badges { gap: 8px; padding: 14px 0 20px; }
  .sws-hero-badges span { font-size: 11px; padding: 7px 12px; }
}


/* --- Homepage: benefits grid --------------------------------------------- */
.sws-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.sws-benefit-icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--sws-lilac); color: var(--sws-purple); font-size: 18px; margin-bottom: 16px; }
.sws-benefit h3 { font-size: 18px; margin-bottom: 8px; }
.sws-benefit p { font-size: 13px; color: var(--sws-muted); line-height: 1.6; margin: 0; }
@media (max-width: 800px) { .sws-benefit-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 20px; } }
@media (max-width: 580px) { .sws-benefit-grid { grid-template-columns: 1fr; gap: 26px; } }


/* --- Homepage: comparison table ------------------------------------------
   "Us vs. a typical marketplace seller." Deliberately hedged language
   (often/usually/typical) since this describes a general pattern, not a
   named competitor. Both columns render every row on desktop; on mobile
   the <b> mini-labels (hidden above 700px) identify each column. */
.sws-compare-table { border: 1px solid var(--sws-line); border-radius: 10px; overflow: hidden; background: #fff; }
.sws-compare-row { display: grid; grid-template-columns: 1fr 1.3fr 1.3fr; gap: 16px; padding: 18px 22px; border-bottom: 1px solid var(--sws-line); font-size: 13px; align-items: center; }
.sws-compare-row:last-child { border-bottom: 0; }
.sws-compare-label { font-weight: 700; }
.sws-compare-them, .sws-compare-us { color: var(--sws-muted); line-height: 1.5; }
.sws-compare-us { color: var(--sws-ink); font-weight: 600; }
.sws-compare-them b, .sws-compare-us b { display: none; }
@media (max-width: 700px) {
  .sws-compare-row { grid-template-columns: 1fr; gap: 6px; padding: 16px; }
  .sws-compare-label { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--sws-muted); }
  .sws-compare-them b, .sws-compare-us b { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: .05em; color: #a89bb8; font-weight: 700; margin-bottom: 2px; }
  .sws-compare-us b { color: var(--sws-purple); }
}


/* --- Homepage: brand story ------------------------------------------------ */
.sws-story { text-align: center; }
.sws-story-copy { max-width: 720px; margin: 0 auto; }
.sws-story-copy h2 { margin: 0 0 20px; }
.sws-story-copy p { font-size: 15px; color: var(--sws-muted); line-height: 1.75; max-width: 640px; margin: 0 auto 16px; }


/* --- Homepage: guarantee bar ---------------------------------------------- */
.sws-guarantee { padding: 50px 0; }
.sws-guarantee-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; text-align: center; }
.sws-guarantee-grid > div { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.sws-guarantee-grid b { font-size: 14px; }
.sws-guarantee-grid span:last-child { font-size: 11px; color: var(--sws-muted); }
@media (max-width: 700px) { .sws-guarantee-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; } }


/* --- Homepage: final CTA banner -------------------------------------------
   .sws-section already sets padding/border-bottom; both are overridden
   here (this rule comes later in the cascade at equal specificity). */
.sws-final-cta { background: var(--sws-ink); color: #fff; border-radius: 14px; border: 0; text-align: center; padding: 70px 40px; margin: 20px 0 0; }
.sws-final-cta .sws-eyebrow { color: #c6b1e8; }
.sws-final-cta h2 { color: #fff; margin-bottom: 16px; }
.sws-final-cta p { color: #cfc9d6; max-width: 480px; margin: 0 auto 30px; }
@media (max-width: 580px) { .sws-final-cta { padding: 46px 22px; } }


/* --- Header: "Shop" dropdown with category tiles --------------------------
   Click-to-toggle (not hover) so it behaves the same on touch and desktop;
   see store.js. .sws-nav-trigger resets button chrome and re-inherits the
   nav's own text styling so it reads identically to the plain <a> links
   beside it. */
.sws-nav-dropdown { position: relative; }
.sws-nav-trigger { display: inline-flex; align-items: center; gap: 5px; background: none; border: 0; padding: 0; margin: 0; font: inherit; text-transform: inherit; letter-spacing: inherit; color: inherit; cursor: pointer; }
.sws-nav-trigger:hover { color: var(--sws-purple); }
.sws-nav-caret { font-size: 9px; transition: transform .15s ease; }
.sws-nav-trigger[aria-expanded="true"] .sws-nav-caret { transform: rotate(180deg); }
.sws-nav-panel { position: absolute; top: calc(100% + 22px); left: 50%; transform: translateX(-50%); display: flex; gap: 22px; background: #fff; border: 1px solid var(--sws-line); border-radius: 12px; padding: 26px; box-shadow: 0 16px 38px rgba(32,25,20,.15); z-index: 60; }
.sws-nav-panel[hidden] { display: none; }
.sws-nav-tile { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 140px; text-align: center; text-transform: none; letter-spacing: 0; }
.sws-nav-tile-art { position: relative; width: 120px; height: 120px; border-radius: 10px; overflow: hidden; background: #eee7f6; border: 1px solid var(--sws-line); }
.sws-nav-tile-label { font-size: 12px; font-weight: 700; color: var(--sws-ink); line-height: 1.35; }
.sws-nav-tile:hover .sws-nav-tile-label { color: var(--sws-purple); }
.sws-nav-tile-icon { display: flex; align-items: center; justify-content: center; background: #f1ede2; color: #a89bb8; font-size: 40px; }
.sws-nav-tile-soon .sws-nav-tile-label { color: var(--sws-muted); }
.sws-nav-badge { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); background: var(--sws-ink); color: #fff; font-size: 8px; font-weight: 700; letter-spacing: .3px; padding: 3px 8px; border-radius: 99px; white-space: nowrap; z-index: 1; }
@media (max-width: 800px) {
  .sws-nav-trigger { width: 100%; justify-content: space-between; padding: 12px; }
  .sws-nav-panel { position: static; transform: none; box-shadow: none; border: 0; border-radius: 0; padding: 4px 12px 14px; margin: 0; gap: 14px; flex-wrap: wrap; justify-content: center; background: transparent; }
  .sws-nav-tile { width: 96px; gap: 8px; }
  .sws-nav-tile-art { width: 88px; height: 88px; }
  .sws-nav-tile-icon { font-size: 28px; }
  .sws-nav-tile-label { font-size: 10px; }
}


/* --- Shop page: top-level category cards ---------------------------------
   Reuses the .sws-cards / .sws-card system sws_cards() already established;
   .sws-card-art-icon and .sws-tag-soon are the only additions, for the two
   categories that are announced but not built yet. */
.sws-card-art-icon { display: flex; align-items: center; justify-content: center; background: #efece5; color: #a89bb8; font-size: 56px; }
.sws-tag-soon { background: var(--sws-ink); color: #fff; }


/* --- Blog: post grid + single article -------------------------------------
   index.php does double duty (archive/home grid vs. singular article),
   matching how the theme's other fallback templates already branch on
   is_singular()/slug rather than shipping a separate template per case. */
.sws-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-bottom: 40px; }
.sws-blog-card { display: block; border: 1px solid var(--sws-line); border-radius: 10px; overflow: hidden; background: #fff; }
.sws-blog-card:hover { border-color: #c9c2b6; }
.sws-blog-card-art { position: relative; aspect-ratio: 4 / 3; background: #eee7f6; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sws-blog-card-art img { width: 100%; height: 100%; object-fit: cover; }
.sws-blog-card-art > span[aria-hidden] { font-size: 34px; color: #a89bb8; }
.sws-blog-card-art .sws-tag { position: absolute; bottom: 12px; left: 12px; }
.sws-blog-card-copy { padding: 18px 20px 22px; }
.sws-blog-card-date { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--sws-muted); }
.sws-blog-card h3 { font-size: 18px; margin: 8px 0; }
.sws-blog-card-copy p { font-size: 13px; color: var(--sws-muted); line-height: 1.6; margin: 0 0 12px; }
.sws-blog-card .sws-text-link { font-size: 12px; }
.sws-post { max-width: 760px; margin: 0 auto; }
.sws-post .sws-page-heading { max-width: none; text-align: center; }
.sws-post-cover { display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; margin: 0 0 34px; background: #eee7f6; }
.sws-post-cover img { width: 100%; height: 100%; object-fit: cover; }
.sws-post .sws-content img { border-radius: 10px; margin: 10px 0 24px; }
.sws-post + .sws-final-cta { margin-top: 50px; }
@media (max-width: 900px) { .sws-blog-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@media (max-width: 580px) {
  .sws-blog-grid { grid-template-columns: 1fr; }
  .sws-post .sws-page-heading { text-align: left; }
}


/* --- Execution-quality polish pass -----------------------------------------
   Kept the existing light/paper/purple/mascot palette (confirmed direction)
   and raised finish: consistent hover lift + shadow on every card system,
   an image-zoom micro-interaction on hover, a small brand-purple accent
   mark on every eyebrow label, and a soft glow behind the hero art. All
   additive - no existing selector's base look changes, only what happens
   on hover/interaction. */

/* Eyebrow accent dot. Switching block -> inline-flex (not absolute
   positioning) so the dot stays glued to the text and both stay correctly
   centered wherever an eyebrow sits inside a text-align:center block
   (.sws-story, .sws-tool-intro, .sws-post .sws-page-heading). */
.sws-eyebrow { display: inline-flex; align-items: center; gap: 7px; }
.sws-eyebrow::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--sws-purple); flex-shrink: 0; }
@media (max-width: 800px) { .sws-eyebrow::before { width: 5px; height: 5px; } }

/* Card systems: consistent lift + shadow on the card, zoom on its art,
   without touching each variant's baked-in rotate() so the tilted-photo
   look is preserved. */
.sws-card { transition: transform .22s ease, box-shadow .22s ease; }
.sws-card:hover { transform: translateY(-6px); box-shadow: 0 18px 34px rgba(32,25,20,.12); }
.sws-card-art > .sws-emote, .sws-card-art.sws-bundle > div, .sws-card-art-icon > span { transition: transform .3s ease; }
.sws-card:hover .sws-card-art > .sws-emote { transform: scale(1.06) rotate(-7deg); }
.sws-card:hover .sws-card-art.sws-animated > .sws-emote { transform: scale(1.06) rotate(8deg); }
.sws-card:hover .sws-card-art.sws-bundle > div { transform: scale(1.06) rotate(-5deg); }
.sws-card:hover .sws-card-art-icon > span { transform: scale(1.12); }

.sws-blog-card { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.sws-blog-card:hover { transform: translateY(-5px); box-shadow: 0 16px 30px rgba(32,25,20,.09); }
.sws-blog-card-art img { transition: transform .35s ease; }
.sws-blog-card:hover .sws-blog-card-art img { transform: scale(1.06); }

.sws-nav-tile-art { transition: transform .22s ease, border-color .22s ease; }
.sws-nav-tile:hover .sws-nav-tile-art { transform: translateY(-3px); border-color: #c6b1e8; }
.sws-nav-tile-art .sws-emote, .sws-nav-tile-icon > span { transition: transform .3s ease; }
.sws-nav-tile:hover .sws-nav-tile-art .sws-emote { transform: scale(1.05); }
.sws-nav-tile:hover .sws-nav-tile-icon > span { transform: scale(1.1); }

/* Soft glow behind the hero art - depth cue without leaving the light
   palette. .sws-hero-art already sets isolation:isolate, so this stays
   behind the art itself rather than the whole page. */
.sws-hero-art::before { content: ''; position: absolute; inset: -10%; background: radial-gradient(closest-side, rgba(103,53,196,.15), rgba(103,53,196,0) 72%); z-index: -1; }

/* Shop page: a small count/status line above the category grid, in the
   spirit of a catalogue item-count without pretending to be a full filter
   bar the current 3-category catalogue doesn't need yet. */
.sws-shop-count { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sws-muted); margin: -20px 0 24px; }

@media (prefers-reduced-motion: reduce) {
  .sws-card, .sws-blog-card, .sws-nav-tile-art, .sws-button, .sws .button,
  .sws-card-art > .sws-emote, .sws-card-art.sws-bundle > div, .sws-card-art-icon > span,
  .sws-blog-card-art img, .sws-nav-tile-art .sws-emote, .sws-nav-tile-icon > span {
    transition: none;
  }
}


/* --- Brand icon set --------------------------------------------------------
   sws_icon() line-art icons replacing the mixed unicode glyphs in the
   benefits grid and guarantee bar. */
.sws-benefit-icon svg { width: 20px; height: 20px; }
.sws-trust-icon svg { width: 16px; height: 16px; }


/* --- Deliverables: on-brand size ladder ------------------------------------
   Replaces a cluttered Etsy-listing screenshot (torn paper, hand-drawn
   hearts, cropped at the edge) with a plain, accurate size comparison drawn
   from the same 5 export sizes already named in the copy beside it. */
.sws-deliver-art { background: #fff; border: 1px solid var(--sws-line); border-radius: 14px; padding: 50px 30px 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; }
.sws-size-scale { display: flex; align-items: flex-end; gap: 16px; }
.sws-size-chip { width: var(--s); height: var(--s); border: 2px solid var(--sws-line); border-radius: 7px; background: var(--sws-paper); display: flex; align-items: flex-end; justify-content: center; padding-bottom: 4px; }
.sws-size-chip:last-child { border-color: var(--sws-purple); background: var(--sws-lilac); }
.sws-size-chip i { font-style: normal; font-size: 9px; font-weight: 700; color: var(--sws-muted); }
.sws-size-chip:last-child i { color: var(--sws-purple); }
.sws-size-caption { font-size: 11px; color: var(--sws-muted); letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 860px) { .sws-deliver-art { padding: 38px 20px 30px; } }


/* --- Proof: real-scale demo -------------------------------------------------
   Replaces a fabricated "hype chat" screenshot with the one thing that's
   actually true pre-launch: the same real emote crop at its full export
   size and at the literal 28px it renders at in chat. */
.sws-scale-demo { display: flex; align-items: center; justify-content: center; gap: 50px; background: #fff; border: 1px solid var(--sws-line); border-radius: 14px; padding: 54px 30px; flex-wrap: wrap; }
.sws-scale-block { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.sws-scale-block > span { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sws-muted); }
.sws-scale-big .sws-emote { width: 200px; border: 6px solid #fff; border-radius: 10px; filter: drop-shadow(6px 8px 0 #34293816); }
.sws-scale-small { background: #1f1b24; padding: 22px 28px; border-radius: 12px; }
.sws-scale-small .sws-emote { width: 28px; border-radius: 3px; }
.sws-scale-small > span { color: #cfc9d6; }
.sws-scale-arrow { font-size: 26px; color: var(--sws-purple); }
@media (max-width: 700px) { .sws-scale-demo { gap: 28px; padding: 38px 20px; } .sws-scale-arrow { transform: rotate(90deg); } }


/* --- Pose catalogue: stat callout -------------------------------------------
   Replaces 4 screenshotted pose-sheet pages (a different character's art
   style, one panel visibly unrelated) with the real number as a proper
   stat, plus the brand's own real character crops. */
.sws-pose-showcase { display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; background: #fff; border: 1px solid var(--sws-line); border-radius: 14px; padding: 46px 30px; }
.sws-pose-number { font-size: clamp(64px, 9vw, 120px); font-weight: 800; letter-spacing: -.04em; color: var(--sws-purple); line-height: 1; }
.sws-pose-strip { display: flex; gap: 14px; }
.sws-pose-tile { display: block; width: 84px; transform: rotate(var(--r)); transition: transform .3s ease; }
.sws-pose-tile .sws-emote { border: 4px solid #fff; border-radius: 8px; filter: drop-shadow(4px 5px 0 #34293816); }
.sws-pose-showcase:hover .sws-pose-tile { transform: rotate(0); }
@media (max-width: 700px) { .sws-pose-showcase { gap: 24px; padding: 34px 20px; } .sws-pose-strip { gap: 8px; } .sws-pose-tile { width: 60px; } }


/* --- Order confirmation banner ---------------------------------------------
   Hooked onto WooCommerce's own thank-you page (see woocommerce_before_
   thankyou in functions.php) - sits above WooCommerce's real order table,
   which is left completely alone. */
.sws-thankyou-hero { max-width: 640px; margin: 0 auto 3rem; text-align: center; }
.sws-thankyou-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--sws-lilac); color: var(--sws-purple); margin-bottom: 18px; }
.sws-thankyou-icon svg { width: 24px; height: 24px; }
.sws-thankyou-hero .sws-eyebrow { justify-content: center; }
.sws-thankyou-hero h1 { font-size: clamp(30px, 4vw, 44px); margin: 4px 0 14px; }
.sws-thankyou-hero > p { color: var(--sws-muted); max-width: 480px; margin: 0 auto 30px; }
.sws-thankyou-steps { list-style: none; margin: 0 0 28px; padding: 24px 0 0; border-top: 1px solid var(--sws-line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; text-align: left; }
.sws-thankyou-steps li { display: grid; gap: 4px; }
.sws-thankyou-steps b { font-size: .92rem; }
.sws-thankyou-steps span { font-size: .82rem; color: var(--sws-muted); line-height: 1.5; }
.sws-thankyou-note { font-size: .85rem; color: var(--sws-muted); margin: 0 !important; }
@media (max-width: 700px) { .sws-thankyou-steps { grid-template-columns: 1fr; text-align: center; } }


/* --- Legal pages (Terms, Refund Policy, Privacy) ---------------------------
   Reuses .sws-content (blog post typography); .sws-legal only tightens the
   spacing for short policy sections instead of long-form article copy. */
.sws-legal h2 { font-size: 20px; margin: 32px 0 10px; }
.sws-legal h2:first-of-type { margin-top: 8px; }
.sws-legal p { font-size: 14px; color: var(--sws-muted); line-height: 1.7; }
.sws-legal > p:first-child { font-size: 12px; color: var(--sws-muted); opacity: .75; }

/* --- Shop page: filter pills + tile grid ------------------------------
   Filter pills toggle .sws-shop-tile visibility by data-cat (see store.js);
   tiles reuse .sws-card-art's height/background/emote-positioning rules
   (just add the class alongside .sws-shop-tile-art) so the pastel format
   backgrounds and emote crops already defined for the homepage cards carry
   over here without duplicating them. */
.sws-shop-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: -18px 0 34px; }
.sws-filter-pill { border: 1px solid var(--sws-line); background: #fff; color: var(--sws-ink); font-size: 12px; font-weight: 600; padding: 10px 18px; border-radius: 999px; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.sws-filter-pill:hover { border-color: var(--sws-purple); }
.sws-filter-pill.is-active { background: var(--sws-purple); border-color: var(--sws-purple); color: #fff; }
.sws-shop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sws-shop-tile-art { position: relative; }
.sws-shop-badge { position: absolute; top: 16px; left: 16px; background: #ffffffd9; padding: 4px 9px; border-radius: 3px; font-size: 9px; letter-spacing: 1px; font-weight: 700; }
.sws-shop-badge-soon { background: var(--sws-ink); color: #fff; }
.sws-shop-play { position: absolute; bottom: 16px; right: 16px; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--sws-purple); display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease; box-shadow: 0 4px 10px rgba(32,25,20,.15); }
.sws-shop-play svg { width: 15px; height: 15px; }
.sws-shop-tile:hover .sws-shop-play { opacity: 1; transform: translateY(0); }
.sws-shop-tile-footer { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; padding: 21px 0 0; }
.sws-shop-tile-footer h3 { font-size: 19px; margin-bottom: 6px; }
.sws-shop-tile-footer p { font-size: 13px; color: var(--sws-muted); line-height: 1.6; margin: 0; }
.sws-shop-price { font-size: 17px; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
@media (max-width: 800px) { .sws-shop-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .sws-shop-grid { grid-template-columns: 1fr; } .sws-filter-pill { font-size: 11px; padding: 8px 14px; } }
