.snl-lead-wide{max-width:900px}.snl-feat{display:flex;flex-direction:column;gap:28px;margin:8px 0 0}.snl-feat-row{display:grid;grid-template-columns:minmax(0,5fr)minmax(0,7fr);gap:40px;align-items:center;background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-top:3px solid var(--e-global-color-primary);padding:32px}.snl-feat-media{position:relative;overflow:hidden;background:var(--e-global-color-surface);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}.snl-feat-media img{display:block;width:100%;height:100%;object-fit:cover}.snl-feat-media.snl-feat-fit{padding:24px}.snl-feat-media.snl-feat-fit img{object-fit:contain}.snl-feat-copy{min-width:0}.snl-feat-tag{display:inline-block;font-family:barlow condensed,sans-serif;font-weight:600;font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--e-global-color-accent);margin:0 0 10px}.snl-feat-copy h3{font-family:barlow condensed,sans-serif;font-weight:700;font-size:32px;line-height:1.1;letter-spacing:.5px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0 0 12px}.snl-feat-copy p{font-family:inter,sans-serif;font-size:16px;line-height:1.7;color:var(--e-global-color-text);margin:0 0 14px}.snl-feat-list{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.snl-feat-list li{position:relative;padding-left:18px;font-family:inter,sans-serif;font-size:15px;line-height:1.5;color:var(--e-global-color-text)}.snl-feat-list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;background:var(--e-global-color-primary)}.snl-feat-act{display:flex;flex-wrap:wrap;gap:12px;margin:0!important}.snl-feat-price{display:block;font-family:barlow condensed,sans-serif;font-weight:700;font-size:28px;line-height:1;color:var(--e-global-color-secondary);margin:0 0 16px}.snl-feat-price small{font-size:15px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--e-global-color-muted);margin-left:8px}.snl-status{display:inline-flex;align-items:center;gap:8px;font-family:barlow condensed,sans-serif;font-weight:700;font-size:15px;line-height:1;letter-spacing:1.4px;text-transform:uppercase;color:var(--e-global-color-secondary);border:2px solid var(--e-global-color-secondary);padding:10px 14px;margin:0 0 16px}.snl-status::before{content:"";width:8px;height:8px;background:var(--e-global-color-primary)}.snl-onink .snl-status{color:var(--e-global-color-white);border-color:var(--e-global-color-white)}.snl-gridnote{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:24px 32px;align-items:center;background:var(--e-global-color-surface);border:1px solid var(--e-global-color-line);border-left:4px solid var(--e-global-color-primary);padding:28px 32px;margin:40px 0 0}.snl-gridnote h3{font-family:barlow condensed,sans-serif;font-weight:700;font-size:24px;line-height:1.15;letter-spacing:.8px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0 0 8px}.snl-gridnote p{font-family:inter,sans-serif;font-size:15px;line-height:1.6;color:var(--e-global-color-text);margin:0}.snl-gridnote-act{display:flex;flex-wrap:wrap;gap:12px}.snl-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 40px}.snl-shot{border:1px solid var(--e-global-color-line);overflow:hidden}.snl-shot img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}.snl-onink .snl-shot{border-color:#2c2c2c}.snl-coming-soon-price{font-family:barlow condensed,sans-serif;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--e-global-color-secondary)}.snl-tv-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:8px 0 0}.snl-tv-item{background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-top:3px solid var(--e-global-color-primary);padding:14px}.snl-tv-cap{font-family:barlow condensed,sans-serif;font-weight:700;font-size:19px;letter-spacing:.8px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:12px 2px 2px}@media(max-width:767px){.snl-tv-grid{grid-template-columns:1fr;gap:18px}}.snl-formerly{margin:-6px 0 14px;font-family:barlow condensed,sans-serif;font-weight:600;font-size:15px;letter-spacing:1.8px;text-transform:uppercase;color:var(--e-global-color-text)}.snl-loop-was{display:block;margin:2px 0 0;font-family:barlow condensed,sans-serif;font-weight:600;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--e-global-color-text)}.snl-feat-sub{display:block;margin:-8px 0 10px;font-family:barlow condensed,sans-serif;font-weight:600;font-size:14px;letter-spacing:1.6px;text-transform:uppercase;color:var(--e-global-color-text)}.snl-prodgrid ul.products li.product a img{aspect-ratio:4/5;object-fit:contain;width:100%;height:auto}.snl-ft-news .snl-ft-news-copy{flex:0 1 400px!important;width:auto!important;min-width:0!important}.snl-ft-news .snl-ft-form{flex:0 1 470px!important;width:auto!important;min-width:290px!important}.cwginstock-subscribe-form{margin:6px 0 4px}.cwginstock-subscribe-form .cwginstock-panel-primary{border:1px solid var(--e-global-color-line)!important;border-top:3px solid var(--e-global-color-primary)!important;border-radius:0!important;box-shadow:none!important;background:var(--e-global-color-white)!important;margin:0!important}.cwginstock-subscribe-form .cwginstock-panel-heading{background:var(--e-global-color-secondary)!important;border:0!important;border-radius:0!important;padding:13px 16px!important}.cwginstock-subscribe-form .cwginstock-panel-heading h4{font-family:barlow condensed,sans-serif!important;font-weight:700!important;font-size:19px!important;line-height:1.2!important;letter-spacing:1.4px!important;text-transform:uppercase!important;color:var(--e-global-color-white)!important;margin:0!important;padding:0!important}.cwginstock-subscribe-form .cwginstock-panel-body{padding:14px!important}.cwginstock-subscribe-form .row,.cwginstock-subscribe-form [class*=col-md]{margin:0!important;padding:0!important;width:100%!important;float:none!important}.cwginstock-subscribe-form .cwginstock-subscribe-form__form{display:flex!important;flex-wrap:wrap;gap:10px;align-items:stretch}.cwginstock-subscribe-form .cwginstock-subscribe-form__form>.form-group{display:flex;flex:auto;gap:10px;margin:0!important;min-width:0}.cwginstock-subscribe-form .cwginstock-subscribe-form__form>.form-group:has(.cwgstock_button){flex:none}.cwginstock-subscribe-form input.cwgstock_name,.cwginstock-subscribe-form input.cwgstock_email,.cwginstock-subscribe-form input.cwgstock_phone{text-align:left!important;font-family:inter,sans-serif!important;font-size:15px!important;color:var(--e-global-color-secondary)!important;background:var(--e-global-color-white)!important;border:1px solid var(--e-global-color-line)!important;border-radius:0!important;padding:10px 12px!important;margin:0!important;min-height:46px;flex:1;min-width:0;width:auto!important;box-shadow:none!important}.cwginstock-subscribe-form input.cwgstock_name:focus,.cwginstock-subscribe-form input.cwgstock_email:focus,.cwginstock-subscribe-form input.cwgstock_phone:focus{outline:2px solid var(--e-global-color-primary)!important;outline-offset:1px;border-color:var(--e-global-color-primary)!important}.cwginstock-subscribe-form .cwgstock_button{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;min-height:46px;padding:0 22px!important;background:var(--e-global-color-primary)!important;color:#fff!important;font-family:barlow condensed,sans-serif!important;font-weight:700!important;font-size:17px!important;letter-spacing:1.4px!important;text-transform:uppercase!important;line-height:1!important;border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;border-radius:0!important;cursor:pointer;white-space:nowrap;transition:background-color .25s ease,border-color .25s ease}.cwginstock-subscribe-form .cwgstock_button:hover,.cwginstock-subscribe-form .cwgstock_button:focus{background:var(--e-global-color-accent)!important;border-bottom-color:var(--e-global-color-secondary)!important}.cwginstock-subscribe-form .cwgstock_output{flex:1 1 100%;font-family:inter,sans-serif;font-size:14px;line-height:1.5}.cwginstock-subscribe-form .cwgstock_output:empty{display:none}@media(max-width:640px){.cwginstock-subscribe-form .cwginstock-subscribe-form__form>.form-group{flex-direction:column}.cwginstock-subscribe-form .cwgstock_button{width:100%!important}}@media(max-width:1024px){.snl-feat-row{gap:28px;padding:24px}.snl-feat-copy h3{font-size:28px}.snl-gridnote{grid-template-columns:1fr}}@media(max-width:767px){.snl-feat{gap:20px}.snl-feat-row{grid-template-columns:1fr;gap:20px;padding:20px}.snl-feat-media{aspect-ratio:4/3}.snl-feat-media.snl-feat-fit{padding:14px}.snl-feat-copy h3{font-size:24px}.snl-feat-list{grid-template-columns:1fr}.snl-gridnote{padding:22px 20px}.snl-grid2{grid-template-columns:1fr;gap:18px}}
.elementor-kit-24{--e-global-color-primary:#DF742D;--e-global-color-secondary:#101010;--e-global-color-text:#4A4A4A;--e-global-color-accent:#B85A1E;--e-global-color-ink_soft:#1F1F1F;--e-global-color-surface:#F6F6F6;--e-global-color-line:#E1E1E1;--e-global-color-primary_wash:#FDF1E8;--e-global-color-muted:#7A7A7A;--e-global-color-white:#FFFFFF;--e-global-color-on_dark:#D6D0CA;--e-global-color-on_dark_muted:#B9B2AB;--e-global-typography-primary-font-family:"Barlow Condensed";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.1em;--e-global-typography-secondary-font-family:"Barlow Condensed";--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-letter-spacing:1.5px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Barlow Condensed";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-letter-spacing:1.2px;color:var( --e-global-color-text );font-family:"Inter", Sans-serif;font-size:16px;font-weight:400;line-height:1.7em;}.elementor-kit-24 button,.elementor-kit-24 input[type="button"],.elementor-kit-24 input[type="submit"],.elementor-kit-24 .elementor-button{background-color:#DF742D;font-family:"Barlow Condensed", Sans-serif;font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:#FFFFFF;border-radius:0px 0px 0px 0px;}.elementor-kit-24 button:hover,.elementor-kit-24 button:focus,.elementor-kit-24 input[type="button"]:hover,.elementor-kit-24 input[type="button"]:focus,.elementor-kit-24 input[type="submit"]:hover,.elementor-kit-24 input[type="submit"]:focus,.elementor-kit-24 .elementor-button:hover,.elementor-kit-24 .elementor-button:focus{background-color:#B85A1E;color:#FFFFFF;}.elementor-kit-24 e-page-transition{background-color:#FFBC7D;}.elementor-kit-24 a{color:var( --e-global-color-accent );}.elementor-kit-24 a:hover{color:#101010;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ---- SELF-HOSTED BRAND FONTS ----
   Elementor only enqueues a webfont when a WIDGET typography control names
   it. Our type comes from the kit and from custom CSS, so it never requested
   these and every logged-out visitor got the system fallback. Hosting them
   ourselves makes that impossible to regress, and removes the third-party
   request. Files live in uploads/snl-fonts/. ---- */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display: swap;src:url("https://sealnlock.myjsapp.com/wp-content/uploads/snl-fonts/barlow-condensed-600.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display: swap;src:url("https://sealnlock.myjsapp.com/wp-content/uploads/snl-fonts/barlow-condensed-700.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:800;font-display: swap;src:url("https://sealnlock.myjsapp.com/wp-content/uploads/snl-fonts/barlow-condensed-800.woff2") format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display: swap;src:url("https://sealnlock.myjsapp.com/wp-content/uploads/snl-fonts/inter-400.woff2") format("woff2");}



/* ---- END FONTS ---- */

/* =========================================================================
 * SEAL 'N LOCK COMPONENT LIBRARY  (Site Settings > Custom CSS)
 * Site-wide. Applies to any page that uses the .snl-* classes.
 * Colours and fonts come from the kit tokens, so changing a swatch or a
 * font in Site Settings restyles everything here.
 * ========================================================================= */

/* ---- ROOT FIX: stop parent row stretch vars leaking into card contents ---- */
.snl-trust,
.snl-card,
.snl-step,
.snl-tile,
.snl-quote-card{--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;}
.snl-card > .elementor-widget,
.snl-step > .elementor-widget,
.snl-tile > .elementor-widget{flex-grow:0;height:auto;align-self:stretch;}
/* ---- TRUST BAR: real Elementor widgets, so a human can swap the icon from the
   icon picker and edit the label and the copy in the panel. The orange square
   and the icon colour come from the Icon widget's own Stacked view settings,
   so those are editable too; only the box size is fixed here. ---- */
.snl-trust > .elementor-widget{align-self:flex-start;}
/* the parent sets --container-widget-width:100% to stop stretch leaking into
   card contents, which would make the icon full width; opt this one back out */
.snl-tw-ico{flex:0 0 auto!important;width:auto!important;}
.snl-tw-ico .elementor-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:0;padding:0;}
.snl-tw-ico .elementor-icon svg{width:23px;height:23px;display:block;}
.snl-tw-body{min-width:0;}
.snl-tw-label .elementor-heading-title{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:20px;line-height:1.15;letter-spacing:.9px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0;}
.snl-tw-desc{font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.5;color:var(--e-global-color-text);}
.snl-tw-desc p{margin:0;}
@media(max-width:767px){
.snl-tw-ico .elementor-icon{width:40px;height:40px;}
.snl-tw-ico .elementor-icon svg{width:20px;height:20px;}
}


/* ---- measure ---- */
.snl-narrow{max-width:640px;}
.snl-prose{max-width:700px;}
.snl-head{max-width:900px;}
@media(max-width:1024px){
.snl-narrow,.snl-prose,.snl-head{max-width:100%;}
}


/* ---- eyebrow marker ---- */
.snl-eyebrow .elementor-heading-title::before{content:"";display:inline-block;width:32px;height:3px;background:var(--e-global-color-primary);vertical-align:middle;margin-right:14px;position:relative;top:-2px;}
/* ---- shared card behaviour ---- */
.snl-card,
.snl-quote-card{position:relative;transition:box-shadow .3s cubic-bezier(.2,.7,.3,1),transform .3s cubic-bezier(.2,.7,.3,1);}
.snl-card::before,
.snl-quote-card::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--e-global-color-primary);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.2,.7,.3,1);z-index:3;}
.snl-card:hover::before,
.snl-quote-card:hover::before{transform:scaleX(1);}
.snl-card:hover,
.snl-quote-card:hover{transform:translateY(-5px);box-shadow:0 22px 44px -26px rgba(16,16,16,.5);}
/* ---- product cards ---- */
.snl-prod-card{overflow:hidden;}
/* width:calc(100% + 48px) so the panel actually WIDENS to the card edges.
   With width:100% the negative side margins only shift it left. */
.snl-prod-img{margin:-28px -24px 22px!important;width:calc(100% + 48px)!important;max-width:none!important;background:var(--e-global-color-surface);border-bottom:1px solid var(--e-global-color-line);padding:24px 20px;}
.snl-prod-img > .elementor-widget-container{margin:0;}
.snl-prod-img img{height:170px;width:auto;max-width:100%;object-fit:contain;display:block;margin:0 auto;filter:drop-shadow(0 12px 18px rgba(16,16,16,.16));transition:transform .45s cubic-bezier(.2,.7,.3,1);}
/* ---- compliance credential strip ---- */
.snl-spec{display:flex;align-items:center;gap:15px;background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-left:3px solid var(--e-global-color-primary);padding:18px 24px;}
.snl-spec-ico{flex:0 0 auto;line-height:0;}
.snl-spec-ico svg{width:23px;height:23px;display:block;fill:var(--e-global-color-primary);}
.snl-spec-txt{font-family:"Inter",sans-serif;font-size:15px;line-height:1.55;color:var(--e-global-color-text);}
.snl-spec-txt strong{color:var(--e-global-color-secondary);font-weight:600;}
@media(max-width:767px){
.snl-spec{align-items:flex-start;padding:16px 18px;}
}


