.elementor-kit-5{--e-global-color-primary:#2F2D2C;--e-global-color-secondary:#5B8CA3;--e-global-color-text:#45423F;--e-global-color-accent:#EC2227;--e-global-color-hsfredd:#C41A1F;--e-global-color-hsfwash:#F6F4F2;--e-global-color-hsfline:#E4E1DF;--e-global-color-hsfmute:#6B6764;--e-global-color-hsfstll:#95B3C1;--e-global-typography-primary-font-family:"Manrope";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Jost";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Jost";--e-global-typography-accent-font-weight:600;background-color:#FFFFFF;color:#45423F;font-family:"Inter", Sans-serif;font-size:16px;line-height:1.6em;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:#C41A1F;}.elementor-kit-5 a:hover{color:#EC2227;}.elementor-kit-5 h1{color:#2F2D2C;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-5 h2{color:#2F2D2C;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-5 h3{color:#2F2D2C;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-kit-5 h4{color:#2F2D2C;font-family:"Manrope", Sans-serif;font-weight:800;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@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 *//* Handy Store Fixtures: sitewide tokens. Lives in Elementor Site Settings > Custom CSS
   (Pro), loaded on every page. The four brand colors read Elementor's global colors, so
   changing a swatch in Site Settings re-skins this stylesheet too. */
:root{
  --red:var(--e-global-color-accent,#ec2227);
  --ink:var(--e-global-color-primary,#2f2d2c);
  --steel:var(--e-global-color-secondary,#5b8ca3);
  --body:var(--e-global-color-text,#45423f);
  --red-dk:#c41a1f; --mute:#6b6764; --steel-lt:#95b3c1;
  --wash:#f6f4f2; --line:#e4e1df; --white:#fff;
  --h:'Manrope',Arial,sans-serif; --label:'Jost',Arial,sans-serif; --txt:'Inter',Arial,sans-serif;
  --wrap:1200px; --r:10px;
}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased}
[id]{scroll-margin-top:110px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Footer text links: the global link color is dark red, which is unreadable on the charcoal footer */
.elementor-location-footer .elementor-widget-text-editor a{color:#fff;text-decoration:none}
.elementor-location-footer .elementor-widget-text-editor a:hover{color:#f48a8c}

/* ---------- product template (build_product_template.py) ---------- */
.hsf-crumbs .rank-math-breadcrumb p{margin:0;font-family:var(--label);font-size:14px;color:var(--mute)}
.hsf-crumbs .rank-math-breadcrumb a{color:var(--mute);text-decoration:none}
.hsf-crumbs .rank-math-breadcrumb a:hover{color:var(--red)}
.hsf-crumbs .rank-math-breadcrumb .separator{margin:0 6px;color:#bdb8b4}
.hsf-eyebrow{display:inline-block;font-family:var(--label);font-weight:500;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);text-decoration:none}
.hsf-eyebrow:hover{color:var(--red)}
.hsf-made p{display:flex;align-items:center;gap:10px;margin:0}
.hsf-made p:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--red)}
.hsf-inds{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}
.hsf-inds .lbl{font-family:var(--label);font-size:14px;color:var(--mute);margin-right:4px}
.hsf-chip{font-family:var(--label);font-size:14px;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);padding:6px 13px;border-radius:40px}
.hsf-chip:hover{border-color:var(--red);color:var(--red)}
.hsf-p-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}

.hsf-p-content{font-size:16.5px;line-height:1.7;color:var(--body)}
.hsf-p-content h2{font-family:var(--h);font-weight:800;color:var(--ink);font-size:clamp(24px,2.5vw,30px);margin:40px 0 12px}
.hsf-p-content h3{font-family:var(--h);font-weight:800;color:var(--ink);font-size:19px;margin:24px 0 8px}
.hsf-p-content p{margin:0 0 14px}
.hsf-p-content ul{margin:0 0 18px;padding:0;list-style:none}
.hsf-p-content ul li{position:relative;padding:8px 0 8px 26px;border-bottom:1px solid var(--line)}
.hsf-p-content ul li:before{content:"";position:absolute;left:4px;top:15px;width:11px;height:6px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg)}
.hsf-p-content .hsf ul li{border-bottom:0;padding:0}
.hsf-p-content .hsf ul li:before{display:none}
.hsf-p-content a{color:var(--red-dk)}

.hsf-gallery{margin:0 0 36px}
.hsf-gallery:not(.ready){display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.hsf-gallery:not(.ready) img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.hsf-gal-main{margin:0}
.hsf-gal-main img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);display:block}
.hsf-gal-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:10px;margin-top:12px}
.hsf-gal-thumbs button{padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;opacity:.7}
.hsf-gal-thumbs button.on,.hsf-gal-thumbs button:hover{opacity:1;border-color:var(--red)}
.hsf-gal-thumbs img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}

