/* ==========================================================================
   Stealthy — theme.css (made by Escopanel · escopaneldev.com)
   Minimal black/white design lifted from the original one-pager.
   Selectors target the CSS classes the setup assigns to Elementor elements,
   plus the same classes in the static fallback — so the design holds no
   matter how the content is edited.
   ========================================================================== */

:root {
  --st-ink: #000000;
  --st-text: #111111;
  --st-muted: #4b5563;
  --st-accent: #c8a47b;
  --st-line: #e5e7eb;
  --st-card-line: #e2e8f0;
  --st-soft: #f9f9f9;
  --st-footer-bg: #d6d0d0;
  --st-radius: 12px;
  --st-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --st-header-h: 64px;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--st-text); font: 400 15px/1.7 var(--st-font); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--st-accent); }
button { font: inherit; cursor: pointer; }
h1, h2, h3, h4, h5, h6 { font-family: var(--st-font); font-weight: 500; line-height: 1.15; margin: 0 0 0.5em; color: var(--st-ink); }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--st-ink); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.skip-link:focus { position: fixed; top: 10px; left: 10px; z-index: 1000; width: auto; height: auto; clip: auto; background: #000; color: #fff; padding: 10px 14px; }
.st-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 40px); }
.st-container--narrow { max-width: 800px; }
.st-content { padding: 32px 0 64px; }

/* ---------- header ---------- */
.st-header { background: #fff; border-bottom: 1px solid var(--st-line); position: relative; z-index: 60; }
.has-sticky-header .st-header { position: sticky; top: 0; }
.st-header.is-stuck { box-shadow: 0 6px 20px -14px rgba(0, 0, 0, 0.35); }
.st-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; min-height: var(--st-header-h); padding: 6px clamp(16px, 3vw, 40px); }
.st-nav { display: none; }
.st-nav__list { display: flex; gap: clamp(10px, 1.6vw, 26px); list-style: none; margin: 0; padding: 0; }
.st-nav__list a { font-size: 14px; color: var(--st-text); padding: 8px 2px; display: block; white-space: nowrap; }
.st-nav__list a:hover, .st-nav__list .current-menu-item > a, .st-nav__list .current_page_item > a { color: var(--st-accent); }
.st-nav__list .sub-menu { display: none; position: absolute; background: #fff; border: 1px solid var(--st-line); min-width: 190px; padding: 8px 12px; list-style: none; margin: 0; z-index: 70; }
.st-nav__list li { position: relative; }
.st-nav__list li:hover > .sub-menu, .st-nav__list li:focus-within > .sub-menu { display: block; }
.st-brand { grid-column: 2; display: inline-flex; justify-self: center; }
.st-brand__img { height: 44px; width: auto; }
.st-brand--sm { position: static; transform: none; }
.st-brand--sm .st-brand__img { height: 36px; }
.st-header__actions { grid-column: 3; justify-self: end; display: flex; align-items: center; gap: 10px; }
.st-header__icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 0; background: transparent; color: var(--st-ink); position: relative; border-radius: 50%; }
.st-header__icon:hover { color: var(--st-accent); }
.st-cart-count { position: absolute; top: 2px; right: 0; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--st-ink); color: #fff; font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; display: none; }
.st-cart-count.is-visible { display: block; }
.st-pill { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--st-line); border-radius: 9999px; padding: 6px 6px 6px 14px; font-size: 14px; font-weight: 500; color: var(--st-accent); white-space: nowrap; transition: box-shadow 0.2s, transform 0.2s; }
.st-pill:hover { color: var(--st-accent); box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.25); transform: translateY(-1px); }
.st-pill__dot { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--st-ink); color: #fff; }
.st-pill--block { justify-content: center; width: 100%; padding: 10px 12px; }
.st-burger { display: inline-flex; grid-column: 1; justify-self: start; }
.st-nav { grid-column: 1; min-width: 0; }

