/* ==========================================================================
   Safety Hi-Tech — design system (Figma: Option 2 — Brand Experience)
   Elementor containers/widgets carry the sht-* classes below.
   ========================================================================== */

:root {
	--sht-ink: #0a1222;
	--sht-navy: #0b1e3d;
	--sht-steel: #1a3560;
	--sht-red: #c8232c;
	--sht-red-light: #e0313a;
	--sht-red-on-dark: #ee4b53; /* small red text on dark sections (WCAG AA 4.5:1) */
	--sht-text-2: #4b5568;
	--sht-text-3: #5f6778; /* 4.8:1 on the footer beige, 5.2:1 on light grey (WCAG AA) */
	--sht-on-dark: #c9d2e0;
	--sht-border: #e2e5ea;
	--sht-border-warm: #e2dfd6;
	--sht-input: #d4d8df;
	--sht-placeholder: #a8a398;
	--sht-bg-soft: #f5f6f8;
	--sht-bg-warm: #f7f6f2;
	--sht-bg-footer: #efede7;
	--sht-tile-dark: #141b2b;
	--sht-white: #fff;

	--sht-font: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--sht-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

	--sht-wrap: 1312px;
	--sht-gutter: 64px;
	--sht-header-h: 88px;
	--sht-radius: 16px;
	--sht-radius-lg: 20px;
	--sht-shadow: 0 1px 2px rgba(10, 18, 34, .06), 0 4px 12px rgba(10, 18, 34, .05);
}
@media (max-width: 1024px) { :root { --sht-gutter: 32px; --sht-header-h: 72px; } }
@media (max-width: 767px)  { :root { --sht-gutter: 16px; --sht-header-h: 64px; } }

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--sht-header-h) + 16px); }
body { font-family: var(--sht-font); color: var(--sht-ink); background: var(--sht-white); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body, .elementor-widget-text-editor { font-size: 16px; line-height: 26px; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--sht-red-light); outline-offset: 3px; border-radius: 4px; }
.sht-main { outline: none; }
.sht-ico { width: 1em; height: 1em; display: inline-block; vertical-align: middle; flex: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 12px; left: 12px; width: auto; height: auto; clip: auto; z-index: 1000; background: var(--sht-white); padding: 10px 16px; border-radius: 8px; box-shadow: var(--sht-shadow); }

/* Elementor resets: containers we generate set their own padding/gap. */
.elementor .elementor-widget:not(:last-child) { margin-block-end: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { margin: 0 0 12px; }
.elementor-heading-title { font-family: var(--sht-font); }

/* ---------- Layout ---------- */
.sht-section { position: relative; }
.sht-wrap { width: 100%; max-width: calc(var(--sht-wrap) + var(--sht-gutter) * 2) !important; margin-inline: auto !important; padding-inline: var(--sht-gutter) !important; box-sizing: border-box; }
.sht-bg-warm { background-color: var(--sht-bg-warm); }
.sht-bg-soft { background-color: var(--sht-bg-soft); }
.sht-bg-dark { background-color: var(--sht-ink); background-image: radial-gradient(60% 80% at 85% 10%, rgba(200, 35, 44, .18), rgba(200, 35, 44, 0) 70%); color: var(--sht-white); }

/* ---------- Typography (classes on Heading / Text Editor widgets) ---------- */
.sht-eyebrow .elementor-heading-title,
.sht-eyebrow { font: 500 12px/20px var(--sht-font); letter-spacing: .28em; text-transform: uppercase; color: var(--sht-red); display: flex; align-items: center; gap: 12px; margin: 0; }
.sht-eyebrow .elementor-heading-title::before { content: ''; width: 24px; height: 2px; background: currentColor; flex: none; }
.sht-eyebrow--plain .elementor-heading-title::before { display: none; }
.sht-eyebrow--muted .elementor-heading-title { color: var(--sht-text-2); }
.sht-eyebrow--light .elementor-heading-title { color: var(--sht-white); }
.sht-eyebrow--light .elementor-heading-title::before { background: var(--sht-red); }

.sht-display .elementor-heading-title { font: 300 60px/74px var(--sht-font); letter-spacing: -.03em; color: var(--sht-ink); margin: 0; }
.sht-display .elementor-heading-title b,
.sht-display .elementor-heading-title strong,
.sht-accent { font-weight: 700; color: var(--sht-red); }
.sht-h2 .elementor-heading-title { font: 600 52px/56px var(--sht-font); letter-spacing: -.03em; color: var(--sht-ink); margin: 0; }
.sht-h2--sm .elementor-heading-title { font-size: 38px; line-height: 44px; }
.sht-h2--xl .elementor-heading-title { font-size: 68px; line-height: 74px; }
.sht-h3 .elementor-heading-title { font: 600 32px/38px var(--sht-font); letter-spacing: -.02em; color: var(--sht-ink); margin: 0; }
.sht-h4 .elementor-heading-title { font: 500 22px/28px var(--sht-font); letter-spacing: -.01em; color: var(--sht-ink); margin: 0; }
.sht-h5 .elementor-heading-title { font: 500 19px/25px var(--sht-font); letter-spacing: -.01em; color: var(--sht-ink); margin: 0; }
.sht-lead, .sht-lead p { font: 400 20px/30px var(--sht-font) !important; letter-spacing: -.01em; color: var(--sht-text-2); }
.sht-body, .sht-body p { font: 400 16px/26px var(--sht-font); color: var(--sht-text-2); }
.sht-small, .sht-small p { font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); }
.sht-note, .sht-note p { font: 400 13px/22px var(--sht-font); color: var(--sht-text-3); }
.sht-mono .elementor-heading-title,
.sht-mono, .sht-mono p { font: 400 12px/16px var(--sht-mono) !important; letter-spacing: .04em; text-transform: uppercase; color: var(--sht-text-3); margin: 0; }
.sht-mono--red .elementor-heading-title, .sht-mono--red p { color: var(--sht-red); text-transform: none; }
.sht-on-dark .elementor-heading-title, .sht-on-dark { color: var(--sht-white); }
.sht-on-dark-2, .sht-on-dark-2 p { color: var(--sht-on-dark) !important; }

