/* ShieldLab by Polyshield: widget styles.
   Tokens follow the Polyshield v2 system (Elementor global colours). */
.sl-scope, .sl-countdown, .sl-notify, .sl-grid, .sl-filters, .sl-index, .sl-steps, .sl-pdp, .sl-crumbs, .sl-acc {
	--sl-black:#050505; --sl-carbon:#121214; --sl-graphite:#1c1d20; --sl-line-d:#292b2f;
	--sl-steel:#7d828a; --sl-mist:#e7e8e6; --sl-paper:#f6f6f3; --sl-white:#fff; --sl-ink:#0c0c0d;
	--sl-bench:#ebebe8; --sl-line-l:#d9dad6; --sl-mute:#4c4f54; --sl-blue:#35506e; --sl-blue-b:#82a8cc;
	--sl-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;
	--sl-display:"Space Grotesk", "Helvetica Neue", Arial, sans-serif;
	--sl-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	box-sizing:border-box;
}
.sl-scope *, .sl-grid *, .sl-pdp *, .sl-index *, .sl-steps *, .sl-acc *, .sl-notify * { box-sizing:border-box; }
.sl-sr, .sl-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.sl-arrow { width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:1.6; transition:transform .2s; flex:0 0 12px; }
.sl-dot { display:inline-block; width:8px; height:8px; border-radius:2px; flex:0 0 8px; }
.sl-empty { padding:24px; border:1px dashed #9a9da2; border-radius:8px; font:14px/1.5 var(--sl-body, sans-serif); color:#7d828a; }

/* Launch switch: sections tagged in Elementor (Advanced > CSS Classes) */
body.sl-launched .sl-only-pre, body.sl-prelaunch .sl-only-live { display:none !important; }
body.elementor-editor-active .sl-only-pre, body.elementor-editor-active .sl-only-live { display:flex !important; outline:2px dashed rgba(130,168,204,.5); outline-offset:-2px; }

/* Status pill + pulse used in the hero */
.sl-status .elementor-heading-title { display:inline-flex; align-items:center; gap:10px; height:30px; padding:0 14px; border:1px solid #292b2f; border-radius:999px; }
.sl-status .elementor-heading-title::before { content:""; width:7px; height:7px; border-radius:50%; background:#82a8cc; animation:sl-pulse 2.2s infinite; }
@keyframes sl-pulse { 0%{box-shadow:0 0 0 0 rgba(130,168,204,.55)} 70%{box-shadow:0 0 0 9px rgba(130,168,204,0)} 100%{box-shadow:0 0 0 0 rgba(130,168,204,0)} }
.sl-hero-glow { background-image:radial-gradient(120% 90% at 78% 40%, #17191c 0%, #0a0a0b 46%, #050505 75%) !important; }
.sl-hero-art img { width:100%; height:auto; max-width:560px; display:block; margin-inline:auto; }
.sl-dim-em em { font-style:normal; color:#7d828a; }

/* Countdown */
.sl-countdown { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); max-width:460px; border:1px solid var(--sl-line-d); border-radius:8px; overflow:hidden; color:var(--sl-white); }
.sl-countdown div { padding:14px 8px 12px; text-align:center; border-right:1px solid var(--sl-line-d); }
.sl-countdown div:last-child { border-right:0; }
.sl-countdown b { display:block; font:500 clamp(26px,3.4vw,36px)/1 var(--sl-mono); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.sl-countdown small { display:block; margin-top:8px; font:500 10px/1.2 var(--sl-mono); letter-spacing:.14em; color:var(--sl-steel); text-transform:uppercase; }
.sl-batch { margin:12px 0 0; font:500 11px/1.4 var(--sl-mono); letter-spacing:.1em; color:#7d828a; text-transform:uppercase; }

/* Launch list form */
.sl-notify { display:flex; flex-wrap:wrap; gap:8px; max-width:480px; position:relative; }
.sl-notify input[type=email] { flex:1 1 220px; min-width:0; height:48px; padding:0 16px; border-radius:10px; font:15px var(--sl-body); outline:none; }
.sl-notify button { flex:0 0 auto; height:48px; padding:0 20px; border-radius:4px; display:inline-flex; align-items:center; gap:10px; font:600 14px/1 var(--sl-body); cursor:pointer; border:1px solid transparent; transition:background .2s; }
.sl-notify button:hover .sl-arrow { transform:translateX(3px); }
.sl-notify button[disabled] { opacity:.55; cursor:progress; }
.sl-notify.is-dark input[type=email] { background:#0d0d0f; border:1px solid var(--sl-line-d); color:var(--sl-white); }
.sl-notify.is-dark input[type=email]::placeholder { color:#6b7077; }
.sl-notify.is-dark input[type=email]:focus { border-color:var(--sl-blue-b); }
.sl-notify.is-dark button { background:var(--sl-white); color:var(--sl-black); }
.sl-notify.is-dark button:hover { background:var(--sl-mist); }
.sl-notify.is-light input[type=email] { background:var(--sl-white); border:1px solid var(--sl-line-l); color:var(--sl-ink); }
.sl-notify.is-light input[type=email]:focus { border-color:var(--sl-blue); }
.sl-notify.is-light button { background:var(--sl-black); color:var(--sl-white); }
.sl-notify.is-light button:hover { background:#26282c; }
.sl-notify-msg { flex:1 0 100%; margin:2px 0 0; min-height:20px; font:13.5px/1.5 var(--sl-body); }
.sl-notify.is-dark .sl-notify-msg { color:var(--sl-blue-b); }
.sl-notify.is-light .sl-notify-msg { color:var(--sl-blue); }
.sl-notify .sl-notify-msg.is-error { color:#e29a8f; }
.sl-notify.is-light .sl-notify-msg.is-error { color:#a2392b; }
.sl-notify.is-done input[type=email], .sl-notify.is-done button { display:none; }

/* Filters */
.sl-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; }
.sl-pill { height:36px; padding:0 14px; border-radius:999px; border:1px solid #c9cbc6; background:transparent; color:var(--sl-ink); font:500 13px/1 var(--sl-body); display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.sl-pill span:last-child { font:500 11px var(--sl-mono); opacity:.6; }
.sl-pill[aria-pressed="true"] { background:var(--sl-ink); color:var(--sl-white); border-color:var(--sl-ink); }
.sl-pill:focus-visible, .sl-card:focus-visible, .sl-index-item:focus-visible { outline:2px solid var(--sl-blue); outline-offset:3px; }

/* Cards */
.sl-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; font-family:var(--sl-body); }
@media (max-width:1100px) { .sl-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .sl-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .sl-grid { gap:10px; } .sl-card-body { padding:12px 12px 14px; gap:5px; } .sl-card-name { font-size:15px; } .sl-card-short { font-size:13px; } .sl-card-spec { font-size:9.5px; } .sl-badge { top:8px; left:8px; height:22px; padding:0 8px; font-size:9px; } }
.sl-card { position:relative; display:flex; flex-direction:column; background:var(--sl-white); border:1px solid var(--sl-line-l); border-radius:8px; overflow:hidden; color:var(--sl-ink) !important; text-decoration:none !important; transition:border-color .2s; }
a.sl-card:hover { border-color:var(--sl-ink); }
a.sl-card:hover .sl-card-media svg, a.sl-card:hover .sl-card-media img { transform:scale(1.035); }
.sl-card.is-hidden { display:none; }
.sl-card-media { position:relative; display:grid; place-items:center; aspect-ratio:1/1; max-width:100%; background:var(--sl-bench); overflow:hidden; }
.sl-card-media svg { width:70%; height:auto; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.sl-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.sl-card-body { display:grid; gap:6px; padding:14px 16px 16px; flex:1; align-content:start; }
.sl-code { display:flex; align-items:center; gap:8px; font:500 11px/1.4 var(--sl-mono); letter-spacing:.1em; color:var(--sl-mute); text-transform:uppercase; }
.sl-card-name { font:600 17px/1.2 var(--sl-display); letter-spacing:-.01em; }
.sl-card-short { font-size:13.5px; line-height:1.5; color:var(--sl-mute); }
.sl-card-spec { margin-top:6px; padding-top:8px; border-top:1px solid var(--sl-line-l); font:500 10.5px/1.4 var(--sl-mono); letter-spacing:.06em; color:var(--sl-mute); text-transform:uppercase; }
.sl-card-cta { display:flex; justify-content:space-between; align-items:center; margin-top:6px; font-size:13px; font-weight:600; }
.sl-badge { position:absolute; top:10px; left:10px; z-index:2; height:24px; padding:0 10px; border-radius:999px; display:inline-flex; align-items:center; font:500 10px/1 var(--sl-mono); letter-spacing:.1em; text-transform:uppercase; background:var(--sl-white); color:var(--sl-ink); border:1px solid var(--sl-line-l); }
.sl-badge-look { background:var(--sl-ink); color:var(--sl-white); border-color:var(--sl-ink); }
.sl-card.is-sealed .sl-card-media { background:#dcdcd8; }
.sl-card.is-sealed .sl-card-media svg, .sl-card.is-sealed .sl-card-media img { filter:brightness(.18) contrast(1.2) blur(1.5px); transform:scale(.96); }
.sl-card.is-sealed .sl-card-media::after { content:""; position:absolute; inset:0; background:repeating-linear-gradient(135deg, transparent 0 10px, rgba(5,5,5,.035) 10px 11px); }
.sl-redact { display:grid; gap:6px; padding-top:4px; }
.sl-redact i { display:block; height:10px; border-radius:2px; background:#d4d5d1; }
.sl-redact i:nth-child(2) { width:72%; }

/* First look: three across, larger type; the first card gets the clipped corner */
.sl-grid-first { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.sl-grid-first .sl-card:first-child { clip-path:polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); }
.sl-grid-first .sl-card-media { aspect-ratio:4/3; }
.sl-grid-first .sl-card-media svg { width:56%; }
.sl-grid-first .sl-card-body { padding:18px 20px 20px; gap:8px; }
.sl-grid-first .sl-card-name { font-size:22px; }
.sl-grid-first .sl-card-short { font-size:15px; }
@media (max-width:900px) { .sl-grid-first { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .sl-grid-first { grid-template-columns:1fr; } }

/* Range index (dark section) */
.sl-index { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border-top:1px solid var(--sl-line-d); border-left:1px solid var(--sl-line-d); font-family:var(--sl-body); }
@media (max-width:1000px) { .sl-index { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:560px) { .sl-index { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.sl-index-item { display:grid; gap:14px; align-content:start; padding:22px 18px 20px; border-right:1px solid var(--sl-line-d); border-bottom:1px solid var(--sl-line-d); color:var(--sl-white) !important; text-decoration:none !important; transition:background .2s; }
.sl-index-item:hover { background:var(--sl-graphite); }
.sl-index-tab { width:28px; height:3px; border-radius:2px; }
.sl-index-num { font:500 11px var(--sl-mono); letter-spacing:.1em; color:var(--sl-steel); }
.sl-index-name { font:600 17px/1.2 var(--sl-display); letter-spacing:-.01em; }
.sl-index-qty { font:500 30px/1 var(--sl-mono); font-variant-numeric:tabular-nums; }
.sl-index-qty small { font-size:11px; color:var(--sl-steel); letter-spacing:.1em; margin-left:6px; text-transform:uppercase; }

/* Routine (dark section) */
.sl-steps { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border-top:1px solid #34363b; font-family:var(--sl-body); color:var(--sl-white); }
@media (max-width:1000px) { .sl-steps { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; } }
@media (max-width:520px) { .sl-steps { grid-template-columns:1fr; } }
.sl-step { display:grid; gap:10px; align-content:start; padding:22px 22px 26px 0; }
@media (max-width:1000px) { .sl-step { border-bottom:1px solid #34363b; padding-right:0; } }
.sl-step-n { display:flex; align-items:center; gap:8px; font:500 12px var(--sl-mono); color:var(--sl-blue-b); }
.sl-step-n::after { content:""; flex:1; height:1px; background:#34363b; }
.sl-step h3 { margin:0; font:600 20px/1.2 var(--sl-display); color:var(--sl-white); letter-spacing:-.01em; }
.sl-step p { margin:0; font-size:14px; line-height:1.55; color:#a5a9b0; }
.sl-step ul { list-style:none; margin:4px 0 0; padding:0; display:grid; gap:5px; }
.sl-step li { font-size:13.5px; }
.sl-step a { color:#d6d8db !important; text-decoration:underline; text-decoration-color:#4a4d53; text-underline-offset:3px; }
.sl-step a:hover { color:var(--sl-white) !important; text-decoration-color:var(--sl-white); }
.sl-lock { color:#6b7077; }

/* Product page */
.sl-crumbs { margin:0 0 24px; font:13px/1.5 var(--sl-body); color:var(--sl-mute); }
.sl-crumbs a { color:var(--sl-mute) !important; text-decoration:none; }
.sl-crumbs a:hover { color:var(--sl-ink) !important; text-decoration:underline; }
.sl-crumbs b { color:var(--sl-ink); font-weight:500; }
.sl-pdp { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:48px; font-family:var(--sl-body); color:var(--sl-ink); }
@media (max-width:900px) { .sl-pdp { grid-template-columns:1fr; gap:28px; } }
.sl-gallery { display:grid; gap:10px; align-content:start; }
.sl-gallery-main { position:relative; display:grid; place-items:center; aspect-ratio:1/1; max-width:100%; background:var(--sl-bench); border:1px solid var(--sl-line-l); border-radius:8px; overflow:hidden; }
.sl-gallery-main svg { width:62%; height:auto; }
.sl-gallery-main img { width:100%; height:100%; object-fit:cover; }
.sl-photo-note { position:absolute; left:12px; bottom:10px; font:500 9.5px/1 var(--sl-mono); letter-spacing:.1em; color:#8b8f95; text-transform:uppercase; }
.sl-thumbs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.sl-thumbs span { aspect-ratio:1/1; border-radius:6px; overflow:hidden; border:1px solid var(--sl-line-l); background:var(--sl-bench); }
.sl-thumbs img { width:100%; height:100%; object-fit:cover; display:block; }
.sl-buy { display:grid; gap:18px; align-content:start; }
.sl-buy-title { margin:0; font:600 clamp(34px,4.4vw,52px)/1 var(--sl-display); letter-spacing:-.03em; color:var(--sl-ink); text-wrap:balance; }
.sl-buy-short { margin:0; font-size:17px; line-height:1.55; color:var(--sl-mute); }
.sl-kv { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--sl-line-l); border-radius:8px; overflow:hidden; background:var(--sl-white); }
.sl-kv div { padding:12px 14px; border-right:1px solid var(--sl-line-l); }
.sl-kv div:last-child { border-right:0; }
.sl-kv small { display:block; font:500 10px/1.3 var(--sl-mono); letter-spacing:.12em; color:var(--sl-mute); text-transform:uppercase; }
.sl-kv b { display:block; margin-top:4px; font-weight:600; font-size:15px; }
.sl-kv b del { opacity:.5; font-weight:400; margin-right:6px; }
.sl-kv b ins { text-decoration:none; }
.sl-cart { display:flex; flex-wrap:wrap; gap:10px; }
.sl-qty { display:flex; align-items:center; height:48px; border:1px solid var(--sl-line-l); border-radius:10px; background:var(--sl-white); }
.sl-qty button { width:44px; height:100%; background:none; border:0; font-size:18px; color:var(--sl-ink); cursor:pointer; }
.sl-qty button:disabled { opacity:.3; cursor:not-allowed; }
.sl-qty input { width:48px; height:100%; border:0 !important; padding:0 !important; text-align:center; font:600 16px var(--sl-mono); background:transparent; color:var(--sl-ink); -moz-appearance:textfield; box-shadow:none !important; }
.sl-qty input::-webkit-outer-spin-button, .sl-qty input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.sl-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; height:48px; padding:0 22px; border-radius:4px; border:1px solid transparent; font:600 14px/1 var(--sl-body); cursor:pointer; flex:1 1 200px; }
.sl-btn:hover .sl-arrow { transform:translateX(3px); }
.sl-btn-k { background:var(--sl-black); color:var(--sl-white); }
.sl-btn-k:hover { background:#26282c; }
.sl-notify-product { max-width:none; }
.sl-unavailable { margin:0; font-size:15px; color:var(--sl-mute); }
.sl-assure { list-style:none; margin:0; padding:4px 0 0; display:grid; gap:8px; font-size:13.5px; color:var(--sl-mute); }
.sl-assure li { display:flex; gap:10px; align-items:baseline; }
.sl-assure li::before { content:""; width:6px; height:6px; border-right:1.5px solid var(--sl-ink); border-top:1.5px solid var(--sl-ink); transform:rotate(45deg) translateY(-1px); flex:0 0 6px; }
.sl-acc { border-top:1px solid var(--sl-line-l); font-family:var(--sl-body); color:var(--sl-ink); }
.sl-acc details { border-bottom:1px solid var(--sl-line-l); }
.sl-acc summary { list-style:none; cursor:pointer; padding:18px 0; display:flex; justify-content:space-between; align-items:center; font:600 18px/1.3 var(--sl-display); letter-spacing:-.01em; }
.sl-acc summary::-webkit-details-marker { display:none; }
.sl-acc summary::after { content:"+"; font:400 20px var(--sl-mono); color:var(--sl-mute); }
.sl-acc details[open] summary::after { content:"−"; }
.sl-acc-in { padding:0 0 20px; color:var(--sl-mute); font-size:15.5px; line-height:1.6; display:grid; gap:10px; max-width:70ch; }
.sl-acc-in p { margin:0; }
.sl-acc-in ol { margin:0; padding-left:20px; display:grid; gap:6px; }
.sl-acc-small { font-size:13px; }
.sl-acc table { width:100%; border-collapse:collapse; font-size:14px; margin:0; border:0; }
.sl-acc td { padding:9px 0; border:0; border-bottom:1px solid var(--sl-line-l); vertical-align:top; background:none !important; }
.sl-acc td:first-child { width:40%; padding-right:12px; font:500 11px/1.6 var(--sl-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--sl-mute); }
.sl-acc td:last-child { color:var(--sl-ink); }

/* WooCommerce notices on product pages (added to cart, errors) */
.sl-wc-notices:empty { display:none; }
.sl-wc-notices { position:fixed; z-index:9990; left:50%; transform:translateX(-50%); bottom:max(20px, env(safe-area-inset-bottom, 0px)); width:min(560px, calc(100vw - 32px)); font:14px/1.5 "Inter", system-ui, sans-serif; }
.sl-wc-notices .woocommerce-message, .sl-wc-notices .woocommerce-error, .sl-wc-notices .woocommerce-info { margin:0 0 8px; padding:14px 16px; list-style:none; background:#0c0c0d; color:#fff; border-radius:6px; box-shadow:0 10px 30px rgba(0,0,0,.25); display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; border:0; }
.sl-wc-notices .woocommerce-error { background:#5a1f17; }
.sl-wc-notices a.button { order:2; color:#fff !important; text-decoration:underline; background:none; padding:0; font-weight:600; }
.sl-wc-notices .woocommerce-message::before, .sl-wc-notices .woocommerce-info::before, .sl-wc-notices .woocommerce-error::before { display:none; }

@media (prefers-reduced-motion:reduce) {
	.sl-status .elementor-heading-title::before { animation:none; }
	.sl-card-media svg, .sl-card-media img, .sl-arrow { transition:none; }
}