.snl-prod-card:hover .snl-prod-img img{transform:scale(1.06) translateY(-2px);}
.snl-cardbtn{margin-top:auto;}
.snl-cardbtn .elementor-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:background-color .25s ease,color .25s ease,border-color .25s ease;}
.snl-cardbtn .elementor-button::after{content:"→";font-size:18px;line-height:1;transition:transform .25s ease;}
.snl-cardbtn .elementor-button:hover::after{transform:translateX(4px);}
/* ---- PROCESS STEPS: one widget per step; numeral overlays the image ---- */
.snl-step > .elementor-widget{width:100%;align-self:start;}
.snl-st{display:block;}
.snl-st-media{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--e-global-color-surface);}
.snl-st-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.3,1);}
.snl-st:hover .snl-st-media img{transform:scale(1.05);}
.snl-st-num{position:absolute;left:0;bottom:0;z-index:2;display:flex;align-items:center;justify-content:center;min-width:66px;height:54px;padding:0 16px;background:var(--e-global-color-secondary);color:#FFFFFF;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:31px;line-height:1;letter-spacing:.04em;}
.snl-st-label{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:26px;line-height:1.1;letter-spacing:1.4px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:20px 0 8px;}
.snl-st-desc{display:block;font-family:"Inter",sans-serif;font-size:15.5px;line-height:1.6;color:var(--e-global-color-text);margin:0;}
@media(max-width:767px){
.snl-st-num{min-width:56px;height:46px;font-size:26px;}
.snl-st-label{font-size:23px;margin-top:16px;}
}


/* ---- dark benefit tiles ---- */
.snl-tile{position:relative;border:1px solid #2C2C2C;transition:background-color .3s ease,transform .3s cubic-bezier(.2,.7,.3,1);}
.snl-tile::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--e-global-color-primary);}
.snl-tile:hover{background-color:#262320;transform:translateY(-4px);}
.snl-tile-in h3{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:23px;line-height:1.15;letter-spacing:1.1px;text-transform:uppercase;color:var(--e-global-color-white);margin:0 0 10px;}
.snl-tile-in p{font-family:"Inter",sans-serif;font-size:15px;line-height:1.6;color:var(--e-global-color-on_dark);margin:0;}
/* ================= SHARED BLOCKS for the new content sections ================= */
.snl-blk{display:block;}
.snl-eb{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:16px;letter-spacing:2.2px;text-transform:uppercase;color:var(--e-global-color-accent);margin:0 0 12px;}
.snl-eb::before{content:"";display:inline-block;width:32px;height:3px;background:var(--e-global-color-primary);vertical-align:middle;margin-right:14px;position:relative;top:-2px;}
.snl-h2{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:44px;line-height:1.1;color:var(--e-global-color-secondary);margin:0 0 18px;max-width:900px;}
.snl-lead{font-family:"Inter",sans-serif;font-size:17px;line-height:1.7;color:var(--e-global-color-text);margin:0 0 46px;max-width:700px;}
@media(max-width:1024px){
.snl-h2{font-size:36px;}
.snl-lead{max-width:100%;}
}


@media(max-width:767px){
.snl-h2{font-size:30px;}
}


.snl-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 0 40px;}
.snl-grid3-tight{margin:0;}
@media(max-width:1024px){
.snl-grid3{grid-template-columns:1fr;gap:18px;}
}


/* ---- Arm Your Business: carousel left, copy right ---- */
.snl-slider{background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-top:3px solid var(--e-global-color-primary);padding:26px 26px 8px;}
.snl-slider .elementor-image-carousel-wrapper{margin:0;}
.snl-slider .swiper-slide img,
.snl-slider .elementor-carousel-image{height:400px;width:auto!important;max-width:100%;object-fit:contain;margin:0 auto;display:block;background:transparent!important;filter:drop-shadow(0 16px 24px rgba(16,16,16,.18));}
.snl-slider .swiper-pagination{position:static;margin-top:18px;}
.snl-slider .swiper-pagination-bullet{background:var(--e-global-color-line);opacity:1;border-radius:0;width:30px;height:4px;margin:0 5px!important;transition:background-color .25s ease;}
.snl-slider .swiper-pagination-bullet-active{background:var(--e-global-color-primary);}
@media(max-width:1024px){
.snl-slider .swiper-slide img,.snl-slider .elementor-carousel-image{height:300px;}
}


@media(max-width:767px){
.snl-slider .swiper-slide img,.snl-slider .elementor-carousel-image{height:240px;}
}


.snl-copy p{font-family:"Inter",sans-serif;font-size:17px;line-height:1.7;color:var(--e-global-color-text);margin:0 0 16px;}
.snl-copy p:last-of-type{margin-bottom:30px;}
.snl-copy .snl-h2{max-width:100%;}
.snl-copy strong{color:var(--e-global-color-secondary);font-weight:600;}
/* value blocks */
.snl-mini{background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-top:3px solid var(--e-global-color-primary);padding:26px 24px;}
.snl-mini h3{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:22px;line-height:1.15;letter-spacing:1px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0 0 10px;}
.snl-mini p{font-family:"Inter",sans-serif;font-size:15px;line-height:1.6;color:var(--e-global-color-text);margin:0;}
/* kill the theme's link underlines inside our own blocks */
.snl-blk a,
.snl-copy a,
.snl-btn,
.snl-posts a,
.snl-contact a,
.snl-res-head a,
.snl-cta-card a{text-decoration:none!important;box-shadow:none!important;}
/* NOTE: do NOT add border-bottom:0 above. `.snl-res-head a` outranks
   `.snl-btn-ghost`, so it silently strips the ghost button's bottom border. */

/* inline buttons inside markup blocks */
/* inline-flex + min-height = the box height is explicit, so no inherited
   line-height can push the bottom border out of the rendered box.
   position/z-index so nothing painted after it can cover the edge. */
.snl-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;background:var(--e-global-color-primary);color:#FFFFFF!important;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:19px;letter-spacing:1.4px;text-transform:uppercase;padding:0 34px;line-height:1;box-sizing:border-box;position:relative;z-index:4;overflow:visible;transition:background-color .25s ease,transform .25s ease;}
.snl-btn:hover{background:var(--e-global-color-accent);transform:translateY(-2px);color:#FFFFFF!important;}
/* border forced so no link-reset rule can strip an edge again */
.snl-btn-ghost{background:transparent;color:var(--e-global-color-secondary)!important;border:2px solid var(--e-global-color-secondary)!important;min-height:52px;padding:0 30px;font-size:17px;}
.snl-btn-ghost:hover{border-color:var(--e-global-color-secondary)!important;}
.snl-btn-ghost:hover{background:var(--e-global-color-secondary);color:#FFFFFF!important;}
.snl-btn-ghost::after{content:"→";margin-left:12px;display:inline-block;transition:transform .25s ease;}
.snl-btn-ghost:hover::after{transform:translateX(4px);}
/* "Browse all answers" sits right, aligned to the TOP of the heading itself
   (the eyebrow is outside this row, so flex-start lands on the h2) */
.snl-res-head{display:flex;align-items:flex-start;justify-content:space-between;gap:48px;margin:0 0 46px;}
.snl-res-head-copy{flex:1 1 auto;min-width:0;}
.snl-res-head .snl-h2{margin:0 0 16px;}
.snl-res-head .snl-lead{margin:0;}
.snl-res-head .snl-btn{flex:0 0 auto;white-space:nowrap;margin-top:2px;align-self:flex-start;}
.snl-res-head,
.snl-res-head-copy{overflow:visible;position:relative;z-index:3;}
/* the widget this button lives in must sit above the posts grid that follows */
.snl-sec > .elementor-widget-text-editor,
.snl-sec > .e-con-inner > .elementor-widget-text-editor,
.snl-sec > .e-con-inner > .elementor-widget-html,
.snl-sec > .elementor-widget-html{position:relative;z-index:3;overflow:visible;}
@media(max-width:1024px){
.snl-res-head{flex-direction:column;align-items:flex-start;gap:26px;margin-bottom:36px;}
.snl-res-head .snl-btn{margin-top:0;}
}


/* ---- lead-magnet band: copy left, form right ---- */
.snl-band-copy .snl-h2{font-size:34px;margin:0 0 10px;max-width:100%;}
.snl-band-copy p{font-family:"Inter",sans-serif;font-size:16px;line-height:1.6;color:var(--e-global-color-text);margin:0;max-width:46ch;}
@media(max-width:767px){
.snl-band-copy .snl-h2{font-size:28px;}
}


/* ---- shared form control styling (guide band + contact) ---- */
.snl-band .elementor-field-group{margin-bottom:0;}
.snl-band .elementor-field-textual,
.snl-contact-sec .elementor-field-textual{height:58px!important;min-height:58px!important;background:#FFFFFF!important;border:1px solid var(--e-global-color-line)!important;border-radius:0!important;padding:0 18px!important;font-family:"Inter",sans-serif!important;font-size:15px!important;color:var(--e-global-color-secondary)!important;box-shadow:none!important;}
.snl-band .elementor-field-textual::placeholder,
.snl-contact-sec .elementor-field-textual::placeholder{color:var(--e-global-color-muted);opacity:1;}
.snl-band .elementor-field-textual:focus,
.snl-contact-sec .elementor-field-textual:focus{border-color:var(--e-global-color-primary)!important;}
.snl-band .elementor-button[type="submit"],
.snl-contact-sec .elementor-button[type="submit"]{height:58px!important;min-height:58px!important;border-radius:0!important;background:var(--e-global-color-primary);color:#FFFFFF;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:18px;letter-spacing:1.3px;text-transform:uppercase;transition:background-color .25s ease;}
.snl-band .elementor-button[type="submit"]:hover,
.snl-contact-sec .elementor-button[type="submit"]:hover{background:var(--e-global-color-accent);transform:none;}
/* nothing may clip a submit button's edges, and give it real clearance */
.snl-band .elementor-form,
.snl-contact-sec .elementor-form,
.snl-band .elementor-field-type-submit,
.snl-contact-sec .elementor-field-type-submit{overflow:visible!important;}
.snl-contact-sec .elementor-field-type-submit{margin-top:6px;margin-bottom:6px;padding-bottom:6px;}
.snl-band .elementor-button[type="submit"],
.snl-contact-sec .elementor-button[type="submit"]{line-height:1;box-sizing:border-box;display:flex;align-items:center;justify-content:center;}
/* Give the submit a real, visible bottom edge and room so it can never be shaved */
.snl-contact-sec .elementor-button[type="submit"]{height:60px!important;min-height:60px!important;width:100%;border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;}
.snl-contact-sec .elementor-button[type="submit"]:hover{border-bottom-color:var(--e-global-color-secondary)!important;}
.snl-contact-sec .elementor-form,
.snl-contact-sec .elementor-widget-form,
.snl-contact-sec .elementor-widget-form > .elementor-widget-container{overflow:visible!important;padding-bottom:8px;}
.snl-band .elementor-button[type="submit"]{border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;}
/* keep the contact copy clear of the worker figure */
.snl-contact-sec .elementor-widget-form,
.snl-contact-sec .snl-contact{position:relative;z-index:2;}
/* NOTE: no background-image reset here on purpose. The section has no CSS
   background image; the figure is a real image widget (.snl-worker), so
   hiding it is done on that element, further down. */

/* ---- contact form labels + spacing ---- */
.snl-contact-sec .elementor-field-group{margin-bottom:18px;}
.snl-contact-sec .elementor-field-label{font-family:"Inter",sans-serif!important;font-size:11.5px!important;font-weight:600!important;letter-spacing:.1em;text-transform:uppercase;color:var(--e-global-color-muted)!important;margin-bottom:8px!important;padding-bottom:0!important;}
.snl-contact-sec .elementor-field-required .elementor-field-label:after,
.snl-contact-sec .elementor-mark-required .elementor-field-label:after{color:var(--e-global-color-primary);}
.snl-contact-sec select.elementor-field-textual{appearance:none;-webkit-appearance:none;background-image:none!important;}
.snl-contact-sec .elementor-field-type-checkbox .elementor-field-subgroup{padding-top:6px;}
.snl-contact-sec .elementor-field-subgroup label{font-family:"Inter",sans-serif;font-size:15px;color:var(--e-global-color-text);}
/* ---- worker cut-out: a real element, so he stands IN FRONT of the cards ---- */
.snl-contact-sec{position:relative;overflow:visible;}
/* ---- the form sits on its own white card, lifted off the photo ---- */
.snl-formcard{box-shadow:0 26px 64px -36px rgba(16,16,16,.5);position:relative;z-index:2;}
.snl-formcard .elementor-widget-form > .elementor-widget-container{padding-bottom:0;}
/* ---- contact details: a panel, not floating text ---- */
.snl-contact{margin-top:30px;background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-left:3px solid var(--e-global-color-primary);padding:24px 26px 8px;box-shadow:0 18px 44px -32px rgba(16,16,16,.4);}
.snl-clabel{display:inline-block;font-family:"Inter",sans-serif;font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--e-global-color-muted);}
.snl-clabel-top{display:block;margin:0 0 4px;}
.snl-cphone{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:42px;line-height:1.05;letter-spacing:.5px;color:var(--e-global-color-secondary)!important;margin:0 0 18px;transition:color .25s ease;}
.snl-cphone:hover{color:var(--e-global-color-accent)!important;}
.snl-crow{display:flex;gap:18px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--e-global-color-line);}
.snl-crow .snl-clabel{flex:0 0 56px;padding-top:2px;}
.snl-cvalue{font-family:"Inter",sans-serif;font-size:15.5px;line-height:1.55;color:var(--e-global-color-text)!important;}
a.snl-cvalue{transition:color .25s ease;}
a.snl-cvalue:hover{color:var(--e-global-color-accent)!important;}
@media(max-width:767px){
.snl-cphone{font-size:34px;}
}


/* ================= DYNAMIC POSTS GRID ================= */
.snl-posts .elementor-posts-container{margin:0;}
.snl-posts article.elementor-post{position:relative;background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);padding:0;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s cubic-bezier(.2,.7,.3,1);}
.snl-posts article.elementor-post::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--e-global-color-primary);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.2,.7,.3,1);z-index:3;}
.snl-posts article.elementor-post:hover{transform:translateY(-5px);box-shadow:0 22px 44px -26px rgba(16,16,16,.5);}
.snl-posts article.elementor-post:hover::before{transform:scaleX(1);}
/* Elementor Pro centres this image with transform:translate(-50%,-50%).
   We pin it to the box corners instead and NEUTRALISE that transform, so the
   hover scale doesn't knock it out of position. Both states must set transform. */