/* mobile menu */
.st-mobile { position: fixed; inset: 0; z-index: 90; visibility: hidden; }
.st-mobile.is-open { visibility: visible; }
.st-mobile__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); opacity: 0; transition: opacity 0.25s; }
.st-mobile.is-open .st-mobile__backdrop { opacity: 1; }
.st-mobile__panel { position: absolute; top: 0; left: 0; bottom: 0; width: min(86vw, 340px); background: #fff; padding: 14px 20px 28px; transform: translateX(-100%); transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); overflow-y: auto; display: flex; flex-direction: column; gap: 18px; }
.st-mobile.is-open .st-mobile__panel { transform: none; }
.st-mobile__head { display: flex; align-items: center; justify-content: space-between; }
.st-mobile__list { list-style: none; margin: 0; padding: 0; }
.st-mobile__list a { display: block; padding: 13px 2px; font-size: 17px; border-bottom: 1px solid var(--st-line); color: var(--st-ink); }
.st-mobile__list .sub-menu { list-style: none; padding-left: 14px; }
body.menu-open { overflow: hidden; }

/* ---------- shared section rhythm ---------- */
.st-page-head { padding: clamp(36px, 6vw, 64px) 0 clamp(8px, 2vw, 20px); }
.st-page-head h1 { font-size: clamp(30px, 4.5vw, 48px); font-weight: 500; margin: 0; }

/* ---------- 1 · video ---------- */
.st-sec-video { background: #000; }
.st-video { position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 82vh; }
.st-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- 2 · hero ---------- */
.st-sec-hero { padding: clamp(40px, 6vw, 72px) 0; }
.st-sec-hero .st-cols { display: grid; gap: 36px; align-items: center; }
.st-hero__title :is(h1, h2, .elementor-heading-title), h1.st-hero__title { font-size: clamp(38px, 5vw, 62px); font-weight: 500; letter-spacing: -0.01em; margin: 0 0 18px; }
.st-hero__sub :is(h2, h3, .elementor-heading-title), h3.st-hero__sub { font-size: clamp(20px, 2.4vw, 28px); font-weight: 400; margin: 0 0 20px; }
.st-hero__text, .st-hero__text .elementor-widget-container { color: var(--st-text); font-size: 14px; line-height: 1.85; max-width: 460px; }
.st-hero__tag :is(h3, h4, .elementor-heading-title), h4.st-hero__tag { font-size: 17px; font-weight: 500; margin: 18px 0 22px; }
.st-checks ul, ul.st-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.st-checks li { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 500; color: var(--st-ink); }
.st-checks .elementor-icon-list-icon, .st-check { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; min-width: 22px; border-radius: 50%; background: var(--st-ink); color: #fff; font-size: 11px; }
.st-checks .elementor-icon-list-icon svg { width: 10px; height: 10px; fill: #fff; }
.st-checks .elementor-icon-list-icon i { color: #fff; font-size: 10px; }
.st-checks .elementor-icon-list-text { font-size: 13px; font-weight: 500; }
.st-hero__visual img, .st-hero__img img, img.st-hero__img { width: 100%; max-width: 560px; margin: 0 auto; object-fit: contain; }

/* ---------- 3 · flavors ---------- */
.st-sec-flavors { background: linear-gradient(180deg, #f9f9f9 0%, #f3f3f3 100%); padding: clamp(44px, 7vw, 80px) 0 clamp(48px, 7vw, 88px); }
.st-flavors__title :is(h2, .elementor-heading-title), h2.st-flavors__title { font-size: clamp(34px, 5vw, 72px); font-weight: 500; text-align: center; margin: 0 0 clamp(28px, 4vw, 56px); }
.st-slide, .st-carousel .swiper-slide { padding: 6px; }
.st-slide > img, .st-carousel .swiper-slide img { background: #fff; border: 1px solid var(--st-line); border-radius: var(--st-radius); padding: 16px; width: 100%; aspect-ratio: 1; object-fit: contain; transition: transform 0.3s, box-shadow 0.3s; }
.st-slide > img:hover, .st-carousel .swiper-slide img:hover { transform: translateY(-4px); box-shadow: 0 16px 30px -18px rgba(0, 0, 0, 0.35); }
/* Elementor swiper arrows → round black buttons like the original */
.st-carousel .elementor-swiper-button { width: 42px; height: 42px; border-radius: 50%; background: var(--st-ink); color: #fff; display: flex; align-items: center; justify-content: center; opacity: 1; transition: transform 0.2s; }
.st-carousel .elementor-swiper-button:hover { transform: scale(1.06); }
.st-carousel .elementor-swiper-button svg { width: 14px; height: 14px; fill: #fff; }
.st-carousel .elementor-swiper-button i { font-size: 14px; }
/* fallback scroller */
.st-scroller { display: grid; grid-auto-flow: column; grid-auto-columns: 46%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 clamp(16px, 4vw, 40px) 10px; scrollbar-width: thin; }
.st-scroller .st-slide { scroll-snap-align: start; }

/* ---------- 4 · tech ---------- */
.st-sec-tech { background: #f9f9f9; padding: clamp(40px, 6vw, 64px) 0 0; text-align: center; }
.st-tech__title :is(h2, .elementor-heading-title), h2.st-tech__title { font-size: clamp(30px, 4vw, 48px); font-weight: 500; margin: 0 0 10px; }
.st-tech__logo img, img.st-tech__logo { height: clamp(34px, 4vw, 52px); width: auto; margin: 0 auto 22px; }
.st-tech__intro, .st-tech__intro .elementor-widget-container { max-width: 640px; margin: 0 auto; color: var(--st-text); font-size: 15px; line-height: 1.75; }
.st-sec-tech-grid { background: #f9f9f9; padding: clamp(28px, 4vw, 48px) 0 clamp(48px, 6vw, 72px); }
.st-sec-tech-grid .st-cols { display: grid; gap: 24px; align-items: center; }
.st-card { background: rgba(255, 255, 255, 0.45); border: 1px solid var(--st-card-line); border-radius: var(--st-radius); padding: 24px; position: relative; text-align: left; margin-bottom: 18px; }
.st-card:last-child { margin-bottom: 0; }
.st-card__icon { position: absolute; top: 22px; right: 22px; width: 56px; }
.st-card__icon img { width: 56px; height: 56px; object-fit: contain; background: var(--st-ink); border-radius: 12px; padding: 12px; }
.st-card__title { padding-right: 70px; min-height: 56px; display: flex; align-items: center; }
.st-card__title :is(h3, .elementor-heading-title), h3.st-card__title { font-size: 19px; font-weight: 500; line-height: 1.3; margin: 0; }
.st-card__text, .st-card__text .elementor-widget-container { color: var(--st-text); font-size: 14px; }
.st-card__text p { margin: 0 0 6px; }
.st-tech__devices img, img.st-tech__devices { max-height: 520px; width: auto; margin: 0 auto; object-fit: contain; }
/* Elementor structure niceties */
.st-sec-tech-grid .st-card .elementor-widget-image .elementor-widget-container { margin: 0; }


/* ---------- inner pages (About / Patent / Contact / Wholesale / Find Us) ---------- */
.st-sec-page-head { padding: clamp(40px, 6vw, 72px) 0 clamp(8px, 2vw, 16px); }
.st-ph__intro, .st-ph__intro .elementor-widget-container { color: var(--st-muted); font-size: 15px; max-width: 560px; margin: 0 auto; }
.st-sec-mission, .st-sec-commit { padding: clamp(36px, 5vw, 56px) 0 clamp(8px, 2vw, 16px); text-align: center; }
.st-sec-commit-grid { background: #f9f9f9; padding: clamp(20px, 3vw, 36px) 0 clamp(44px, 6vw, 64px); }
.st-sec-commit-grid .st-cols { display: grid; gap: 20px; }
.st-card--about { text-align: center; }
.st-card--about .st-card__icon { position: static; margin: 0 auto 14px; }
.st-card--about .st-card__icon img { background: #fff; border: 1px solid var(--st-card-line); padding: 12px; }
.st-card--about .st-card__title { padding-right: 0; min-height: 0; justify-content: center; }
.st-card--about .st-card__title :is(h3, .elementor-heading-title) { font-size: 18px; }
.st-sec-about-products { padding: clamp(36px, 6vw, 64px) 0; }
.st-sec-about-products .st-cols { display: grid; gap: 32px; align-items: center; }
.st-about__device img { max-height: 460px; width: auto; margin: 0 auto; object-fit: contain; }
.st-about__h2 :is(h2, .elementor-heading-title) { font-size: clamp(26px, 3.4vw, 40px); font-weight: 500; }
.st-about__text, .st-about__text .elementor-widget-container { color: var(--st-text); font-size: 15px; max-width: 440px; }
.st-about__btn .elementor-button, a.st-about__btn { display: inline-flex; background: var(--st-ink); color: #fff; border-radius: 9999px; padding: 12px 26px; font: 500 14px/1.2 var(--st-font); }
.st-about__btn .elementor-button:hover { background: #fff; color: var(--st-ink); box-shadow: inset 0 0 0 1px var(--st-ink); }
.st-sec-patent-cards { padding: clamp(16px, 3vw, 28px) 0 0; }
.st-sec-patent-cards .st-cols { display: grid; gap: 18px; }
.st-patent-card { background: #fff; border: 1px solid var(--st-card-line); border-radius: var(--st-radius); padding: clamp(22px, 3vw, 34px); }
.st-patent-card__label :is(h3, .elementor-heading-title) { font-size: 13px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--st-muted); margin: 0 0 6px; }
.st-patent-card__num :is(h2, .elementor-heading-title) { font-size: clamp(22px, 2.6vw, 32px); font-weight: 500; margin: 0; }
.st-sec-patent-text { padding: clamp(24px, 4vw, 40px) 0 clamp(48px, 7vw, 80px); }
.st-sec-patent-text .elementor-column, .st-sec-patent-text .st-cols { max-width: 800px; margin: 0 auto; }
.st-patent__h2 :is(h2, .elementor-heading-title) { font-size: 24px; font-weight: 500; margin: 26px 0 8px; }
.st-patent__text, .st-patent__text .elementor-widget-container { font-size: 14.5px; color: var(--st-text); }
.st-patent__text a { text-decoration: underline; }

/* forms */
.st-sec-form { padding: clamp(20px, 3vw, 36px) 0 clamp(48px, 7vw, 80px); }
.st-form__col, .st-sec-form .elementor-column { max-width: 720px; margin: 0 auto; }
.st-form { display: grid; gap: 15px; background: #fff; border: 1px solid var(--st-line); border-radius: var(--st-radius); padding: clamp(20px, 4vw, 36px); }
.st-form__row { display: grid; gap: 15px; }
.st-form__field { display: grid; gap: 5px; font-size: 13px; font-weight: 500; color: var(--st-ink); }
.st-form input[type="text"], .st-form input[type="email"], .st-form input[type="tel"], .st-form input[type="url"], .st-form input[type="date"], .st-form select, .st-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--st-line); border-radius: 10px; background: #fff; font: 400 14px/1.5 var(--st-font); transition: border-color 0.2s, box-shadow 0.2s; }
.st-form input:focus, .st-form select:focus, .st-form textarea:focus { outline: none; border-color: var(--st-ink); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08); }
.st-form select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 34px; }
.st-form__submit { justify-self: start; padding: 13px 34px; }
.st-form__notice { padding: 12px 15px; border-radius: 10px; font-size: 14px; border: 1px solid var(--st-line); border-left: 3px solid var(--st-ink); }
.st-form__notice--error { border-left-color: #b91c1c; color: #b91c1c; }
.st-hp { position: absolute; left: -9999px; }

/* store locator slot */
.st-sec-locator { padding: clamp(16px, 3vw, 28px) 0 clamp(48px, 7vw, 80px); }
.st-locator { border: 1px dashed var(--st-line); border-radius: var(--st-radius); background: #fff; padding: clamp(32px, 6vw, 64px); text-align: center; color: var(--st-muted); font-size: 14px; max-width: 800px; margin: 0 auto; }
.st-locator iframe { width: 100%; min-height: 480px; border: 0; }

/* shop intro (Disposables hero copy) */
.st-shop-intro { max-width: 640px; margin: 4px 0 26px; }
.st-shop-intro__kicker { font-size: 13px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--st-accent); margin: 0 0 6px; }
.st-shop-intro h2 { font-size: clamp(24px, 3vw, 36px); font-weight: 500; margin: 0 0 10px; }
.st-shop-intro p { font-size: 14.5px; color: var(--st-text); margin: 0; }

/* Disposables flowchart under the shop grid */
.st-showcase { margin: clamp(36px, 6vw, 64px) calc(50% - 50vw) 0; background: #f9f9f9; }
.st-showcase img { width: 100%; max-width: 1600px; margin: 0 auto; display: block; }

/* ---------- placeholder pages ---------- */
.st-sec-placeholder { padding: clamp(64px, 10vw, 120px) 0; text-align: center; }
.st-ph__title :is(h1, .elementor-heading-title) { font-size: clamp(34px, 5vw, 56px); font-weight: 500; }
.st-ph__text { color: var(--st-muted); }

/* ---------- footer ---------- */
.st-footer { background: var(--st-footer-bg); margin-top: auto; }
.st-footer__inner { max-width: 900px; margin: 0 auto; padding: 26px clamp(16px, 4vw, 40px); text-align: center; }
.st-footer__menu { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin: 0 0 10px; padding: 0; font-size: 13px; }
.st-footer__text { font-size: 14px; color: var(--st-ink); margin: 0; }
.st-footer__credit { font-size: 12px; color: rgba(0, 0, 0, 0.55); margin: 8px 0 0; }
.st-footer__credit a { text-decoration: underline; }

/* ---------- misc ---------- */
.st-btn { display: inline-flex; align-items: center; gap: 8px; background: var(--st-ink); color: #fff; border: 1px solid var(--st-ink); border-radius: 9999px; padding: 12px 26px; font-size: 14px; font-weight: 500; transition: background 0.2s, color 0.2s; }
.st-btn:hover { background: #fff; color: var(--st-ink); }
.st-404 { padding: clamp(60px, 10vw, 120px) 0; text-align: center; }
.st-post-teaser { border-bottom: 1px solid var(--st-line); padding: 20px 0; }
.st-content .entry-content > * + * { margin-top: 1.1em; }
/* Elementor full-width template already omits page padding; keep classic content readable */
.elementor-kit-default a:hover { color: var(--st-accent); }

/* ---------- breakpoints ---------- */
@media (min-width: 768px) {
  .st-sec-hero .st-cols { grid-template-columns: 1fr 1fr; gap: 48px; }
  .st-sec-commit-grid .st-cols { grid-template-columns: repeat(3, 1fr); }
  .st-sec-about-products .st-cols { grid-template-columns: 1fr 1fr; gap: 56px; }
  .st-sec-patent-cards .st-cols { grid-template-columns: 1fr 1fr; }
  .st-form__row { grid-template-columns: 1fr 1fr; }
  .st-scroller { grid-auto-columns: 30%; }
  .st-sec-tech-grid .st-cols { grid-template-columns: 1fr 1fr; }
  .st-tech__mid-fallback { display: block; }
}
@media (min-width: 1024px) {
  .st-nav { display: block; }
  .st-burger { display: none; }
  .st-burger { display: none; }
  .st-brand__img { height: 48px; }
  .st-scroller { grid-auto-columns: 23%; }
  .st-sec-tech-grid .st-cols { grid-template-columns: 1fr 0.9fr 1fr; }
}
@media (min-width: 1024px) and (max-width: 1220px) {
  .st-nav__list { gap: 8px; }
  .st-nav__list a { font-size: 13px; padding: 8px 1px; }
  .st-pill { padding: 5px 5px 5px 11px; font-size: 13px; }
}
@media (max-width: 1023px) {
  /* keep the centred logo clear of the burger/actions */
  .st-header__inner { justify-content: space-between; }
}
@media (max-width: 767px) {
  .st-sec-tech-grid .st-tech__mid { order: -1; }
  .st-tech__devices img, img.st-tech__devices { max-height: 320px; }
  .st-card__title { min-height: 0; }
}
@media (max-width: 639px) {
  .st-header__actions .st-pill { display: none; }
  .st-brand__img { height: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .st-mobile__panel, .st-pill, .st-slide > img, .st-carousel .swiper-slide img { transition: none; }
}
