/* Stingfree startsida v2 — only page-scoped styles, for stingfreesnus-child.
 * Congenial is already loaded by the existing theme: no global @font-face.
 * Woo shortcodes render .grid > .card, .cart and .sticky inside .sf-home-v2.
 * No JavaScript, PHP, global tokens or global element selectors.
 */
.sf-home-v2 {
  --bg: #F9F9F1;
  --card: #E7E0D1;
  --ink: #293845;
  --navy: #143852;
  --coral: #EB5648;
  --line: #D0D5D2;
  --muted: #808285;
  --white: #fff;
  --r: 10px;
  --gap: 16px;
  --max: 1200px;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
  background: var(--bg);
  color: var(--ink);
  font-family: Congenial, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  isolation: isolate;
}
body.sf-home-v2-page { margin: 0; padding-top: 0 !important; background: #F9F9F1; }
body.sf-home-v2-page .sf-home-v2-shell { width: 100%; max-width: none; padding: 0; margin: 0; }
.sf-home-v2 *, .sf-home-v2 *::before, .sf-home-v2 *::after { box-sizing: border-box; }
.sf-home-v2 img { max-width: 100%; height: auto; display: block; }
.sf-home-v2 a { color: inherit; }
.sf-home-v2 :where(h1, h2, h3, h4, p, li, button, select, summary) { font-family: inherit; }
.sf-home-v2 :where(h1, h2, h3, h4) { font-weight: 700; color: inherit; }
.sf-home-v2 h1, .sf-home-v2 h2, .sf-home-v2 h3, .sf-home-v2 h4,
.sf-home-v2 p, .sf-home-v2 ul, .sf-home-v2 ol, .sf-home-v2 li { margin: 0; }
.sf-home-v2 ul, .sf-home-v2 ol { padding: 0; }
.sf-home-v2 p { margin: 0 0 1em; }
.sf-home-v2 > .wp-block-group,
.sf-home-v2 .wrap.wp-block-group,
.sf-home-v2 .sf-store-map.wp-block-group { margin-block-start: 0; margin-block-end: 0; }
.sf-home-v2 .wrap {
  width: 100%; max-width: var(--max); margin: 0 auto;
  padding: 0 20px;
}
.sf-home-v2 section[id], .sf-home-v2 #volym { scroll-margin-top: 88px; }
.sf-home-v2 .btn {
  display: inline-block; background: var(--coral); color: #fff;
  border: 0; border-radius: 6px; padding: 12px 22px;
  font: 700 15px/1.25 Congenial, "Segoe UI", Arial, sans-serif;
  text-decoration: none; cursor: pointer; white-space: normal;
  box-shadow: none; min-height: 44px;
}
.sf-home-v2 .btn.ghost { background: transparent; color: var(--coral); border: 2px solid var(--coral); }
.sf-home-v2 .btn:hover { filter: brightness(.95); color: #fff; }
.sf-home-v2 .btn.ghost:hover { color: var(--coral); background: #EB564810; }
.sf-home-v2 a:focus-visible,
.sf-home-v2 button:focus-visible,
.sf-home-v2 select:focus-visible,
.sf-home-v2 summary:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.sf-home-v2 .sf-header {
  position: sticky; top: 0; z-index: 20; background: var(--bg);
  border-bottom: 1px solid var(--line); padding: 0;
}
body.sf-home-v2-page.admin-bar .sf-home-v2 .sf-header { top: 32px; }
.sf-home-v2 .sf-header .wrap {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; height: 64px;
}
.sf-home-v2 .sf-header .logo { display: block; flex: 0 0 auto; }
.sf-home-v2 .sf-header .logo img { height: 40px; width: auto; }
.sf-home-v2 .sf-header nav { display: flex; gap: 26px; font-size: 14px; font-weight: 700; }
.sf-home-v2 .sf-header nav a { text-decoration: none; }
.sf-home-v2 .sf-header nav a:hover { color: var(--coral); }
.sf-home-v2 .cart {
  position: relative; display: flex; align-items: center; gap: 6px;
  font-weight: 700; text-decoration: none; white-space: nowrap;
}
.sf-home-v2 .cart b,
.sf-home-v2 .cart .sf-cart-count {
  background: var(--coral); color: #fff; border-radius: 50%;
  min-width: 22px; height: 22px; padding: 0 4px;
  display: inline-grid; place-items: center; font-size: 12px;
}
.sf-home-v2 .sf-menu-toggle { display: none; }
.sf-home-v2 .hero { padding: 48px 0 24px; }
.sf-home-v2 .hero .wrap {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center; gap: 24px;
}
.sf-home-v2 .hero h1 {
  font-size: 46px; line-height: 1.1; letter-spacing: .04em;
  text-transform: uppercase; margin: 0 0 24px; color: var(--ink);
  overflow-wrap: normal; word-break: normal;
}
.sf-home-v2 .hero .lead { font-size: 18px; margin: 0 0 22px; max-width: 480px; }
.sf-home-v2 .hero .btns { display: flex; gap: 12px; flex-wrap: wrap; }
.sf-home-v2 .hero .img { width: 100%; max-width: 480px; justify-self: center; }
.sf-home-v2 .hero .img img {
  width: 100%; height: auto; max-height: 480px; object-fit: contain;
  object-position: center;
}
.sf-home-v2 .warn {
  max-width: 640px; margin: 24px auto 0; border: 2px solid var(--ink);
  background: #fff; padding: 14px 18px; text-align: center;
  font-weight: 700; font-size: 17px; line-height: 1.5;
}
.sf-home-v2 .age { text-align: center; font-weight: 700; font-size: 14px; margin: 10px 20px 0; }
.sf-home-v2 section h2 {
  font-size: 30px; line-height: 1.3; text-transform: uppercase;
  letter-spacing: .04em; text-align: center; margin: 0 0 8px;
}
.sf-home-v2 .sub { text-align: center; color: var(--muted); margin: 0 0 24px; }
.sf-home-v2 .usp { padding: 36px 0; }
.sf-home-v2 .usp .sub { margin-bottom: 28px; }
.sf-home-v2 .usp ul {
  list-style: none; margin: 0; padding: 0; display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); text-align: center;
}
.sf-home-v2 .usp li { font-weight: 700; font-size: 15px; margin: 0; padding: 0; }
.sf-home-v2 .usp img { height: 56px; width: auto; margin: 0 auto 10px; }
.sf-home-v2 .usp li span { display: block; font-weight: 400; font-size: 14px; color: #3B3B3B; margin-top: 4px; }
.sf-home-v2 .protex { padding: 40px 0; }
.sf-home-v2 .protex .box {
  background: var(--card); border-radius: 16px; padding: 32px;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 32px; align-items: center;
}
.sf-home-v2 .protex .box > img { width: 100%; object-fit: contain; }
.sf-home-v2 .protex h2 { text-align: left; }
.sf-home-v2 .protex h3 { margin: 0 0 8px; font-size: 20px; line-height: 1.5; }
.sf-home-v2 .protex p { margin: 0 0 12px; }
.sf-home-v2 .steps { list-style: none; padding: 0; margin: 0 0 18px; counter-reset: s; }
.sf-home-v2 .steps li { counter-increment: s; padding-left: 40px; position: relative; margin-bottom: 10px; }
.sf-home-v2 .steps li::before {
  content: counter(s); position: absolute; left: 0; top: -2px;
  width: 28px; height: 28px; border-radius: 50%; background: var(--navy);
  color: #fff; display: grid; place-items: center; font-weight: 700;
}
.sf-home-v2 .products { padding: 40px 0; }
.sf-home-v2 .vol {
  max-width: 820px; margin: 0 auto 22px; background: #fff;
  border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px;
  text-align: center; font-size: 14px;
}
.sf-home-v2 .grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gap); padding: 0; margin: 0; list-style: none;
}
.sf-home-v2 .card {
  background: var(--card); border: 0; border-radius: var(--r);
  padding: 14px; margin: 0; display: flex; flex-direction: column;
  position: relative; min-width: 0; box-shadow: none; color: var(--ink);
}
.sf-home-v2 .card img,
.sf-home-v2 .card .sf-product-image,
.sf-home-v2 .card > a:first-child img {
  width: 100%; height: auto; aspect-ratio: 1; object-fit: contain;
  background: transparent; margin: 0 0 10px; border: 0; border-radius: 0;
}
.sf-home-v2 .card h3 { font-size: 16px; line-height: 1.5; margin: 0 0 2px; }
.sf-home-v2 .card .meta { font-size: 13px; color: #3B3B3B; margin: 0 0 2px; }
.sf-home-v2 .card .hook { font-size: 13px; font-weight: 700; margin: 0 0 2px; }
.sf-home-v2 .card .flav { font-size: 13px; color: var(--muted); margin: 0 0 8px; }
.sf-home-v2 .card .price { font-size: 20px; font-weight: 700; margin: auto 0 8px; line-height: 1.5; }
.sf-home-v2 .card .price small { font-size: 12px; font-weight: 400; color: var(--muted); }
.sf-home-v2 .card .price .amount,
.sf-home-v2 .card .price .woocommerce-Price-currencySymbol { color: inherit; font-size: inherit; }
.sf-home-v2 .card select {
  width: 100%; max-width: 100%; min-height: 36px; padding: 8px;
  border: 1px solid var(--line); border-radius: 6px; background: #fff;
  color: var(--ink); font: inherit; font-size: 14px; line-height: 1.25;
  margin: 0 0 8px; box-shadow: none;
}
.sf-home-v2 .card .add_to_cart_button,
.sf-home-v2 .card .sf-v2-add { width: 100%; text-align: center; }
.sf-home-v2 .card .badge {
  position: absolute; top: 10px; left: 10px; z-index: 1;
  background: var(--ink); color: #fff; font-size: 11px; line-height: 1.4;
  font-weight: 700; padding: 3px 8px; border-radius: 20px;
}
.sf-home-v2 .card.oos .add_to_cart_button,
.sf-home-v2 .card .add_to_cart_button:disabled,
.sf-home-v2 .card .add_to_cart_button[aria-disabled="true"],
.sf-home-v2 .card.oos .sf-v2-add,
.sf-home-v2 .card .sf-v2-add:disabled,
.sf-home-v2 .card .sf-v2-add[aria-disabled="true"] {
  background: var(--muted); color: #fff; cursor: not-allowed;
}
.sf-home-v2 .card select:disabled { color: var(--muted); opacity: .65; cursor: not-allowed; }
.sf-home-v2 .card .facts { font-size: 12px; text-align: center; margin-top: 6px; color: var(--ink); text-decoration: underline; }
.sf-home-v2 .card .added_to_cart { font-size: 12px; margin-top: 6px; text-align: center; }
.sf-home-v2 .products .mixhead { margin-top: 36px; }
.sf-home-v2 .fq { background: #FFF4D6; color: #4C421E; border-bottom: 2px dotted #E09900; padding: 0 3px; font-size: .92em; }
.sf-home-v2 .sf-review-notes { margin: 18px auto 0; max-width: 820px; font-size: 13px; text-align: center; }
.sf-home-v2 .about { padding: 40px 0; text-align: center; }
.sf-home-v2 .about p { max-width: 720px; margin: 0 auto 14px; }
.sf-home-v2 .about .btn { margin: 4px; }
.sf-home-v2 .cta2 { padding: 40px 0; text-align: center; }
.sf-home-v2 .cta2 .box { background: var(--card); border-radius: 16px; padding: 32px; }
.sf-home-v2 .cta2 .btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.sf-home-v2 .store { padding: 30px 0; text-align: center; }
.sf-home-v2 .store > .wrap > p { margin: 0 0 16px; }
.sf-home-v2 .sf-store-map {
  max-width: 100%; height: auto; margin: 16px auto 0;
  padding: 0; text-align: left; border: 0; background: transparent;
}
/* The plugin owns map dimensions, controls and store search. No placeholder box.
 * Spectra post-grid ea014555 is copied verbatim. No post-grid style overrides.
 */
.sf-home-v2 .faq { padding: 40px 0; }
.sf-home-v2 .faq details {
  max-width: 800px; margin: 0 auto 10px; background: #fff;
  border: 1px solid var(--line); border-radius: 8px; padding: 14px 18px;
}
.sf-home-v2 .faq summary { font-weight: 700; cursor: pointer; display: block; list-style: none; }
.sf-home-v2 .faq summary::marker { content: ""; }
.sf-home-v2 .faq summary::-webkit-details-marker { display: none; }
.sf-home-v2 .faq summary::before { content: "▸"; display: inline-block !important; width: 1.25em; color: var(--ink); }
.sf-home-v2 .faq details[open] > summary::before { content: "▾"; }
.sf-home-v2 .faq details p { margin: 12px 0 0; }
.sf-home-v2 .sf-footer { background: var(--navy); color: #fff; padding: 36px 0 40px; font-size: 14px; }
.sf-home-v2 .sf-footer .cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 24px; }
.sf-home-v2 .sf-footer .cols > div:first-child > img { height: 36px; width: auto; filter: brightness(0) invert(1); margin-bottom: 12px; }
.sf-home-v2 .sf-footer h4 { margin: 0 0 8px; font-size: 16px; line-height: 1.5; }
.sf-home-v2 .sf-footer a { display: block; text-decoration: none; opacity: .9; margin-bottom: 4px; color: #fff; }
.sf-home-v2 .sf-footer a:hover { opacity: 1; text-decoration: underline; }
.sf-home-v2 .sf-footer a:focus-visible { outline-color: #fff; }
.sf-home-v2 .legal { border-top: 1px solid #ffffff33; margin-top: 24px; padding-top: 16px; }
.sf-home-v2 .legal .w { font-weight: 700; border: 1px solid #fff; padding: 10px; display: inline-block; margin-bottom: 10px; }
.sf-home-v2 .sf-footer .sf-policy-link { display: inline; margin: 0; }
.sf-home-v2 .sticky { display: none; }
.sf-home-v2 .sf-toast {
  position: fixed; right: 20px; bottom: 20px; z-index: 40;
  max-width: min(440px, calc(100vw - 40px)); border-radius: 10px;
  background: var(--ink); color: #fff; padding: 16px 20px;
  box-shadow: 0 6px 20px #0004;
}
.sf-home-v2 .sf-toast[hidden] { display: none; }
.sf-home-v2 .sf-toast a { color: #fff; text-decoration: underline; }
.sf-home-v2 .sf-error { color: #8A241B; font-size: 13px; margin-top: 8px; }
.sf-home-v2 .sf-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
@media (max-width: 980px) {
  .sf-home-v2 .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sf-home-v2 .sf-header nav { gap: 16px; font-size: 13px; }
}
@media (min-width: 768px) and (max-width: 980px) {
  .sf-home-v2 .hero .wrap { grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); }
}
/* Short desktop viewports: reduce only image height/hero spacing, not headline.
 * This keeps the full warning within a typical 650–800px desktop viewport.
 */
@media (min-width: 768px) and (max-height: 800px) {
  .sf-home-v2 .hero { padding-top: 32px; }
  .sf-home-v2 .hero .img img { max-height: min(450px, 50vh); }
}
@media (max-width: 767px) {
  .sf-home-v2 .sf-header nav { display: none; }
  .sf-home-v2 .sf-header .wrap { height: 56px; gap: 12px; }
  .sf-home-v2 .sf-header .logo img { height: 32px; }
  .sf-home-v2 .sf-menu-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; padding: 8px; background: transparent;
    color: var(--ink); border: 1px solid var(--line); border-radius: 6px;
  }
  .sf-home-v2 .sf-header nav.sf-menu-open {
    display: flex; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; gap: 0; padding: 12px 20px;
    border-bottom: 1px solid var(--line); background: var(--bg);
  }
  .sf-home-v2 .sf-header nav.sf-menu-open a { padding: 10px 0; }
  .sf-home-v2 .hero { padding: 24px 0; }
  .sf-home-v2 .hero .wrap { grid-template-columns: minmax(0, 1fr); }
  .sf-home-v2 .hero .img { order: -1; max-width: 260px; margin: 0 auto; }
  .sf-home-v2 .hero .img img { max-height: 260px; }
  .sf-home-v2 .hero h1 { font-size: 30px; text-align: center; }
  .sf-home-v2 .hero .lead { text-align: center; font-size: 16px; margin: 0 auto 18px; }
  .sf-home-v2 .hero .btns { justify-content: center; }
  .sf-home-v2 .warn { font-size: 14px; margin: 20px 20px 0; }
  .sf-home-v2 .usp ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sf-home-v2 .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .sf-home-v2 .card { padding: 10px; }
  .sf-home-v2 .card h3 { font-size: 14px; }
  .sf-home-v2 .card .hook { font-size: 12px; }
  .sf-home-v2 .card .price { font-size: 17px; }
  .sf-home-v2 .card .btn { padding: 10px 8px; font-size: 13px; }
  .sf-home-v2 .card select { font-size: 12px; padding: 8px 4px; }
  .sf-home-v2 section h2 { font-size: 24px; }
  .sf-home-v2 .protex .box { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .sf-home-v2 .cta2 .box { padding: 24px 20px; }
  .sf-home-v2 .sf-footer { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
  .sf-home-v2 .sf-footer .cols { grid-template-columns: minmax(0, 1fr); }
  .sf-home-v2 .sticky {
    display: flex; position: fixed; left: 12px; right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 30;
    background: var(--ink); color: #fff; border-radius: 40px;
    padding: 10px 10px 10px 20px; gap: 12px;
    align-items: center; justify-content: space-between;
    box-shadow: 0 6px 20px #0004; font-weight: 700; font-size: 14px;
  }
  .sf-home-v2 .sticky .btn { padding: 8px 16px; min-height: 36px; border-radius: 30px; white-space: nowrap; }
  .sf-home-v2 .sf-toast { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 601px) and (max-width: 782px) {
  body.sf-home-v2-page.admin-bar .sf-home-v2 .sf-header { top: 46px; }
}
@media (max-width: 600px) {
  body.sf-home-v2-page.admin-bar .sf-home-v2 .sf-header { top: 0; }
}

/* Main integration: password form, stock labels, toast and menu bars. */
body.sf-home-v2-page .sf-v2-password{max-width:520px;margin:100px auto;padding:32px 20px;text-align:center;color:#293845}
body.sf-home-v2-page .sf-v2-password img{width:80px;margin:0 auto 24px}
body.sf-home-v2-page .sf-v2-password h1{font-size:30px;margin-bottom:20px}
body.sf-home-v2-page .sf-v2-password input[type=password]{display:block;width:100%;margin:12px auto;padding:12px;background:white;border:1px solid #D0D5D2}
body.sf-home-v2-page .sf-v2-password input[type=submit]{background:#EB5648;border-radius:6px;color:white;padding:12px 24px}
.sf-home-v2 .card .sf-v2-outofstock{background:var(--muted);color:#fff;width:100%;text-align:center;cursor:not-allowed}
.sf-home-v2 .sticky a{text-decoration:none}
.sf-home-v2 .sf-v2-toast{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s}
.sf-home-v2 .sf-v2-toast.visible{opacity:1;visibility:visible;pointer-events:auto}
.sf-home-v2 .sf-v2-toast.error{background:#8A241B}
.sf-home-v2 .sf-menu-toggle{flex-direction:column;gap:4px}
.sf-home-v2 .sf-menu-toggle span{width:20px;height:2px;background:var(--ink);display:block}
@media(min-width:768px){.sf-home-v2 .sf-menu-toggle{display:none}}

/* Existing child CSS hides br on mobile. Restore only this page's intended hero line break. */
.sf-home-v2 .hero h1 br { display: inline !important; }