/* ---------- Buttons (Button widget + theme templates) ---------- */
.sht-btn, .sht-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	font: 500 15px/20px var(--sht-font); letter-spacing: -.005em; text-decoration: none;
	border-radius: 999px; border: 1px solid transparent; cursor: pointer;
	transition: background-color .2s, border-color .2s, color .2s, transform .1s;
	background: var(--sht-red); color: var(--sht-white); padding: 0 24px; height: 56px; box-sizing: border-box;
}
.sht-btn .sht-ico, .sht-button .elementor-button-icon svg { width: 16px; height: 16px; }
.sht-button .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.sht-button .elementor-button-icon { display: inline-flex; }
.sht-button .elementor-button-icon svg { fill: none; stroke: currentColor; }
.sht-btn:hover, .sht-button .elementor-button:hover { background: var(--sht-red-light); color: var(--sht-white); }
.sht-btn:active, .sht-button .elementor-button:active { transform: translateY(1px); }
.sht-btn--md, .sht-button--md .elementor-button { height: 44px; padding: 0 18px; }
.sht-btn--lg, .sht-button--lg .elementor-button { height: 56px; padding: 0 24px; }
.sht-btn--block { width: 100%; }
.sht-btn--outline, .sht-button--outline .elementor-button { background: var(--sht-white); color: var(--sht-ink); border-color: var(--sht-input); }
.sht-btn--outline:hover, .sht-button--outline .elementor-button:hover { background: var(--sht-white); color: var(--sht-ink); border-color: var(--sht-ink); }
.sht-button--outline-dark .elementor-button { background: rgba(255, 255, 255, .06); color: var(--sht-white); border-color: rgba(255, 255, 255, .55); }
.sht-button--outline-dark .elementor-button:hover { background: rgba(255, 255, 255, .14); color: var(--sht-white); border-color: var(--sht-white); }
.sht-button--link .elementor-button { background: none !important; border: 0; height: auto; padding: 0; color: var(--sht-ink); border-radius: 0; }
.sht-button--link .elementor-button:hover { color: var(--sht-red); }
.sht-button--link .elementor-button-icon { color: var(--sht-red); transition: transform .2s; }
.sht-button--link .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }
.sht-button--link-light .elementor-button { color: var(--sht-white); }
.sht-button--block .elementor-button, .sht-button--block { width: 100%; }

/* ---------- Header ---------- */
.sht-header { position: sticky; top: 0; z-index: 900; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--sht-border); transition: background-color .25s, box-shadow .25s, border-color .25s; }
.admin-bar .sht-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .sht-header { top: 46px; } }
.sht-has-overlay-header .sht-header { position: fixed; left: 0; right: 0; background: transparent; border-color: transparent; }
.sht-has-overlay-header .sht-header.is-scrolled,
.sht-menu-open .sht-header { background: rgba(255, 255, 255, .97); border-color: var(--sht-border); box-shadow: 0 6px 24px rgba(10, 18, 34, .06); backdrop-filter: saturate(1.4) blur(10px); }
.sht-header__inner { position: relative; max-width: calc(var(--sht-wrap) + var(--sht-gutter) * 2); margin: 0 auto; padding: 0 var(--sht-gutter); height: var(--sht-header-h); display: flex; align-items: center; justify-content: space-between; gap: 24px; box-sizing: border-box; }
.sht-header__logo img { display: block; height: 44px; width: auto; }
.sht-nav__list, .sht-nav .sht-nav__list { list-style: none; display: flex; align-items: center; gap: 36px; margin: 0; padding: 0; }
.sht-nav .menu-item { position: relative; }
.sht-nav .menu-item > a { display: inline-flex; align-items: center; gap: 6px; font: 500 14px/20px var(--sht-font); color: var(--sht-ink); text-decoration: none; padding: 10px 0; }
.sht-nav .menu-item > a:hover, .sht-nav .current-menu-item > a, .sht-nav .current-menu-ancestor > a { color: var(--sht-red); }
.sht-nav__chevron { width: 14px; height: 14px; color: var(--sht-text-3); transition: transform .2s; }
.sht-nav .menu-item:hover > a .sht-nav__chevron, .sht-nav .menu-item:focus-within > a .sht-nav__chevron { transform: rotate(180deg); }
.sht-nav .sub-menu { list-style: none; margin: 0; padding: 10px; position: absolute; top: 100%; left: -18px; min-width: 290px; background: var(--sht-white); border: 1px solid var(--sht-border); border-radius: 14px; box-shadow: 0 18px 48px rgba(10, 18, 34, .12); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; }
.sht-nav .menu-item:hover > .sub-menu, .sht-nav .menu-item:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.sht-nav .sub-menu a { display: block; padding: 9px 12px; border-radius: 8px; font: 500 14px/20px var(--sht-font); color: var(--sht-ink); text-decoration: none; }
.sht-nav .sub-menu a:hover { background: var(--sht-bg-soft); color: var(--sht-red); }
/* visibility: inherit, so the nested lists stay hidden (and unclickable) while their panel is closed. */
.sht-nav .sub-menu .sub-menu { position: static; opacity: 1; visibility: inherit; transform: none; border: 0; box-shadow: none; padding: 0 0 4px 12px; min-width: 0; }
.sht-nav .sub-menu .sub-menu a { font-weight: 400; color: var(--sht-text-2); padding: 6px 12px; }

