/* Smarty Fun 2.0: responsive design correction layer. All artwork is independent. */
:root{--sf-heading:'Fredoka','Arial Rounded MT Bold','Trebuchet MS',sans-serif;--sf-body:'Nunito','Trebuchet MS',Arial,sans-serif}
h1,h2,h3,h4,.sf-widget-title{font-weight:700;letter-spacing:-.025em}
.sf-site-wrap{width:100%;overflow:clip}.sf-container{width:min(calc(100% - 56px),1360px)}
.sf-header-inner{min-height:100px;gap:24px}.sf-brand{flex:0 0 275px}.sf-logo{display:block;line-height:0}.sf-logo img{display:block;width:100%;max-width:280px;height:auto;margin:auto}.sf-tagline{margin-top:6px;font-size:12px}.sf-menu{gap:27px}.sf-menu a{font-size:14px}.sf-header-actions{flex-shrink:0}
.sf-hero{background:#faf7f0}.sf-hero-inner{width:min(100%,1600px);grid-template-columns:37% 63%;min-height:0;align-items:stretch}
.sf-hero-copy{padding:32px 5px 26px max(28px,calc((100vw - 1360px)/2));background:linear-gradient(100deg,#fff 75%,#fff0);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.sf-hero-copy h1{font-size:clamp(52px,5.4vw,83px);line-height:1.01;letter-spacing:-.035em;margin-bottom:26px}
.sf-hero-copy>p{font-size:17px;line-height:1.43;max-width:400px;font-weight:800}.sf-hero-copy .sf-hero-note{font-size:11px;line-height:1.5;max-width:400px}
.sf-hero-art{align-self:stretch;margin:0;position:relative;min-width:0;display:flex;align-items:stretch}
.sf-hero-art>img:first-child{width:100%;height:100%;object-fit:cover;object-position:50% 70%;min-height:460px}
.sf-hero-art:before{z-index:2;left:0;width:60px;background:linear-gradient(90deg,#fff,#ffffff00);top:0;bottom:0}
.sf-hero-bubble{position:absolute;top:3%;left:48%;width:clamp(125px,13vw,190px);aspect-ratio:1.28;background:#ffe56b;border:2px solid #fff2a5;border-radius:52% 48% 50% 45%;color:var(--sf-navy);font:700 clamp(21px,2.2vw,32px)/1.05 var(--sf-heading);letter-spacing:-.02em;text-align:center;display:flex;flex-direction:column;justify-content:center;transform:rotate(-11deg);box-shadow:inset 0 0 0 6px #fff29866;z-index:3}
.sf-hero-bubble:after{content:'';position:absolute;bottom:-16px;left:40%;border-left:21px solid transparent;border-top:28px solid #ffe56b;transform:rotate(-10deg)}
.sf-hero-art>img.sf-hero-markers{position:absolute;bottom:0;left:25%;width:65%;height:auto;min-height:0;object-fit:contain;z-index:4}
.sf-benefits{padding:22px 0}.sf-benefits-grid{gap:0;align-items:stretch}.sf-benefit{padding:0 19px;gap:13px;min-width:0;border-right:1px solid #deedf6;overflow:visible}.sf-benefit:first-child{padding-left:0}.sf-benefit:last-child{padding-right:0;border:0}.sf-benefit-icon{display:block!important;width:84px!important;height:84px!important;max-width:none!important;flex:0 0 84px;object-fit:contain!important;overflow:visible;clip-path:none!important}.sf-benefit>div{min-width:0}.sf-benefit h3{font-size:17px;line-height:1.15}.sf-benefit p{font-size:13px;line-height:1.35}
.sf-home-products{padding:27px 0 22px;background:linear-gradient(110deg,#e1f7ff,#e9faff)}.sf-section-heading{margin-bottom:23px}.sf-section-heading h2{font-size:clamp(32px,3.6vw,49px)}
.sf-product-showcase{display:block;min-width:0}.sf-product-showcase.has-mascot{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:end}.sf-product-showcase>.woocommerce{min-width:0}.sf-home-sign{align-self:end;padding-bottom:0}.sf-home-sign img{max-height:420px;width:100%;height:auto;object-fit:contain}
.sf-site .sf-home-products ul.products{margin:0!important;gap:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.sf-site .sf-home-products ul.products li.product{padding:15px 16px 20px;border:none;border-radius:16px;box-shadow:0 3px 0 #bee9f333;display:flex;flex-direction:column;align-items:center;margin:0!important;float:none!important;width:100%!important;min-width:0}
.sf-site .sf-home-products ul.products li.product>a.woocommerce-loop-product__link{width:100%}.sf-site .sf-home-products ul.products li.product a img{height:258px;margin-bottom:12px!important;object-fit:contain;max-width:100%}
.sf-site .sf-home-products ul.products li.product .woocommerce-loop-product__title{font:700 23px/1.08 var(--sf-heading);letter-spacing:-.025em;padding:0;margin:0 0 7px;color:var(--sf-blue)}
.sf-site .sf-home-products ul.products li.product .sf-product-subtitle{font-size:15px;line-height:1.3;margin:0 0 7px}.sf-site .sf-home-products ul.products li.product .price{font-size:25px;line-height:1.2;margin-bottom:12px}.sf-site .sf-home-products ul.products li.product .button{margin-top:auto;min-height:40px;padding:9px 26px;font-size:14px}
.sf-story-band{position:relative;width:100%;max-width:1600px;grid-template-columns:34% 40% 26%;min-height:0;isolation:isolate;overflow:hidden}
.sf-story-photo{min-height:345px;background:#f5f4ef}.sf-story-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;z-index:0}
.sf-story-photo:after{content:'';position:absolute;right:0;top:0;bottom:0;width:32px;background:linear-gradient(90deg,#ffffff00,#fff)}
.sf-story-copy{background:url('../images/brush-yellow-v2.svg') no-repeat center/100% 100%;padding:35px 27px;margin:8px -4px 5px -14px;position:relative;z-index:2;text-align:center}
.sf-story-copy h2{font-size:clamp(25px,2.6vw,37px);line-height:1.05;margin:0 0 16px}.sf-story-copy h2 span:last-child{color:#18b246}.sf-story-copy p{font-size:15px;line-height:1.5;margin-bottom:18px}.sf-story-copy .sf-button{min-height:43px;padding:10px 28px}
.sf-story-mascot{padding:22px 0 4px;align-items:flex-end;z-index:2}.sf-story-mascot>img{width:75%;max-width:300px;margin:0;z-index:2;object-fit:contain}.sf-story-mascot>p{font:700 clamp(17px,1.6vw,22px)/1.24 var(--sf-heading);letter-spacing:0;top:28px;right:9px;width:99px}.sf-story-mascot>p span{font-size:45px}
.sf-story-leaves{position:absolute;pointer-events:none;bottom:0;right:0;width:70%;height:55px;object-fit:fill;z-index:1}
.sf-process{width:min(100%,1600px);gap:5px;padding:5px 4px 4px}.sf-process-card{height:auto;aspect-ratio:3.15;border-radius:11px}.sf-process-card>img,.sf-process-card:last-child>img{width:100%;height:100%;object-fit:cover}.sf-process-card:nth-child(2)>img{object-position:center}.sf-process-label{bottom:9%;right:2%;padding:11px 18px 11px 10px;border-radius:48% 10% 19% 12% / 18% 31% 14% 20%;font:700 clamp(24px,2.5vw,37px)/1 var(--sf-heading);gap:8px;letter-spacing:-.02em;transform:rotate(-5deg);z-index:3;box-shadow:3px -4px 0 -2px currentColor}
.sf-process-label>span{width:40px;height:40px;flex:0 0 40px;font:700 25px/1 var(--sf-heading);border:3px solid white}.sf-process-label.is-blue{background:#039dda}.sf-process-label.is-green{background:#18b548}.sf-process-label.is-red{background:#fc1d3a}
.sf-newsletter{padding:16px 0;background:linear-gradient(100deg,#dbffd9,#eafed6 58%,#d8fbd7)}.sf-newsletter-inner{min-height:60px;gap:22px}.sf-newsletter-plane{width:80px}.sf-newsletter h2{font-size:28px}.sf-newsletter p{font-size:13px}.sf-newsletter-form{max-width:485px;min-width:0;flex:1.2}.sf-newsletter-input-row{display:flex;width:100%;align-items:stretch;gap:0}.sf-newsletter-unconfigured{width:100%}.sf-newsletter-input-row input[type=email]{border-radius:7px 0 0 7px;min-width:0;flex:1}.sf-newsletter-input-row .sf-button{border-radius:7px;flex:0 0 auto;min-height:46px;opacity:1}.sf-newsletter-unconfigured input{opacity:.9}.sf-newsletter-unconfigured small{display:block;font-size:11px;line-height:1.4;padding-top:4px;color:#37526b}.sf-newsletter-paw{width:59px;margin-left:10px}.sf-club-form{width:100%}.sf-club-form label.sf-club-consent{font-size:11px;line-height:1.4;display:flex;gap:6px;align-items:flex-start;margin-top:7px;font-weight:600}.sf-club-form input[type=checkbox]{min-width:14px;min-height:14px;margin:1px 0 0}.sf-club-notice{font-size:13px!important;background:white;border-radius:8px;padding:12px}.sf-club-hp{position:absolute;left:-10000px;opacity:0}
.sf-footer{padding:30px 0 15px}.sf-footer-grid{grid-template-columns:2.05fr .8fr .8fr 1.1fr 1.65fr 1.2fr;gap:25px;align-items:start;padding-bottom:28px}.sf-footer-brand{max-width:none;align-self:start}.sf-footer-brand .sf-logo img{max-width:282px;width:100%}.sf-footer-brand .sf-tagline{font-size:11px}.sf-footer-column h2,.sf-footer-family h2{font-size:14px;margin-bottom:9px;color:#0060c8}.sf-footer-column ul{font-size:12px;line-height:1.7}.sf-footer-column li{margin-bottom:1px}.sf-footer-family{border-left:1px solid #e0edf5;padding-left:22px}.sf-footer-family p{font-size:12px;margin-top:12px}.sf-socials{gap:9px;flex-wrap:nowrap}.sf-social{width:29px;height:29px;flex:0 0 29px}.sf-social.is-unconfigured{cursor:default}.sf-social.is-unconfigured:hover{transform:none}.sf-footer-skyline{align-self:center}.sf-footer-skyline img{width:100%;height:auto;object-fit:contain;min-width:0}.sf-footer-bottom{font-size:11px}.sf-footer-motto{font-size:12px}
.sf-sidebar-smile img{width:160px!important;max-height:285px!important;height:auto!important;object-fit:contain!important;margin:auto}.sf-sidebar-smile p{display:none}.sf-product-callout{background:linear-gradient(100deg,#e2f8ff,#eafcff)}
.sf-page-hero .sf-page-mascot img{max-height:235px;object-fit:contain}.sf-site .woocommerce ul.products li.product .woocommerce-loop-product__title{font-weight:700}.sf-site .woocommerce div.product .product_title{font-weight:700}
@media(min-width:1600px){.sf-hero-copy{padding-left:65px}.sf-hero-copy h1{font-size:85px}.sf-hero-art>img:first-child{min-height:540px}}
@media(max-width:1200px){.sf-container{width:calc(100% - 42px)}.sf-header-inner{gap:18px}.sf-brand{flex-basis:245px}.sf-menu{gap:18px}.sf-menu a{font-size:13px}.sf-hero-copy{padding-left:24px}.sf-hero-copy h1{font-size:clamp(50px,5.9vw,68px)}.sf-hero-copy>p{font-size:16px}.sf-hero-art>img:first-child{min-height:435px}.sf-benefit{padding:0 13px;gap:9px}.sf-benefit-icon{width:70px!important;height:70px!important;flex-basis:70px}.sf-benefit h3{font-size:15px}.sf-benefit p{font-size:12px}.sf-product-showcase.has-mascot{grid-template-columns:minmax(0,1fr) 172px;gap:12px}.sf-site .sf-home-products ul.products{gap:14px}.sf-site .sf-home-products ul.products li.product a img{height:210px}.sf-site .sf-home-products ul.products li.product .woocommerce-loop-product__title{font-size:21px}.sf-story-photo{min-height:300px}.sf-story-copy{padding:25px 22px}.sf-story-copy p{font-size:13px}.sf-story-mascot>p{right:4px;width:81px;font-size:17px}.sf-process-label{font-size:28px;padding:9px 13px 9px 9px}.sf-process-label>span{width:33px;height:33px;flex-basis:33px;font-size:21px}.sf-footer-grid{gap:18px;grid-template-columns:1.7fr .8fr .8fr 1fr 1.5fr}.sf-footer-skyline{grid-column:5;margin-top:-15px;max-width:150px;justify-self:end}.sf-footer-family{padding-left:15px}.sf-newsletter h2{font-size:25px}}
@media(max-width:980px){.sf-header-inner{min-height:85px;gap:0 20px}.sf-brand{flex:0 0 235px}.sf-nav{width:100%;margin:12px 0 0}.sf-menu{gap:0}.sf-menu a{font-size:15px}.sf-hero-inner{width:100%;grid-template-columns:40% 60%}.sf-hero-copy{padding:28px 10px 28px 22px}.sf-hero-copy h1{font-size:clamp(44px,6vw,57px)}.sf-hero-copy .sf-button{padding:12px 20px;font-size:16px}.sf-hero-copy>p{font-size:15px}.sf-hero-art>img:first-child{min-height:430px;object-position:56% 50%}.sf-hero-bubble{top:5%;left:37%;width:132px;font-size:23px}.sf-benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 0}.sf-benefit:nth-child(2){border:0;padding-right:0}.sf-benefit:nth-child(3){padding-left:0}.sf-benefit{padding:0 21px}.sf-benefit-icon{width:76px!important;height:76px!important;flex-basis:76px}.sf-benefit h3{font-size:17px}.sf-benefit p{font-size:13px}.sf-product-showcase.has-mascot{display:block}.sf-home-sign{display:none}.sf-site .sf-home-products ul.products li.product a img{height:225px}.sf-story-band{grid-template-columns:39% 39% 22%}.sf-story-photo{min-height:300px}.sf-story-copy{padding:26px 17px}.sf-story-copy h2{font-size:27px}.sf-story-copy p{font-size:13px}.sf-story-mascot>img{width:100%;margin-bottom:12px}.sf-story-mascot>p{top:15px;right:12px;width:100px;font-size:18px}.sf-story-mascot>p span{font-size:32px}.sf-newsletter-inner{flex-wrap:wrap;gap:14px}.sf-newsletter-copy{flex:1}.sf-newsletter-form{max-width:none;flex-basis:calc(100% - 100px);order:4}.sf-newsletter-paw{order:5;margin:0}.sf-newsletter-plane{width:70px}.sf-footer-grid{grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:23px}.sf-footer-family{grid-column:2/4;padding-left:0;border:0}.sf-footer-skyline{grid-column:4;grid-row:2;max-width:150px;margin:0}.sf-footer-brand{grid-row:1/3}.sf-process-label{font-size:25px;padding:7px 10px 7px 7px}.sf-process-label>span{width:29px;height:29px;flex-basis:29px;font-size:18px}}
@media(max-width:700px){.sf-container{width:calc(100% - 32px)}.sf-header-inner{min-height:79px;padding-block:12px}.sf-brand{flex:0 0 210px}.sf-tagline{font-size:10px}.sf-header-actions{gap:2px}.sf-icon-button{width:33px}.sf-account-link{display:none}.sf-hero-inner{display:flex;flex-direction:column}.sf-hero-copy{padding:27px 22px 18px;text-align:center;align-items:center;background:#fff}.sf-hero-copy h1{font-size:clamp(47px,9.9vw,65px);line-height:1;margin-bottom:25px}.sf-hero-copy h1 span{display:block}.sf-hero-copy>p{max-width:450px;font-size:16px;margin-bottom:17px}.sf-hero-copy .sf-hero-note{max-width:100%;margin-top:13px;font-size:11px}.sf-hero-art{width:100%;align-self:auto}.sf-hero-art>img:first-child{width:100%;height:auto;min-height:0;object-fit:contain}.sf-hero-art:before{width:100%;height:22px;top:0;bottom:auto;background:linear-gradient(#fff,#fff0)}.sf-hero-bubble{top:2%;left:49%;width:clamp(100px,24vw,156px);font-size:clamp(19px,4.7vw,28px)}.sf-hero-bubble:after{bottom:-12px;border-left-width:15px;border-top-width:20px}.sf-benefits{padding:18px 0}.sf-benefits-grid{gap:15px 0}.sf-benefit{padding:0 12px;gap:8px}.sf-benefit-icon{width:61px!important;height:61px!important;flex-basis:61px}.sf-benefit h3{font-size:14px}.sf-benefit p{font-size:12px;line-height:1.35}.sf-section-heading h2{font-size:35px}.sf-section-heading p{font-size:15px;max-width:85%;margin:auto}.sf-spark-heading:before,.sf-spark-heading:after{width:18px}.sf-spark-heading:before{left:-27px}.sf-spark-heading:after{right:-27px}.sf-site .sf-home-products ul.products{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sf-site .sf-home-products ul.products li.product{padding:12px 9px 17px}.sf-site .sf-home-products ul.products li.product a img{height:190px}.sf-site .sf-home-products ul.products li.product .woocommerce-loop-product__title{font-size:21px}.sf-site .sf-home-products ul.products li.product .sf-product-subtitle{font-size:13px}.sf-story-band{display:grid;grid-template-columns:60% 40%}.sf-story-photo{grid-column:1/-1;min-height:0;aspect-ratio:1.65}.sf-story-photo:after{right:0;left:0;top:auto;bottom:0;height:20px;width:100%;background:linear-gradient(#fff0,#fff)}.sf-story-photo img{object-fit:cover;object-position:50% 45%}.sf-story-copy{grid-column:1;padding:27px 18px 30px;margin:5px -12px 0 -4px}.sf-story-copy h2{font-size:29px}.sf-story-copy p{font-size:14px}.sf-story-mascot{grid-column:2;padding-top:100px;min-height:290px}.sf-story-mascot>img{width:100%;margin-bottom:5px}.sf-story-mascot>p{width:95%;right:2px;top:15px;font-size:20px}.sf-story-mascot>p span{display:inline-block;margin-left:6px;font-size:31px}.sf-story-leaves{width:100%;height:38px}.sf-process{gap:4px;padding:4px}.sf-process-card{aspect-ratio:1.5}.sf-process-label{right:3%;bottom:7%;font-size:22px;gap:5px;padding:8px 10px 8px 7px;white-space:nowrap}.sf-process-label>span{width:25px;height:25px;flex-basis:25px;font-size:17px;border-width:2px}.sf-newsletter h2{font-size:26px}.sf-newsletter p{font-size:13px}.sf-footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 14px}.sf-footer-brand{grid-column:1/-1;grid-row:auto;max-width:260px;justify-self:center}.sf-footer-column{grid-row:2}.sf-footer-family{grid-column:1/3;grid-row:3}.sf-footer-skyline{grid-column:3;grid-row:3;max-width:140px}.sf-footer-bottom{flex-direction:column;text-align:center;gap:10px;align-items:center}.sf-footer-column h2,.sf-footer-family h2{font-size:14px}.sf-footer-column ul{font-size:12px}.sf-footer-brand .sf-tagline{font-size:11px}}
@media(max-width:520px){.sf-brand{flex-basis:180px}.sf-icon-button{width:32px;height:38px}.sf-header-actions{gap:0}.sf-icon-button>.sf-icon{width:24px;height:24px}.sf-header-inner{gap:0 10px}.sf-header .sf-tagline{font-size:9px}.sf-announcement-inner{min-height:32px}.sf-announcement-inner>span:nth-child(2){display:none}.sf-benefit-icon{width:50px!important;height:50px!important;flex-basis:50px}.sf-benefit{padding:0 9px;gap:7px;align-items:flex-start}.sf-benefit h3{font-size:13px}.sf-benefit p{font-size:11px}.sf-site .sf-home-products ul.products{grid-template-columns:1fr;max-width:370px;margin-inline:auto!important;gap:16px}.sf-site .sf-home-products ul.products li.product{padding:20px 24px 23px}.sf-site .sf-home-products ul.products li.product a img{height:275px}.sf-site .sf-home-products ul.products li.product .woocommerce-loop-product__title{font-size:27px}.sf-site .sf-home-products ul.products li.product .sf-product-subtitle{font-size:15px}.sf-site .sf-home-products ul.products li.product .price{font-size:25px}.sf-site .sf-home-products ul.products li.product .button{font-size:15px;padding:10px 28px}.sf-process{grid-template-columns:1fr;gap:6px;padding:6px}.sf-process-card{aspect-ratio:3}.sf-process-label{font-size:30px;right:3%;padding:9px 18px 9px 9px}.sf-process-label>span{width:38px;height:38px;flex-basis:38px;font-size:23px;border-width:3px}.sf-newsletter-plane{width:52px}.sf-newsletter h2{font-size:24px}.sf-newsletter-form{flex-basis:100%;order:4}.sf-newsletter-paw{display:none}.sf-newsletter-input-row .sf-button{padding-inline:16px;font-size:14px}.sf-story-copy h2{font-size:26px}.sf-story-copy p{font-size:13px}.sf-story-copy{padding-inline:13px}.sf-story-mascot>p{font-size:18px}.sf-story-copy .sf-button{padding-inline:23px;font-size:14px}}
@media(max-width:360px){.sf-brand{flex-basis:156px}.sf-header-actions .sf-icon-button{width:30px}.sf-container{width:calc(100% - 24px)}.sf-hero-copy{padding-inline:16px}.sf-hero-copy h1{font-size:46px}.sf-benefit-icon{width:43px!important;height:43px!important;flex-basis:43px}.sf-benefit{gap:5px;padding-inline:7px}.sf-benefit h3{font-size:12px}.sf-benefit p{font-size:10px}.sf-story-copy h2{font-size:23px}.sf-story-copy p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.sf-story-mascot>p{right:15px;width:100px;overflow-wrap:normal;transform:rotate(-7deg);font-size:20px}.sf-story-mascot>img{width:72%;max-width:275px}.sf-story-copy{background-size:100% 97%}
@media(max-width:980px){.sf-story-mascot>p{right:6px;font-size:17px;width:85px}.sf-story-mascot>img{width:100%}}
@media(max-width:700px){.sf-story-mascot>p{right:6px;width:calc(100% - 12px);font-size:18px}.sf-story-mascot>img{width:100%}.sf-process-label{left:auto}.sf-process-label>span{display:flex}}
.sf-story-mascot>p{width:130px;right:10px;font-size:18px;line-height:1.3}
@media(max-width:980px){.sf-story-mascot>p{width:105px;font-size:15px;right:5px}}
@media(max-width:700px){.sf-story-mascot>p{width:calc(100% - 12px);font-size:17px;right:6px}}
/* Updated step artwork (2 Build it, 3 Play!) has its label baked into the image,
   so the theme's HTML overlay label would sit on top of it. Hide the overlay for
   those two cards only; step 1 still uses art without a printed label. */
/* labels re-enabled: step 2 and 3 artwork no longer has text printed in */
/* The old step-3 art was a small illustration that needed letterboxing; the new
   photo should fill the card like its siblings. */
.sf-site .sf-process-card:last-child>img{object-fit:cover}


/* Step cards: the stock 3.15 ratio made a 173px-tall card, crushing the wide step
   artwork ~4x and destroying the printed line detail. Cards are now 2:1 (520x260 at
   the 1600px row width), matching the re-exported 1040x520 artwork at 2x for crisp
   rendering on high-DPI screens. */
.sf-site .sf-process{width:min(100%,1600px);gap:10px;padding:10px}
.sf-site .sf-process-card{height:auto;aspect-ratio:2/1;border-radius:14px}
.sf-site .sf-process-card>img,
.sf-site .sf-process-card:last-child>img{width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:900px){.sf-site .sf-process-card{aspect-ratio:2/1}}
/* Tagline removed (sf_tagline set empty in the Customizer). The markup still emits an
   empty .sf-tagline element, so collapse it to avoid leftover spacing under the logo. */
.sf-site .sf-tagline:empty{display:none}
/* The supplied Pittsburgh skyline is 3:1 where the old art was 1.64:1, so at the
   inherited 150px cap it rendered only ~50px tall and read as a thin strip. Widen
   the footer slot so the illustration carries similar visual weight to before. */
.sf-site .sf-footer-skyline{max-width:340px}
/* The skyline sits in the LAST grid column (1.2fr of six) -- that column, not the
   max-width, was capping it at ~175px. Give the column more of the row, and pull the
   Follow Us block (col 5) in beside it so the two read as one group. */
.sf-site .sf-footer-grid{grid-template-columns:2.1fr .75fr .75fr .9fr 1.35fr 2.05fr;column-gap:18px}
.sf-site .sf-footer-family{justify-self:end;text-align:left}
.sf-site .sf-footer-skyline{justify-self:start;margin-left:-6px}
@media(max-width:1100px){.sf-site .sf-footer-skyline{max-width:260px}}
@media(max-width:900px){.sf-site .sf-footer-skyline{max-width:230px}}

/* ---------- Contact page ----------
   The Contact page content was authored for the previous theme and carries its own
   BEM-ish markup (.sf-contact__grid / __form / __aside / __card). The new theme only
   styles .sf-contact-layout, so the page fell back to one stacked column and the info
   cards ended up under the form instead of beside it. Style the existing markup so the
   page content does not have to be rewritten. */
.sf-site .sf-contact__intro{max-width:760px;margin:0 auto 28px;text-align:center}
.sf-site .sf-contact__lead{font-size:17px;line-height:1.6;color:var(--sf-navy)}
.sf-site .sf-contact__grid{
    display:grid;
    grid-template-columns:1.35fr 1fr;
    gap:38px;
    align-items:start;
    max-width:1140px;
    margin-inline:auto;
}
.sf-site .sf-contact__form{
    background:linear-gradient(140deg,#fff9d9,#fffef7);
    padding:30px;border-radius:20px;
}
.sf-site .sf-contact__aside{display:flex;flex-direction:column;gap:16px;min-width:0}
.sf-site .sf-contact__card{
    background:#f0faff;border:1px solid #cde8f7;border-radius:16px;padding:18px 20px;
}
.sf-site .sf-contact__card h3{
    font-family:var(--sf-heading);color:var(--sf-blue);
    font-size:20px;margin:0 0 6px;font-weight:400;
}
.sf-site .sf-contact__card p{margin:0;font-size:15px;line-height:1.55}
.sf-site .sf-contact__card--brand{background:#eaf7ee;border-color:#c7e8d2}
@media(max-width:900px){
    .sf-site .sf-contact__grid{grid-template-columns:1fr;gap:24px}
    .sf-site .sf-contact__form{padding:22px 18px}
}

/* ---------- /build/ — how-to page ----------
   The YouTube iframe needs an aspect-ratio wrapper or it renders at a fixed pixel
   size and overflows on phones. */
.sf-site .sf-build{max-width:900px;margin-inline:auto}
.sf-site .sf-build__lead{font-size:18px;line-height:1.6;color:var(--sf-navy);margin-bottom:26px}
.sf-site .sf-build__video{
    position:relative;aspect-ratio:16/9;width:100%;
    border-radius:18px;overflow:hidden;background:#000;
    box-shadow:0 10px 30px rgba(18,74,140,.18);margin-bottom:38px;
}
.sf-site .sf-build__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sf-site .sf-build h2{font-family:var(--sf-heading);color:var(--sf-blue);font-size:30px;font-weight:400;margin:34px 0 18px}
.sf-site .sf-build__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:10px}
.sf-site .sf-build__step{background:#f0faff;border:1px solid #cde8f7;border-radius:16px;padding:20px}
.sf-site .sf-build__step h3{font-family:var(--sf-heading);color:var(--sf-navy);font-size:21px;font-weight:400;margin:8px 0 6px}
.sf-site .sf-build__step p{margin:0;font-size:15px;line-height:1.55}
.sf-site .sf-build__num{
    display:inline-flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:50%;
    background:var(--sf-blue);color:#fff;font-family:var(--sf-heading);font-size:19px;
    font-weight:700;line-height:1;
}
.sf-site .sf-build__step:nth-child(2) .sf-build__num{background:var(--sf-green)}
.sf-site .sf-build__step:nth-child(3) .sf-build__num{background:var(--sf-red)}
.sf-site .sf-build__tips{padding-left:20px}
.sf-site .sf-build__tips li{margin-bottom:10px;line-height:1.6}
.sf-site .sf-build__cta{margin-top:32px;text-align:center}
@media(max-width:760px){
    .sf-site .sf-build__steps{grid-template-columns:1fr}
    .sf-site .sf-build h2{font-size:26px}
}

/* ---------- Newsletter: MC4WP form ----------
   The theme's placeholder used a .sf-button submit; the real MC4WP form renders
   input[type=submit] inside .mc4wp-form-fields. Without sizing rules for that
   element the button had no flex basis and overlapped the email field. */
.sf-site .sf-newsletter-form .mc4wp-form{width:100%;margin:0}
.sf-site .sf-newsletter-form .mc4wp-form-fields{display:block;width:100%}
.sf-site .sf-newsletter-form .sf-newsletter-input-row{
    display:flex;align-items:stretch;gap:8px;width:100%;margin:0;
}
.sf-site .sf-newsletter-form .sf-newsletter-input-row input[type=email]{
    flex:1 1 auto;min-width:0;width:auto;
    border-radius:8px;min-height:46px;padding:10px 14px;
    background:#fff;border:1px solid #fff;font-family:var(--sf-body);font-size:15px;
}
.sf-site .sf-newsletter-form .sf-newsletter-input-row input[type=submit]{
    flex:0 0 auto;width:auto;min-height:46px;padding:10px 26px;
    border-radius:8px;cursor:pointer;
    font-family:var(--sf-body);font-weight:800;font-size:15px;white-space:nowrap;
}
/* Response/error text sits under the row rather than stretching it. */
.sf-site .sf-newsletter-form .mc4wp-response{width:100%;margin-top:8px;font-size:14px}
.sf-site .sf-newsletter-form .mc4wp-alert p{margin:0}
@media(max-width:600px){
    .sf-site .sf-newsletter-form .sf-newsletter-input-row{flex-wrap:wrap}
    .sf-site .sf-newsletter-form .sf-newsletter-input-row input[type=email],
    .sf-site .sf-newsletter-form .sf-newsletter-input-row input[type=submit]{flex:1 1 100%}
}

/* "See how it works" link on the Building Pack product page. */
.sf-site .sf-howto-link{
    display:flex;align-items:center;gap:14px;
    margin:18px 0 6px;padding:14px 18px;
    background:#f0faff;border:2px solid #cde8f7;border-radius:16px;
    text-decoration:none;transition:border-color .15s,transform .15s;
}
.sf-site .sf-howto-link:hover{border-color:var(--sf-blue);transform:translateY(-2px)}
.sf-site .sf-howto-play{
    flex:0 0 42px;width:42px;height:42px;border-radius:50%;
    background:var(--sf-red);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:16px;padding-left:3px;
}
.sf-site .sf-howto-link strong{display:block;color:var(--sf-navy);font-size:17px;font-weight:800;line-height:1.25}
.sf-site .sf-howto-link em{display:block;color:var(--sf-muted);font-size:14px;font-style:normal;margin-top:2px}

/* ---- Cart line items ----------------------------------------------------
   WooCommerce's block cart ships small default type for the product name,
   price and short description. Bumped for readability; the short description
   stays a step below the name so the hierarchy still reads. Scoped to the
   cart block so the checkout order summary is untouched.

   The product-name selector mirrors WooCommerce's own three-part selector
   (table.wc-block-cart-items .wc-block-cart-items__row .…product-name), which
   sets 14px. A shorter selector loses on specificity and is silently ignored. */
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name {
	font-size: 1.125rem;
	line-height: 1.35;
}
.wc-block-cart-item__product .wc-block-components-product-price,
.wc-block-cart-item__total .wc-block-components-product-price {
	font-size: 1.0625rem;
}
.wc-block-cart-item__product .wc-block-components-product-metadata,
.wc-block-cart-item__product .wc-block-components-product-metadata__description,
.wc-block-cart-item__product .wc-block-components-product-metadata__description p {
	font-size: 0.9375rem;
	line-height: 1.5;
}

/* ---- Block checkout: restore floating-label padding ---------------------
   theme.css sets a generic `input:not([type=checkbox])…{padding:10px 13px}`
   whose specificity (0,4,1) outranks WooCommerce's (0,3,1) `.is-active`
   rule, so the input kept even padding and the typed value rendered on top
   of the floating label. Restore WooCommerce's own values at matching
   specificity, scoped to its text inputs only. */
.wc-block-components-text-input input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]) {
	padding: 16px 12px;
}
.wc-block-components-text-input.is-active input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]) {
	padding: 24px 9px 8px;
}

/* ---- Order details: product thumbnails ---------------------------------
   The thumbnail and name sit in one inline-flex wrapper so WooCommerce's
   quantity markup, which is appended after the filtered name, still flows on
   the same line. align-items keeps the name centred against the image. */
.sf-order-item {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	vertical-align: middle;
}
.sf-order-item-media {
	flex: 0 0 auto;
	line-height: 0;
}
.sf-order-item-media img,
img.sf-order-item-thumb {
	width: 52px;
	height: 52px;
	max-width: none;
	object-fit: cover;
	border-radius: 7px;
	border: 1px solid #e2ecf5;
	background: #fff;
	display: block;
}
@media (max-width: 480px) {
	.sf-order-item-media img,
	img.sf-order-item-thumb {
		width: 42px;
		height: 42px;
	}
	.sf-order-item { gap: 9px; }
}

/* ---- Daily Activities --------------------------------------------------
   The printable is the product here, so the preview image leads and the
   download button is the only primary action. */
.sf-activity-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 42px;
	align-items: start;
	padding: 40px 0 10px;
}
.sf-activity-preview img,
img.sf-activity-image {
	width: 100%;
	height: auto;
	border-radius: 14px;
	border: 1px solid #dee9f3;
	box-shadow: 0 10px 30px #17497412;
	background: #fff;
}
.sf-activity-copy h1 {
	margin: 4px 0 10px;
	font-size: clamp(28px, 3.3vw, 40px);
	line-height: 1.12;
	color: var(--sf-navy);
}
.sf-activity-ages {
	display: inline-block;
	margin: 0 0 14px;
	padding: 5px 13px;
	border-radius: 999px;
	background: #eaf4fd;
	color: #12507f;
	font-size: 14px;
	font-weight: 800;
}
.sf-activity-text {
	font-size: 16px;
	line-height: 1.62;
	color: var(--sf-muted, #4a5c6d);
}
.sf-activity-actions { margin: 22px 0 8px; }
.sf-activity-note {
	margin: 0;
	font-size: 13.5px;
	color: var(--sf-muted, #6a7b8a);
}
.sf-activity-back { padding: 26px 0 46px; }

.sf-activity-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
	gap: 26px;
	padding: 34px 0 50px;
}
.sf-activity-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	color: inherit;
}
.sf-activity-card-media img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	border: 1px solid #e2ecf5;
	background: #fff;
	display: block;
	transition: transform .16s ease, box-shadow .16s ease;
}
.sf-activity-card:hover .sf-activity-card-media img {
	transform: translateY(-3px);
	box-shadow: 0 12px 26px #17497420;
}
.sf-activity-card-body strong {
	display: block;
	color: var(--sf-navy);
	font-size: 16px;
	line-height: 1.3;
}
.sf-activity-card-body em {
	display: block;
	margin-top: 3px;
	font-style: normal;
	font-size: 13.5px;
	color: var(--sf-muted, #6a7b8a);
}
@media (max-width: 860px) {
	.sf-activity-inner { grid-template-columns: 1fr; gap: 26px; }
}

/* ---- Footer business address ------------------------------------------
   Required for Google Shopping policy and payment-provider review: a real
   postal address and a domain email, in plain text a crawler can read. */
.sf-footer-address {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--sf-muted, #6a7b8a);
}
.sf-footer-address a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.sf-footer-address a:hover { color: var(--sf-blue); }

/* ---- Accepted payment marks -------------------------------------------
   Recognisable payment marks are a trust signal on a new store and one of
   the legitimacy cues payment and Shopping reviews look for. */
.sf-payments {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 7px;
	margin: 22px 0 4px;
	padding-top: 18px;
	border-top: 1px solid var(--sf-line, #e2ecf5);
}
.sf-payment-mark { line-height: 0; }
.sf-payment-mark svg { display: block; }
@media (max-width: 600px) {
	.sf-payments { justify-content: center; gap: 6px; }
}


/* Spam honeypot.
   .sf-hp wraps a decoy text input that real people must leave empty. It was
   never styled, so it rendered as a visible blank box above the submit button
   on every form that uses it (contact, retailers, influencers).
   Hidden from sight and from assistive tech, but still submitted, so the
   trap keeps working. display:none is avoided because some bots skip
   undisplayed fields. */
.sf-hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}


/* Retailer / info page helpers.
   .sf-lead and .sf-muted were used by the child-safety, retailers and
   influencers pages but had never been defined, so those paragraphs rendered
   as plain body text. */
.sf-lead {
	font-size: 1.15rem;
	line-height: 1.6;
	color: var(--sf-muted, #4a5c6d);
}
.sf-muted {
	font-size: 0.92rem;
	color: var(--sf-muted, #6a7b8a);
}

/* Product line-up on the retailers page. */
.sf-prodgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 24px;
	margin: 28px 0 8px;
}
.sf-prodcard {
	border: 1px solid #e3e9f0;
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.sf-prodcard img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: #f4f8fc;
}
.sf-prodcard__body { padding: 14px 16px 18px; }
.sf-prodcard__body h3 {
	margin: 0 0 4px;
	font-size: 1.02rem;
	line-height: 1.3;
}
.sf-prodcard__sku {
	margin: 0 0 8px;
	font-size: 0.78rem;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: #8a97a6;
}
.sf-prodcard__price {
	margin: 0 0 6px;
	font-size: 0.95rem;
}
.sf-prodcard__price strong { color: #1C345E; }
.sf-prodcard__note {
	margin: 0;
	font-size: 0.85rem;
	color: #5a626e;
	line-height: 1.45;
}
@media (max-width: 480px) {
	.sf-prodgrid { grid-template-columns: 1fr; }
}