.hsf-res{margin:40px 0 0}
.hsf-res-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px}
.hsf-res-list a{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:14px 16px;text-decoration:none;color:var(--body);background:#fff}
.hsf-res-list a:hover{border-color:var(--red);box-shadow:0 8px 20px rgba(0,0,0,.06)}
.hsf-res-list b{display:block;font-family:var(--h);color:var(--ink);font-size:15.5px;line-height:1.3}
.hsf-res-list small{color:var(--mute);font-size:13px}
.hsf-res-list .ic{flex:none;width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--label);font-weight:600;font-size:13px;color:#fff;background:var(--red)}
.hsf-res-list .ic.video{background:var(--ink)}

.hsf-colors{margin:44px 0 0;padding-top:28px;border-top:1px solid var(--line)}
.hsf-colors-hd{font-family:var(--label);font-size:16px;color:var(--ink);margin:0 0 16px}
.hsf-colors-hd a{color:var(--red-dk)}
.hsf-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:14px}
.hsf-swatches figure{margin:0;text-align:center}
.hsf-swatches img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--line),0 6px 14px rgba(0,0,0,.08)}
.hsf-swatches figcaption{font-family:var(--label);font-size:13px;margin-top:8px;color:var(--ink)}

.hsf-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.hsf-rel{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;transition:box-shadow .2s,transform .2s}
.hsf-rel:hover{box-shadow:0 18px 40px rgba(0,0,0,.10);transform:translateY(-3px)}
.hsf-rel img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}
.hsf-rel-b{display:block;padding:18px 20px 20px}
.hsf-rel-t{display:block;font-family:var(--h);font-weight:800;font-size:18px;color:var(--ink);margin-bottom:6px}
.hsf-rel-l{font-family:var(--label);font-weight:600;font-size:14px;color:var(--red)}
.hsf-quote-card .elementor-button{width:100%}
@media (max-width:767px){.hsf-rel-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.hsf-rel{transition:none}.hsf-rel:hover{transform:none}}
.hsf-side-sticky>.elementor-widget-wrap{position:sticky;top:110px;align-self:flex-start}
.hsf-colors.small{margin:18px 0 0;padding:0;border:0}
.hsf-colors.small .hsf-colors-hd{font-size:14px;color:var(--mute);margin:0 0 10px}
.hsf-colors.small .hsf-swatches{display:flex;flex-wrap:wrap;gap:8px}
.hsf-colors.small figure{width:40px}
.hsf-colors.small img{border-width:2px}
.hsf-colors.small figcaption{display:none}
@media (max-width:1024px){.hsf-side-sticky>.elementor-widget-wrap{position:static}}