.snl-posts .elementor-post__thumbnail__link{margin:0;display:block;overflow:hidden;}
.snl-posts .elementor-post__thumbnail{position:relative;overflow:hidden;height:0!important;padding-bottom:62.5%!important;background:var(--e-global-color-surface);}
.snl-posts .elementor-post__thumbnail img{position:absolute!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center!important;display:block;transform:none!important;transform-origin:center center;transition:transform .6s cubic-bezier(.2,.7,.3,1);}
.snl-posts article.elementor-post:hover .elementor-post__thumbnail img{transform:scale(1.05)!important;}
.snl-posts .elementor-post__text{padding:22px 22px 24px;margin:0;}
.snl-posts .elementor-post__meta-data{font-family:"Inter",sans-serif;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--e-global-color-muted);margin:0 0 10px;padding:0;border:0;}
.snl-posts .elementor-post__title{margin:0 0 10px;}
.snl-posts .elementor-post__title a{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:23px;line-height:1.18;color:var(--e-global-color-secondary);}
.snl-posts article.elementor-post:hover .elementor-post__title a{color:var(--e-global-color-accent);}
.snl-posts .elementor-post__excerpt{margin:0 0 16px;}
.snl-posts .elementor-post__excerpt p{font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.6;color:var(--e-global-color-text);margin:0;}
.snl-posts .elementor-post__read-more{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:1.2px;text-transform:uppercase;color:var(--e-global-color-accent);display:inline-block;}
.snl-posts .elementor-post__read-more::after{content:"→";margin-left:8px;display:inline-block;transition:transform .25s ease;}
.snl-posts article.elementor-post:hover .elementor-post__read-more::after{transform:translateX(4px);}
.snl-posts .elementor-pagination{margin-top:40px;}
.snl-posts .page-numbers{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:17px;padding:8px 14px;color:var(--e-global-color-secondary);text-decoration:none!important;}
.snl-posts .page-numbers.current{background:var(--e-global-color-primary);color:#FFFFFF;}
/* ---- testimonial grid ---- */
.snl-quote-card{background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);padding:28px 26px 26px;}
.snl-quote-card > .elementor-widget{width:100%;display:flex;flex:1 1 auto;}
.snl-quote-card > .elementor-widget > .elementor-widget-container{display:flex;flex-direction:column;width:100%;}
.snl-qtop{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px;}
.snl-mono{flex:0 0 auto;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--e-global-color-secondary);color:var(--e-global-color-white);font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:20px;letter-spacing:.06em;}
.snl-qb{flex:1 1 auto;margin:0 0 22px;}
.snl-qfoot{border-top:1px solid var(--e-global-color-line);padding-top:16px;}
.snl-qfoot b{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:21px;letter-spacing:.02em;line-height:1.15;color:var(--e-global-color-secondary);}
.snl-qfoot i{display:block;font-style:normal;font-family:"Inter",sans-serif;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--e-global-color-muted);margin-top:5px;}
.snl-cta-card{background:var(--e-global-color-secondary);border-color:var(--e-global-color-secondary);}
.snl-cta-card .snl-mono{background:var(--e-global-color-primary);color:var(--e-global-color-white);font-size:30px;}
.snl-cta-card .snl-qfoot{border-top-color:#33302D;}
.snl-cta-card .snl-qfoot b a{color:var(--e-global-color-white);text-decoration:none;border-bottom:2px solid var(--e-global-color-primary);padding-bottom:2px;transition:color .25s ease;}
.snl-cta-card .snl-qfoot b a:hover{color:var(--e-global-color-primary);}
.snl-cta-card .snl-qfoot i{color:var(--e-global-color-on_dark_muted);}
/* ---- buttons ---- */
.snl-btn-el .elementor-button{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;}
.snl-btn-el .elementor-button:hover{transform:translateY(-2px);}
/* EVERY button widget shares one box height, so a 4px under-edge on the solid
   ones can't make them taller than the outline one sitting beside them.
   border-box means the border is counted inside the 60px, not added to it. */
/* Each button carries its OWN vertical padding from its widget settings
   (17px vs 15px), so min-height never applied and the under-edge made the
   solid one taller. Zero the vertical padding and fix the height instead. */
.snl-btn-el .elementor-button{height:52px!important;min-height:52px!important;padding-top:0!important;padding-bottom:0!important;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box!important;line-height:1;}
.snl-cardbtn .elementor-button{height:48px!important;min-height:48px!important;}
/* ================= 3D EDGE: every solid-orange button gets the same
   4px darker-orange under-edge the SEND button has ================= */
.snl-btn3d .elementor-button{border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;min-height:52px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;}
.snl-btn3d .elementor-button:hover{border-bottom-color:var(--e-global-color-secondary)!important;}
/* inline orange buttons in markup blocks (e.g. "See the training") */
.snl-btn:not(.snl-btn-ghost){border-bottom:4px solid var(--e-global-color-accent)!important;}
.snl-btn:not(.snl-btn-ghost):hover{border-bottom-color:var(--e-global-color-secondary)!important;}
/* product-card buttons: ghost at rest, orange with the same under-edge on hover */
.snl-btn3d-hover .elementor-button{border-bottom-width:3px!important;}
.snl-btn3d-hover .elementor-button:hover{border-bottom-color:var(--e-global-color-secondary)!important;}
/* the two outline buttons keep an even 2px box, no under-edge */
.snl-btn-ghost{border-bottom-width:2px!important;}
@media(max-width:767px){
.snl-prod-img img{height:130px;}
.snl-card:hover,.snl-quote-card:hover,.snl-tile:hover{transform:none;}
.snl-eyebrow .elementor-heading-title::before{width:22px;margin-right:10px;}
}


@media(prefers-reduced-motion:reduce){
[class*="snl-"],[class*="snl-"] *{transition:none!important;animation:none!important;}
}


.snl-ba-frame{--snl-pos:50%;position:relative;aspect-ratio:1876/845;overflow:hidden;border-radius:4px;background:var(--e-global-color-surface,#F3F1EE);box-shadow:0 30px 70px -40px rgba(16,16,16,.55);isolation:isolate;}
.snl-ba-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;margin:0;border-radius:0;user-select:none;-webkit-user-drag:none;}
.snl-ba-reveal{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--snl-pos)) 0 0);will-change:clip-path;}
/* corner labels: white on near-black, never on orange, per the palette rule */
.snl-ba-tag{position:absolute;bottom:20px;z-index:3;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:14px;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(16,16,16,.8);padding:10px 15px 9px;pointer-events:none;}
.snl-ba-tag-before{left:20px;}
.snl-ba-tag-after{right:20px;border-bottom:3px solid var(--e-global-color-primary);padding-bottom:6px;}
.snl-ba-divider{position:absolute;top:0;bottom:0;left:var(--snl-pos);width:2px;margin-left:-1px;z-index:4;background:#fff;box-shadow:0 0 0 1px rgba(16,16,16,.14),0 0 22px rgba(16,16,16,.32);pointer-events:none;}
.snl-ba-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:#fff;color:var(--e-global-color-secondary,#101010);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px -8px rgba(16,16,16,.6);transition:color .18s ease,transform .18s ease;}
.snl-ba-grip svg{display:block;}
/* The range input IS the whole frame: click anywhere to jump, then drag.
   It sits above the divider so the pointer never lands on a dead layer. */
.snl-ba-range{position:absolute;inset:0;z-index:5;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:ew-resize;background:transparent;-webkit-appearance:none;appearance:none;}
.snl-ba-range::-webkit-slider-thumb{-webkit-appearance:none;width:64px;height:64px;border-radius:50%;}
.snl-ba-range::-moz-range-thumb{width:64px;height:64px;border:0;border-radius:50%;}
.snl-ba-range:hover ~ .snl-ba-divider .snl-ba-grip,
.snl-ba-range:active ~ .snl-ba-divider .snl-ba-grip{color:var(--e-global-color-primary);transform:translate(-50%,-50%) scale(1.06);}
.snl-ba-range:focus-visible ~ .snl-ba-divider .snl-ba-grip{outline:3px solid var(--e-global-color-primary);outline-offset:3px;}
.snl-ba-hint{font-family:"Inter",sans-serif;font-size:14px;line-height:1.5;color:var(--e-global-color-muted);margin:14px 0 0;}
@media(max-width:1024px){
.snl-ba-frame{aspect-ratio:16/9;}
}


@media(max-width:767px){
.snl-ba-frame{aspect-ratio:4/3;}
.snl-ba-tag{bottom:14px;font-size:12.5px;padding:8px 12px 7px;}
.snl-ba-tag-before{left:14px;}
.snl-ba-tag-after{right:14px;padding-bottom:5px;}
.snl-ba-grip{width:48px;height:48px;}
}


@media(min-width:768px) and (max-width:1024px){
.snl-st-label{font-size:22px;letter-spacing:1px;}
.snl-tile-in h3{font-size:20px;letter-spacing:.8px;}
.snl-st-num{min-width:56px;height:46px;font-size:26px;}
}


@media(max-width:767px){
.snl-btn-el .elementor-button{height:auto!important;min-height:52px!important;padding-top:14px!important;padding-bottom:14px!important;line-height:1.15;text-align:center;}
.snl-cardbtn .elementor-button{height:auto!important;min-height:48px!important;}
.snl-btn{min-height:52px;height:auto;padding-top:14px;padding-bottom:14px;line-height:1.15;text-align:center;}
.snl-res-head .snl-btn{white-space:normal;width:100%;}
}


@media(max-width:767px){
.snl-ba-frame{aspect-ratio:3/2;}
.snl-ba-frame img{object-position:38% center;}
}


/* A horizontal drag on a range input must not be read as a page scroll, and a
   vertical swipe over it must still scroll. */
.snl-ba-range{touch-action:pan-y;}
@media(max-width:767px){
.snl-posts .page-numbers{padding:12px 16px;display:inline-block;min-width:44px;text-align:center;}
.snl-posts .elementor-pagination{margin-top:28px;}
}


@media(max-width:767px){
.snl-btnrow .elementor-button{width:100%;}
}


@media(max-width:480px){
.snl-btnrow .elementor-button{padding-left:12px!important;padding-right:12px!important;font-size:15px!important;letter-spacing:.8px!important;}
}


@media(max-width:360px){
.snl-btnrow .elementor-button{font-size:14px!important;letter-spacing:.5px!important;padding-left:9px!important;padding-right:9px!important;}
}


/* --- 10. Eyebrow rule: 32x3 read as a heavy slab next to 16px type. Finer and
   shorter so it marks the label instead of competing with it. Both eyebrow
   flavours (heading widget and markup block) are set together; .snl-eb had no
   mobile step at all before. --- */
.snl-eyebrow .elementor-heading-title::before,
.snl-eb::before{width:24px;height:2px;margin-right:11px;top:-3px;}
@media(max-width:767px){
.snl-eyebrow .elementor-heading-title::before,
.snl-eb::before{width:18px;height:2px;margin-right:9px;}
}


/* --- 11. Eyebrow wrapping. The rule is a ::before INSIDE the heading, so a
   label that runs to two lines sends the second line back to the far left,
   underneath the rule ("2004" hanging on its own under the dash). Making the
   heading a flex row puts the text in its own column, so it wraps as a block
   and every line starts at the same place. Applies at all sizes; on desktop
   these labels are single line so nothing moves. --- */
.snl-eyebrow .elementor-heading-title,
.snl-eb{display:flex;align-items:flex-start;gap:11px;}
/* margin-top instead of `top`, so the rule sits on the cap height of whatever
   size the label ends up at rather than a fixed offset */
.snl-eyebrow .elementor-heading-title::before,
.snl-eb::before{flex:0 0 auto;margin-right:0;top:0;margin-top:.52em;}
@media(max-width:767px){
.snl-eyebrow .elementor-heading-title,
.snl-eb{gap:9px;line-height:1.35;}
/* the tracking is what pushes this label over two lines on a phone */
.snl-eyebrow .elementor-heading-title{font-size:14px!important;letter-spacing:1.4px!important;}
.snl-eb{font-size:14px;letter-spacing:1.4px;}
.snl-head .elementor-heading-title,
.snl-h2{text-wrap:balance;}
}



/* =========================================================================
 * HEADER  (template "SNL Header 2026")
 * One template, three states:
 *   default            ink bar, for every interior page
 *   body.home          transparent, sitting over the hero photo
 *   .elementor-sticky--effects   ink again once scrolled, on every page
 * The transparent state is a modifier rather than a second template, so there
 * is one navigation menu to maintain. The white logo works on all three, which
 * is why no logo swap is needed.
 * ========================================================================= */
.snl-hdr{--snl-hdr-ink:var(--e-global-color-secondary);background-color:var(--snl-hdr-ink);transition:background-color .3s ease,box-shadow .3s ease;}
.snl-hdr{position:relative;z-index:200;}
/* The cart lives in the utility bar and opens as a full side panel, so the
   utility bar has to outrank the main bar or the Order button paints over
   the open cart. A z-index on the cart itself cannot fix this: a child
   never escapes its parent's stacking context. */
/* The cart moved into the main bar, so the main bar is what has to sit on top.
   Leaving the utility bar higher made its Distributors link paint over the
   open cart panel. A child never escapes its parent stacking context, so the
   order of these two is the whole fix. */
.snl-hdr .snl-hdr-util{position:relative;z-index:300;}
.snl-hdr .snl-hdr-main{position:relative;z-index:200;}

/* Home only: let the hero photo show through until the user scrolls. Covers
   the live front page and the draft while it is still being previewed. */
body.home .snl-hdr:not(.elementor-sticky--effects),
body.page-id-4773 .snl-hdr:not(.elementor-sticky--effects){background-color:transparent;}
body.home .snl-hdr:not(.elementor-sticky--effects) .snl-hdr-util,
body.page-id-4773 .snl-hdr:not(.elementor-sticky--effects) .snl-hdr-util{border-bottom-color:rgba(255,255,255,.18);}

/* Scrolled: solid on every page, with a shadow so it reads as lifted, and a
   little height taken back so it intrudes less on the content. */
.snl-hdr.elementor-sticky--effects{background-color:var(--snl-hdr-ink);box-shadow:0 12px 34px -20px rgba(0,0,0,.75);}
.snl-hdr.elementor-sticky--effects .snl-hdr-util{max-height:0;opacity:0;overflow:hidden;padding-top:0!important;padding-bottom:0!important;border-bottom-width:0;}
.snl-hdr .snl-hdr-util{max-height:60px;opacity:1;transition:max-height .3s ease,opacity .25s ease,padding .3s ease;}
.snl-hdr.elementor-sticky--effects .snl-hdr-main{padding-top:10px!important;padding-bottom:10px!important;}
.snl-hdr .snl-hdr-main{transition:padding .3s ease;}

/* ---- utility bar ---- */
.snl-hdr-util{border-bottom:1px solid rgba(255,255,255,.1);}
.snl-hdr-contact,.snl-hdr-dist{font-family:"Inter",sans-serif;font-size:13px;line-height:1;color:var(--e-global-color-on_dark);}
.snl-hdr-contact a,.snl-hdr-dist a{color:var(--e-global-color-on_dark)!important;text-decoration:none!important;transition:color .25s ease;}
.snl-hdr-contact a:hover,.snl-hdr-dist a:hover{color:var(--e-global-color-primary)!important;}
.snl-hdr-tel a{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:16px;letter-spacing:.04em;color:#FFFFFF!important;}
.snl-hdr-sep{margin:0 10px;opacity:.4;}
/* was body-grey at 14px over a photo, which read as disabled text */
.snl-hdr-dist{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;}
.snl-hdr-dist a{color:#FFFFFF!important;border-bottom:2px solid rgba(223,116,45,.6);padding-bottom:2px;}
.snl-hdr-dist a:hover{color:var(--e-global-color-primary)!important;border-bottom-color:var(--e-global-color-primary);}

/* ---- logo ---- */
/* source is only 226x73, so it is held well under 1x to stay crisp until a
   larger white logo (ideally SVG) replaces it */
.snl-hdr-logo img{width:auto;height:44px;max-width:none;display:block;}
@media(max-width:1024px){.snl-hdr-logo img{height:38px;}}


@media(max-width:767px){.snl-hdr-logo img{height:34px;}}



/* ---- navigation ---- */
.snl-hdr-nav .elementor-nav-menu .elementor-item{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:17px;letter-spacing:1.1px;text-transform:uppercase;color:#FFFFFF!important;padding:10px 14px!important;fill:#FFFFFF;transition:color .25s ease;}
.snl-hdr-nav .elementor-nav-menu .elementor-item:hover,
.snl-hdr-nav .elementor-nav-menu .elementor-item.elementor-item-active,
.snl-hdr-nav .elementor-nav-menu .elementor-item.highlighted{color:var(--e-global-color-primary)!important;}
/* underline marker instead of Elementor's default pointer */
.snl-hdr-nav .e--pointer-none .elementor-item.elementor-item-active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--e-global-color-primary);}
.snl-hdr-nav .elementor-nav-menu--main .elementor-item{position:relative;}

/* dropdowns: ink panel, orange on hover, square corners like the rest */
.snl-hdr-nav .elementor-nav-menu--dropdown{background-color:var(--e-global-color-secondary)!important;border-radius:0!important;box-shadow:0 24px 48px -28px rgba(0,0,0,.8);}
.snl-hdr-nav .elementor-nav-menu--dropdown a{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:16px;letter-spacing:.9px;text-transform:uppercase;color:var(--e-global-color-on_dark)!important;padding:11px 18px!important;}
.snl-hdr-nav .elementor-nav-menu--dropdown a:hover{background-color:var(--e-global-color-ink_soft)!important;color:var(--e-global-color-primary)!important;}
/* the burger and the mobile panel */
/* The burger renders as an <svg> with its own fill:#33373d, so setting colour
   alone leaves it dark. Drive the fill, and the size variable Elementor exposes. */
.snl-hdr-nav .elementor-menu-toggle{--nav-menu-icon-color:#FFFFFF;--nav-menu-icon-size:26px;color:#FFFFFF!important;background-color:transparent!important;border-radius:0!important;padding:6px!important;}
.snl-hdr-nav .elementor-menu-toggle svg,
.snl-hdr-nav .elementor-menu-toggle .e-font-icon-svg,
.snl-hdr-nav .elementor-menu-toggle i{fill:#FFFFFF!important;color:#FFFFFF!important;}
.snl-hdr-nav .elementor-menu-toggle:hover svg,
.snl-hdr-nav .elementor-menu-toggle:hover .e-font-icon-svg{fill:var(--e-global-color-primary)!important;}
.snl-hdr-nav .elementor-menu-toggle.elementor-active svg{fill:var(--e-global-color-primary)!important;}
.snl-hdr-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:0!important;}

/* ---- header buttons ---- */
.snl-hdr-btn .elementor-button{height:44px!important;min-height:44px!important;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:1.2px;text-transform:uppercase;padding-left:20px!important;padding-right:20px!important;border-radius:0!important;}
.snl-hdr-btn-ghost .elementor-button{background:transparent!important;color:#FFFFFF!important;border:2px solid rgba(255,255,255,.45)!important;}
.snl-hdr-btn-ghost .elementor-button:hover{border-color:#FFFFFF!important;background:rgba(255,255,255,.08)!important;}

@media(max-width:1024px){
/* the utility bar is the first thing to go when space is tight */
.snl-hdr-contact .snl-hdr-mail,.snl-hdr-sep{display:none;}
.snl-hdr-nav .elementor-nav-menu .elementor-item{font-size:16px;padding:10px 10px!important;}
}


@media(max-width:767px){
/* On phones the two bars collapse into ONE row. display:contents dissolves the
   wrapper boxes so the logo, the cart and the burger all become direct flex
   children of the header and can be ordered freely - no duplicate widget, and
   no absolute positioning with a magic offset to clear the burger.
   The cart still lives in the utility bar in the markup, which is what keeps
   it in the first row on desktop and tablet. */
.snl-hdr{flex-direction:row!important;align-items:center!important;padding:12px 20px!important;}
/* Both bars are BOXED containers, so each renders an .e-con-inner between
   itself and its children. Dissolving only the outer box just promotes that
   inner wrapper to be the flex child, which is why the cart group and the logo
   group sat side by side instead of flattening. Dissolve both levels. */
.snl-hdr-util,.snl-hdr-utilr,.snl-hdr-main,
.snl-hdr-util > .e-con-inner,.snl-hdr-main > .e-con-inner{display:contents!important;}
.snl-hdr-contact{display:none!important;}
.snl-hdr-dist{display:none!important;}
/* The action group holds the burger trigger as well as the two buttons, so it
   must stay visible on phones - only the buttons come out (see .snl-hdr-btn).
   Hiding the whole group left the phone with no way to open the menu. */
.snl-hdr-cta{display:flex!important;order:3;width:auto!important;flex:0 0 auto!important;align-items:center;}
/* Elementor forces --flex-wrap:wrap on every flex container below 768 and
   gives every widget width:100%. Flattening the bars alone therefore produced
   three full-width items that each took their own line. Pin the row and size
   each item to its content. */
.snl-hdr{flex-wrap:nowrap!important;}
.snl-hdr-logo,.snl-hdr-cart,.snl-hdr-nav{width:auto!important;max-width:none!important;flex:0 0 auto!important;}
.snl-hdr-logo{order:1;margin-right:auto;}
.snl-hdr-cart{order:2;}
.snl-hdr-nav{order:3;}
/* Both buttons come out on phones: the cart is the action that matters and the
   nav covers the rest. Order stays reachable one tap in. */
.snl-hdr-btn{display:none!important;}
.snl-hdr-main{gap:12px!important;}
.snl-hdr-btn .elementor-button{height:40px!important;min-height:40px!important;font-size:14px;padding-left:14px!important;padding-right:14px!important;}
}



/* ---- header height, published as a variable so the home hero can be pulled
   up under the transparent header without hard-coding the number twice ---- */
:root{--snl-hdr-h:130px;}
@media(max-width:1024px){:root{--snl-hdr-h:118px;}}


@media(max-width:767px){:root{--snl-hdr-h:66px;}}



/* ---- header buttons: explicit colours so they never fall back to the theme's
   default blue, whatever the kit says ---- */
.snl-hdr-btn:not(.snl-hdr-btn-ghost) .elementor-button{background-color:var(--e-global-color-primary)!important;color:#FFFFFF!important;}
.snl-hdr-btn:not(.snl-hdr-btn-ghost) .elementor-button:hover{background-color:var(--e-global-color-accent)!important;color:#FFFFFF!important;}

/* ---- mini cart ----
   Two scopes that must not be confused:
     .elementor-menu-cart__toggle_button   the control in the header, on ink
     .elementor-menu-cart__main            the side panel, on white
   A blanket rule on .elementor-button-text hits BOTH, which is what made the
   View Cart label white on a white button. Every rule below names its scope. */

/* --- the toggle, in the header --- */
.snl-hdr-cart .elementor-menu-cart__toggle .elementor-button,
.snl-hdr-cart .elementor-menu-cart__toggle_button{background:transparent!important;border:0!important;color:#FFFFFF!important;padding:0!important;height:auto!important;min-height:0!important;display:inline-flex;align-items:center;gap:8px;}
/* the toggle icon renders as an inline <svg>, so colour alone does nothing */
.snl-hdr-cart .elementor-menu-cart__toggle_button svg{fill:#FFFFFF!important;color:#FFFFFF!important;width:22px;height:22px;}
.snl-hdr-cart .elementor-menu-cart__toggle_button:hover svg{fill:var(--e-global-color-primary)!important;}
.snl-hdr-cart .elementor-menu-cart__toggle_button .elementor-button-text,
.snl-hdr-cart .elementor-menu-cart__toggle_button .amount{color:#FFFFFF!important;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:.04em;}
.snl-hdr-cart .elementor-button-icon-qty{background-color:var(--e-global-color-primary)!important;color:#FFFFFF!important;font-family:"Inter",sans-serif;font-size:10px;font-weight:600;}

/* --- the panel --- */
.snl-hdr-cart .elementor-menu-cart__container{z-index:9999!important;}
.snl-hdr-cart .elementor-menu-cart__main{z-index:9999!important;background:#FFFFFF;border-radius:0!important;border:0!important;box-shadow:-26px 0 60px -30px rgba(16,16,16,.55);padding:26px 26px 24px!important;}

/* The close button IS the icon: its X is two ::before/::after bars stretched to
   width:100%. Sizing it like a button stretches the bars into a huge X, and a
   font-size does nothing because there is no glyph. Drive it through the
   custom properties Elementor exposes instead. */
.snl-hdr-cart .elementor-menu-cart__close-button{--cart-close-icon-size:18px;--cart-close-button-color:var(--e-global-color-secondary);--cart-close-button-hover-color:var(--e-global-color-primary);margin:0 0 10px;align-self:flex-end;}
.snl-hdr-cart .elementor-menu-cart__close-button::before,
.snl-hdr-cart .elementor-menu-cart__close-button::after{height:2px;}

/* product rows */
.snl-hdr-cart .elementor-menu-cart__products{padding-top:4px;}
.snl-hdr-cart .elementor-menu-cart__product{padding:18px 0!important;border-bottom:1px solid var(--e-global-color-line)!important;align-items:flex-start;}
.snl-hdr-cart .elementor-menu-cart__product:first-child{border-top:1px solid var(--e-global-color-line)!important;}
.snl-hdr-cart .elementor-menu-cart__product-image{border:1px solid var(--e-global-color-line);background:var(--e-global-color-surface);}
.snl-hdr-cart .elementor-menu-cart__product-image img{border-radius:0!important;mix-blend-mode:multiply;}
.snl-hdr-cart .elementor-menu-cart__product-name,
.snl-hdr-cart .elementor-menu-cart__product-name a{font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;font-size:20px!important;line-height:1.15!important;letter-spacing:.4px;text-transform:uppercase;color:var(--e-global-color-secondary)!important;text-decoration:none!important;}
.snl-hdr-cart .elementor-menu-cart__product-name a:hover{color:var(--e-global-color-accent)!important;}
.snl-hdr-cart .elementor-menu-cart__product-price{font-family:"Inter",sans-serif!important;font-size:14.5px!important;color:var(--e-global-color-text)!important;margin-top:6px;}
.snl-hdr-cart .elementor-menu-cart__product-price .amount{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:18px;color:var(--e-global-color-secondary);}
.snl-hdr-cart .elementor-menu-cart__product-price .product-quantity{color:var(--e-global-color-muted);}

/* Remove: the control is the DIV, not the <a> inside it, and its circle comes
   from border-radius:var(--remove-item-button-size). Square it to match the
   rest of the system and move it up beside the product name. Quiet grey until
   hover, then red, because it is destructive and should not compete with
   Checkout. */
.snl-hdr-cart .elementor-menu-cart__product-remove{--remove-item-button-size:24px;--remove-item-button-color:var(--e-global-color-line);--remove-item-button-hover-color:#B3261E;border-radius:0!important;top:18px;bottom:auto;}
.snl-hdr-cart .elementor-menu-cart__product-remove:hover{--remove-item-button-color:#B3261E;}
.snl-hdr-cart .elementor-menu-cart__product-remove a{display:block;width:100%;height:100%;}

/* subtotal */
.snl-hdr-cart .elementor-menu-cart__subtotal{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border:0!important;padding:22px 0 20px!important;font-family:"Barlow Condensed",sans-serif;}
.snl-hdr-cart .elementor-menu-cart__subtotal strong{font-weight:600;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-muted);}
.snl-hdr-cart .elementor-menu-cart__subtotal .amount{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:30px;letter-spacing:.02em;color:var(--e-global-color-secondary);}

/* footer buttons: Checkout is the action, View cart is the escape hatch */
.snl-hdr-cart .elementor-menu-cart__footer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--e-global-color-line);padding-top:18px;}
.snl-hdr-cart .elementor-menu-cart__footer-buttons .elementor-button{height:52px!important;min-height:52px!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:0!important;font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;font-size:16px!important;letter-spacing:1.2px!important;text-transform:uppercase;box-sizing:border-box;padding:0 14px!important;}
.snl-hdr-cart .elementor-button--checkout{background-color:var(--e-global-color-primary)!important;border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;}
.snl-hdr-cart .elementor-button--checkout:hover{background-color:var(--e-global-color-accent)!important;border-bottom-color:var(--e-global-color-secondary)!important;}
.snl-hdr-cart .elementor-button--checkout .elementor-button-text{color:#FFFFFF!important;}
.snl-hdr-cart .elementor-button--view-cart{background-color:transparent!important;border:2px solid var(--e-global-color-secondary)!important;}
.snl-hdr-cart .elementor-button--view-cart:hover{background-color:var(--e-global-color-secondary)!important;}
/* the label lives in a span, so colouring the anchor alone leaves it white */
.snl-hdr-cart .elementor-button--view-cart .elementor-button-text{color:var(--e-global-color-secondary)!important;}
.snl-hdr-cart .elementor-button--view-cart:hover .elementor-button-text{color:#FFFFFF!important;}

/* empty state */
.snl-hdr-cart .woocommerce-mini-cart__empty-message{font-family:"Inter",sans-serif;font-size:15px;color:var(--e-global-color-muted);text-align:center;padding:70px 0 30px;}

@media(max-width:767px){
.snl-hdr-cart .elementor-menu-cart__main{padding:20px 18px 18px!important;}
.snl-hdr-cart .elementor-menu-cart__product-name,
.snl-hdr-cart .elementor-menu-cart__product-name a{font-size:18px!important;}
.snl-hdr-cart .elementor-menu-cart__subtotal .amount{font-size:26px;}
.snl-hdr-cart .elementor-menu-cart__footer-buttons .elementor-button{height:48px!important;min-height:48px!important;font-size:15px!important;}
}

/* ---- cart now lives in the main bar beside the buttons, so it survives the
   utility bar being hidden on phones and reads as the action it is ---- */
.snl-hdr-cta .snl-hdr-cart{display:flex;align-items:center;}
.snl-hdr-cta .snl-hdr-cart .elementor-menu-cart__toggle_wrapper{display:flex;align-items:center;}
@media(max-width:767px){
/* bigger tap target once it is the only control besides the burger */
.snl-hdr-cart .elementor-menu-cart__toggle_button svg{width:24px;height:24px;}
.snl-hdr-cart .elementor-menu-cart__toggle_button .elementor-button-text,
.snl-hdr-cart .elementor-menu-cart__toggle_button .amount{display:inline-block;font-size:14px;}
.snl-hdr-cta{gap:6px!important;}
}

/* ---- header: breathing room between the cart and the burger ---- */
.snl-hdr-utilr{gap:18px;}
@media(max-width:767px){
.snl-hdr{gap:16px!important;}
.snl-hdr-cart{margin-right:2px;}
}

/* ---- Lock the page while the drawer is open.
   Without this the page scrolls behind the panel, the sticky header re-lays
   itself out mid-interaction, and the close control ends up somewhere the tap
   never lands - which is why it stopped closing after a scroll. ---- */


/* =========================================================================
 * MOBILE / TABLET MENU - Elementor's Off-Canvas widget.
 * Replaces a hand-rolled drawer built by re-styling the nav menu's dropdown.
 * That approach fought a component whose open/close behaviour Elementor owns,
 * and the close kept failing. The widget brings its own close button, overlay,
 * scroll lock and Esc handling, so only appearance is ours.
 * ========================================================================= */

/* desktop nav out, burger in - at the width the horizontal menu stops fitting */
.snl-ofc-trigger{display:none;}
@media(max-width:1024px){
.snl-hdr-nav{display:none!important;}
.snl-ofc-trigger{display:flex!important;align-items:center;}
}
.snl-ofc-trigger .elementor-icon{color:#FFFFFF;padding:4px;}
.snl-ofc-trigger .elementor-icon svg{fill:#FFFFFF;width:26px;height:26px;}
.snl-ofc-trigger .elementor-icon:hover svg{fill:var(--e-global-color-primary);}

/* the panel */
/* __main is a full-screen positioning wrapper; the actual panel is __content.
   Painting __main left the panel white, and white menu text disappeared into
   it - the navigation was there all along, just invisible. */
.snl-ofc .e-off-canvas__main{background-color:transparent!important;}
.snl-ofc .e-off-canvas__content{background-color:var(--e-global-color-secondary)!important;height:100%;overflow-y:auto;}
.snl-ofc .e-off-canvas__overlay{background-color:rgba(16,16,16,.62)!important;}
.snl-ofc .e-off-canvas__close-button{color:#FFFFFF!important;}
.snl-ofc .e-off-canvas__close-button svg{fill:#FFFFFF!important;width:22px;height:22px;}
.snl-ofc .e-off-canvas__close-button:hover svg{fill:var(--e-global-color-primary)!important;}

/* menu inside the panel */
.snl-ofc-nav .elementor-nav-menu--main .elementor-item{
  font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:19px;
  letter-spacing:1.3px;text-transform:uppercase;color:#FFFFFF!important;
  padding:15px 24px!important;border-bottom:1px solid rgba(255,255,255,.08);
}
.snl-ofc-nav .elementor-nav-menu--main .elementor-item:hover,
.snl-ofc-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{
  background-color:var(--e-global-color-ink_soft)!important;color:var(--e-global-color-primary)!important;
}
.snl-ofc-nav .elementor-nav-menu .sub-arrow svg,
.snl-ofc-nav .elementor-nav-menu .sub-arrow i{fill:#FFFFFF;color:#FFFFFF;}
.snl-ofc-nav .elementor-nav-menu--dropdown{background-color:transparent!important;}
.snl-ofc-nav .elementor-nav-menu--dropdown a{
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:16px;
  letter-spacing:.9px;text-transform:uppercase;color:var(--e-global-color-on_dark)!important;
  padding:12px 24px 12px 40px!important;border-bottom:1px solid rgba(255,255,255,.05);
}
.snl-ofc-nav .elementor-nav-menu--dropdown a:hover{
  background-color:var(--e-global-color-ink_soft)!important;color:var(--e-global-color-primary)!important;
}

/* actions and contact at the foot of the panel */
.snl-ofc-btn .elementor-button{width:100%;height:50px!important;min-height:50px!important;justify-content:center;border-radius:0!important;font-size:16px!important;}
.snl-ofc-btn-ghost .elementor-button{background:transparent!important;color:#FFFFFF!important;border:2px solid rgba(255,255,255,.45)!important;}
.snl-ofc-btn-ghost .elementor-button:hover{border-color:#FFFFFF!important;background:rgba(255,255,255,.08)!important;}
.snl-ofc-tel{padding:18px 24px 0;font-family:"Barlow Condensed",sans-serif;}
.snl-ofc-tel a{color:#FFFFFF!important;font-weight:700;font-size:21px;letter-spacing:.04em;text-decoration:none!important;}
.snl-ofc-tel .snl-ofc-mail{display:block;margin-top:8px;}
.snl-ofc-tel .snl-ofc-mail a{font-family:"Inter",sans-serif;font-weight:400;font-size:14px;color:var(--e-global-color-on_dark)!important;letter-spacing:0;}

/* The widget ships no close control of its own - it closes on overlay click and
   on Esc. This is an explicit one so there is something visible to tap. */
.snl-ofc-close{align-self:flex-end;}
.snl-ofc-close .elementor-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin-right:12px;border:1px solid rgba(255,255,255,.22);}
.snl-ofc-close .elementor-icon svg{fill:#FFFFFF;width:18px;height:18px;}
.snl-ofc-close .elementor-icon:hover{background:var(--e-global-color-primary);border-color:var(--e-global-color-primary);}
.snl-ofc-close .elementor-widget-container{display:flex;justify-content:flex-end;}

/* The widget defaults to a 1.5s entrance, which reads as a broken menu. */
.snl-ofc{--e-off-canvas-animation-duration:.35s!important;}

/* Submenus collapse and open on tap. Elementor gives the vertical menu a
   sub-arrow driven by SmartMenus, which does not behave inside a panel that
   starts hidden, so the panel script adds its own toggle button per parent
   item and this only reflects the state. No dependency on Elementor JS. */
.snl-ofc-nav .elementor-menu-toggle{display:none!important;}
.snl-ofc-nav .sub-arrow{display:none!important;}
.snl-ofc-nav .elementor-nav-menu li{position:relative;}
.snl-ofc-nav .elementor-nav-menu ul{display:none!important;position:static!important;box-shadow:none!important;background-color:transparent!important;width:auto!important;min-width:0!important;}
.snl-ofc-nav .elementor-nav-menu li.snl-open > ul{display:block!important;}
/* the toggle is its own target so tapping the label still follows the link */
/* !important because this is a real <button>, and the theme paints every
   button with the brand colour - which turned the chevrons into orange slabs. */
.snl-ofc-toggle{position:absolute;top:0;right:0;width:48px;background:transparent!important;background-color:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;border-radius:0!important;}
.snl-ofc-toggle:hover,.snl-ofc-toggle:focus{background:transparent!important;background-color:transparent!important;}
.snl-ofc-toggle::before{content:"";width:7px;height:7px;border-right:2px solid #FFFFFF;border-bottom:2px solid #FFFFFF;transform:translateY(-2px) rotate(45deg);transition:transform .25s ease,border-color .25s ease;}
.snl-ofc-nav li.snl-open > .snl-ofc-toggle::before{transform:translateY(2px) rotate(-135deg);}
.snl-ofc-toggle:hover::before{border-color:var(--e-global-color-primary);}
.snl-ofc-nav .snl-has-sub > a{padding-right:64px!important;}

/* =========================================================================
 * SCROLLBARS - the browser default is a thick light bar that reads as foreign
 * against an ink and orange palette. Slim, square, brand-coloured on hover.
 * ========================================================================= */
html{scrollbar-width:thin;scrollbar-color:#C4BFB9 var(--e-global-color-surface);}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--e-global-color-surface);}
::-webkit-scrollbar-thumb{background:#C4BFB9;border-radius:0;border:2px solid var(--e-global-color-surface);}
::-webkit-scrollbar-thumb:hover{background:var(--e-global-color-primary);}
::-webkit-scrollbar-corner{background:var(--e-global-color-surface);}

/* on the ink panel a light bar would glare, so it is barely-there white */
.snl-ofc .e-off-canvas__content{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent;}
.snl-ofc .e-off-canvas__content::-webkit-scrollbar{width:8px;}
.snl-ofc .e-off-canvas__content::-webkit-scrollbar-track{background:transparent;}
.snl-ofc .e-off-canvas__content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border:0;}
.snl-ofc .e-off-canvas__content::-webkit-scrollbar-thumb:hover{background:var(--e-global-color-primary);}

/* The home page ground is dark at the top, so any hairline the hero does not
   cover reads as ink rather than a white strip. */
body.home,body.page-id-4773{background-color:var(--e-global-color-secondary);}
/* =========================================================================
 * FOOTER  (template "SNL Footer 2026")
 * Append verbatim to the component library (Site Settings > Custom CSS,
 * kit 24) and to .claude/snl-component-library.css.
 *
 * Ink ground, the second dark anchor after the header. Orange appears ONLY
 * as a rule, a button fill, an under-edge, a hover mark and a focus ring.
 * Never as text: the brand rule is that orange never sits on black.
 *
 * All colour and type live here; the template carries only layout, so the
 * whole footer restyles from Site Settings like every other component.
 *
 * Column balance: the contact details are the FOURTH column of the link
 * grid, not a panel stacked under the logo. Stacked, the brand column ran
 * roughly twice the height of the link columns and opened a large void to
 * its right. Four columns of comparable height read as one band.
 * ========================================================================= */
.snl-ft{background-color:var(--e-global-color-secondary);border-top:3px solid var(--e-global-color-primary);}
.snl-ft a{text-decoration:none!important;box-shadow:none!important;}
/* the eyebrow keeps its orange ::before bar but the LABEL goes white:
   .snl-eb is authored in Orange Dark for light grounds and would be
   both illegible and against the brand rule on ink */
.snl-ft .snl-eb{color:#FFFFFF;}
/* column and block headings are spans, not headings. The old footer emitted
   four stray <h2>s into every page on the site; a footer that repeats on
   every template must not touch the document outline. Each link group is a
   <nav aria-label> instead, which is the landmark screen readers want. */
.snl-ft-h{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:17px;line-height:1.15;letter-spacing:1.3px;text-transform:uppercase;color:#FFFFFF;margin:0 0 16px;}

/* ---- action band ---- */
.snl-ft-cta{background-color:var(--e-global-color-ink_soft);}
.snl-ft-cta-copy{flex:1 1 380px;min-width:0;}
.snl-ft-cta-h{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:32px;line-height:1.1;color:#FFFFFF;margin:0 0 8px;}
.snl-ft-cta-p{font-family:"Inter",sans-serif;font-size:15.5px;line-height:1.6;color:var(--e-global-color-on_dark);margin:0;max-width:52ch;}
.snl-ft-cta-act{flex:0 0 auto;}
/* explicit colours, like the header buttons: without them a button widget
   falls back to the theme's default blue whatever the kit says */
.snl-ft-btn .elementor-button{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:16px;letter-spacing:1.2px;text-transform:uppercase;border-radius:0!important;padding-left:26px!important;padding-right:26px!important;}
.snl-ft-btn:not(.snl-ft-btn-ghost) .elementor-button{background-color:var(--e-global-color-primary)!important;color:#FFFFFF!important;}
.snl-ft-btn:not(.snl-ft-btn-ghost) .elementor-button:hover{background-color:var(--e-global-color-accent)!important;color:#FFFFFF!important;}
.snl-ft-btn-ghost .elementor-button{background:transparent!important;color:#FFFFFF!important;border:2px solid rgba(255,255,255,.45)!important;}
.snl-ft-btn-ghost .elementor-button:hover{border-color:#FFFFFF!important;background:rgba(255,255,255,.08)!important;}

/* ---- brand column ---- */
/* source is 226x73, held under 1x so it stays crisp, same as the header */
.snl-ft-logo img{width:auto;height:46px;max-width:none;display:block;}
.snl-ft-about p{font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.65;color:var(--e-global-color-on_dark);margin:0;}
/* inline <svg>, so it needs fill, not color - same trap as the cart icon */
.snl-ft-social{display:inline-flex;align-items:center;gap:9px;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:14px;letter-spacing:1.2px;text-transform:uppercase;color:var(--e-global-color-on_dark)!important;transition:color .25s ease;}
.snl-ft-social svg{width:15px;height:15px;fill:currentColor;display:block;}
.snl-ft-social:hover{color:#FFFFFF!important;}

/* ---- the four columns ---- */
.snl-ft-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.snl-ft-col ul{list-style:none;margin:0;padding:0;}
.snl-ft-col li{margin:0 0 11px;}
.snl-ft-col a{display:inline-block;font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.5;color:var(--e-global-color-on_dark)!important;border-bottom:1px solid transparent;padding-bottom:1px;transition:color .2s ease,border-color .2s ease;}
.snl-ft-col a:hover{color:#FFFFFF!important;border-bottom-color:var(--e-global-color-primary);}

/* ---- contact, as the fourth column ---- */
/* <address> is the right element for the company's own contact details,
   and it italicises by default, so reset it */
.snl-ft-ct{font-style:normal;}
.snl-ft-cphone{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:27px;line-height:1.05;letter-spacing:.4px;color:#FFFFFF!important;margin:0 0 10px;transition:color .25s ease;}
.snl-ft-cphone:hover{color:var(--e-global-color-primary)!important;}
.snl-ft-cmail{display:inline-block;font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.5;color:var(--e-global-color-on_dark)!important;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:1px;transition:color .2s ease,border-color .2s ease;word-break:break-word;}
.snl-ft-cmail:hover{color:#FFFFFF!important;border-bottom-color:var(--e-global-color-primary);}
.snl-ft-cline{font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.55;color:var(--e-global-color-on_dark);margin:16px 0 0;}
.snl-ft-clabel{display:block;font-family:"Inter",sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--e-global-color-on_dark_muted);margin:0 0 3px;}

/* ---- signup strip ----
   One tight row, not a tall band. The label and its hint sit on a single
   baseline, and the form is inline: Elementor gives every field group
   .elementor-col-100, so the submit dropped onto its own line under a
   full-width input, which is what made this read as an empty box. */
/* Two columns, no rule above it: copy left, form and button right. The copy
   is deliberately long enough to run two or three lines, which is what stops
   the middle reading as a hole. Capped at 62ch so it never runs the full
   1280 and collides with the form. */
/* Width comes from flex-basis, NOT max-width. Elementor ships
   `.elementor.elementor .e-con>.elementor-widget{max-width:100%}` - four
   classes - so a max-width on a single .snl-* class silently loses, the copy
   runs the full width and shoves the form onto its own line. flex-basis is
   not overridden by anything, so drive the column width with that.
   grow 0 so it holds 400px instead of swelling into the space the form
   leaves behind. */
.snl-ft-news-copy{flex:0 1 400px;min-width:0;}
.snl-ft-news-copy .snl-ft-h{margin:0 0 5px;}
.snl-ft-news-copy p{font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.55;color:var(--e-global-color-on_dark_muted);margin:0;}
.snl-ft-form{flex:0 1 470px;min-width:290px;}
.snl-ft-form .elementor-form-fields-wrapper{flex-wrap:nowrap!important;gap:10px;margin:0!important;}
/* flex-basis 0, not auto: the input's own width is 100%, so an auto basis
   resolves against a circular content size and the field collapses */
.snl-ft-form .elementor-field-group{width:auto!important;max-width:none!important;flex:1 1 0;padding:0!important;margin:0!important;}
.snl-ft-form .elementor-field-type-submit{flex:0 0 auto;align-items:center;}
.snl-ft-form .elementor-field-textual{height:52px!important;min-height:52px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:0!important;padding:0 16px!important;font-family:"Inter",sans-serif!important;font-size:15px!important;color:#FFFFFF!important;box-shadow:none!important;}
.snl-ft-form .elementor-field-textual::placeholder{color:var(--e-global-color-on_dark_muted);opacity:1;}
.snl-ft-form .elementor-field-textual:focus{border-color:var(--e-global-color-primary)!important;background:rgba(255,255,255,.1)!important;}
.snl-ft-form .elementor-button[type="submit"]{height:52px!important;min-height:52px!important;border-radius:0!important;border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;background:var(--e-global-color-primary);color:#FFFFFF;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:16px;letter-spacing:1.2px;text-transform:uppercase;line-height:1;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 24px;}
.snl-ft-form .elementor-button[type="submit"]:hover{background:var(--e-global-color-accent);border-bottom-color:var(--e-global-color-secondary)!important;transform:none;}
/* nothing may clip the submit's 4px under-edge */
.snl-ft-form .elementor-form,
.snl-ft-form .elementor-field-type-submit,
.snl-ft-form .elementor-widget-container{overflow:visible!important;}
.snl-ft-form .elementor-message{font-family:"Inter",sans-serif;font-size:14px;color:var(--e-global-color-on_dark);}

/* ---- legal bar ---- */
.snl-ft-legal{border-top:1px solid rgba(255,255,255,.1);}
.snl-ft-copy p{font-family:"Inter",sans-serif;font-size:13px;line-height:1.5;color:var(--e-global-color-on_dark_muted);margin:0;}
.snl-ft-legalnav ul{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin:0;padding:0;}
.snl-ft-legalnav li{margin:0;}
.snl-ft-legalnav a{font-family:"Inter",sans-serif;font-size:13px;color:var(--e-global-color-on_dark_muted)!important;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease;}
.snl-ft-legalnav a:hover{color:#FFFFFF!important;border-bottom-color:var(--e-global-color-primary);}
/* the year script's host widget */
.snl-ft-js{display:none!important;}

/* a focus ring that is actually visible on ink */
.snl-ft a:focus-visible,
.snl-ft button:focus-visible,
.snl-ft input:focus-visible{outline:2px solid var(--e-global-color-primary);outline-offset:3px;}

@media(max-width:1024px){
.snl-ft-cta-h{font-size:28px;}
.snl-ft-grid{gap:30px 24px;}
}

@media(max-width:767px){
.snl-ft-cta-h{font-size:25px;}
.snl-ft-grid{grid-template-columns:repeat(2,1fr);gap:26px 20px;}
.snl-ft-cphone{font-size:26px;}
.snl-ft-logo img{height:40px;}
.snl-ft-form{flex:1 1 auto;min-width:0;width:100%;}
.snl-ft-legal{justify-content:flex-start;}
/* Below 768 Elementor forces --flex-wrap:wrap on every flex container and
   width:100% on every widget, so the button pair would take a line each.
   The design system keeps paired buttons two-in-a-row on mobile, so pin
   the row and let each button take half of it. The container is
   content_width:full, so these ARE the direct children - no e-con-inner. */
.snl-ft-cta-act{flex-wrap:nowrap!important;gap:10px!important;}
.snl-ft-cta-act > .elementor-widget{width:auto!important;max-width:none!important;flex:1 1 0!important;}
.snl-ft-cta-act .elementor-button{width:100%;}
}

@media(max-width:479px){
.snl-ft-grid{grid-template-columns:1fr;gap:22px;}
}
/* =========================================================================
 * COMMERCE TEMPLATES  (Samples archive #4872, and the general product
 * archive / single product templates to come)
 * Append to the component library.
 * ========================================================================= */

/* ---- FULL-BLEED SECTIONS INSIDE THEME TEMPLATES ----
   Astra wraps template output in  #content > .ast-container , which is
   capped at --ast-normal-container-width (1200px). Any Elementor section
   rendered inside it therefore has its BACKGROUND clipped to 1200px, so
   ink and surface bands stopped short of the window edge and read as a
   fixed box floating on white.
   Release the container on the commerce templates we own; our own sections
   are boxed and re-centre their content at 1280 on their own. ---- */
body.ast-woo-shop-archive #content > .ast-container,
body.tax-product_cat #content > .ast-container,
body.single-product #content > .ast-container{max-width:100%!important;padding-left:0!important;padding-right:0!important;}

/* page-level H1, one step above .snl-h2 */
.snl-h1p{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:52px;line-height:1.05;letter-spacing:.4px;color:var(--e-global-color-secondary);margin:0 0 18px;max-width:900px;}
@media(max-width:1024px){.snl-h1p{font-size:42px;}}
@media(max-width:767px){.snl-h1p{font-size:34px;text-wrap:balance;}}

/* ---- on-ink modifier ----
   .snl-h2 and .snl-lead are authored for light grounds. Rather than fork
   them, this repaints a whole ink section. The eyebrow LABEL goes white,
   never orange: orange text never sits on black. Its ::before rule stays
   orange, which is where the accent belongs. */
.snl-onink .snl-h2,
.snl-onink .snl-h1p{color:#FFFFFF;}
.snl-onink .snl-lead,
.snl-onink .snl-copy p{color:var(--e-global-color-on_dark);}
.snl-onink .snl-eb{color:#FFFFFF;}
.snl-onink .snl-eyebrow .elementor-heading-title{color:#FFFFFF!important;}
/* .snl-btn-ghost is a 2px INK border, invisible on an ink ground. On dark
   it becomes the same translucent-white outline the header buttons use. */
.snl-onink .snl-btn-ghost{color:#FFFFFF!important;border-color:rgba(255,255,255,.45)!important;}
.snl-onink .snl-btn-ghost:hover{background:#FFFFFF!important;color:var(--e-global-color-secondary)!important;border-color:#FFFFFF!important;}

/* ---- hero masthead ----
   The header is ink and not transparent on this template, so an ink hero
   reads as one continuous masthead rather than a second band. Padding is
   set on the container; only the button row is spaced here. */
.snl-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0;}
@media(max-width:479px){
.snl-hero-actions{gap:10px;}
.snl-hero-actions .snl-btn{flex:1 1 100%;}
}

/* ---- numbered step blocks, reusing .snl-mini ---- */
.snl-step-n{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--e-global-color-secondary);color:#FFFFFF;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:20px;line-height:1;margin:0 0 16px;}

/* ---- .snl-tile used as MARKUP rather than as a container ----
   On Home 2026 .snl-tile is an Elementor container and its padding comes
   from the container's own settings, so the library rule carries only the
   border and the orange top bar. Written inside a .snl-grid3 markup block
   there is no container, so the text sat flush against the border.
   Scoped to a direct child of .snl-grid3 so Home 2026, where the tile is
   NOT inside .snl-grid3, keeps its container padding and is not doubled. */
.snl-grid3 > .snl-tile{padding:28px 26px;}
@media(max-width:767px){
.snl-grid3 > .snl-tile{padding:24px 22px;}
}

/* =========================================================================
 * PRODUCT GRID
 * Astra REPLACES the stock WooCommerce loop markup with its own:
 *   li.product > .astra-shop-thumbnail-wrap ( img + .ast-on-card-button )
 *              > .astra-shop-summary-wrap  ( .ast-woo-product-category,
 *                a.ast-loop-product__link > h2, .price, a.button )
 * so the card must be built around those two wrappers. The summary wrap is
 * the flex column, not the li, otherwise margin-top:auto on the button has
 * nothing to push against and the buttons do not line up across the row.
 * width/margin/float need !important to beat WooCommerce's own loop rules.
 * ========================================================================= */
.snl-prodgrid ul.products{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:24px;margin:0!important;padding:0!important;list-style:none;}
.snl-prodgrid ul.products::before,
.snl-prodgrid ul.products::after{content:none!important;display:none!important;}

/* Every structural property is !important and the two wrappers are pinned to
   full width. Without that the card fell back to flex-direction:row, which
   put the image beside the copy and let the add-to-cart button escape the
   card box. Astra's rounded corners and card shadow are removed so it reads
   as the same square card component as the rest of the system. */
.snl-prodgrid ul.products li.product{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;float:none!important;clear:none!important;background:var(--e-global-color-white)!important;border:1px solid var(--e-global-color-line)!important;border-radius:0!important;box-shadow:none!important;position:relative;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;overflow:hidden!important;transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s cubic-bezier(.2,.7,.3,1);}
.snl-prodgrid ul.products li.product > .astra-shop-thumbnail-wrap{width:100%!important;max-width:none!important;flex:0 0 auto!important;order:1;}
.snl-prodgrid ul.products li.product > .astra-shop-summary-wrap{width:100%!important;max-width:none!important;flex:1 1 auto!important;order:2;}
.snl-prodgrid li.product{width:auto!important;margin:0!important;float:none!important;}
.snl-prodgrid li.product::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--e-global-color-primary);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.2,.7,.3,1);z-index:3;}
.snl-prodgrid li.product:hover::before{transform:scaleX(1);}
.snl-prodgrid ul.products li.product:hover{transform:translateY(-5px);box-shadow:0 22px 44px -26px rgba(16,16,16,.5)!important;}

/* image panel */
.snl-prodgrid .astra-shop-thumbnail-wrap{margin:0 0 20px!important;background:var(--e-global-color-surface);border-bottom:1px solid var(--e-global-color-line);padding:26px 22px!important;position:relative;}
.snl-prodgrid .astra-shop-thumbnail-wrap img{width:auto!important;height:170px!important;max-width:100%!important;object-fit:contain;display:block;margin:0 auto!important;filter:drop-shadow(0 12px 18px rgba(16,16,16,.16));transition:transform .45s cubic-bezier(.2,.7,.3,1);}
.snl-prodgrid li.product:hover .astra-shop-thumbnail-wrap img{transform:scale(1.06) translateY(-2px);}
/* Astra's hover overlay cart icon duplicates the real button below it */
.snl-prodgrid .ast-on-card-button{display:none!important;}

/* summary column */
.snl-prodgrid .astra-shop-summary-wrap{display:flex;flex-direction:column;flex:1 1 auto;padding:0 22px 24px!important;text-align:left!important;}
/* on a samples archive every card would read "Samples" */
.snl-prodgrid .ast-woo-product-category{display:none!important;}
.snl-prodgrid .ast-loop-product__link{text-decoration:none!important;display:block;}
.snl-prodgrid .woocommerce-loop-product__title{font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;font-size:22px!important;line-height:1.15!important;letter-spacing:.8px;text-transform:uppercase;color:var(--e-global-color-secondary)!important;margin:0 0 10px!important;padding:0!important;transition:color .25s ease;}
.snl-prodgrid li.product:hover .woocommerce-loop-product__title{color:var(--e-global-color-accent)!important;}
.snl-prodgrid .price{font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;font-size:19px!important;color:var(--e-global-color-accent)!important;margin:0 0 18px!important;display:block;}
.snl-prodgrid .price del{opacity:.5;}
.snl-prodgrid .price ins{text-decoration:none;}
/* the real add-to-cart: square, orange, same 4px under-edge as every other
   solid button in the system. margin-top:auto lines the row up. */
.snl-prodgrid .astra-shop-summary-wrap .button{margin:auto 0 0!important;display:flex!important;align-items:center;justify-content:center;height:48px;min-height:48px;box-sizing:border-box;border-radius:0!important;background:var(--e-global-color-primary)!important;color:#FFFFFF!important;font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;font-size:16px!important;letter-spacing:1.2px;text-transform:uppercase;border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;padding:0 16px!important;transition:background-color .25s ease,border-color .25s ease;}
.snl-prodgrid .astra-shop-summary-wrap .button:hover{background:var(--e-global-color-accent)!important;border-bottom-color:var(--e-global-color-secondary)!important;}
.snl-prodgrid .added_to_cart{margin:10px 0 0!important;font-family:"Inter",sans-serif;font-size:13px;color:var(--e-global-color-accent)!important;display:block;text-align:center;text-decoration:none!important;}
/* focus ring, since the whole card is link targets */
.snl-prodgrid a:focus-visible{outline:2px solid var(--e-global-color-primary);outline-offset:2px;}

/* ---- responsive ----
   Below 1024 the grid becomes centred FLEX rather than staying CSS Grid.
   With 5 products a 2-column grid leaves a half-empty final row pinned to
   the left, and CSS Grid cannot centre a short last row. Flex with
   justify-content:center does, and the cards keep identical widths because
   the basis is fixed. Desktop stays a 3-column grid. */
@media(max-width:1024px){
.snl-prodgrid ul.products{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;align-items:stretch!important;grid-template-columns:none!important;gap:20px!important;}
.snl-prodgrid ul.products li.product{flex:0 1 calc(50% - 10px)!important;max-width:calc(50% - 10px)!important;}
.snl-prodgrid .astra-shop-thumbnail-wrap img{height:150px!important;}
}

@media(max-width:600px){
.snl-prodgrid ul.products{gap:18px!important;}
.snl-prodgrid ul.products li.product{flex:0 1 100%!important;max-width:100%!important;}
.snl-prodgrid li.product:hover{transform:none;}
.snl-prodgrid .astra-shop-thumbnail-wrap img{height:170px!important;}
}
/* =========================================================================
 * DISTRIBUTORS  (page 4923, /distributors-list/)
 * Search = Simple Locator's [wp_simple_locator]
 * List   = our own [snl_distributor_list] (mu-plugins/snl-distributor-list.php)
 * Both read the SAME `location` records, so they cannot drift.
 * ========================================================================= */

/* release Astra's container so the ink bands run edge to edge, same as the
   commerce templates */
body.page-id-4923 #content > .ast-container{max-width:100%!important;padding-left:0!important;padding-right:0!important;}

/* ---- the search form ----
   Markup: .simple-locator-form > form > .address-input.form-field,
   .distance.form-field, .submit  then .wpsl-map and .wpsl-results */
.snl-locator .simple-locator-form{background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-top:3px solid var(--e-global-color-primary);padding:26px 26px 26px;}
.snl-locator form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin:0;}
/* The plugin lays this form out with FLOATS and margins:
     .address-input{float:left;width:60%}  .distance{float:right;width:35%}
     .submit{float:left;clear:both;padding-top:20px;margin-bottom:20px}
     .geo_button_cont{float:left;padding-top:20px;margin:0 0 20px 10px}
   Floats are ignored on flex items, but the padding and margin are not, and
   align-items:flex-end aligns the MARGIN box - so that 20px bottom margin
   lifted both buttons clear of the fields. Reset all four properties before
   applying our own sizing. */
.snl-locator .address-input,
.snl-locator .distance,
.snl-locator .submit,
.snl-locator .geo_button_cont{float:none!important;clear:none!important;width:auto!important;padding-top:0!important;margin:0!important;}
.snl-locator .form-field{display:flex;flex-direction:column;gap:7px;}
.snl-locator .address-input{flex:1 1 260px;min-width:0;}
.snl-locator .distance{flex:0 0 190px;}
.snl-locator .submit{flex:0 0 auto;display:flex;align-items:flex-end;}
.snl-locator label{font-family:"Inter",sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--e-global-color-muted);margin:0;}
.snl-locator input[type="text"],
.snl-locator select{height:54px;min-height:54px;width:100%;background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-radius:0;padding:0 16px;font-family:"Inter",sans-serif;font-size:15px;color:var(--e-global-color-secondary);box-shadow:none;}
.snl-locator input[type="text"]:focus,
.snl-locator select:focus{border-color:var(--e-global-color-primary);outline:none;}
.snl-locator .wpslsubmit{height:54px;min-height:54px;display:inline-flex;align-items:center;justify-content:center;padding:0 30px;border:0;border-bottom:4px solid var(--e-global-color-accent);border-radius:0;background:var(--e-global-color-primary);color:#FFFFFF;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:17px;letter-spacing:1.3px;text-transform:uppercase;cursor:pointer;transition:background-color .25s ease,border-color .25s ease;}
.snl-locator .wpslsubmit:hover{background:var(--e-global-color-accent);border-bottom-color:var(--e-global-color-secondary);}
/* "Use my location" is injected here by the plugin's JS as bare text, so it
   sat on the baseline below the submit button instead of beside it. Make the
   container a real flex cell and dress the control as the system's outline
   button, so the pair reads as solid + outline like every other button row. */
.snl-locator .geo_button_cont{flex:0 0 auto;display:flex;align-items:flex-end;}
.snl-locator .geo_button_cont:empty{display:none;}
.snl-locator .geo_button_cont a,
.snl-locator .geo_button_cont button,
.snl-locator .geo_button_cont input[type="button"]{height:54px;min-height:54px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0 22px;background:transparent;border:2px solid var(--e-global-color-secondary);border-radius:0;color:var(--e-global-color-secondary)!important;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:1.2px;text-transform:uppercase;text-decoration:none!important;cursor:pointer;white-space:nowrap;transition:background-color .25s ease,color .25s ease;}
.snl-locator .geo_button_cont a:hover,
.snl-locator .geo_button_cont button:hover,
.snl-locator .geo_button_cont input[type="button"]:hover{background:var(--e-global-color-secondary);color:#FFFFFF!important;}

/* the select keeps the browser's own arrow, which is the one rounded, soft
   element in an otherwise square system. Replace it with a sharp chevron. */
.snl-locator select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23101010' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;}
.snl-locator .wpsl-error{flex:1 1 100%;font-family:"Inter",sans-serif;font-size:14px;color:#B3261E;background:#FDECEA;border:1px solid #F5C6C0;padding:12px 14px;margin:0 0 4px;}
.snl-locator .wpsl-map{margin-top:22px;border:1px solid var(--e-global-color-line);}
.snl-locator .wpsl-map:empty{display:none;}

/* results injected by the plugin's JS */
.snl-locator .wpsl-results{margin-top:22px;}
.snl-locator .wpsl-results:empty{display:none;}
.snl-locator .wpsl-results ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.snl-locator .wpsl-results li{background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);padding:20px 22px;}
.snl-locator .wpsl-search-result__title,
.snl-locator .wpsl-results h4{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:21px;line-height:1.15;letter-spacing:.7px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0 0 6px;}
.snl-locator .wpsl-results em{display:block;font-style:normal;font-family:"Inter",sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--e-global-color-accent);margin:0 0 10px;}
.snl-locator .wpsl-search-result__address,
.snl-locator .wpsl-results span{font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.55;color:var(--e-global-color-text);}
.snl-locator .wpsl-results a{color:var(--e-global-color-accent);text-decoration:none;}
.snl-locator .wpsl-results a:hover{color:var(--e-global-color-secondary);}

/* ---- the full distributor list ---- */
.snl-dist-group{margin:0 0 44px;}
.snl-dist-group:last-child{margin-bottom:0;}
.snl-dist-state{display:flex;align-items:center;gap:12px;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:26px;line-height:1;letter-spacing:1.6px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0 0 20px;padding:0 0 12px;border-bottom:1px solid var(--e-global-color-line);}
.snl-dist-state::before{content:"";flex:0 0 auto;width:24px;height:3px;background:var(--e-global-color-primary);}
.snl-dist-count{font-family:"Inter",sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--e-global-color-muted);}
.snl-dist-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.snl-dist-card{position:relative;display:flex;flex-direction:column;background:var(--e-global-color-white);border:1px solid var(--e-global-color-line);padding:22px 22px 20px;transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s cubic-bezier(.2,.7,.3,1);}
.snl-dist-card::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--e-global-color-primary);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.2,.7,.3,1);}
.snl-dist-card:hover::before{transform:scaleX(1);}
.snl-dist-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -26px rgba(16,16,16,.5);}
.snl-dist-name{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:20px;line-height:1.15;letter-spacing:.7px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:0 0 10px;}
.snl-dist-addr{font-style:normal;font-family:"Inter",sans-serif;font-size:14.5px;line-height:1.55;color:var(--e-global-color-text);margin:0 0 14px;}
.snl-dist-tel{display:inline-block;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:21px;letter-spacing:.4px;color:var(--e-global-color-secondary)!important;text-decoration:none!important;margin:auto 0 0;transition:color .25s ease;}
.snl-dist-tel:hover{color:var(--e-global-color-accent)!important;}
.snl-dist-site{display:inline-block;font-family:"Inter",sans-serif;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--e-global-color-accent)!important;text-decoration:none!important;border-bottom:1px solid rgba(184,90,30,.35);padding-bottom:1px;margin:10px 0 0;align-self:flex-start;transition:color .2s ease,border-color .2s ease;}
.snl-dist-site:hover{color:var(--e-global-color-secondary)!important;border-bottom-color:var(--e-global-color-secondary);}
.snl-dist-empty{font-family:"Inter",sans-serif;font-size:16px;color:var(--e-global-color-text);}

@media(max-width:1024px){
.snl-dist-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
.snl-locator .wpsl-results ul{grid-template-columns:1fr;}
}

@media(max-width:767px){
.snl-locator .simple-locator-form{padding:20px 18px;}
.snl-locator .address-input,
.snl-locator .distance,
.snl-locator .submit,
.snl-locator .geo_button_cont{flex:1 1 100%;}
.snl-locator .wpslsubmit{width:100%;}
.snl-locator .geo_button_cont a,
.snl-locator .geo_button_cont button,
.snl-locator .geo_button_cont input[type="button"]{width:100%;}
.snl-dist-grid{grid-template-columns:1fr;}
.snl-dist-card:hover{transform:none;}
.snl-dist-state{font-size:22px;}
}
/* =========================================================================
 * CONTACT  (page 11, /contact/)
 * Reuses .snl-mini for the three detail cards and .snl-formcard for the form
 * panel. Only the card value styles and the full-bleed map band are new, and
 * both are reusable.
 * ========================================================================= */

/* release Astra's container so the ink hero and the map band run edge to edge */
body.page-id-11 #content > .ast-container{max-width:100%!important;padding-left:0!important;padding-right:0!important;}

/* ---- form band ----
   The Call / Email / Visit / Hours details live in the LEFT column under the
   copy, not in a separate row above. As a standalone band they left a large
   dead area beneath the intro text, and split the page's one action across
   two places. `.snl-contact` is the same panel Home 2026 uses, so this is a
   reuse rather than a new component. */
.snl-cform-copy .snl-lead{margin-bottom:0;}
.snl-cform-copy .snl-contact{width:100%;}
/* the email address is the longest value in the panel */
.snl-cform-copy .snl-crow a.snl-cvalue{word-break:break-word;}
/* .snl-formcard already carries the lifted white panel shadow from the
   component library; the contact form controls come from .snl-contact-sec */
.snl-contact-sec .snl-formcard{align-self:flex-start;}

/* ---- full-bleed map ---- */
.snl-map-band{line-height:0;}
.snl-map-embed,
.snl-map-embed .elementor-widget-container{line-height:0;}
.snl-map-band iframe{display:block;width:100%;border:0;filter:grayscale(1) contrast(1.05);transition:filter .4s ease;}
.snl-map-band:hover iframe{filter:grayscale(0);}

@media(max-width:767px){
.snl-map-band iframe{height:340px!important;}
}/* End custom CSS */
.elementor-7 .elementor-element.elementor-element-tr7a10{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:84px;--padding-bottom:92px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a10:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-tr7a10 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}.elementor-7 .elementor-element.elementor-element-tr7a20{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:88px;--padding-bottom:88px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a20:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-tr7a20 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-white );}.elementor-7 .elementor-element.elementor-element-tr7a30{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:84px;--padding-bottom:92px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a30:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-tr7a30 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-surface );}.elementor-7 .elementor-element.elementor-element-tr7a50{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:84px;--padding-bottom:88px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a50:not(.elementor-motion-effects-element-type-background), .elementor-7 .elementor-element.elementor-element-tr7a50 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}body.elementor-page-7:not(.elementor-motion-effects-element-type-background), body.elementor-page-7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#E4E4E4;}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-7 .elementor-element.elementor-element-tr7a10{--padding-top:64px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a20{--padding-top:64px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a30{--padding-top:64px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}.elementor-7 .elementor-element.elementor-element-tr7a50{--padding-top:64px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}}@media(max-width:767px){.elementor-7 .elementor-element.elementor-element-tr7a10{--padding-top:52px;--padding-bottom:52px;--padding-left:20px;--padding-right:20px;}.elementor-7 .elementor-element.elementor-element-tr7a20{--padding-top:52px;--padding-bottom:52px;--padding-left:20px;--padding-right:20px;}.elementor-7 .elementor-element.elementor-element-tr7a30{--padding-top:52px;--padding-bottom:52px;--padding-left:20px;--padding-right:20px;}.elementor-7 .elementor-element.elementor-element-tr7a50{--padding-top:52px;--padding-bottom:52px;--padding-left:20px;--padding-right:20px;}}/* Start custom CSS *//* =========================================================================
 * TRAINING & SUPPORT  (page 7, /training/)  ---  PAGE-LEVEL Custom CSS
 * Shared vocabulary (.snl-sec .snl-onink .snl-eb .snl-h1p .snl-h2 .snl-lead
 * .snl-btn .snl-grid3 .snl-mini .snl-tile) comes from the kit.
 * ========================================================================= */

/* the house section recipe shrink-wraps its widget children, see /resources/ */
.snl-sec > .e-con-inner > .elementor-widget{width:100%;}

/* ---- copy beside a photo, same component as the About story rows ---- */
.snl-tr-row{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;width:100%;}
.snl-tr-copy{min-width:0;}
.snl-tr-copy .snl-h2{max-width:100%;}
.snl-tr-copy p{font-family:"Inter",sans-serif;font-size:17px;line-height:1.7;color:var(--e-global-color-text);margin:0 0 18px;}
.snl-tr-act{margin:28px 0 0!important;}
.snl-tr-media{position:relative;display:block;overflow:hidden;background:var(--e-global-color-surface);}
.snl-tr-media img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;}

.snl-tr-note{font-family:"Inter",sans-serif;font-size:15px;line-height:1.65;color:var(--e-global-color-text);margin:28px 0 0!important;max-width:700px;}
/* the kit sets .elementor-kit-24 a{color:accent} at (0,1,1), so an inline link
   inside our own block needs a tag-qualified body.elementor-page-7 to be underlined */
.snl-tr-note a{color:var(--e-global-color-accent)!important;text-decoration:none!important;border-bottom:1px solid var(--e-global-color-accent);}

/* ---- video library ----
   Each video carries a poster image sideloaded from its own YouTube thumbnail,
   so the page shows a real still with a play button and only injects the
   iframe on click. Five autoloading embeds would otherwise dominate the page. */
.snl-tv-hero{margin:0 0 28px!important;}
.snl-tv-hero .elementor-wrapper,
.snl-tv-clip .elementor-wrapper{border:1px solid var(--e-global-color-line);background:var(--e-global-color-secondary);}

/* the grid is an Elementor flex row; the width lives on the ITEM, and it has to
   beat .elementor-element with three classes, hence the qualified body.elementor-page-7 */
.elementor-element.snl-tv-grid{--gap:28px 24px;--flex-wrap:wrap;width:100%;}
.elementor-element.snl-tv-item{--width:calc(50% - 12px);}
.snl-tv-cap{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:19px;line-height:1.15;letter-spacing:1px;text-transform:uppercase;color:var(--e-global-color-secondary);margin:14px 0 0;}

.snl-tr-cta{margin-top:44px!important;}

/* ---- the three support tiles are links, so they need the affordance ----
   The arrow is the literal character, NOT a \2192 CSS escape: Elementor
   unslashes custom_css on the way in, so the backslash is stripped and the
   rule ships as content:"2192", which renders as those four digits. */
.snl-grid3 > a.snl-tile{display:block;text-decoration:none!important;}
.snl-tile-in{display:block;}
.snl-grid3 > a.snl-tile:hover h3{color:var(--e-global-color-primary);}
.snl-grid3 > a.snl-tile:focus-visible{outline:2px solid var(--e-global-color-primary);outline-offset:3px;}
.snl-grid3 > a.snl-tile h3::after{content:"→";margin-left:10px;display:inline-block;color:var(--e-global-color-primary);transition:transform .25s ease;}
.snl-grid3 > a.snl-tile:hover h3::after{transform:translateX(4px);}

@media(max-width:1024px){
.snl-tr-row{grid-template-columns:1fr;gap:38px;}
.snl-tr-cta{margin-top:36px!important;}
}
@media(max-width:767px){
.snl-tr-row{gap:30px;}
/* one video per row on a phone: a 16:9 clip at half of 350px is unwatchable */
.elementor-element.snl-tv-item{--width:100%;}
.snl-tv-hero{margin-bottom:22px!important;}
.snl-tv-cap{font-size:17px;margin-top:11px;}
.snl-tr-cta{margin-top:30px!important;}
}/* End custom CSS */
.elementor-5021 .elementor-element.elementor-element-ee031c0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-5021 .elementor-element.elementor-element-a466f76{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:28px 28px;--row-gap:28px;--column-gap:28px;--padding-top:0px;--padding-bottom:0px;--padding-left:24px;--padding-right:24px;}.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a, .elementor-5021 .elementor-element.elementor-element-8922590 .elementor-menu-toggle{color:#4A4A4A;fill:#4A4A4A;}.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown{background-color:#FFFFFF;}.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a:hover,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a:focus,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a.highlighted,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-menu-toggle:hover,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-menu-toggle:focus{color:#B85A1E;}.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a:hover,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a:focus,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a.highlighted{background-color:#F6F6F6;}.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a.elementor-item-active{color:#B85A1E;background-color:#F6F6F6;}.elementor-5021 .elementor-element.elementor-element-8922590 .elementor-nav-menu--dropdown a{padding-left:18px;padding-right:18px;padding-top:10px;padding-bottom:10px;}.elementor-5021 .elementor-element.elementor-element-05910f3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:18px 18px;--row-gap:18px;--column-gap:18px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-5021 .elementor-element.elementor-element-23f4cf3{--divider-style:solid;--subtotal-divider-style:solid;--elementor-remove-from-cart-button:none;--remove-from-cart-button:block;--cart-border-style:none;--cart-footer-layout:1fr 1fr;--products-max-height-sidecart:calc(100vh - 240px);--products-max-height-minicart:calc(100vh - 385px);}.elementor-5021 .elementor-element.elementor-element-23f4cf3 .widget_shopping_cart_content{--subtotal-divider-left-width:0;--subtotal-divider-right-width:0;}.elementor-5021 .elementor-element.elementor-element-50c4443 .elementor-icon-wrapper{text-align:center;}.elementor-5021 .elementor-element.elementor-element-50c4443 .elementor-icon{font-size:22px;}.elementor-5021 .elementor-element.elementor-element-50c4443 .elementor-icon svg{height:22px;}.elementor-5021 .elementor-element.elementor-element-snlofc27 .e-off-canvas__overlay{background-color:rgba(0,0,0,.8);}.elementor-5021 .elementor-element.elementor-element-snlofc27{--e-off-canvas-justify-content:flex-start;--e-off-canvas-width:330px;--e-off-canvas-height:100vh;--e-off-canvas-content-overflow:auto;--e-off-canvas-animation-duration:1.5s;--e-off-canvas-overlay-opacity:1;}.elementor-5021 .elementor-element.elementor-element-0f3e661{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-5021 .elementor-element.elementor-element-e6ff28f .elementor-icon-wrapper{text-align:center;}.elementor-5021 .elementor-element.elementor-element-e6ff28f .elementor-icon{font-size:20px;}.elementor-5021 .elementor-element.elementor-element-e6ff28f .elementor-icon svg{height:20px;}.elementor-5021 .elementor-element.elementor-element-c3f271d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:767px){.elementor-5021 .elementor-element.elementor-element-a466f76{--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:0px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}}@media(min-width:768px){.elementor-5021 .elementor-element.elementor-element-a466f76{--content-width:1280px;}.elementor-5021 .elementor-element.elementor-element-05910f3{--width:auto;}}
.elementor-4843 .elementor-element.elementor-element-34c302b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4843 .elementor-element.elementor-element-fa04fec{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:26px 40px;--row-gap:26px;--column-gap:40px;--flex-wrap:wrap;--padding-top:64px;--padding-bottom:48px;--padding-left:24px;--padding-right:24px;}.elementor-4843 .elementor-element.elementor-element-7300291{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:18px 18px;--row-gap:18px;--column-gap:18px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4843 .elementor-element.elementor-element-cc6c579{text-align:start;}.elementor-4843 .elementor-element.elementor-element-bed94ea{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4843 .elementor-element.elementor-element-da91354{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:18px 32px;--row-gap:18px;--column-gap:32px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-field-group.recaptcha_v3-bottomleft, .elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-field-type-html{padding-bottom:0px;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-button[type="submit"]{color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52 .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-4843 .elementor-element.elementor-element-ee26a52{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:30px;--e-form-steps-indicator-inactive-secondary-color:#ffffff;--e-form-steps-indicator-active-secondary-color:#ffffff;--e-form-steps-indicator-completed-secondary-color:#ffffff;--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}.elementor-4843 .elementor-element.elementor-element-13ab313{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:12px 20px;--row-gap:12px;--column-gap:20px;--flex-wrap:wrap;--padding-top:24px;--padding-bottom:28px;--padding-left:24px;--padding-right:24px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1024px){.elementor-4843 .elementor-element.elementor-element-fa04fec{--padding-top:56px;--padding-bottom:42px;--padding-left:24px;--padding-right:24px;}}@media(max-width:767px){.elementor-4843 .elementor-element.elementor-element-fa04fec{--padding-top:44px;--padding-bottom:36px;--padding-left:20px;--padding-right:20px;}.elementor-4843 .elementor-element.elementor-element-13ab313{--padding-top:22px;--padding-bottom:26px;--padding-left:20px;--padding-right:20px;}}@media(min-width:768px){.elementor-4843 .elementor-element.elementor-element-7300291{--width:calc(26% - 21px);}.elementor-4843 .elementor-element.elementor-element-bed94ea{--width:calc(74% - 21px);}.elementor-4843 .elementor-element.elementor-element-da91354{--width:100%;}}@media(max-width:1024px) and (min-width:768px){.elementor-4843 .elementor-element.elementor-element-7300291{--width:100%;}.elementor-4843 .elementor-element.elementor-element-bed94ea{--width:100%;}}
:root,body,.elementor-kit-24{--e-global-color-muted:#6B6B6B;--e-global-color-accent:#B0561C}.elementor-post-date,.elementor-post__meta-data,.elementor-post__meta-data span{color:var(--e-global-color-text)!important}.elementor-post__excerpt,.elementor-post__excerpt p{color:var(--e-global-color-text)!important}.snl-hdr .elementor-button,.snl-hdr .elementor-button-text,.snl-ft .elementor-button,.snl-ft .elementor-button-text,.snl-ft .elementor-button[type=submit],.snl-prodgrid .add_to_cart_button,.woocommerce a.button.wc-backward,.woocommerce a.button.add_to_cart_button{font-size:19px!important;font-weight:700!important}.snl-hdr .snl-hdr-btn-ghost .elementor-button,.snl-hdr .snl-hdr-btn-ghost .elementor-button-text,.snl-ft .snl-ft-btn-ghost .elementor-button,.snl-ft .snl-ft-btn-ghost .elementor-button-text{font-size:19px!important}.snl-contact-sec .elementor-button[type=submit],.snl-ft-form .elementor-button[type=submit],.snl-prodgrid .astra-shop-summary-wrap .button,.snl-locator .wpslsubmit{font-size:19px!important}.elementor-widget-form .elementor-button[type=submit],.elementor-widget-form .elementor-button[type=submit] .elementor-button-text,.woocommerce-form-login__submit,.woocommerce-form-register__submit{font-size:19px!important}.snl-hdr-cart .elementor-button-icon-qty,.elementor-button-icon-qty{background-color:var(--e-global-color-secondary)!important;color:#fff!important}.snl-gl-tag.is-after{background-color:var(--e-global-color-accent)!important;color:#fff!important}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--e-global-color-secondary)!important;outline-offset:3px!important}.snl-onink a:focus-visible,.snl-onink button:focus-visible,.snl-hdr a:focus-visible,.snl-hdr button:focus-visible,.snl-ft a:focus-visible,.snl-ft button:focus-visible,.snl-ft input:focus-visible,.snl-tile a:focus-visible{outline-color:#fff!important}input[type=submit]:focus,input[type=submit]:focus-visible,button[type=submit]:focus-visible{outline:3px solid var(--e-global-color-secondary)!important;outline-offset:3px!important}.snl-ft input[type=submit]:focus,.snl-ft button[type=submit]:focus-visible{outline-color:#fff!important}.snl-skip{position:absolute;left:-9999px;top:0;z-index:100000;padding:14px 22px;background:var(--e-global-color-secondary);color:#fff!important;border-bottom:3px solid var(--e-global-color-primary);font-family:barlow condensed,sans-serif;font-weight:700;font-size:18px;line-height:1;letter-spacing:1.2px;text-transform:uppercase;text-decoration:none!important}.snl-skip:focus{left:0;outline:3px solid #fff!important;outline-offset:-6px!important}#content:focus,#content:focus-visible{outline:none!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.snl-card:hover,.snl-tile:hover,.snl-mini:hover,.snl-quote-card:hover,.snl-rt-card:hover,.snl-btn:hover,.snl-btn-el .elementor-button:hover{transform:none!important}}
.snl-cc{position:fixed;left:24px;bottom:24px;z-index:99999;width:320px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);overflow-y:auto;background:var(--e-global-color-secondary,#101010);border-top:3px solid var(--e-global-color-primary,#DF742D);box-shadow:0 24px 60px -24px rgba(0,0,0,.75)}.snl-cc[hidden]{display:none}.snl-cc-in{padding:16px 18px 15px}.snl-cc-desc{margin:0 0 12px;font-family:inter,sans-serif;font-size:13px;line-height:1.6;color:var(--e-global-color-on_dark,#D6D0CA)}.snl-cc-desc a{color:#fff!important;text-decoration:underline!important;text-decoration-color:var(--e-global-color-primary,#DF742D)!important;text-decoration-thickness:2px!important;text-underline-offset:3px}.snl-cc-desc a:hover{color:var(--e-global-color-primary,#DF742D)!important}.snl-cc-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.snl-cc .snl-cc-btn{box-sizing:border-box;min-width:0;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 10px!important;border:0;border-radius:0!important;cursor:pointer;font-family:barlow condensed,sans-serif!important;font-weight:700!important;font-size:19px!important;line-height:1;letter-spacing:1.1px;text-transform:uppercase;white-space:nowrap;box-shadow:none!important;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.snl-cc .snl-cc-accept{background:var(--e-global-color-primary,#DF742D)!important;color:#fff!important;border-bottom:3px solid var(--e-global-color-accent,#B0561C)!important}.snl-cc .snl-cc-accept:hover{background:var(--e-global-color-accent,#B0561C)!important}.snl-cc .snl-cc-reject{background:0 0!important;color:#fff!important;border:2px solid rgba(255,255,255,.45)!important}.snl-cc .snl-cc-reject:hover{background:#fff!important;color:var(--e-global-color-secondary,#101010)!important;border-color:#fff!important}.snl-cc .snl-cc-choose{display:block;width:100%;margin:9px 0 0;padding:4px 0!important;background:0 0!important;background-color:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;cursor:pointer;text-align:left;font-family:inter,sans-serif!important;font-weight:400!important;font-size:12.5px!important;line-height:1.4;letter-spacing:normal;text-transform:none;color:var(--e-global-color-on_dark,#D6D0CA)!important;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px;transition:color .2s ease}.snl-cc .snl-cc-choose:hover{color:#fff!important}.snl-cc-options{padding:0 18px 16px;border-top:1px solid #2c2c2c}.snl-cc-options[hidden]{display:none}.snl-cc-set{border:0;margin:0;padding:12px 0 0}.snl-cc-opt{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #2c2c2c}.snl-cc-opt input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--e-global-color-primary,#DF742D);cursor:pointer}.snl-cc-opt input:disabled{cursor:not-allowed;opacity:.55}.snl-cc-opt label{cursor:pointer}.snl-cc-opt input:disabled+label{cursor:default}.snl-cc-opt-h{display:block;font-family:barlow condensed,sans-serif;font-weight:700;font-size:16px;line-height:1.2;letter-spacing:.8px;text-transform:uppercase;color:#fff;margin:0 0 2px}.snl-cc-opt-p{display:block;font-family:inter,sans-serif;font-size:13px;line-height:1.55;color:var(--e-global-color-on_dark,#D6D0CA)}.snl-cc .snl-cc-save{width:100%;margin-top:12px;background:var(--e-global-color-primary,#DF742D)!important;color:#fff!important;border-bottom:3px solid var(--e-global-color-accent,#B0561C)!important}.snl-cc .snl-cc-save:hover{background:var(--e-global-color-accent,#B0561C)!important}.snl-cc-reopen{background:0 0!important;background-color:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;cursor:pointer;font-family:inter,sans-serif!important;font-weight:400!important;font-size:13px!important;line-height:inherit;letter-spacing:normal!important;text-transform:none!important;color:var(--e-global-color-on_dark_muted,#B9B2AB)!important;border-bottom:1px solid transparent!important;transition:color .2s ease,border-color .2s ease}.snl-cc-reopen:hover{color:#fff!important;border-bottom-color:var(--e-global-color-primary,#DF742D)!important}.snl-cc a:focus-visible,.snl-cc button:focus-visible,.snl-cc input:focus-visible{outline:3px solid #fff!important;outline-offset:2px!important}.snl-cc .snl-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:400px){.snl-cc{left:12px;right:12px;bottom:12px;width:auto;max-width:none;max-height:calc(100vh - 24px)}.snl-cc-in{padding:15px 16px 14px}.snl-cc-options{padding:0 16px 15px}}@media(prefers-reduced-motion:reduce){.snl-cc-btn,.snl-cc-choose,.snl-cc-reopen,.snl-cc-desc a{transition:none!important}}
.snlh27-wrap{position:relative;z-index:500;background:var(--e-global-color-white);border-bottom:1px solid var(--e-global-color-line)}header.elementor-location-header:has(>.snlh27-wrap){position:sticky;top:0;z-index:500}@media screen and (min-width:783px){body.admin-bar header.elementor-location-header:has(>.snlh27-wrap){top:32px}}html{scroll-padding-top:96px}@media(max-width:767px){html{scroll-padding-top:80px}}.snlh27-wrap{--widgets-spacing:0px;--widgets-spacing-block:0px}.snlh27-wrap .elementor-widget:not(:last-child){margin-bottom:0}.snlh27-wrap .snlh27-bar{--flex-wrap:nowrap}.snlh27-wrap .snlh27-bar>.e-con-inner{min-height:88px;flex-wrap:nowrap}.snlh27-bar>.e-con-inner>.elementor-widget{width:auto;flex:none}.snlh27-bar>.e-con-inner>.snlh27-navw{flex:auto;min-width:0}.snlh27-logo{display:block;line-height:0}.snlh27-logo img{display:block;width:auto;height:74px}.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li>a.elementor-item{padding:26px 0;margin:0;font-family:Inter,sans-serif;font-size:18px;font-weight:500;line-height:1.2;color:var(--e-global-color-secondary);fill:var(--e-global-color-secondary);white-space:nowrap}.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li{margin-right:26px}.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li:last-child{margin-right:0}.snlh27-navw .elementor-nav-menu--main .elementor-item:hover,.snlh27-navw .elementor-nav-menu--main .elementor-item:focus,.snlh27-navw .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--e-global-color-accent);fill:var(--e-global-color-accent)}.snlh27-navw .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,.snlh27-navw .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var(--e-global-color-primary);height:2px}.snlh27-navw .elementor-nav-menu .sub-arrow{margin-left:6px;padding:0}.snlh27-navw .elementor-nav-menu .sub-arrow i{font-size:12px}.snlh27-navw .elementor-nav-menu--main ul.sub-menu{background-color:var(--e-global-color-white);border:1px solid var(--e-global-color-line);border-top:3px solid var(--e-global-color-primary);box-shadow:0 16px 34px rgba(16,16,16,.13);min-width:240px;border-radius:0;padding:6px 0}.snlh27-navw .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item{padding:10px 18px;font-family:Inter,sans-serif;font-size:14.5px;font-weight:400;line-height:1.35;background-color:transparent}.snlh27-navw .elementor-nav-menu--main ul.sub-menu .menu-item-has-children>a.elementor-sub-item{font-family:barlow condensed,sans-serif;font-weight:700;font-size:16px;letter-spacing:.8px;text-transform:uppercase;color:var(--e-global-color-secondary)}.snlh27-trigger .elementor-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;background:var(--e-global-color-primary);border-bottom:3px solid var(--e-global-color-accent);color:var(--e-global-color-white);fill:var(--e-global-color-white);transition:background .18s,border-color .18s}.snlh27-trigger .elementor-icon:hover,.snlh27-trigger .elementor-icon:focus-visible{background:var(--e-global-color-accent);border-bottom-color:var(--e-global-color-secondary);color:var(--e-global-color-white);fill:var(--e-global-color-white)}.snlh27-trigger .elementor-icon svg{width:22px;height:22px;fill:currentColor}.snlh27-ofc .e-off-canvas__main{width:400px!important;max-width:88vw!important;background-color:var(--e-global-color-white);border-right:3px solid var(--e-global-color-primary);box-shadow:0 0 44px rgba(16,16,16,.22)}.snlh27-ofcin{padding:18px 0 28px}.snlh27-ofcclose{align-self:flex-end;padding:0 20px 10px}.snlh27-ofcclose .elementor-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--e-global-color-secondary);fill:var(--e-global-color-secondary);border:1px solid var(--e-global-color-line)}.snlh27-ofcclose .elementor-icon:hover{background:var(--e-global-color-surface);color:var(--e-global-color-accent);fill:var(--e-global-color-accent)}.snlh27-ofcnav .elementor-nav-menu--main .elementor-nav-menu>li{border-bottom:1px solid var(--e-global-color-line)}.snlh27-ofcnav .elementor-nav-menu a.elementor-item{padding:15px 24px;font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:1.3;color:var(--e-global-color-secondary);fill:var(--e-global-color-secondary)}.snlh27-ofcnav .elementor-nav-menu a.elementor-item:hover,.snlh27-ofcnav .elementor-nav-menu a.elementor-item.elementor-item-active{background-color:var(--e-global-color-surface);color:var(--e-global-color-accent);fill:var(--e-global-color-accent)}.snlh27-ofcnav ul.sub-menu{display:none!important;position:static!important;width:auto!important;min-width:0!important;margin:0 0 8px 24px!important;padding:0!important;border:0!important;border-left:2px solid var(--e-global-color-primary)!important;box-shadow:none!important;background:0 0!important}.snlh27-ofcnav li.snl27-open>ul.sub-menu{display:block!important}.snlh27-ofcnav ul.sub-menu a.elementor-sub-item{padding:11px 18px 11px 14px;font-family:Inter,sans-serif;font-size:15px;font-weight:400;line-height:1.35;white-space:normal;color:var(--e-global-color-text);fill:var(--e-global-color-text)}.snlh27-ofcnav ul.sub-menu ul.sub-menu a.elementor-sub-item{font-size:14.5px}.snlh27-ofcnav li.snl27-has-sub{position:relative}.snlh27-ofcnav .elementor-nav-menu .sub-arrow{display:none}.snlh27-ofcnav button.snl27-ofc-toggle{position:absolute;top:0;right:0;width:54px;height:52px;padding:0;background:0 0;border:0;border-radius:0;color:var(--e-global-color-secondary);cursor:pointer}.snlh27-ofcnav button.snl27-ofc-toggle::before{content:"";display:block;width:9px;height:9px;margin:0 auto;border-right:2px solid;border-bottom:2px solid;transform:translateY(-2px)rotate(45deg);transition:transform .2s}.snlh27-ofcnav li.snl27-open>button.snl27-ofc-toggle::before{transform:translateY(2px)rotate(-135deg);color:var(--e-global-color-accent)}.snlh27-ofcnav ul.sub-menu button.snl27-ofc-toggle{width:46px;height:44px}.snlh27-ofcfoot{display:flex;flex-direction:column;gap:16px;padding:24px 24px 0}.snlh27-ofcfootw>.elementor-widget-container{display:flex;flex-direction:column;gap:12px}.snlh27-ofcfootw a.snlh27-cta{display:inline-flex;width:100%}.snlh27-ofcacc{display:none}.snlh27-wrap .snlh27-actions{--width:auto;flex:none;margin-left:auto}.snlh27-actions .snlh27-ctaw{display:flex;align-items:center;line-height:0}.snlh27-actions .snlh27-ctaw>.elementor-widget-container{display:flex;align-items:center;gap:12px}.snlh27-tel{display:inline-flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;color:var(--e-global-color-secondary)}.snlh27-tel svg{flex:none;color:var(--e-global-color-primary)}.snlh27-tel:hover,.snlh27-tel:focus-visible{color:var(--e-global-color-accent)}a.snlh27-cta{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 18px;background:var(--e-global-color-primary);color:var(--e-global-color-white);border:2px solid transparent;border-radius:0;font-family:barlow condensed,sans-serif;font-weight:700;font-size:14px;letter-spacing:1px;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .18s,border-color .18s}a.snlh27-cta:hover,a.snlh27-cta:focus-visible{background:var(--e-global-color-accent);color:var(--e-global-color-white)}a.snlh27-cta.snlh27-cta-ghost{background:0 0;color:var(--e-global-color-secondary);border-color:var(--e-global-color-secondary);gap:10px}a.snlh27-cta.snlh27-cta-ghost:hover,a.snlh27-cta.snlh27-cta-ghost:focus-visible{background:var(--e-global-color-secondary);color:var(--e-global-color-white);border-color:var(--e-global-color-secondary)}a.snlh27-cta.snlh27-cta-ghost span{transition:transform .18s}a.snlh27-cta.snlh27-cta-ghost:hover span{transform:translateX(3px)}.snlh27-cartw,.snlh27-cartw .elementor-widget-container,.snlh27-cartw .elementor-menu-cart__wrapper{display:flex;align-items:center}.snlh27-cartw .elementor-menu-cart__toggle{display:flex;align-items:center;line-height:0}.snlh27-cartw .elementor-menu-cart__container{line-height:normal;z-index:9999}.snlh27-cartw .elementor-menu-cart__toggle .elementor-button{display:flex;align-items:center;justify-content:center;padding:0!important;background:0 0!important;border:0!important;border-radius:0!important;color:var(--e-global-color-secondary)}.snlh27-cartw .elementor-menu-cart__toggle svg{width:25px;height:25px;fill:var(--e-global-color-secondary);transition:fill .18s}.snlh27-cartw .elementor-menu-cart__toggle .elementor-button:hover svg{fill:var(--e-global-color-accent)}.snlh27-cartw .elementor-button-icon-qty{transform:translate(-3px,4px);background:var(--e-global-color-primary);color:var(--e-global-color-white);font-family:Inter,sans-serif;font-size:10px;font-weight:700;line-height:16px;min-width:16px;height:16px;border-radius:8px}.snlh27-cartw .elementor-menu-cart__toggle .elementor-button-text{display:none}.snlh27-cartw .widget_shopping_cart_content{display:flex;flex-direction:column;height:100%}.snlh27-cartw .elementor-menu-cart__products{flex:auto;max-height:none;overflow-y:auto;padding-top:6px}.snlh27-cartw .elementor-menu-cart__subtotal,.snlh27-cartw .elementor-menu-cart__footer-buttons{flex:none}.snlh27-cartw .elementor-menu-cart__footer-buttons{margin-bottom:10px}.snlh27-cartw .elementor-menu-cart__product-name,.snlh27-cartw .elementor-menu-cart__product-name a{font-family:Inter,sans-serif;font-size:15px;font-weight:600;line-height:1.4;color:var(--e-global-color-secondary)}.snlh27-cartw .elementor-menu-cart__product-name a:hover{color:var(--e-global-color-accent)}.snlh27-cartw .elementor-menu-cart__product-price{font-family:Inter,sans-serif;font-size:14px;line-height:1.4;color:var(--e-global-color-text)}.snlh27-cartw .elementor-menu-cart__subtotal{font-family:barlow condensed,sans-serif;font-weight:700;font-size:20px;letter-spacing:.6px;text-transform:uppercase;color:var(--e-global-color-secondary)}.snlh27-cartw .elementor-menu-cart__footer-buttons .elementor-button{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 18px!important;background-color:var(--e-global-color-primary)!important;color:var(--e-global-color-white)!important;border:0!important;border-bottom:4px solid var(--e-global-color-accent)!important;border-radius:0!important;font-family:barlow condensed,sans-serif;font-weight:700;font-size:16px;letter-spacing:1.2px;text-transform:uppercase;transition:background-color .18s,border-color .18s}.snlh27-cartw .elementor-menu-cart__footer-buttons .elementor-button:hover{background-color:var(--e-global-color-accent)!important;border-bottom-color:var(--e-global-color-secondary)!important}.snlh27-cartw .elementor-menu-cart__footer-buttons .elementor-button--view-cart{background-color:var(--e-global-color-secondary)!important;border-bottom-color:var(--e-global-color-primary)!important}.snlh27-cartw .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{background-color:#000!important}.snlh27-cartw .elementor-menu-cart__product .remove_from_cart_button{color:var(--e-global-color-muted)!important;border-color:var(--e-global-color-line)!important;opacity:1}.snlh27-cartw .elementor-menu-cart__product .remove_from_cart_button:hover{color:var(--e-global-color-accent)!important;border-color:var(--e-global-color-accent)!important}.snlh27-wrap a:focus-visible,.snlh27-wrap button:focus-visible,.snlh27-wrap .elementor-menu-toggle:focus-visible{outline:3px solid var(--e-global-color-primary);outline-offset:3px}a.snlh27-cta:focus-visible,.snlh27-navw .elementor-menu-toggle:focus-visible{outline-color:var(--e-global-color-secondary)}@media(max-width:1300px){.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li{margin-right:18px}.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li>a.elementor-item{font-size:16px}.snlh27-bar>.e-con-inner{gap:18px}}@media(max-width:1240px){.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li>a.elementor-item{font-size:17px}.snlh27-navw .elementor-nav-menu--main .elementor-nav-menu>li{margin-right:18px}}@media(max-width:1130px){.snlh27-ctaw a.snlh27-cta-ghost{display:none}}@media(max-width:1150px){a.snlh27-cta{padding:0 14px;font-size:14px}a.snlh27-cta.snlh27-cta-ghost span{display:none}}@media(max-width:1024px){.snlh27-bar>.e-con-inner>.snlh27-navw{display:none}.snlh27-bar>.e-con-inner{justify-content:space-between}}@media(max-width:620px){.snlh27-wrap .snlh27-bar>.e-con-inner{min-height:74px}.snlh27-logo img{height:48px!important;width:auto!important;max-width:none!important}.snlh27-wrap .snlh27-bar>.e-con-inner{flex-wrap:nowrap!important}.snlh27-bar .snlh27-brand{width:auto!important;flex:none!important}.snlh27-bar .snlh27-actions{width:auto!important;flex:none!important;margin-left:auto!important}.snlh27-ctaw a.snlh27-cta-ghost{display:none}.snlh27-ctaw a.snlh27-cta-call{padding:0 12px;font-size:13px;letter-spacing:.6px}.snlh27-navw nav.elementor-nav-menu--dropdown{max-height:calc(100vh - 68px)}}@media(max-width:374px){.snlh27-logo img{height:40px!important}.snlh27-ctaw a.snlh27-cta-call{padding:0 10px;font-size:12.5px;letter-spacing:.5px}}@media(min-width:1025px){.snlh27-trigger{display:none}}.snl-ft-logo img{height:64px!important}