/* Products mega panel (menu item class sht-mega): content-width panel, one column per child item. */
.sht-nav .menu-item.sht-mega { position: static; }
.sht-nav .sht-mega > .sub-menu { left: var(--sht-gutter); right: var(--sht-gutter); top: 100%; min-width: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 32px; padding: 28px 32px 24px; border-radius: var(--sht-radius); box-shadow: 0 24px 64px rgba(10, 18, 34, .14); }
.sht-nav .sht-mega > .sub-menu::before { content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 30px; } /* hover bridge from the link */
.sht-nav .sht-mega > .sub-menu > .menu-item > a { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 0 0 14px; margin-bottom: 10px; border-bottom: 1px solid var(--sht-border); border-radius: 0; background: none; color: var(--sht-ink); }
.sht-nav .sht-mega > .sub-menu > .menu-item > a:hover,
.sht-nav .sht-mega > .sub-menu > .current-menu-item > a,
.sht-nav .sht-mega > .sub-menu > .current-menu-ancestor > a { background: none; color: var(--sht-red); }
.sht-mega__eyebrow { font: 400 11px/14px var(--sht-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--sht-text-3); }
.sht-mega__title { font: 500 15px/20px var(--sht-font); letter-spacing: -.01em; }
.sht-nav .sht-mega .sub-menu .sub-menu { display: grid; gap: 2px; padding: 0; background: none; }
.sht-nav .sht-mega .sub-menu .sub-menu a { display: flex; align-items: center; gap: 14px; margin: 0 -10px; padding: 10px; border-radius: 10px; color: var(--sht-ink); transition: background-color .18s; }
.sht-nav .sht-mega .sub-menu .sub-menu a:hover, .sht-nav .sht-mega .sub-menu .sub-menu a:focus-visible { background: var(--sht-bg-soft); color: var(--sht-ink); }
.sht-mega__icon { width: 34px; height: 34px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: var(--sht-bg-soft); border: 1px solid transparent; color: var(--sht-ink); transition: background-color .18s, border-color .18s, box-shadow .18s; }
.sht-mega__icon .sht-ico { width: 16px; height: 16px; }
.sht-nav .sht-mega a:hover .sht-mega__icon, .sht-nav .sht-mega a:focus-visible .sht-mega__icon, .sht-nav .sht-mega .current-menu-item .sht-mega__icon { background: var(--sht-white); border-color: var(--sht-border); box-shadow: 0 1px 2px rgba(10, 18, 34, .06); }
.sht-mega__text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.sht-mega__label { font: 500 14px/20px var(--sht-font); }
.sht-nav .sht-mega .current-menu-item .sht-mega__label { color: var(--sht-red); }
.sht-mega__desc { font: 400 13px/18px var(--sht-font); color: var(--sht-text-3); }
.sht-mega__arrow { width: 16px; height: 16px; color: var(--sht-red); opacity: 0; transform: translateX(-4px); transition: opacity .18s, transform .18s; }
.sht-nav .sht-mega a:hover .sht-mega__arrow, .sht-nav .sht-mega a:focus-visible .sht-mega__arrow { opacity: 1; transform: none; }
.sht-header__actions { display: flex; align-items: center; gap: 12px; }
.sht-icon-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--sht-border); background: var(--sht-white); display: inline-flex; align-items: center; justify-content: center; color: var(--sht-ink); transition: border-color .2s, color .2s; }
.sht-icon-btn .sht-ico { width: 20px; height: 20px; }
.sht-icon-btn:hover { border-color: var(--sht-ink); color: var(--sht-red); }
.sht-menu-toggle { display: none; width: 44px; height: 44px; border-radius: 50%; background: var(--sht-ink); border: 0; padding: 0; cursor: pointer; flex-direction: column; align-items: flex-end; justify-content: center; gap: 5px; padding-right: 13px; box-sizing: border-box; }
.sht-menu-toggle span { display: block; height: 2px; border-radius: 1px; background: var(--sht-white); width: 18px; transition: transform .2s, opacity .2s, width .2s; }
.sht-menu-toggle span:last-child { width: 12px; }
.sht-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.sht-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.sht-menu-toggle[aria-expanded="true"] span:nth-child(3) { width: 18px; transform: translateY(-7px) rotate(-45deg); }
.sht-mobile-nav { border-top: 1px solid var(--sht-border); background: var(--sht-white); padding: 12px var(--sht-gutter) 24px; max-height: calc(100vh - var(--sht-header-h)); overflow-y: auto; box-sizing: border-box; }
.sht-mobile-nav__list, .sht-mobile-nav .sub-menu { list-style: none; margin: 0; padding: 0; }
.sht-mobile-nav .menu-item { position: relative; border-bottom: 1px solid var(--sht-border); }
.sht-mobile-nav .menu-item > a { display: block; padding: 14px 48px 14px 0; font: 500 16px/22px var(--sht-font); color: var(--sht-ink); text-decoration: none; }
.sht-mobile-nav .sub-menu { display: none; padding: 0 0 8px 12px; border-left: 2px solid var(--sht-red); margin-bottom: 8px; }
.sht-mobile-nav .sub-menu .menu-item { border: 0; }
.sht-mobile-nav .sub-menu a { padding: 9px 0; font-weight: 400; font-size: 15px; color: var(--sht-text-2); }
.sht-mobile-nav .is-open > .sub-menu { display: block; }
.sht-mobile-nav .sht-nav__chevron { display: none; }
/* Mega columns on mobile: column heads as group labels, their items always listed underneath. */
.sht-mobile-nav .sub-menu .sub-menu { display: block; border-left: 0; padding: 0 0 4px 12px; margin: 0; }
.sht-mobile-nav .sub-menu .menu-item-has-children > a { padding: 12px 0 4px; font-weight: 500; color: var(--sht-ink); }
.sht-mobile-nav .sub-menu .sub-menu a { padding: 8px 0; }
.sht-mobile-nav .sht-mega__eyebrow, .sht-mobile-nav .sht-mega__icon, .sht-mobile-nav .sht-mega__desc, .sht-mobile-nav .sht-mega__arrow { display: none; }
.sht-submenu-toggle { position: absolute; right: 0; top: 4px; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; }
/* Hello Elementor paints every button:hover/:focus pink; keep the menu toggles on-brand. */
.sht-submenu-toggle:hover, .sht-submenu-toggle:focus { background: none; }
.sht-menu-toggle:hover, .sht-menu-toggle:focus { background: var(--sht-ink); }
.sht-submenu-toggle::before { content: ''; position: absolute; inset: 0; margin: auto; width: 9px; height: 9px; border-right: 2px solid var(--sht-ink); border-bottom: 2px solid var(--sht-ink); transform: translateY(-3px) rotate(45deg); transition: transform .2s; }
.sht-submenu-toggle[aria-expanded="true"]::before { transform: translateY(2px) rotate(-135deg); }
.sht-mobile-nav__actions { display: grid; gap: 10px; margin-top: 20px; }
@media (max-width: 1024px) {
	.sht-has-overlay-header .sht-header { background: rgba(255, 255, 255, .97); border-color: var(--sht-border); }
	.sht-nav, .sht-header__cta { display: none !important; }
	.sht-menu-toggle { display: inline-flex; }
	.sht-header__logo img { height: 34px; }
}
@media (max-width: 767px) { .sht-header__logo img { height: 28px; } }

/* ---------- Sticky mobile contact bar ---------- */
.sht-sticky-bar { display: none; }
@media (max-width: 767px) {
	.sht-sticky-bar { position: fixed; z-index: 890; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--sht-white); border-top: 1px solid var(--sht-border); box-shadow: 0 -8px 24px rgba(10, 18, 34, .06); }
	body { padding-bottom: 72px; }
}