/* ---------- industry template (build_industry_template.py, handy-industries.php) ---------- */
.hsf-i-hero .rank-math-breadcrumb p{margin:0;font-family:var(--label);font-size:14px;color:#cfcac6}
.hsf-i-hero .rank-math-breadcrumb a{color:#cfcac6;text-decoration:none}
.hsf-i-hero .rank-math-breadcrumb a:hover,.hsf-i-hero .rank-math-breadcrumb .last{color:#fff}
.hsf-i-hero .rank-math-breadcrumb .separator{margin:0 6px;color:#8a8480}
.hsf-i-hero-in{max-width:780px}
.hsf-i-content{font-size:16.5px;line-height:1.7}
.hsf-i-content>.elementor-widget-container>*:first-child{margin-top:0}
.hsf-i-content h2{font-family:var(--h);font-weight:800;color:var(--ink);font-size:clamp(25px,2.6vw,32px);line-height:1.15;margin:40px 0 14px}
.hsf-i-content p{margin:0 0 14px}
.hsf-i-content a{color:var(--red-dk)}
.hsf-layout{background:var(--wash);border:1px solid var(--line);border-radius:var(--r);padding:28px 30px 14px;margin:48px 0 18px}
.hsf-layout h2{margin-top:0}

.hsf-shop{background:var(--wash);border-radius:var(--r);padding:34px 30px 30px;margin:48px 0}
.hsf-shop>h2{margin:4px 0 6px}
.hsf-shop-sub{color:var(--mute);margin:0 0 20px}
.hsf-shop-slide{display:none;grid-template-columns:1fr 260px;gap:24px;align-items:start}
.hsf-shop-slide.on{display:grid}
.hsf-shop-main{position:relative;border-radius:var(--r);overflow:hidden;background:var(--ink)}
.hsf-shop-main img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
.hsf-shop .hs{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.35);text-decoration:none;z-index:2}
.hsf-shop .hs:before{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font:700 18px/1 var(--h)}
.hsf-shop .hs:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid rgba(236,34,39,.6);animation:hsfpulse 2s infinite}
@keyframes hsfpulse{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.4);opacity:0}}
.hsf-shop .hs span{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);white-space:nowrap;background:var(--ink);color:#fff;font:500 13px/1 var(--label);padding:8px 11px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .15s}
.hsf-shop .hs:hover span,.hsf-shop .hs:focus span{opacity:1}
.hsf-shop-side{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px}
.hsf-shop-hd{font-family:var(--h);font-weight:800;color:var(--ink);font-size:17px;margin:0 0 8px}
.hsf-shop-side a{display:flex;justify-content:space-between;gap:10px;font-family:var(--label);font-size:15px;color:var(--ink);text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line)}
.hsf-shop-side a:hover{color:var(--red)}
.hsf-shop-none{font-size:14px;color:var(--mute);margin:0}
.hsf-shop-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:16px}
.hsf-shop-thumbs button{padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;opacity:.7}
.hsf-shop-thumbs button.on,.hsf-shop-thumbs button:hover{opacity:1;border-color:var(--red)}
.hsf-shop-thumbs img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}

.hsf-plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin:0 0 40px}
.hsf-plans a{display:block;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;text-decoration:none}
.hsf-plans img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;padding:8px;display:block;background:#fff}
.hsf-plans span{display:block;font:500 14px/1.2 var(--label);color:var(--ink);padding:12px 14px;border-top:1px solid var(--line)}
.hsf-popular{margin:48px 0}
.hsf-popular>h2{margin:0 0 22px}
@media (max-width:900px){.hsf-shop-slide{grid-template-columns:1fr}.hsf-shop{padding:24px 18px}}
@media (prefers-reduced-motion:reduce){.hsf-shop .hs:after{animation:none}}

/* ---------- hub pages (handy-hubs.php) ---------- */
.hsf-hub-line{display:block;font-size:14.5px;line-height:1.5;color:var(--body);margin:0 0 10px}
.hsf-hub-jump{margin:0 0 30px}
.hsf-hub-sec{margin:0 0 44px;scroll-margin-top:110px}
.hsf-hub-sec h2{font-family:var(--h);font-weight:800;font-size:clamp(22px,2.4vw,28px);margin:0 0 16px}
.hsf-hub-sec h2 a{color:var(--ink);text-decoration:none}
.hsf-hub-sec h2 a:hover{color:var(--red)}
.hsf-rel-grid.hsf-hub-small{grid-template-columns:repeat(4,1fr);gap:16px}
.hsf-hub-small .hsf-rel-t{font-size:15.5px}
.hsf-hub-small .hsf-rel-b{padding:14px 16px 16px}
@media (max-width:1024px){.hsf-rel-grid.hsf-hub-small{grid-template-columns:repeat(2,1fr)}}
@media (max-width:767px){.hsf-rel-grid.hsf-hub-small{grid-template-columns:1fr 1fr}}

/* ---------- category template (build_category_template.py, [hsf_category_products]) ---------- */
.hsf-c-photo img{width:100%;height:auto;max-height:420px;object-fit:contain}
.hsf-catprod{background:var(--wash);border-radius:var(--r);padding:34px 30px 30px;margin:48px 0;scroll-margin-top:110px}
.hsf-catprod>h2{margin:4px 0 22px}
.hsf-rel-grid.hsf-cat-grid{grid-template-columns:repeat(4,1fr);gap:18px}
.hsf-cat-grid .hsf-rel-t{font-size:16.5px}
.hsf-cat-grid .hsf-hub-line{font-size:14px}
@media (max-width:1024px){.hsf-rel-grid.hsf-cat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.hsf-rel-grid.hsf-cat-grid{grid-template-columns:1fr}.hsf-catprod{padding:24px 18px}}

/* ---------- service and standard pages (build_page_templates.py, handy-site.php) ---------- */
.hsf-s-nav .elementor-icon-list-item{border-left:3px solid var(--line);padding:11px 14px !important}
.hsf-s-nav .elementor-icon-list-item:hover{border-left-color:var(--red);background:var(--wash)}
.hsf-prose{max-width:780px}
.hsf-prose ul,.hsf-prose ol{padding-left:22px;margin:0 0 18px}
.hsf-prose li{margin:0 0 8px}
.hsf-prose h3{font-family:var(--h);font-weight:800;color:var(--ink);font-size:20px;margin:26px 0 8px}
.hsf-prose img{max-width:100%;height:auto;border-radius:var(--r)}
.hsf-nap{background:var(--ink);color:#d9d5d2;border-radius:var(--r);padding:6px 24px;margin:26px 0}
.hsf-nap-row{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid #47423f}
.hsf-nap-row:last-child{border-bottom:0}
.hsf-nap-k{flex:none;width:76px;font:600 12px/1.9 var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--steel-lt)}
.hsf-nap a,.hsf-nap strong{color:#fff;font-family:var(--h);font-weight:700;text-decoration:none}
.hsf-form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;margin:24px 0;box-shadow:0 20px 40px -26px rgba(0,0,0,.25)}
.hsf-glossary{margin-top:6px}
.hsf-g-az{display:flex;flex-wrap:wrap;gap:6px;position:sticky;top:84px;z-index:5;background:#fff;padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:12px}
.hsf-g-az a,.hsf-g-az span{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:6px;font:800 14px/1 var(--h);text-decoration:none}
.hsf-g-az a{background:var(--wash);color:var(--ink);border:1px solid var(--line)}
.hsf-g-az a:hover{background:var(--red);color:#fff;border-color:var(--red)}
.hsf-g-az span{color:#cfcac6}
.hsf-i-content h2.hsf-g-letter{font-size:34px;color:var(--red);margin:30px 0 8px;scroll-margin-top:150px}
.hsf-g-term{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:12px;background:#fff;scroll-margin-top:150px}
.hsf-g-term h3{margin-top:0}
.hsf-g-term p{font-size:15.5px}

/* ---------- blog (build_post_template.py, [hsf_blog_index], [hsf_post_meta]) ---------- */
.hsf-b-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.hsf-b-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:24px;text-decoration:none;transition:box-shadow .2s,transform .2s}
.hsf-b-card:hover{box-shadow:0 18px 40px rgba(0,0,0,.10);transform:translateY(-3px)}
.hsf-b-cat{font:600 12px/1 var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.hsf-b-card h2{font-family:var(--h);font-weight:800;color:var(--ink);font-size:20px;line-height:1.25;margin:10px 0}
.hsf-b-card p{font-size:15px;line-height:1.55;color:var(--body);margin:0 0 16px;flex:1}
.hsf-b-date{font:400 14px/1 var(--label);color:var(--mute)}
.hsf-post-meta{font-family:var(--label);font-size:15px;color:var(--mute);margin:0;line-height:1.9}
.hsf-post-body img{display:block;max-width:520px;width:100%;margin:0 0 18px}
.hsf-company-box{background:var(--wash);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
@media (max-width:1024px){.hsf-b-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.hsf-b-grid{grid-template-columns:1fr}}

/* ---------- homepage (build_homepage.py, [hsf_industry_tiles], [hsf_featured_products]) ---------- */
/* Homepage hero (Option A): copy column held to a readable width over the photo. Below desktop
   the copy covers the whole photo, so the overlay darkens evenly instead of left to right. */
.hsf-home-hero-in>.elementor-widget-wrap{max-width:660px}
/* The hero contact card (a native Elementor form, build_homepage.py): white card, charcoal header with a
   red edge, the form, the call line. Elementor's widget gaps are taken out so the header runs edge to edge. */
.hsf-hero-quote>.elementor-widget-wrap{background:#fff;border-radius:var(--r);overflow:hidden;padding:0 !important;
  box-shadow:0 30px 60px -15px rgba(0,0,0,.55);align-content:flex-start}
.hsf-hero-quote .elementor-widget{margin-bottom:0 !important}
.hsf-hq-hd{background:var(--ink);border-bottom:4px solid var(--red);padding:18px 24px 16px}
.hsf-hq-hd p{margin:0;color:#d8d3cf;font:400 14px/1.45 var(--txt)}
.hsf-hq-hd .t{color:#fff;font:800 22px/1.2 var(--h);margin:0 0 4px}
.hsf-hero-quote .elementor-widget-form{padding:18px 24px 0}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-group .elementor-field{min-height:42px;box-shadow:none;transition:border-color .15s,box-shadow .15s}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-group textarea.elementor-field{min-height:76px;resize:vertical}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-group .elementor-field:focus{border-color:var(--ink) !important;box-shadow:0 0 0 3px rgba(236,34,39,.18);outline:0}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-group .elementor-field:not(.elementor-select-wrapper){padding-left:14px;padding-right:14px}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-group .elementor-select-wrapper select{-webkit-appearance:none;appearance:none;background:#fff;padding-right:34px}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-group .elementor-select-wrapper:before{color:var(--body);font-size:12px}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-type-submit{margin-top:4px}
:is(.hsf-hero-quote,.hsf-form-card) .elementor-field-type-submit .elementor-button{letter-spacing:.2px;transition:background-color .15s}
.hsf-hero-quote .call{margin:0;padding:12px 24px 18px;text-align:center;font-size:14px;color:var(--mute)}
.hsf-hero-quote .call a{color:var(--ink);font-family:var(--h);font-weight:700;text-decoration:none}
/* with the form beside it, the copy column needs the overlay darker further across */
@media (min-width:1025px){.hsf-home-hero>.elementor-background-overlay{background-image:linear-gradient(90deg,rgba(20,18,17,.94) 0,rgba(20,18,17,.9) 45%,rgba(20,18,17,.45) 100%) !important}}
@media (max-width:1024px){.hsf-home-hero>.elementor-background-overlay{background-image:linear-gradient(180deg,rgba(20,18,17,.82),rgba(20,18,17,.92)) !important}}
.hsf-home-facts{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.hsf-home-facts>.elementor-container>.elementor-column:last-child{border-right:0 !important}
.hsf-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.hsf-tile{position:relative;display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--ink);text-decoration:none}
.hsf-tile img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:transform .4s,opacity .3s}
.hsf-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(20,18,17,.85) 100%)}
.hsf-tile:hover img{transform:scale(1.05);opacity:1}
.hsf-tile span{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:#fff;font:800 20px/1.2 var(--h);display:flex;justify-content:space-between;gap:10px}
.hsf-tile i{font-style:normal;color:#fff;background:var(--red);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex:none;font-size:16px}
.hsf-home-cite a{color:#fff;border-bottom:2px solid var(--red);text-decoration:none}
@media (max-width:1024px){.hsf-tiles{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.hsf-tiles{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.hsf-tile img{transition:none}}

/* ---------- layout pages: resource library, color guide, success stories, Handy Advantage
   (build_layout_pages.py, 2026-11-09). All inside the standard template's .hsf-i-content.hsf-prose ---------- */
.hsf-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hsf-i-content .hsf-l-lead{font-size:19px;line-height:1.6;color:var(--ink);margin:0 0 30px}
.hsf-l-note{background:var(--wash);border-left:4px solid var(--steel);border-radius:0 8px 8px 0;padding:14px 18px;font-size:15px;color:var(--body);margin:30px 0 0 !important}
.hsf-l-cta{background:var(--ink);border-radius:var(--r);padding:30px 32px;margin:48px 0 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:4px solid var(--red)}
.hsf-i-content .hsf-l-cta h2{color:#fff;margin:0;font-size:clamp(22px,2.3vw,27px)}
.hsf-i-content .hsf-l-cta p{margin:0}
.hsf-i-content a.hsf-l-btn{display:inline-block;background:var(--red);color:#fff;font:600 16px/1 var(--label);padding:15px 26px;border-radius:6px;text-decoration:none;transition:background-color .15s}
.hsf-i-content a.hsf-l-btn:hover{background:var(--red-dk);color:#fff}

/* resource library: one card grid per topic */
.hsf-rl-sec{margin:0 0 44px}
.hsf-i-content .hsf-rl-sec h2{margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid var(--line);font-size:clamp(22px,2.3vw,27px)}
.hsf-rl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.hsf-i-content a.hsf-rl-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;transition:box-shadow .2s,transform .2s}
.hsf-i-content a.hsf-rl-card:hover{box-shadow:0 18px 40px rgba(0,0,0,.10);transform:translateY(-3px)}
.hsf-rl-img{display:block;background:var(--wash)}
.hsf-prose .hsf-rl-img img{display:block;width:100%;height:auto;aspect-ratio:20/13;object-fit:cover;border-radius:0}
.hsf-rl-t{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex:1;padding:16px 18px 18px;font:800 16.5px/1.3 var(--h);color:var(--ink)}
.hsf-rl-t:after{content:"\2192";flex:none;color:var(--red);font-weight:700}
.hsf-rl-card:hover .hsf-rl-t{color:var(--red)}

/* color guide: intro beside the photo, then a swatch grid */
.hsf-cg-intro{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:center;background:var(--wash);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;margin:0 0 34px}
.hsf-i-content .hsf-cg-intro .hsf-l-lead{margin:0}
.hsf-prose .hsf-cg-hero{display:block;width:100%;height:auto;max-height:320px;object-fit:contain;border-radius:0}
.hsf-cg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.hsf-cg-sw{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 12px 14px;text-align:center}
.hsf-cg-sw a{display:block}
.hsf-prose .hsf-cg-sw img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:8px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.hsf-i-content .hsf-cg-name{margin:12px 0 6px;font:800 16px/1.2 var(--h);color:var(--ink)}
.hsf-i-content .hsf-cg-type{display:inline-block;margin:0;font:500 12.5px/1 var(--label);letter-spacing:.04em;padding:6px 10px;border-radius:40px;background:var(--wash);color:var(--mute);border:1px solid var(--line)}
.hsf-i-content .hsf-cg-type.premium{background:#fdecec;color:var(--red-dk);border-color:#f6c9ca}
.hsf-i-content .hsf-cg-type.texture{background:#eef4f7;color:#3f6f86;border-color:#cfe0e8}

/* success stories: quote cards in two columns */
.hsf-ss{columns:2;column-gap:20px}
.hsf-ss-card{break-inside:avoid;margin:0 0 20px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:var(--r);padding:22px 24px 20px;position:relative}
.hsf-ss-card:before{content:"\201C";position:absolute;top:8px;right:18px;font:800 64px/1 var(--h);color:var(--line)}
.hsf-ss-card blockquote{margin:0;padding:0;border:0;font-size:15.5px;line-height:1.65;color:var(--body);font-style:normal}
.hsf-ss-card blockquote p{margin:0 0 12px}
.hsf-ss-card em,.hsf-ss-card strong{font-style:normal}
.hsf-ss-card em strong,.hsf-ss-card strong em{font-weight:700;color:var(--ink);background:linear-gradient(transparent 62%,rgba(236,34,39,.14) 0)}
.hsf-ss-card figcaption{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font:600 14.5px/1.4 var(--label);color:var(--ink)}

/* the Handy Advantage: nine numbered cards, the reseller comparison under each */
.hsf-adv-item{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;margin:0 0 16px}
.hsf-i-content .hsf-adv-item h2{display:flex;align-items:center;gap:14px;margin:0 0 14px;font-size:clamp(20px,2.1vw,24px);line-height:1.25}
.hsf-adv-n{flex:none;width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font:800 18px/1 var(--h)}
.hsf-adv-us p:last-child{margin-bottom:0}
.hsf-adv-us strong:first-child{font:600 13px/1 var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--red-dk);margin-right:4px}
.hsf-adv-them{margin-top:16px;background:var(--wash);border-radius:8px;padding:14px 18px}
.hsf-i-content .hsf-adv-them p{margin:0;font-size:15px;color:var(--mute)}

@media (max-width:767px){
  .hsf-rl-grid,.hsf-cg-intro{grid-template-columns:1fr}
  .hsf-cg-intro{padding:20px}
  .hsf-cg-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .hsf-ss{columns:1}
  .hsf-adv-item{padding:20px 18px}
  .hsf-l-cta{padding:24px 20px}
}
@media (prefers-reduced-motion:reduce){.hsf-i-content a.hsf-rl-card{transition:none}.hsf-i-content a.hsf-rl-card:hover{transform:none}}
/* Content kit bridge. Every rewrite this project has published uses the hsf- content kit
   (handy-content-kit.css). These rules restyle the same markup in the new design, so the
   live rewrites move into WordPress as they are and look native. In WordPress this becomes
   part of the global stylesheet. */
.hsf{font-family:var(--txt);color:var(--body)}
.hsf h2{font-family:var(--h);font-weight:800;color:var(--ink);font-size:clamp(25px,2.6vw,32px);line-height:1.15;margin:0 0 14px}
.hsf h3{font-family:var(--h);font-weight:800;color:var(--ink);font-size:19px;line-height:1.25;margin:0 0 8px}
.hsf p{font-size:16px;line-height:1.65;color:var(--body);margin:0 0 14px}
.hsf a{color:var(--red-dk)}
.hsf .eyebrow{display:block;font-family:var(--label);font-weight:500;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);margin:0 0 10px}
.hsf-sec{margin:0 0 56px}
.hsf-lead{font-size:18px!important;line-height:1.6!important;color:var(--ink)!important}

.hsf-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r);background:#fff;margin:22px 0 36px;overflow:hidden}
.hsf-specs div{padding:20px;border-right:1px solid var(--line);background:#fff}
.hsf-specs div:last-child{border-right:0}
.hsf-specs .n{display:block;font-family:var(--h);font-weight:800;font-size:23px;line-height:1.1;color:var(--red)}
.hsf-specs .t{display:block;font-family:var(--label);font-size:14px;line-height:1.35;color:var(--body);margin-top:5px}

.hsf-pick{border:1px solid var(--line);border-top:5px solid var(--red);border-radius:var(--r);background:var(--wash);margin:24px 0 40px;padding:6px 0 0}
.hsf-pick-hd{padding:20px 26px 0}
.hsf-pick-hd h2{font-size:26px;margin:0 0 4px}
.hsf-pick-hd p{color:var(--mute);margin:0}
.hsf-pick ul{list-style:none;margin:14px 0 0;padding:0 18px 18px;display:grid;gap:8px}
.hsf-pick li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px}
.hsf-pick .ic{display:none}
.hsf-pick .pb{flex:1 1 260px;font-family:var(--label);font-size:16px;color:var(--ink)}
.hsf-pick .sol{display:flex;flex-wrap:wrap;gap:8px}
.hsf-pick .sol a{font-family:var(--label);font-size:14px;text-decoration:none;padding:6px 13px;border:1px solid #e3b6b8;border-radius:40px;color:var(--red-dk)}
.hsf-pick .sol a:hover{background:var(--red);border-color:var(--red);color:#fff}

.hsf-steps{list-style:none;padding:0;margin:18px 0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;counter-reset:s}
.hsf-steps li{border:1px solid var(--line);border-left:3px solid var(--red);border-radius:8px;padding:16px 18px;background:#fff;margin:0}
.hsf-steps li:before{counter-increment:s;content:counter(s);display:inline-block;font-family:var(--h);font-weight:800;font-size:12px;line-height:22px;width:22px;height:22px;text-align:center;border-radius:50%;background:var(--red);color:#fff;margin-bottom:8px}
.hsf-steps strong{display:block;font-family:var(--h);color:var(--ink);margin-bottom:4px;font-size:16.5px}
.hsf-steps span{display:block;font-size:15px;line-height:1.5}

.hsf-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px;margin:16px 0 24px}
.hsf-pair div{background:var(--wash);border:1px solid var(--line);border-radius:8px;padding:16px 18px}
.hsf-pair .h{display:block;font-family:var(--h);font-weight:800;font-size:17px;color:var(--ink);margin:0 0 6px}
.hsf-pair span{font-size:15px;line-height:1.5}

.hsf-table{width:100%;border-collapse:collapse;margin:18px 0 24px;font-size:15px;border:1px solid var(--line)}
.hsf-table th{background:var(--ink);color:#fff;font-family:var(--label);font-weight:500;text-align:left;padding:12px 14px;font-size:14px;letter-spacing:.04em;text-transform:none}
.hsf-table td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:top;line-height:1.5}
.hsf-table .nm{font-family:var(--h);font-weight:800;color:var(--ink)}
.hsf-table .dim{font-family:var(--label);color:var(--ink)}

.hsf-faq{margin:22px 0 0}
.hsf-faq .q{border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px 18px;margin-bottom:8px}
.hsf-faq .q strong{display:block;font-family:var(--h);font-weight:700;font-size:17px;color:var(--ink);margin:0 0 6px}
.hsf-faq .q span{display:block;font-size:15.5px;line-height:1.6}

.hsf-cta{background:var(--ink);border-radius:var(--r);padding:28px 32px;margin:32px 0 6px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.hsf-cta .tx{flex:1 1 300px}
.hsf-cta .tx b{display:block;font-family:var(--h);font-size:21px;color:#fff;margin:0 0 5px}
.hsf-cta .tx span{display:block;font-size:15px;color:#cfcac6}
.hsf-cta .ax{display:flex;flex-wrap:wrap;gap:10px}
.hsf-cta .ax a{font-family:var(--label);font-weight:600;font-size:15px;padding:12px 20px;border-radius:6px;background:var(--red);color:#fff;text-decoration:none}
.hsf-cta .ax a.alt{background:transparent;border:1px solid #6d6764}

.hsf-fig{margin:18px 0 26px}
.hsf-fig img,.hsf-figs img,.hsf-split img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);border:0}
.hsf-fig.wide img{aspect-ratio:21/9}
.hsf-fig figcaption,.hsf-figs figcaption,.hsf-split figcaption{font-family:var(--txt);font-size:14px;color:var(--mute);margin:9px 0 0;line-height:1.5}
.hsf-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:18px 0 26px}
.hsf-figs figure{margin:0}
.hsf-figs.plans img{aspect-ratio:auto;object-fit:contain;background:#fff;border:1px solid var(--line)}
.hsf-split{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;margin:18px 0 28px}
.hsf-split figure{margin:0}
.hsf-split.flip>figure{order:2}
@media (max-width:700px){
  .hsf-split{grid-template-columns:1fr}
  .hsf-split.flip>figure{order:0}
  .hsf-specs{grid-template-columns:1fr 1fr}
}/* End custom CSS */