/* ---------- Footer ---------- */
.sht-footer { background: var(--sht-bg-footer); color: var(--sht-text-2); }
.sht-footer__inner { max-width: calc(var(--sht-wrap) + var(--sht-gutter) * 2); margin: 0 auto; padding: 72px var(--sht-gutter) 40px; box-sizing: border-box; display: grid; gap: 40px; }
.sht-footer__sitemap { display: grid; grid-template-columns: 340px repeat(4, 1fr); gap: 48px; }
.sht-footer__brand { display: grid; gap: 20px; align-content: start; }
.sht-footer__logo img { height: 45px; width: auto; display: block; }
.sht-footer__brand p { margin: 0; font: 400 14px/22px var(--sht-font); }
.sht-footer__certs { display: grid; gap: 10px; justify-items: start; }
.sht-footer__cert-logos, .sht-footer__snap { display: flex; align-items: center; gap: 16px; }
.sht-footer__certs img { height: 32px; width: auto; }
.sht-footer__brand .sht-footer__cert-note, .sht-footer__snap span { font: 400 12px/18px var(--sht-font); color: var(--sht-text-3); }
.sht-footer__snap { gap: 12px; margin-top: 6px; }
.sht-footer__heading { margin: 0 0 12px; font: 400 12px/16px var(--sht-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--sht-text-3); }
.sht-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sht-footer__links a { font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); text-decoration: none; }
.sht-footer__links a:hover, .sht-footer__contact a:hover { color: var(--sht-red); }
.sht-footer__offices { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding-top: 40px; border-top: 1px solid var(--sht-border-warm); }
.sht-footer__office { display: flex; gap: 12px; }
.sht-footer__office p { margin: 0; }
.sht-footer__office .sht-footer__heading { margin-bottom: 6px; }
.sht-footer__pin { width: 18px; height: 18px; color: var(--sht-red); margin-top: 0; }
.sht-footer__office-name { font: 500 14px/20px var(--sht-font); color: var(--sht-ink); margin-bottom: 6px !important; }
.sht-footer__office-addr { font: 400 14px/22px var(--sht-font); }
.sht-footer__contact > div { display: grid; gap: 12px; }
.sht-footer__contact a { display: inline-flex; align-items: center; gap: 8px; font: 500 14px/20px var(--sht-font); color: var(--sht-ink); text-decoration: none; }
.sht-footer__contact .sht-ico { width: 16px; height: 16px; }
.sht-footer__legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid var(--sht-border-warm); }
.sht-footer__legal p { margin: 0; font: 400 14px/22px var(--sht-font); color: var(--sht-text-3); }
@media (max-width: 1024px) {
	.sht-footer__sitemap { grid-template-columns: repeat(2, 1fr); }
	.sht-footer__brand { grid-column: 1 / -1; }
	.sht-footer__offices { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.sht-footer__inner { padding-top: 56px; }
	.sht-footer__offices { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Components
   ========================================================================== */

/* Section heading row: heading block left, link/buttons right (bottom-aligned). */
.sht-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.sht-head-row > .e-con { width: auto !important; flex: 0 0 auto; }
.sht-head-row > .sht-head-row__text { flex: 0 1 auto; min-width: 0; }
.sht-head-row > .elementor-widget-button { flex: none; }
.sht-button .elementor-button, .sht-btn { white-space: nowrap; }
@media (max-width: 767px) { .sht-head-row { flex-direction: column !important; align-items: flex-start !important; } }
.sht-display { max-width: 600px; }

/* ---------- 01 Hero (front page) ---------- */
.sht-hero { min-height: 880px; overflow: hidden; background: var(--sht-white); }
.sht-hero__media { position: absolute !important; top: 0; bottom: 0; right: 0; width: 65.3% !important; background-size: cover; background-position: center; z-index: 0; }
.sht-hero__media::before, .sht-hero__media::after { content: ''; position: absolute; inset: 0; pointer-events: none; }
/* white fade from the copy side, top fade for the header, navy shade on the right edge */
.sht-hero__media::before { background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .85) 19%, rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, rgba(255, 255, 255, .55) 0, rgba(255, 255, 255, 0) 150px); }
.sht-hero__media::after { background: linear-gradient(90deg, rgba(10, 18, 33, 0) 36%, rgba(10, 18, 33, .35) 54%, rgba(10, 18, 33, .68) 79%, rgba(10, 18, 33, .8) 100%); }
.sht-hero__copy { position: relative; z-index: 2; max-width: 640px; }
.sht-hero__certs { display: flex; align-items: center; gap: 14px; padding-top: 8px; }
.sht-hero__certs img { height: 22px; width: auto; display: block; }
.sht-hero__certs .sht-small { color: var(--sht-text-3); }
/* EPA SNAP listing: its own row, never inside the "Certified by" group. */
.sht-snap { display: flex; align-items: center; gap: 10px; }
.sht-cert-stack .sht-snap { margin-top: 4px; }
.sht-snap img { display: block; height: 22px; width: auto; }
.sht-snap span { font: 400 13px/18px var(--sht-font); color: var(--sht-text-3); }
.sht-hotspot { position: absolute !important; z-index: 2; left: 62.85%; top: 590px; display: flex; align-items: center; gap: 0; pointer-events: none; }
.sht-hotspot__dot { width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .22); border: 1.5px solid #fff; position: relative; flex: none; }
.sht-hotspot__dot::after { content: ''; position: absolute; inset: 0; margin: auto; width: 10px; height: 10px; border-radius: 50%; background: var(--sht-red); box-shadow: 0 0 0 2px #fff; }
.sht-hotspot__line { width: 40px; height: 1px; background: rgba(255, 255, 255, .9); }
.sht-hotspot__chip { font: 400 12px/15px var(--sht-font); color: #fff; padding: 6px 12px; border: 1px solid #fff; border-radius: 999px; background: rgba(10, 18, 33, .62); backdrop-filter: blur(12px); white-space: nowrap; }
.sht-product-cue { position: absolute !important; z-index: 3; right: var(--sht-gutter); bottom: 40px; width: 300px; }
.sht-product-cue a { display: flex; align-items: center; gap: 12px; padding: 10px 16px 10px 10px; background: #fff; border-radius: 14px; text-decoration: none; box-shadow: var(--sht-shadow); }
.sht-product-cue img { width: 48px; height: 48px; object-fit: contain; background: #f5f5f7; border-radius: 10px; }
.sht-product-cue strong { display: block; font: 400 12px/15px var(--sht-font); color: var(--sht-ink); }
.sht-product-cue span { display: block; font: 400 12px/15px var(--sht-font); color: var(--sht-text-3); }
.sht-product-cue .sht-ico { margin-left: auto; width: 16px; height: 16px; color: var(--sht-ink); }
.sht-scroll-cue { position: absolute !important; z-index: 2; right: 30px; top: 340px; display: grid; justify-items: center; gap: 14px; font: 400 11px/14px var(--sht-mono); letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.sht-scroll-cue::after { content: ''; width: 2px; height: 56px; background: var(--sht-red); }
@media (max-width: 1024px) {
	.sht-hero { min-height: 0; }
	.sht-hero__media { position: relative !important; width: 100% !important; height: 360px; order: -1; margin-bottom: 8px; }
	.sht-hero__media::before { background: linear-gradient(180deg, rgba(255, 255, 255, 0) 55%, #fff 100%); }
	.sht-hero__media::after { display: none; }
	.sht-hotspot, .sht-scroll-cue, .sht-product-cue { display: none !important; }
}
@media (max-width: 767px) {
	.sht-hero__eyebrow .elementor-heading-title { color: var(--sht-red); letter-spacing: .12em; }
	.sht-hero__eyebrow .elementor-heading-title::before { display: block; width: 20px; }
	.sht-hero__media { height: 300px; }
	.sht-display .elementor-heading-title { font-size: 36px; line-height: 42px; }
	.sht-hero .sht-button--outline { display: none; }
	.sht-hero .sht-button, .sht-hero .sht-button .elementor-button { width: 100%; }
}

/* ---------- 02 Why (pillars) ---------- */
.sht-pillars { display: grid !important; grid-template-columns: repeat(4, 1fr); }
.sht-pillar { padding: 0 24px !important; display: flex; flex-direction: column; gap: 16px; }
.sht-pillar + .sht-pillar { border-left: 1px solid var(--sht-border-warm); }
.sht-icon-circle { width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 1px solid var(--sht-border-warm); display: flex; align-items: center; justify-content: center; color: var(--sht-red); }
.sht-icon-circle svg, .sht-icon-circle .elementor-icon svg { width: 26px; height: 26px; stroke: currentColor; fill: none; }
.sht-icon-circle .elementor-icon { color: var(--sht-red); font-size: 26px; display: flex; }
@media (max-width: 1024px) {
	.sht-pillars { grid-template-columns: repeat(2, 1fr); row-gap: 32px; }
	.sht-pillar:nth-child(3) { border-left: 0; }
}
@media (max-width: 600px) {
	.sht-pillars { grid-template-columns: 1fr; }
	.sht-pillar { padding: 0 !important; border-left: 0 !important; }
}

/* ---------- 03 Application tiles ---------- */
.sht-tiles { display: grid !important; grid-template-columns: repeat(5, 1fr); }
.sht-tile { position: relative; min-height: 460px; padding: 24px 20px 28px !important; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; background-size: cover; background-position: center; overflow: hidden; color: #fff; isolation: isolate; }
.sht-tile + .sht-tile { border-left: 1px solid rgba(255, 255, 255, .16); }
.sht-tile::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(5, 8, 15, .18) 0%, rgba(5, 8, 15, .35) 45%, rgba(5, 8, 15, .95) 100%); transition: background-color .25s; }
.sht-tile:hover::before { background-color: rgba(200, 35, 44, .12); }
.sht-tile::after { content: ''; position: absolute; left: 20px; bottom: 0; width: 0; height: 3px; background: var(--sht-red); transition: width .3s; }
.sht-tile:hover::after, .sht-tile.is-active::after { width: 128px; }
.sht-tile .elementor-icon { color: #fff; font-size: 28px; display: flex; }
.sht-tile .elementor-icon svg { width: 28px; height: 28px; stroke: currentColor; fill: none; }
.sht-tile .sht-h4 .elementor-heading-title { color: #fff; }
.sht-tile .sht-small, .sht-tile .sht-small p { color: rgba(255, 255, 255, .92); }
.sht-tile .sht-tile__link { position: absolute; inset: 0; z-index: 2; }
@media (max-width: 1024px) { .sht-tiles { grid-template-columns: repeat(3, 1fr); } .sht-tile { min-height: 380px; } }
@media (max-width: 767px) {
	.sht-tiles { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: var(--sht-gutter) !important; gap: 12px; }
	.sht-tile { min-height: 340px; border-radius: 16px; scroll-snap-align: start; border-left: 0 !important; }
}

/* ---------- 04 System cards, spec rows, pressure chips, doc cards ---------- */
.sht-cards-2 { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.sht-cards-3 { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sht-cards-4 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 1024px) { .sht-cards-3, .sht-cards-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .sht-cards-2, .sht-cards-3, .sht-cards-4 { grid-template-columns: 1fr; } }

.sht-system-card { background: #fff; border: 1px solid var(--sht-border); border-radius: var(--sht-radius-lg); padding: 28px !important; display: flex; flex-direction: row; gap: 24px; }
.sht-system-card__media { width: 200px; flex: none; border-radius: 14px; background: #0a0a0a; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 12px; box-sizing: border-box; }
.sht-system-card__media img { width: 100%; height: 196px; object-fit: contain; }
.sht-system-card__body { flex: 1; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.sht-specs { display: grid; }
.sht-spec { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--sht-border); }
.sht-spec:first-child { border-top: 1px solid var(--sht-border); }
.sht-spec dt, .sht-spec__k { font: 400 12px/16px var(--sht-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--sht-text-3); margin: 0; }
.sht-spec dd, .sht-spec__v { font: 500 14px/20px var(--sht-font); color: var(--sht-ink); margin: 0; text-align: right; }
.sht-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding-top: 8px; }
@media (max-width: 600px) {
	.sht-system-card { flex-direction: column; }
	.sht-system-card__media { width: 100%; }
}


.sht-doc-card { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: #fff; border: 1px solid var(--sht-border); border-radius: 14px; text-decoration: none; color: var(--sht-ink); transition: border-color .2s, box-shadow .2s; }
.sht-doc-card:hover { border-color: var(--sht-ink); box-shadow: var(--sht-shadow); }
.sht-doc-card .sht-ico { width: 24px; height: 24px; color: var(--sht-red); }
.sht-doc-card--locked { border-style: dashed; }
.sht-doc-card__dl { margin-left: auto; color: var(--sht-text-3) !important; width: 18px !important; height: 18px !important; }

/* ---------- 05 Solution cards ---------- */
.sht-solution-card { background: #fff; border: 1px solid var(--sht-border-warm); border-radius: var(--sht-radius); box-shadow: var(--sht-shadow); overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.sht-solution-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(10, 18, 34, .1); }
.sht-solution-card__media { background: var(--sht-bg-soft); padding: 24px !important; height: 260px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
.sht-solution-card__media img { max-height: 212px; width: auto; object-fit: contain; }
.sht-solution-card__body { padding: 32px !important; display: flex; flex-direction: column; gap: 16px; flex: 1; }
.sht-solution-card > .sht-solution-card__body { --flex-grow: 1; flex-grow: 1 !important; }
.sht-solution-card__body > .elementor-widget-button { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sht-border); }
.sht-solution-card .sht-h4 .elementor-heading-title { color: var(--sht-navy); }

/* ---------- 06 About split ---------- */
.sht-split { display: grid !important; grid-template-columns: 640fr 800fr; min-height: 638px; }
.sht-split__copy { padding: 96px var(--sht-gutter) !important; display: flex; flex-direction: column; gap: 24px; justify-content: center; }
.sht-split__visual { position: relative; background-size: cover; background-position: center; min-height: 420px; }
.sht-split__visual::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .35) 30%, rgba(255, 255, 255, 0) 60%); pointer-events: none; }
.sht-values { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 24px; }
.sht-values li { display: flex; align-items: center; gap: 10px; font: 500 14px/20px var(--sht-font); color: var(--sht-ink); }
.sht-values li::before { content: ''; width: 8px; height: 8px; background: var(--sht-red); flex: none; }
.sht-float-card { position: absolute !important; right: 64px; bottom: 64px; width: 300px; background: #fff; border-radius: var(--sht-radius); padding: 16px !important; box-shadow: 0 18px 48px rgba(10, 18, 34, .16); display: grid; gap: 12px; }
.sht-float-card img { width: 100%; height: 200px; object-fit: contain; }
@media (max-width: 1024px) {
	.sht-split { grid-template-columns: 1fr; }
	.sht-split__visual { min-height: 380px; }
	.sht-split__visual::before { background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 35%); }
}
@media (max-width: 767px) { .sht-float-card { position: relative !important; right: auto; bottom: auto; width: auto; margin: 200px 16px 16px; } }

/* ---------- 07 Dark band tiles ---------- */
.sht-dark-tile { background: var(--sht-tile-dark); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--sht-radius); padding: 22px !important; display: flex; flex-direction: column; gap: 16px; }
.sht-dark-tile .sht-h4 .elementor-heading-title { color: #fff; }
.sht-icon-box { width: 44px; height: 44px; border-radius: 12px; background: rgba(200, 35, 44, .16); display: flex; align-items: center; justify-content: center; color: #fff; }
.sht-icon-box .elementor-icon { color: #ff8087; font-size: 22px; display: flex; }
.sht-icon-box svg { width: 22px; height: 22px; stroke: currentColor; fill: none; }

/* ---------- 08 Operating pressures table: one row per pressure, UL and FM in their own columns ---------- */
.sht-pressures-intro { flex: 0 1 460px; max-width: 460px; }
@media (max-width: 767px) { .sht-pressures-intro { flex-basis: auto; } } /* the head row stacks: the basis would become a height */
.sht-ptable-wrap { border: 1px solid var(--sht-border); border-radius: var(--sht-radius); overflow: hidden; background: #fff; }
.sht-ptable { width: 100%; margin: 0; border-collapse: collapse; table-layout: fixed; font-size: inherit; }
.sht-ptable th, .sht-ptable td { border: 0; padding: 22px 24px; text-align: left; vertical-align: middle; line-height: inherit; }
.sht-ptable tbody > tr:nth-child(odd) > td, .sht-ptable tbody > tr:nth-child(odd) > th,
.sht-ptable tbody tr:hover > td, .sht-ptable tbody tr:hover > th { background-color: transparent; }
.sht-ptable thead th { padding: 16px 24px; background: var(--sht-navy); color: #fff; font: 500 12px/16px var(--sht-mono); letter-spacing: .06em; text-transform: uppercase; }
.sht-ptable thead th:nth-child(1) { width: 170px; }
.sht-ptable thead th:nth-child(3) { width: 28%; }
.sht-ptable thead th:nth-child(4), .sht-ptable thead th:nth-child(5) { width: 160px; }
.sht-ptable__cert-head { display: inline-flex; align-items: center; gap: 10px; }
.sht-ptable__cert-head img { display: block; height: 20px; width: auto; }
.sht-ptable tbody tr + tr > * { border-top: 1px solid var(--sht-border); }
.sht-ptable tbody th { font-weight: 400; }
.sht-ptable__bar { display: flex; align-items: baseline; gap: 6px; font: 500 36px/40px var(--sht-font); letter-spacing: -.02em; color: var(--sht-ink); }
.sht-ptable__bar small { font: 400 14px/20px var(--sht-font); letter-spacing: 0; color: var(--sht-text-3); }
.sht-ptable__psi { display: block; margin-top: 4px; font: 400 12px/16px var(--sht-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--sht-text-3); }
.sht-ptable__desc strong { display: block; font: 500 16px/22px var(--sht-font); color: var(--sht-ink); }
.sht-ptable__desc span { display: block; margin-top: 4px; font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); }
.sht-ptable__cyl { font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); }
.sht-cert-status { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; font: 500 13px/18px var(--sht-font); white-space: nowrap; }
.sht-cert-status .sht-ico { width: 14px; height: 14px; }
.sht-cert-status--yes { background: rgba(11, 30, 61, .07); color: var(--sht-navy); }
.sht-cert-status--pending { border: 1px dashed var(--sht-input); color: var(--sht-text-2); }
.sht-cert-status--none { height: auto; padding: 0; font-weight: 400; color: var(--sht-text-3); }
.sht-ptable-note { display: flex; align-items: flex-start; gap: 10px; margin: 0; font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); }
.sht-ptable-note .sht-ico { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--sht-red); }
@media (max-width: 1024px) {
	.sht-ptable th, .sht-ptable td { padding: 18px 16px; }
	.sht-ptable thead th { padding: 14px 16px; }
	.sht-ptable thead th:nth-child(1) { width: 116px; }
	.sht-ptable thead th:nth-child(4), .sht-ptable thead th:nth-child(5) { width: 136px; }
	.sht-ptable__bar { font-size: 30px; line-height: 34px; }
}
/* Narrow screens: each pressure becomes a card; data-label names the cylinder and certification cells. */
@media (max-width: 900px) {
	.sht-ptable-wrap { border: 0; border-radius: 0; overflow: visible; background: none; }
	.sht-ptable, .sht-ptable tbody, .sht-ptable th, .sht-ptable td { display: block; width: auto; }
	.sht-ptable thead { display: none; }
	.sht-ptable tbody { display: grid; gap: 12px; }
	.sht-ptable tbody tr { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--sht-border); border-radius: var(--sht-radius); overflow: hidden; background: #fff; }
	.sht-ptable tbody tr + tr > * { border-top: 0; }
	.sht-ptable tbody th { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 20px 20px 0; }
	.sht-ptable__psi { margin: 0; }
	.sht-ptable .sht-ptable__desc, .sht-ptable .sht-ptable__cyl { grid-column: 1 / -1; padding: 12px 20px 0; }
	.sht-ptable__cyl::before, .sht-ptable__cert::before { content: attr(data-label); display: block; margin-bottom: 6px; font: 400 11px/14px var(--sht-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--sht-text-3); }
	.sht-ptable .sht-ptable__cert { margin-top: 16px; padding: 14px 20px 16px; border-top: 1px solid var(--sht-border); }
	.sht-ptable .sht-ptable__cert + .sht-ptable__cert { border-left: 1px solid var(--sht-border); }
}

/* ---------- 09 Contact band + forms ---------- */
.sht-contact-band { background-size: cover; background-position: center; isolation: isolate; color: #fff; }
.sht-contact-band::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5, 14, 31, .78) 0%, rgba(5, 14, 31, .28) 70%, rgba(5, 14, 31, .08) 100%), rgba(11, 30, 61, .9); }
.sht-contact-links { display: grid; gap: 12px; padding-top: 8px; }
.sht-contact-links a { display: inline-flex; align-items: center; gap: 10px; font: 500 14px/20px var(--sht-font); color: #fff; text-decoration: none; }
.sht-contact-links a:hover { color: #ffb3b7; }
.sht-contact-links .sht-ico { width: 16px; height: 16px; }
.sht-locations { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 20px; display: grid; gap: 14px; }
.sht-locations p { margin: 0; font: 400 14px/22px var(--sht-font); color: var(--sht-on-dark); }
.sht-locations .sht-mono { color: var(--sht-on-dark); }
.sht-form-card { background: #fff; border-radius: var(--sht-radius); padding: 32px !important; color: var(--sht-ink); box-shadow: 0 24px 60px rgba(5, 14, 31, .25); }

.wpcf7 form { display: grid; gap: 16px; }
.wpcf7 .sht-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .wpcf7 .sht-form-row { grid-template-columns: 1fr; } }
.wpcf7 label { display: grid; gap: 8px; font: 500 14px/20px var(--sht-font); color: var(--sht-ink); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; box-sizing: border-box; height: 48px; padding: 11px 14px; border: 1px solid var(--sht-input); border-radius: 10px; background: #fff;
	font: 400 16px/26px var(--sht-font); color: var(--sht-ink); transition: border-color .2s, box-shadow .2s;
}
.wpcf7 textarea { height: 96px; resize: vertical; }
.wpcf7 ::placeholder { color: var(--sht-placeholder); opacity: 1; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { outline: none; border-color: var(--sht-steel); box-shadow: 0 0 0 3px rgba(26, 53, 96, .12); }
.wpcf7 .wpcf7-submit { justify-self: start; height: 56px; padding: 0 28px; border-radius: 999px; border: 0; background: var(--sht-red); color: #fff; font: 500 15px/20px var(--sht-font); cursor: pointer; transition: background-color .2s; }
.wpcf7 .wpcf7-submit:hover { background: var(--sht-red-light); }
/* The spinner only takes a row while the form is sending (otherwise it leaves an empty gap under the button). */
.wpcf7 .wpcf7-spinner { display: none; margin: 0; }
.wpcf7 form.submitting .wpcf7-spinner { display: inline-block; }
.wpcf7 form.submitting .wpcf7-submit { opacity: .7; pointer-events: none; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 13px; margin-top: 4px; color: var(--sht-red); }
.wpcf7 form .wpcf7-response-output { margin: 4px 0 0; padding: 10px 14px; border-radius: 10px; font-size: 14px; }
.sht-form-note { font: 400 13px/18px var(--sht-font); color: var(--sht-text-3); }

/* ---------- Inner page hero / certs bar / CTA band (lib/blocks.mjs) ---------- */
.sht-page-hero__grid { display: grid !important; grid-template-columns: minmax(0, 1fr) 520px; gap: 64px; align-items: center; }
.sht-page-hero__grid.is-single { grid-template-columns: minmax(0, 860px); }
.sht-display--page { max-width: 760px; }
.sht-display--page .elementor-heading-title { font-size: 52px; line-height: 60px; }
.sht-page-hero__media { border-radius: var(--sht-radius-lg); overflow: hidden; min-height: 380px; background-size: cover; background-position: center; }
.sht-page-hero__media--contain { background: var(--sht-bg-soft); padding: 32px !important; }
.sht-page-hero__media--contain img { max-height: 340px; width: auto; object-fit: contain; }
@media (max-width: 1024px) { .sht-page-hero__grid { grid-template-columns: 1fr; gap: 32px; } .sht-page-hero__media { min-height: 300px; } }
@media (max-width: 767px) { .sht-display--page .elementor-heading-title { font-size: 36px; line-height: 42px; } }
.sht-certs-bar { border-top: 1px solid var(--sht-border); }
.sht-certs-bar__row { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 20px; }
.sht-certs-bar__badge { background: #fff; border: 1px solid var(--sht-border); border-radius: 10px; height: 64px; padding: 0 18px; display: inline-flex; align-items: center; }
.sht-certs-bar__badge img { max-height: 40px; width: auto; }
/* UL + FM with their scope note on the left; the EPA SNAP listing apart on the right. */
.sht-certs-bar__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: center; }
.sht-certs-bar__grid.is-single { grid-template-columns: minmax(0, 1fr); }
.sht-certs-bar__certs { display: grid; gap: 12px; }
.sht-certs-bar__note { margin: 0; max-width: 720px; font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); }
.sht-certs-bar__snap { display: flex; align-items: center; gap: 14px; padding-left: 48px; border-left: 1px solid var(--sht-border); }
.sht-certs-bar__snap > span:last-child { font: 400 14px/20px var(--sht-font); color: var(--sht-text-2); }
@media (max-width: 900px) {
	.sht-certs-bar__grid { grid-template-columns: minmax(0, 1fr); }
	.sht-certs-bar__snap { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--sht-border); }
}
.sht-cta-band .sht-display { max-width: none; }

/* ---------- Inner pages ---------- */
.sht-page-hero { background: var(--sht-white); border-bottom: 1px solid var(--sht-border); }
.sht-breadcrumb, .sht-breadcrumb p { font: 400 13px/20px var(--sht-font); color: var(--sht-text-3); margin: 0; }
.sht-breadcrumb a { color: var(--sht-text-2); text-decoration: underline; text-decoration-color: var(--sht-input); text-underline-offset: 3px; }
.sht-breadcrumb a:hover { color: var(--sht-red); }
.sht-breadcrumb .sep { margin: 0 8px; color: var(--sht-border-warm); }
.sht-page-hero__media { border-radius: var(--sht-radius-lg); overflow: hidden; background-size: cover; background-position: center; min-height: 360px; }
.sht-prose h2 { font: 600 32px/38px var(--sht-font); letter-spacing: -.02em; color: var(--sht-ink); margin: 40px 0 12px; }
.sht-prose h2:first-child { margin-top: 0; }
.sht-prose h3 { font: 500 22px/28px var(--sht-font); color: var(--sht-ink); margin: 28px 0 10px; }
.sht-prose p, .sht-prose li { font: 400 16px/27px var(--sht-font); color: var(--sht-text-2); }
.sht-prose ul { padding-left: 0; list-style: none; display: grid; gap: 10px; margin: 0 0 16px; }
.sht-prose ul li { position: relative; padding-left: 22px; }
.sht-prose ul li::before { content: ''; position: absolute; left: 0; top: 10px; width: 8px; height: 8px; background: var(--sht-red); }
.sht-prose strong { color: var(--sht-ink); font-weight: 500; }
.sht-sidebar { display: grid; gap: 16px; align-content: start; position: sticky; top: calc(var(--sht-header-h) + 24px); }
.sht-side-card { background: var(--sht-bg-soft); border: 1px solid var(--sht-border); border-radius: var(--sht-radius); padding: 24px !important; }
.sht-side-card h3, .sht-side-card h4 { margin: 0 0 12px; font: 400 12px/16px var(--sht-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--sht-text-3); }
.sht-side-row { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--sht-border); font: 400 14px/20px var(--sht-font); color: var(--sht-ink); }
.sht-side-row:last-child { border-bottom: 0; }
.sht-side-row span:last-child { color: var(--sht-text-2); text-align: right; }
.sht-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.sht-pill { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px; background: var(--sht-navy); color: #fff; font: 500 12px/16px var(--sht-font); letter-spacing: .02em; }
.sht-side-link { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--sht-border); font: 500 14px/20px var(--sht-font); color: var(--sht-ink); text-decoration: none; }
.sht-side-link:last-child { border-bottom: 0; }
.sht-side-link:hover { color: var(--sht-red); }
.sht-side-link .sht-ico { width: 16px; height: 16px; color: var(--sht-red); }

.sht-table-wrap { overflow-x: auto; border: 1px solid var(--sht-border); border-radius: var(--sht-radius); background: #fff; }
.sht-table { width: 100%; border-collapse: collapse; min-width: 560px; margin: 0; font-size: inherit; }
.sht-table th, .sht-table td { border: 0; vertical-align: middle; line-height: inherit; }
.sht-table tbody > tr:nth-child(odd) > td, .sht-table tbody > tr:nth-child(odd) > th { background-color: transparent; }
.sht-table tbody tr:hover > td, .sht-table tbody tr:hover > th { background-color: var(--sht-bg-soft); }
.sht-table th { background: var(--sht-navy); color: #fff; text-align: left; font: 500 12px/16px var(--sht-mono); letter-spacing: .04em; text-transform: uppercase; padding: 14px 18px; }
.sht-table td { padding: 12px 18px; border-bottom: 1px solid var(--sht-border); font: 400 14px/22px var(--sht-font); color: var(--sht-text-2); }
.sht-table tr:last-child td { border-bottom: 0; }
.sht-table tr:hover td { background: var(--sht-bg-soft); }
.sht-table td:first-child { color: var(--sht-ink); font-weight: 500; }

.sht-feature-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sht-feature-list li { position: relative; padding-left: 26px; font: 400 15px/24px var(--sht-font); color: var(--sht-text-2); }
.sht-feature-list li::before { content: ''; position: absolute; left: 2px; top: 6px; width: 12px; height: 7px; border-left: 2px solid var(--sht-red); border-bottom: 2px solid var(--sht-red); transform: rotate(-45deg); }

.sht-callout { background: var(--sht-bg-soft); border: 1px solid var(--sht-border); border-left: 3px solid var(--sht-red); border-radius: 12px; padding: 18px 20px !important; }

/* Generic white card used on inner pages */
.sht-card { background: #fff; border: 1px solid var(--sht-border); border-radius: var(--sht-radius); padding: 28px !important; display: flex; flex-direction: column; gap: 12px; }
.sht-card--warm { border-color: var(--sht-border-warm); }
.sht-card--link { transition: border-color .2s, box-shadow .2s, transform .2s; }
.sht-card--link:hover { border-color: var(--sht-ink); box-shadow: var(--sht-shadow); transform: translateY(-2px); }

/* ---------- Home specifics ---------- */
.sht-hero__lead { max-width: 520px; }
.sht-hero__note { max-width: 540px; }
.sht-hero__ctas .elementor-widget-button { width: auto; }
.sht-hotspot-wrap, .sht-scroll-cue-wrap, .sht-product-cue-wrap { position: absolute !important; inset: 0; z-index: 2; pointer-events: none; margin: 0 !important; }
.sht-product-cue-wrap .sht-product-cue { pointer-events: auto; }
.sht-product-cue-wrap .elementor-widget-container, .sht-hotspot-wrap .elementor-widget-container, .sht-scroll-cue-wrap .elementor-widget-container { position: static; }
@media (max-width: 1024px) { .sht-hotspot-wrap, .sht-scroll-cue-wrap, .sht-product-cue-wrap { display: none; } }

.sht-why { display: grid !important; grid-template-columns: 440px 1fr; gap: 64px; align-items: center; }
@media (max-width: 1100px) { .sht-why { grid-template-columns: 1fr; gap: 40px; } }

.sht-tile__arrow { width: 18px; height: 18px; color: #fff; }
.sht-tile .elementor-widget-html { position: static; }

.sht-eyebrow--on-dark .elementor-heading-title { color: var(--sht-red-on-dark); }
.sht-maxw-720 { max-width: 720px; }
.sht-cards-4--gap20 { gap: 20px; }
.sht-h6 .elementor-heading-title { font: 500 14px/20px var(--sht-font); color: var(--sht-ink); margin: 0; }

.sht-contact-band { position: relative; }
.sht-contact-grid { display: grid !important; grid-template-columns: minmax(0, 1fr) 560px; gap: 64px; align-items: center; }
@media (max-width: 1024px) { .sht-contact-grid { grid-template-columns: 1fr; gap: 40px; } }
.sht-display--xl .elementor-heading-title { font-size: 68px; line-height: 74px; }
.sht-display.sht-on-dark .elementor-heading-title { color: #fff; }
.sht-display.sht-on-dark .elementor-heading-title strong { color: var(--sht-red-light); }
@media (max-width: 767px) { .sht-display--xl .elementor-heading-title { font-size: 44px; line-height: 50px; } }

.sht-doc-card__text { display: block; min-width: 0; }
.sht-doc-card .sht-doc-card__text strong { display: block; font: 500 14px/20px var(--sht-font); color: var(--sht-ink); }
.sht-doc-card .sht-doc-card__text > span { display: block; font: 400 12px/16px var(--sht-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--sht-text-3); margin-top: 2px; }

/* Split section: copy column aligns with the page grid on wide screens */
.sht-split__copy { padding-left: max(var(--sht-gutter), calc((100vw - var(--sht-wrap)) / 2)) !important; }

/* Responsive helpers */
@media (max-width: 1024px) {
	.sht-h2 .elementor-heading-title { font-size: 42px; line-height: 48px; }
	.sht-h2--xl .elementor-heading-title { font-size: 52px; line-height: 58px; }
}
@media (max-width: 767px) {
	.sht-h2 .elementor-heading-title, .sht-h2--sm .elementor-heading-title { font-size: 32px; line-height: 38px; }
	.sht-h2--xl .elementor-heading-title { font-size: 40px; line-height: 46px; }
	.sht-h3 .elementor-heading-title { font-size: 26px; line-height: 32px; }
	.sht-lead, .sht-lead p { font-size: 17px !important; line-height: 27px !important; }
	.sht-hide-mobile { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
