/* /wp-content/plugins/woo-product-bundle/assets/css/frontend.css */
.woosb-wrap {
    display: block;
    width: 100%;
    clear: both;
}

.woosb-wrap .woosb-text, .woosb-wrap .woosb-products, .woosb-bundles .woosb-text, .woosb-bundles .woosb-products {
    margin: 0 0 15px 0;
}

.woosb-wrap .woosb-text, .woosb-bundles .woosb-text {
    white-space: pre-line;
}

.woosb-wrap .woosb-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.woosb-wrap .woosb-summary .woosb-total {
    flex-grow: 1;
}

.woosb-products {
    border-width: 1px 0 0 0;
    border-style: dotted;
    border-color: #e5e5e5;
}

.woosb-products .woosb-item-text {
    padding: 10px 0;
    margin: 0;
    border-bottom: 1px dotted #e5e5e5;
}

.woosb-item-text-type-h1 > h1, .woosb-item-text-type-h2 > h2, .woosb-item-text-type-h3 > h3, .woosb-item-text-type-h4 > h4, .woosb-item-text-type-h5 > h5, .woosb-item-text-type-h6 > h6, .woosb-item-text-type-p > p {
    margin: 0 !important;
}

.woosb-products .woosb-product {
    display: flex;
    align-items: center;
    padding: 10px 0;
    margin: 0;
    border-bottom: 1px dotted #e5e5e5;
}

.woosb-products .woosb-product.woosb-product-hidden {
    display: none;
}

.woosb-products[data-exclude-unpurchasable="yes"] .woosb-product.woosb-product-unpurchasable {
    display: none;
}

.woosb-products .woosb-product > div {
    padding: 0 5px;
}

.woosb-products .woosb-product .woosb-thumb {
    width: 50px;
    flex: 0 0 50px;
}

.woosb-products .woosb-product .woosb-thumb img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
}

.woosb-products .woosb-product .woosb-quantity {
    width: 80px;
    flex: 0 0 80px;
}

.woosb-products .woosb-product .woosb-quantity.woosb-quantity-plus-minus {
    width: 130px;
    flex: 0 0 130px;
}

.woosb-products .woosb-product .woosb-quantity label {
    display: none;
}

.woosb-products .woosb-product .woosb-quantity input {
    width: 100%;
    min-width: 40px;
    text-align: center;
}

.woosb-products .woosb-product .woosb-price {
    width: 100px;
    flex: 0 0 100px;
    text-align: end;
}

.woosb-products .woosb-product .woosb-price * {
    font-size: inherit !important;
}

.woosb-products .woosb-product .woosb-price del {
    opacity: .5;
    text-decoration: line-through;
}

.woosb-products .woosb-product .woosb-price del span {
    text-decoration: line-through;
}

.woosb-products .woosb-product .woosb-price ins {
    font-weight: normal;
}

.woosb-products .woosb-product .woosb-price .amount {
    display: inline-block;
}

.woosb-products .woosb-product .woosb-title {
    flex-grow: 1;
    text-align: start;
}

.woosb-products .woosb-product .woosb-title .woosb-name {
    display: block;
    overflow: hidden;
}

.woosb-products .woosb-product .woosb-title .woosb-name a {
    text-decoration: none;
    box-shadow: none;
}

.woosb-products .woosb-product .woosb-title .woosb-price {
    width: auto;
    flex: 0 0 auto;
    text-align: inherit;
}

.woosb-products .woosb-product .woosb-title .woovr-variations-select .woovr-variation-image, .woosb-products .woosb-product .woosb-title .woovr-variations-select .woovr-variation-price {
    display: none !important;
}

.woosb-products .woosb-product .variations_form {
    margin: 0;
    padding: 0;
}

.woosb-products .woosb-product .woosb-title .stock {
    font-size: 14px;
    margin: 0;
    padding: 0;
}

.woosb-products .woosb-product .woosb-title .stock.in-stock {
    color: green;
}

.woosb-products .woosb-product .woosb-title .stock.available-on-backorder {
    color: orange;
}

.woosb-products .woosb-product .woosb-title .stock.out-of-stock {
    color: red;
}

.woosb-products .woosb-product .woosb-description, .woosb-products .woosb-product .woosb-variation-description {
    font-size: 14px;
}

.woosb-products .woosb-product .variations_form .variations {
    display: inline-block;
    margin: 0 -3px;
    padding: 0;
}

.woosb-products .woosb-product .variations_form .variations .variation {
    display: inline-block;
    border-width: 1px;
    border-style: solid;
    border-color: #e5e5e5;
    padding: 5px 10px;
    margin: 5px 3px 0 3px;
    max-width: 100%;
    border-radius: 2px;
    float: none;
    vertical-align: top;
}

.woosb-products .woosb-product .variations_form .variations .variation > div {
    display: block;
}

.woosb-products .woosb-product .variations_form .variations .reset {
    display: inline-block;
}

.woosb-products .woosb-product .variations_form .variations .variation:last-child {
    margin-bottom: 0;
}

.woosb-products .woosb-product .variations_form .variations .variation .label {
    font-size: 12px;
    line-height: 1;
}

.woosb-products .woosb-product .variations_form .variations .variation .value {
    line-height: 1;
}

.woosb-products .woosb-product .variations_form .variations .variation .value select {
    width: 100%;
    height: auto;
    line-height: 1;
    padding: 0 16px 0 0;
    margin: 0;
    background-color: transparent;
    border-radius: 0;
    border: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    outline: none;
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGNEQzN0Y2NTY0NjcxMUU3QjU5NUI5N0U0NjlDMTIzNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGNEQzN0Y2NjY0NjcxMUU3QjU5NUI5N0U0NjlDMTIzNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY0RDM3RjYzNjQ2NzExRTdCNTk1Qjk3RTQ2OUMxMjM2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY0RDM3RjY0NjQ2NzExRTdCNTk1Qjk3RTQ2OUMxMjM2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pzgqpQAAADdJREFUeNpirKioWMDAwBDPgAoWMQGJLCC+hiR4HYgzQRLfgDgUSoNwCIhmgaq6BtXJCNMNEGAAbM0MK7OUU3AAAAAASUVORK5CYII=');
    background-repeat: no-repeat;
    background-position: 100% 50%;
    background-size: auto;
}

.woosb-products .woosb-product .variations_form .variations a.reset_variations {
    margin: 0;
    font-size: 12px;
}

.woosb-item-child .product-price .amount, .woosb-item-child .product-price .tax_label,
.woosb-item-child .product-subtotal .amount, .woosb-item-child .product-subtotal .tax_label,
.woosb-item-child .product-total .amount, .woosb-item-child .product-total .tax_label {
    opacity: .3;
}

.woosb-alert {
    padding: 6px 10px 6px 14px;
    border-left: 4px solid #222;
    background-color: #eeeeee;
    font-size: 14px;
}

body.woocommerce-no-js .woosb-wrap + form.cart {
    display: none;
}

.woosb-disabled {
    opacity: .5 !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
}


.woosb-quantity-input {
    display: flex;
    align-items: center;
}

.woosb-quantity-input .quantity {
    flex-grow: 1;
    height: auto;
    margin: 0;
}

.woosb-quantity-plus-minus .plus, .woosb-quantity-plus-minus .minus, .woosb-quantity-plus-minus .quantity-minus, .woosb-quantity-plus-minus .quantity-plus, .woosb-quantity-plus-minus .plus-btn, .woosb-quantity-plus-minus .minus-btn {
    display: none !important;
}

.woosb-quantity-input-plus, .woosb-quantity-input-minus {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    line-height: 38px;
    text-align: center;
    cursor: pointer;
    background-color: #fefefe;
    border: 1px solid #e5e5e5;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.woosb-quantity-input .woosb-qty {
    width: 100%;
    min-width: 40px;
    height: 40px;
    line-height: 38px;
    margin: 0;
    padding: 0 5px;
    box-shadow: none;
    border-width: 1px 0;
    border-style: solid;
    border-color: #e5e5e5;
    border-radius: 0;
    background-color: #fefefe;
    -moz-appearance: textfield;
}

.woosb-quantity-input .woosb-qty:focus {
    outline: none;
    outline-color: transparent;
}

.woosb-quantity-input-plus:hover, .woosb-quantity-input-minus:hover {
    background-color: #f0f0f0;
}

.woosb-quantity-input input::-webkit-outer-spin-button, .woosb-quantity-input input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Grid */

.woosb-products[class*="woosb-products-layout-grid"] {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
    border: none;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-item-text {
    width: 100%;
    margin: 10px;
    padding: 10px 0;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product {
    width: calc(50% - 20px);
    margin: 10px;
    padding: 10px;
    border: 1px solid #dddddd;
    font-size: 14px;
    text-align: center;
    position: relative;
    display: flex;
    flex-direction: column;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product:hover {
    border-color: green;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product .woosb-name {
    font-weight: 700;
}

.woosb-products.woosb-products-layout-grid-1 .woosb-product {
    width: calc(100% - 20px);
}

.woosb-products.woosb-products-layout-grid-3 .woosb-product {
    width: calc(100% / 3 - 20px);
}

.woosb-products.woosb-products-layout-grid-4 .woosb-product {
    width: calc(25% - 20px);
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product > div {
    width: 100% !important;
    flex: 0 0 auto !important;
    text-align: center;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 5px;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product > div:last-child {
    margin-bottom: 0;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product select {
    text-align: center;
}

.woosb-products[class*="woosb-products-layout-grid"] .woosb-product .variations_form .variations .reset {
    display: none;
}

.woosb-cart-item-edit:before {
    content: '✎';
    display: inline-block;
    margin-right: 5px;
}

@media only screen and (max-width: 767px) {
    .woosb-products[class*="woosb-products-layout-grid"] .woosb-product {
        width: calc(50% - 20px);
    }
}

@media only screen and (max-width: 479px) {
    .woosb-products[class*="woosb-products-layout-grid"] .woosb-product {
        width: calc(100% - 20px);
    }
}

/* RTL */

body.rtl .woosb-alert {
    padding: 6px 14px 6px 10px;
    border-right: 4px solid #222;
    border-left: none;
}
/* /wp-content/themes/strumpsnodden/assets/css/base.css */
/* Strumpsnodden base. Every colour, size and face comes from theme.json presets. */
:root {
	--sn-navy: var(--wp--preset--color--navy);
	--sn-muted: var(--wp--preset--color--muted);
	--sn-green: var(--wp--preset--color--green);
	--sn-pink: var(--wp--preset--color--pink);
	--sn-cream: var(--wp--preset--color--cream);
	--sn-sand: var(--wp--preset--color--sand);
	--sn-line: var(--wp--preset--color--line);
	--sn-white: var(--wp--preset--color--white);
	--sn-heading: var(--wp--preset--font-family--heading);
	--sn-gutter: clamp(1rem, 3vw, 2.5rem);
	--sn-max: 1320px;
	--sn-radius: 20px;
	--sn-shadow: 0 2px 0 var(--sn-line);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
:where(a) { text-underline-offset: 0.15em; }
:focus-visible { outline: 3px solid var(--sn-pink); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text, .sn-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sn-skip-link:focus { position: fixed !important; left: 1rem; top: 1rem; z-index: 1000; width: auto; height: auto; clip: auto; padding: 0.75rem 1rem; background: var(--sn-white); color: var(--sn-navy); font-weight: 700; border-radius: 8px; }

/* Layout */
.sn-main { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.sn-container { width: 100%; max-width: calc(var(--sn-max) + 2 * var(--sn-gutter)); margin-inline: auto; padding-inline: var(--sn-gutter); }
/* Section blocks draw their own container; the page around them adds no padding. */
.sn-main > .entry-content, .sn-main > .wp-block-post-content { padding: 0; }
.wp-block-post-content > .alignfull { max-width: none; }

/* Text */
.sn-eyebrow { font-weight: 700; font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sn-green); }
.sn-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.4; }
.sn-muted { color: var(--sn-muted); }
.sn-center { text-align: center; }

/* Buttons: one component, three looks. 48px minimum target. */
.sn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 3.5rem; padding: 0 1.75rem; border-radius: 999px; border: 2px solid var(--sn-green); background: var(--sn-green); color: var(--sn-white); font: 700 1.0625rem/1.1 var(--wp--preset--font-family--body); text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.sn-btn:hover { color: var(--sn-white); transform: translateY(-1px); box-shadow: 0 6px 16px rgb(22 32 79 / 0.16); }
.sn-btn--outline { background: var(--sn-white); color: var(--sn-navy); border-color: var(--sn-navy); }
.sn-btn--outline:hover { color: var(--sn-navy); }
.sn-btn--pink { background: var(--sn-pink); border-color: var(--sn-pink); }
.sn-btn--pink-outline { background: var(--sn-white); color: var(--sn-pink); border-color: var(--sn-pink); }
.sn-btn--pink-outline:hover { color: var(--sn-pink); }
.sn-btn--small { min-height: 3rem; padding: 0 1.25rem; font-size: 0.9375rem; }
.sn-btn svg { flex: 0 0 auto; }
@media (prefers-reduced-motion: reduce) { .sn-btn { transition: none; } .sn-btn:hover { transform: none; } }

/* Check list */
.sn-checks { list-style: none; padding: 0; display: grid; gap: 0.5rem; }
.sn-checks li { display: flex; gap: 0.6rem; align-items: flex-start; line-height: 1.4; }
.sn-checks li > .sn-check { flex: 0 0 1.375rem; width: 1.375rem; height: 1.375rem; border-radius: 999px; background: var(--sn-green); display: inline-flex; align-items: center; justify-content: center; margin-top: 0.05em; }

/* Text in [hakparentes] that must be filled in before launch. */
.sn-todo { background: #FFF3C4; outline: 1px dashed #C9A100; border-radius: 4px; padding: 0 0.2em; }

/* Ordinary pages (villkor, om oss, WooCommerce shortcodes) */
.sn-prose { padding-block: var(--wp--preset--spacing--50); }
.sn-prose > * + * { margin-block-start: 1rem; }
.sn-prose h1 { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.sn-img-missing { display: flex; align-items: center; justify-content: center; background: repeating-linear-gradient(45deg, #efe8dc 0 12px, #f6f1e8 12px 24px); color: var(--sn-muted); font-weight: 600; font-size: 0.875rem; min-height: 120px; }
.sn-section-head { text-align: center; margin-bottom: 1.75rem; }
.sn-section-head p { margin-top: 0.375rem; font-size: 1.1875rem; color: var(--sn-muted); }
.sn-num { flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border-radius: 999px; background: #FCE1EA; color: var(--sn-navy); font: 700 1.5rem/1 var(--sn-heading); display: inline-flex; align-items: center; justify-content: center; }


/* === Undersidor (ägs av tråden undersidor) ===================================
 * Ordinary pages built from core blocks: sections, page hero, cards, steps,
 * chips, FAQ, call to action and long text. Every class is set on a core block
 * in the page content, so the pages need neither WPBakery nor Woodmart.
 *
 * Colours: only theme.json presets (via --sn-*). Tints are mixed from them with
 * color-mix(), so a palette change in theme.json carries through.
 * Rhythm: bands 96 / 64 / 48 px (desktop / tablet / mobile), as in the design
 * system (milstolpe 1, A5). Two bands in a row with the same tone share their
 * padding, so the page never shows a double gap.
 */
.sn-sec, .sn-phero {
	/* Köpgrön a touch darker so white button text passes WCAG AA (5.2:1; the
	   plain token gives 4.3:1, too low for 17 px text). */
	--snu-green: color-mix(in srgb, var(--sn-green) 85%, var(--sn-navy));
	--snu-green-hover: color-mix(in srgb, var(--sn-green) 72%, var(--sn-navy));
	--snu-pink-soft: color-mix(in srgb, var(--sn-pink) 14%, var(--sn-white));
	--snu-band: clamp(3rem, 1.75rem + 4.5vw, 6rem);
	--snu-radius: 20px;
	--snu-radius-lg: 28px;
	--snu-pad: clamp(1.25rem, 0.9rem + 1.2vw, 2rem);
}

/* ---- Bands ---------------------------------------------------------------- */
.sn-sec { padding-block: var(--snu-band); }
.sn-sec--cream { background: var(--sn-cream); }
.sn-sec--sand { background: var(--sn-sand); }
.sn-sec--white { background: var(--sn-white); }
.sn-sec--tight { padding-block: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.sn-sec--white + .sn-sec--white,
.sn-sec--cream + .sn-sec--cream,
.sn-sec--sand + .sn-sec--sand,
.sn-phero + .sn-sec--cream { padding-top: 0; }
.sn-sec.sn-sec--flush-top { padding-top: 0; }
/* Terms and other short-hero pages: the text starts closer to the title. */
.sn-phero--small + .sn-sec { padding-top: clamp(2.25rem, 1.5rem + 3vw, 4rem); }
.wp-block-post-content > .sn-sec, .wp-block-post-content > .sn-phero { margin-block: 0; width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw) !important; }
.sn-sec__in { width: 100%; max-width: calc(1200px + 2 * var(--sn-gutter)); margin-inline: auto; padding-inline: var(--sn-gutter); }
.sn-sec__in--narrow { max-width: calc(820px + 2 * var(--sn-gutter)); }
.sn-sec__in > * + * { margin-block-start: 1.5rem; }

/* ---- Type ----------------------------------------------------------------- */
.sn-sec h1, .sn-sec h2, .sn-sec h3, .sn-phero h1 { color: var(--sn-navy); text-wrap: balance; }
.sn-sec h2 { font-size: var(--wp--preset--font-size--title); line-height: 1.1; letter-spacing: -0.01em; }
.sn-sec h3 { font-family: var(--wp--preset--font-family--body); font-weight: 800; font-size: 1.1875rem; line-height: 1.3; }
.sn-sec p, .sn-sec li { color: var(--sn-muted); line-height: 1.65; text-wrap: pretty; }
.sn-sec strong { color: var(--sn-navy); }
.sn-sec a:not(.wp-block-button__link), .sn-phero a:not(.wp-block-button__link) { color: var(--sn-navy); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.sn-sec a:not(.wp-block-button__link):hover, .sn-phero a:not(.wp-block-button__link):hover { color: var(--snu-green); text-decoration-thickness: 2px; }
.sn-sec .sn-eyebrow, .sn-phero .sn-eyebrow { color: var(--snu-green); }

/* Centred section heading with intro */
.sn-head { text-align: center; max-width: 780px; margin-inline: auto; }
.sn-head > * + * { margin-block-start: 0.75rem; }
.sn-head p { font-size: var(--wp--preset--font-size--large); line-height: 1.55; }
.sn-sec__in > .sn-head + * { margin-block-start: clamp(1.75rem, 1.25rem + 1.5vw, 2.75rem); }

/* ---- Page hero ------------------------------------------------------------ */
.sn-phero { background: var(--sn-cream); padding-block: clamp(2.25rem, 1rem + 4vw, 5rem); }
.sn-phero .wp-block-columns { gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: center; margin: 0; }
.sn-phero__copy > * + * { margin-block-start: 1.25rem; }
.sn-phero h1 { font-size: clamp(2.375rem, 1.6rem + 3vw, 4.25rem); line-height: 1.02; letter-spacing: -0.02em; }
.sn-phero__sub { font: 700 clamp(1.1875rem, 1rem + 0.8vw, 1.625rem)/1.25 var(--wp--preset--font-family--body); color: var(--sn-navy) !important; margin-block-start: 0.75rem !important; }
.sn-phero__lead { font-size: var(--wp--preset--font-size--large); line-height: 1.55; max-width: 38rem; color: var(--sn-navy); }
.sn-phero .wp-block-buttons { margin-block-start: 1.75rem !important; }
.sn-phero--center { text-align: center; }
.sn-phero--center .sn-phero__copy { max-width: 860px; margin-inline: auto; }
.sn-phero--center .sn-phero__lead { margin-inline: auto; }
.sn-phero--center .wp-block-buttons, .sn-phero--center .sn-chips { justify-content: center; }
.sn-phero--small { padding-block: clamp(2rem, 1rem + 3vw, 3.75rem); }
.sn-phero--small h1 { font-size: clamp(2.125rem, 1.5rem + 2.2vw, 3.25rem); }
.sn-phero--small .sn-phero__lead { font-size: 1.1875rem; }
.sn-logo-small img { width: auto; max-width: 220px; max-height: 64px; object-fit: contain; }
.sn-phero--center .sn-logo-small { display: flex; justify-content: center; }
.sn-media img, img.sn-media { width: 100%; height: auto; border-radius: var(--snu-radius-lg, 28px); display: block; }
.sn-media { margin: 0; }

/* ---- Pill list ------------------------------------------------------------ */
.sn-chips { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.sn-chips li { margin: 0 !important; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: 999px; padding: 0.4375rem 0.9375rem; font-size: 0.9375rem; font-weight: 600; color: var(--sn-navy) !important; line-height: 1.3; }
.sn-chips--grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.sn-chips--grid li { position: relative; border-radius: 14px; padding: 0.875rem 1rem 0.875rem 2.5rem; font-size: 1rem; }
.sn-chips--grid li::before { content: ""; position: absolute; left: 1rem; top: 50%; width: 0.625rem; height: 0.625rem; margin-top: -0.3125rem; border-radius: 999px; background: var(--sn-pink); }

/* ---- Buttons: core button block drawn as the theme's .sn-btn -------------- */
.sn-sec .wp-block-buttons, .sn-phero .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.sn-sec .wp-block-button__link, .sn-phero .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 0.625rem; min-height: 3.5rem; padding: 0 1.75rem; border-radius: 999px; border: 2px solid var(--snu-green); background: var(--snu-green); color: var(--sn-white); font: 700 1.0625rem/1.15 var(--wp--preset--font-family--body); text-decoration: none; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease; }
/* Arrow on the primary button, as in the mockup. Drawn with a mask so screen readers say nothing. */
.sn-sec .wp-block-button:not(.is-style-outline) .wp-block-button__link::after, .sn-phero .wp-block-button:not(.is-style-outline) .wp-block-button__link::after { content: ""; flex: 0 0 auto; width: 1.125rem; height: 1.125rem; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .15s ease; }
.sn-sec .wp-block-button__link:hover, .sn-phero .wp-block-button__link:hover { color: var(--sn-white); background: var(--snu-green-hover); border-color: var(--snu-green-hover); transform: translateY(-1px); box-shadow: 0 6px 16px rgb(22 32 79 / 0.16); }
.sn-sec .wp-block-button__link:hover::after, .sn-phero .wp-block-button__link:hover::after { transform: translateX(2px); }
.sn-sec .is-style-outline .wp-block-button__link, .sn-phero .is-style-outline .wp-block-button__link { background: var(--sn-white); color: var(--sn-navy); border-color: var(--sn-navy); }
.sn-sec .is-style-outline .wp-block-button__link:hover, .sn-phero .is-style-outline .wp-block-button__link:hover { color: var(--sn-navy); background: var(--sn-white); border-color: var(--sn-navy); }
.sn-sec .wp-block-button__link:focus-visible, .sn-phero .wp-block-button__link:focus-visible { outline: 3px solid var(--sn-pink); outline-offset: 3px; border-radius: 999px; }
@media (prefers-reduced-motion: reduce) {
	.sn-sec .wp-block-button__link, .sn-phero .wp-block-button__link, .sn-sec .wp-block-button__link::after, .sn-phero .wp-block-button__link::after { transition: none; }
	.sn-sec .wp-block-button__link:hover, .sn-phero .wp-block-button__link:hover, .sn-sec .wp-block-button__link:hover::after, .sn-phero .wp-block-button__link:hover::after { transform: none; }
}

/* ---- Cards ---------------------------------------------------------------- */
.sn-cards.wp-block-columns { gap: clamp(1rem, 0.75rem + 1vw, 1.5rem); margin-inline: 0; margin-bottom: 0; align-items: stretch; }
.sn-cards.wp-block-columns + .sn-cards.wp-block-columns { margin-top: clamp(1rem, 0.75rem + 1vw, 1.5rem); }
.sn-cards > .wp-block-column { display: flex; flex-direction: column; }
.sn-card { --snu-tone: var(--sn-line); flex: 1 1 auto; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--snu-radius); padding: var(--snu-pad); }
.sn-card > * + * { margin-block-start: 0.625rem; }
.sn-sec .sn-card h3 { font-family: var(--sn-heading); font-weight: 700; font-size: var(--wp--preset--font-size--subtitle); line-height: 1.15; letter-spacing: -0.005em; }
/* Short colour bar above the title of a toned card. */
.sn-card h3::before { content: ""; display: block; width: 2.25rem; height: 4px; border-radius: 4px; background: var(--snu-tone); margin-bottom: 1rem; }
.sn-card--img h3::before, .sn-card:not([class*="sn-card--"]) h3::before { display: none; }
.sn-card p, .sn-card li { font-size: 1rem; }
.sn-card ul { padding-left: 1.2rem; }
.sn-card--pink { --snu-tone: var(--sn-pink); background: color-mix(in srgb, var(--sn-pink) 5%, var(--sn-white)); border-color: color-mix(in srgb, var(--sn-pink) 18%, var(--sn-white)); }
.sn-card--green { --snu-tone: var(--sn-green); background: color-mix(in srgb, var(--sn-green) 5%, var(--sn-white)); border-color: color-mix(in srgb, var(--sn-green) 18%, var(--sn-white)); }
.sn-card--sand { --snu-tone: color-mix(in srgb, var(--sn-pink) 45%, var(--sn-line)); background: color-mix(in srgb, var(--sn-sand) 60%, var(--sn-white)); border-color: var(--sn-line); }
.sn-card--blue { --snu-tone: var(--sn-navy); background: color-mix(in srgb, var(--sn-navy) 4%, var(--sn-white)); border-color: color-mix(in srgb, var(--sn-navy) 13%, var(--sn-white)); }
.sn-sec--cream .sn-card--sand, .sn-sec--sand .sn-card--sand { background: var(--sn-white); }
.sn-card--img { padding: 0; overflow: hidden; }
.sn-card--img > :not(figure) { padding-inline: var(--snu-pad); }
.sn-card--img > figure + * { margin-block-start: var(--snu-pad); }
.sn-card--img > :last-child { padding-bottom: var(--snu-pad); }
.sn-card--img figure { margin: 0; }
.sn-card--img figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 0; }

/* Core columns force align-items: normal !important, so centre each column. */
.sn-phero .wp-block-column, .sn-split .wp-block-column { align-self: center; }

/* ---- Image next to text --------------------------------------------------- */
.sn-split.wp-block-columns { gap: clamp(1.5rem, 1rem + 3vw, 4.5rem); align-items: center; margin-inline: 0; margin-bottom: 0; }
.sn-split .wp-block-column > * + * { margin-block-start: 1rem; }
.sn-split .wp-block-column > h2 + p { margin-block-start: 0.75rem; }
.sn-split .wp-block-column > .sn-steps, .sn-split .wp-block-column > .sn-checklist, .sn-split .wp-block-column > .wp-block-buttons { margin-block-start: 1.5rem; }

/* ---- Numbered steps: an ordered list of cards ----------------------------- */
ol.sn-steps { list-style: none; counter-reset: sn-step; padding: 0 !important; display: grid; gap: 0.75rem; }
ol.sn-steps > li { counter-increment: sn-step; position: relative; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: 18px; padding: 1.125rem 1.375rem 1.125rem 4.75rem; margin: 0 !important; min-height: 4.75rem; font-size: 1rem; line-height: 1.6; }
ol.sn-steps > li::before { content: counter(sn-step); position: absolute; left: 1.25rem; top: 1.125rem; width: 2.5rem; height: 2.5rem; border-radius: 999px; background: var(--snu-pink-soft); color: var(--sn-navy); font: 700 1.3125rem/2.5rem var(--sn-heading); text-align: center; }
ol.sn-steps > li strong:first-child { display: block; color: var(--sn-navy); font-size: 1.0625rem; font-weight: 800; line-height: 1.3; margin-bottom: 0.25rem; }
ol.sn-steps--row { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 1rem; }
ol.sn-steps--row > li { padding: 1.375rem 1.375rem 1.5rem; }
ol.sn-steps--row > li::before { position: static; display: block; margin-bottom: 0.875rem; width: 3rem; height: 3rem; font-size: 1.5rem; line-height: 3rem; }
/* On a white band the step cards take the cream tone instead of a white box on white. */
.sn-sec--white ol.sn-steps > li { background: var(--sn-cream); border-color: transparent; }
.sn-sec--white .sn-panel ol.sn-steps > li, .sn-sec--white .sn-card ol.sn-steps > li { background: var(--sn-white); border-color: var(--sn-line); }

/* ---- Check list on core lists --------------------------------------------- */
ul.sn-checklist { list-style: none; padding: 0 !important; display: grid; gap: 0.625rem; }
ul.sn-checklist li { position: relative; padding-left: 2.125rem; margin: 0 !important; }
ul.sn-checklist li::before { content: ""; position: absolute; left: 0; top: 0.2em; width: 1.375rem; height: 1.375rem; border-radius: 999px; background: var(--snu-green, var(--sn-green)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 0.875rem no-repeat; }
ul.sn-checklist--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }

/* ---- Questions and answers (core details block) --------------------------- */
.sn-faq { display: grid; gap: 0.625rem; }
.sn-faq > * { margin: 0 !important; }
.sn-faq .wp-block-details { background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: 18px; padding: 0; transition: border-color .15s ease, box-shadow .15s ease; }
.sn-sec--white .sn-faq .wp-block-details { background: var(--sn-cream); border-color: transparent; }
.sn-faq .wp-block-details:hover { border-color: color-mix(in srgb, var(--sn-navy) 25%, var(--sn-line)); }
.sn-sec .sn-faq .wp-block-details[open] { background: var(--sn-white); border-color: var(--sn-line); box-shadow: 0 4px 18px rgb(22 32 79 / 0.07); }
.sn-faq .wp-block-details summary { cursor: pointer; list-style: none; position: relative; padding: 1.1875rem 4rem 1.1875rem 1.375rem; font-weight: 700; color: var(--sn-navy); font-size: 1.0625rem; line-height: 1.35; border-radius: 18px; }
.sn-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.sn-faq .wp-block-details summary::after { content: ""; position: absolute; right: 1.125rem; top: 50%; width: 2rem; height: 2rem; margin-top: -1rem; border-radius: 999px; background: var(--snu-pink-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316204F' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 0.875rem no-repeat; transition: transform .2s ease; }
.sn-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.sn-faq .wp-block-details > :not(summary) { padding: 0 1.375rem; margin: 0 0 1.25rem; }
.sn-faq .wp-block-details > summary + * { margin-top: -0.25rem; }
.sn-faq .wp-block-details summary:focus-visible { outline: 3px solid var(--sn-pink); outline-offset: -3px; border-radius: 18px; }
@media (prefers-reduced-motion: reduce) { .sn-faq .wp-block-details, .sn-faq .wp-block-details summary::after { transition: none; } }

/* ---- Dark call to action -------------------------------------------------- */
.sn-cta { background: var(--sn-navy); border-radius: var(--snu-radius-lg, 28px); padding: clamp(2.25rem, 1.25rem + 3.5vw, 4.25rem) clamp(1.25rem, 1rem + 3vw, 3.75rem); text-align: center; }
.sn-cta > * + * { margin-block-start: 1rem; }
.sn-cta h2 { color: var(--sn-white) !important; max-width: 20em; margin-inline: auto; }
.sn-cta p { color: var(--sn-white) !important; max-width: 640px; margin-inline: auto; font-size: 1.125rem; }
.sn-cta a:not(.wp-block-button__link) { color: var(--sn-white) !important; }
.sn-cta .wp-block-buttons { justify-content: center; margin-block-start: 1.75rem !important; }
.sn-sec .sn-cta .is-style-outline .wp-block-button__link, .sn-sec .sn-cta .is-style-outline .wp-block-button__link:hover { background: transparent; color: var(--sn-white); border-color: var(--sn-white); }
.sn-sec .sn-cta .wp-block-button__link:focus-visible { outline-color: var(--sn-white); }

/* ---- Soft panel ----------------------------------------------------------- */
.sn-panel { background: color-mix(in srgb, var(--sn-green) 5%, var(--sn-white)); border: 1px solid color-mix(in srgb, var(--sn-green) 14%, var(--sn-white)); border-radius: var(--snu-radius-lg, 28px); padding: clamp(1.5rem, 1rem + 2.5vw, 3.25rem); }
.sn-sec--cream .sn-panel, .sn-sec--sand .sn-panel { background: var(--sn-white); border-color: var(--sn-line); }
.sn-panel > * + * { margin-block-start: 1rem; }
.sn-panel > h2 + p { margin-block-start: 0.75rem; max-width: 46rem; }
.sn-panel > .sn-chips, .sn-panel > .sn-checklist, .sn-panel > .wp-block-buttons { margin-block-start: 1.5rem; }

/* ---- Long text: terms, policies, tips ------------------------------------- */
.sn-prose { padding-block: 0; max-width: 44rem; margin-inline: auto; }
.sn-sec .sn-prose > * + * { margin-block-start: 1.125rem; }
.sn-sec .sn-prose > :first-child { margin-block-start: 0 !important; }
.sn-sec .sn-prose h2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); line-height: 1.15; margin-block-start: clamp(2.5rem, 2rem + 1.5vw, 3.25rem) !important; }
.sn-sec .sn-prose h2 + * { margin-block-start: 0.875rem; }
.sn-sec .sn-prose h3 { font-size: 1.1875rem; margin-block-start: 2rem !important; }
.sn-sec .sn-prose h3 + * { margin-block-start: 0.5rem; }
.sn-sec .sn-prose h4 { font: 800 1rem/1.4 var(--wp--preset--font-family--body); color: var(--sn-navy); margin-block-start: 1.5rem !important; }
.sn-prose p, .sn-prose li { font-size: 1.0625rem; line-height: 1.75; }
.sn-prose ul, .sn-prose ol { padding-left: 1.375rem; }
.sn-prose ul li::marker { color: var(--sn-pink); }
.sn-prose ol li::marker { color: var(--sn-navy); font-weight: 700; }
.sn-prose li + li { margin-top: 0.375rem; }
.sn-prose li > ul, .sn-prose li > ol { margin-top: 0.375rem; }
.sn-prose a { text-decoration: underline; overflow-wrap: anywhere; }
.sn-prose .wp-block-table, .sn-table { margin-inline: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--sn-line); border-radius: 14px; }
.sn-prose table, .sn-table table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.sn-prose th, .sn-prose td, .sn-table th, .sn-table td { border: 0; border-bottom: 1px solid var(--sn-line); padding: 0.75rem 1rem; text-align: left; vertical-align: top; color: var(--sn-muted); line-height: 1.5; }
.sn-prose tbody tr:last-child td, .sn-table tbody tr:last-child td { border-bottom: 0; }
.sn-prose thead th, .sn-table thead th { background: var(--sn-sand); color: var(--sn-navy); font-weight: 700; border-bottom: 1px solid var(--sn-line); }
.sn-prose .wp-block-table thead, .sn-table thead { border-bottom: 0; }
.sn-prose .wp-block-table figcaption { font-size: 0.875rem; color: var(--sn-muted); padding: 0.625rem 1rem; }
.sn-address { background: var(--sn-sand); border-radius: 18px; padding: 1.125rem 1.25rem; }
.sn-address p { margin: 0 !important; line-height: 1.55; }

/* ---- Contact -------------------------------------------------------------- */
.sn-contact-card { text-align: left; }
.sn-contact-card .sn-big { font: 700 1.375rem/1.3 var(--wp--preset--font-family--body); color: var(--sn-navy) !important; }

/* ---- Tablet and phone ----------------------------------------------------- */
@media (max-width: 1024px) {
	.sn-chips--grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 781px) {
	.sn-sec__in > * + * { margin-block-start: 1.25rem; }
	.sn-phero__copy > * + * { margin-block-start: 1rem; }
	.sn-phero .wp-block-buttons { margin-block-start: 1.5rem !important; }
	.sn-logo-small img { max-width: 168px; max-height: 52px; }
	.sn-chips li { font-size: 0.875rem; padding: 0.375rem 0.8125rem; }
	.sn-chips--grid li { font-size: 0.9375rem; padding: 0.75rem 1rem 0.75rem 2.375rem; }
	ul.sn-checklist--2 { grid-template-columns: 1fr; }
	.sn-sec .wp-block-buttons > .wp-block-button, .sn-phero .wp-block-buttons > .wp-block-button { width: 100%; }
	.sn-sec .wp-block-button__link, .sn-phero .wp-block-button__link { width: 100%; white-space: normal; text-align: center; }
	.sn-media img, img.sn-media { border-radius: var(--snu-radius, 20px); }
	ol.sn-steps > li { padding: 1rem 1.125rem 1.125rem 4rem; }
	ol.sn-steps > li::before { left: 1rem; top: 1rem; width: 2.25rem; height: 2.25rem; font-size: 1.1875rem; line-height: 2.25rem; }
	ol.sn-steps--row > li { padding: 1.25rem; }
	.sn-faq .wp-block-details summary { padding: 1.0625rem 3.5rem 1.0625rem 1.125rem; font-size: 1rem; }
	.sn-faq .wp-block-details summary::after { right: 0.875rem; width: 1.875rem; height: 1.875rem; margin-top: -0.9375rem; }
	.sn-faq .wp-block-details > :not(summary) { padding: 0 1.125rem; }
	.sn-cta { border-radius: var(--snu-radius, 20px); }
	.sn-cta p { font-size: 1.0625rem; }
	.sn-panel { border-radius: var(--snu-radius, 20px); }
	.sn-prose p, .sn-prose li { font-size: 1rem; line-height: 1.7; }
	.sn-prose th, .sn-prose td, .sn-table th, .sn-table td { padding: 0.625rem 0.75rem; }
}
@media (max-width: 480px) {
	.sn-chips--grid { grid-template-columns: 1fr; }
}

/* ---- Small portrait (core/image .sn-portrait) ----------------------------- */
.sn-portrait { margin: 0; }
.sn-portrait img, .sn-portrait.sn-media img { display: block; width: auto; max-width: min(220px, 100%); height: auto; border-radius: var(--snu-radius, 20px); }
@media (max-width: 781px) {
	.sn-portrait { display: flex; justify-content: center; }
	.sn-portrait img { margin-inline: auto; }
}

/* Steps in a row with only one sentence each (no <strong> title). */
ol.sn-steps--row > li:not(:has(> strong:first-child)) { color: var(--sn-navy); font-weight: 600; line-height: 1.5; }

/* ---- Fix for Sales Platform: ghost button kept white text on a light ground. */
.snsp-wrap .snsp-button-row .snsp-button.snsp-button-ghost { color: var(--snsp-primary, var(--sn-navy)) !important; }

/* ---- Short pages: the footer sits at the bottom of the window ------------- */
.wp-site-blocks:has(.sn-phero) { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.wp-site-blocks:has(.sn-phero) > main { flex: 1 0 auto; }

/* ---- Cards whose images are small or cut out: shown whole ----------------- */
.sn-cards--contain .sn-card--img > figure { display: flex; align-items: center; justify-content: center; background: var(--sn-white); padding: 1rem 1rem 0.5rem; border-bottom: 1px solid color-mix(in srgb, var(--sn-line) 70%, transparent); }
.sn-cards--contain .sn-card--img > figure img { width: auto; max-width: 100%; height: auto; max-height: 13.5rem; aspect-ratio: auto; object-fit: contain; }

/* Rows of four cards (or sn-cards--2) go two by two on tablets. */
@media (min-width: 782px) and (max-width: 1100px) {
	.wp-block-columns.sn-cards--2, .wp-block-columns.sn-cards:has(> .wp-block-column:nth-child(4)) { flex-wrap: wrap !important; }
	.sn-cards--2 > .wp-block-column, .sn-cards:has(> .wp-block-column:nth-child(4)) > .wp-block-column { flex: 0 0 calc(50% - 0.75rem) !important; }
}

/* ---- Video ---------------------------------------------------------------- */
.wp-block-video.sn-media { margin: 0; border-radius: var(--snu-radius-lg, 28px); overflow: hidden; background: var(--sn-navy); }
.wp-block-video.sn-media video { display: block; width: 100%; height: auto; }

/* ---- Long text on a white sheet (prose(tone='cream')) --------------------- */
.sn-sec--cream .sn-prose, .sn-sec--sand .sn-prose { background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--snu-radius-lg, 28px); padding: clamp(1.5rem, 0.75rem + 3.5vw, 3.75rem); max-width: 50rem; }
.sn-phero--small + .sn-sec--cream, .sn-phero--small + .sn-sec--sand { padding-top: 0; }
.sn-prose .sn-panel { padding: clamp(1.125rem, 0.9rem + 1vw, 1.75rem); border-radius: var(--snu-radius, 20px); }
.sn-prose .sn-panel > * + * { margin-block-start: 0.75rem; }
.sn-prose .sn-address { padding: 1.125rem 1.375rem; }

/* ---- Long reference tables (water hardness) ------------------------------- */
.sn-prose .sn-hardness table { font-size: 0.9375rem; font-variant-numeric: tabular-nums; }
.sn-prose .sn-hardness th, .sn-prose .sn-hardness td { padding: 0.4375rem 0.875rem; border-bottom-color: color-mix(in srgb, var(--sn-line) 60%, transparent); }
.sn-prose .sn-hardness tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--sn-cream) 70%, var(--sn-white)); }
.sn-prose .sn-hardness td:nth-child(odd) { color: var(--sn-navy); }
.sn-prose .sn-hardness th:nth-child(even), .sn-prose .sn-hardness td:nth-child(even) { text-align: right; width: 4.5rem; font-weight: 700; color: var(--sn-navy); }
.sn-prose .sn-hardness th:nth-child(3), .sn-prose .sn-hardness td:nth-child(3) { border-left: 1px solid var(--sn-line); }

@media (max-width: 781px) {
	/* Leads in the page hero: a calmer size on phones. */
	.sn-phero__lead, .sn-phero--small .sn-phero__lead { font-size: 1.0625rem; line-height: 1.6; }
	.sn-phero h1 { font-size: clamp(2.125rem, 1.5rem + 3vw, 2.625rem); }
	.sn-phero--small h1 { font-size: clamp(1.875rem, 1.4rem + 2.4vw, 2.375rem); }
	.sn-head p { font-size: 1.0625rem; }
	/* Steps in a row: number beside the text on phones, as in the column version. */
	ol.sn-steps--row > li { padding: 1rem 1.125rem 1.125rem 4rem; }
	ol.sn-steps--row > li::before { position: absolute; left: 1rem; top: 1rem; margin: 0; width: 2.25rem; height: 2.25rem; font-size: 1.1875rem; line-height: 2.25rem; }
	/* Cards with whole images: image on the left, text on the right. */
	.sn-cards--contain .sn-card--img { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); column-gap: 1rem; row-gap: 0.375rem; align-content: start; padding: 0.875rem; }
	.sn-cards--contain .sn-card--img > figure { grid-row: 1 / span 6; align-self: start; padding: 0.375rem; border: 1px solid var(--sn-line); border-radius: 14px; }
	.sn-cards--contain .sn-card--img > figure img { max-height: none; width: 100%; }
	.sn-cards--contain .sn-card--img > :not(figure) { grid-column: 2; padding: 0 !important; margin: 0 !important; }
	.sn-cards--contain .sn-card--img > h3 { align-self: center; margin-top: 0.25rem !important; }
	.sn-cards--contain .sn-card--img p { font-size: 0.9375rem; line-height: 1.55; }
	.sn-cards--contain.wp-block-columns { gap: 0.75rem; }
	.sn-prose .sn-hardness th, .sn-prose .sn-hardness td { padding: 0.375rem 0.5rem; font-size: 0.875rem; }
	.sn-prose .sn-hardness th:nth-child(even), .sn-prose .sn-hardness td:nth-child(even) { width: 1%; white-space: nowrap; padding-inline: 0.375rem 0.625rem; }
	.wp-block-video.sn-media { border-radius: var(--snu-radius, 20px); }
}
/* A page that ends on a coloured band keeps that colour down to the footer. */
.sn-main:has(.wp-block-post-content > .sn-sec--cream:last-child) { background: var(--sn-cream); }
.sn-main:has(.wp-block-post-content > .sn-sec--sand:last-child) { background: var(--sn-sand); }
@media (max-width: 781px) {
	/* On phones the page title and its lead read from the left, like the start page and the text below. */
	.sn-phero--center { text-align: left; }
	.sn-phero--center .wp-block-buttons, .sn-phero--center .sn-chips, .sn-phero--center .sn-logo-small { justify-content: flex-start; }
}

/* ---- Köpvillkor and Säljarvillkor ------------------------------------------ */
/* Sales Platform swaps these two pages' text for its own campaign-aware terms as
   plain HTML (h2, address, h3 + p), so the white sheet is drawn around it here. */
:is(.page-id-21057, .page-id-21055) .sn-main { background: var(--sn-cream); padding-block: clamp(2rem, 1rem + 3vw, 4rem) clamp(3rem, 2rem + 4vw, 6rem) !important; }
:is(.page-id-21057, .page-id-21055) .sn-main > .wp-block-post-content { box-sizing: border-box; width: calc(100% - 2 * var(--sn-gutter)); max-width: 50rem; margin-inline: auto; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--snu-radius-lg, 28px); padding: clamp(1.5rem, 0.75rem + 3.5vw, 3.75rem) !important; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content > * { max-width: none !important; margin-inline: 0 !important; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content > * + * { margin-block-start: 1.125rem; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content > h2:first-child { margin: 0; color: var(--sn-navy); font-size: clamp(1.875rem, 1.4rem + 2.2vw, 3.25rem); line-height: 1.05; letter-spacing: -0.02em; text-wrap: balance; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content > h2:first-child + p { margin-block-start: 1.5rem; background: var(--sn-sand); border-radius: 18px; padding: 1.125rem 1.375rem; line-height: 1.55; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content h3 { color: var(--sn-navy); font-family: var(--wp--preset--font-family--body); font-weight: 800; font-size: 1.1875rem; line-height: 1.3; margin-block-start: 2rem; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content h3 + * { margin-block-start: 0.5rem; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content :is(p, li) { font-size: 1.0625rem; line-height: 1.75; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content > h2:first-child + p { font-size: 1rem; }
:is(.page-id-21057, .page-id-21055) .wp-block-post-content a { text-decoration: underline; overflow-wrap: anywhere; }

/* /wp-content/plugins/woo-swish-e-commerce/assets/stylesheets/swish.css */
.swish-logo img {
  max-width: 70px !important;
  z-index: 100001;
}

.bjorntech-logo img {
  max-width: 500px;
  z-index: 100001;
}

.swish-circle img {
  max-width: 70px !important;
  z-index: 100001;
}

.swish-centered {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  margin-bottom: 10px;
}

.swish-fixed {
  position: fixed;
}

.swish-top-left {
  top: 0;
  left: 10;
}

#swish-status {
  z-index: 100002;
}

.swish-close {
  color: #aaaaaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.swish-close:hover,
.swish-close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

/* The Modal (background) */
.swish-modal {
  position: fixed;
  /* Stay in place */
  z-index: 100000;
  /* Sit on top */
  padding-top: 100px;
  /* Location of the box */
  left: 0;
  top: 0;
  width: 100%;
  /* Full width */
  height: 100%;
  /* Full height */
  overflow: auto;
  /* Enable scroll if needed */
  background-color: rgb(0, 0, 0);
  /* Fallback color */
  background-color: rgba(0, 0, 0, 0.4);
  /* Black w/ opacity */
}

/* The Modal (background) */
.swish-modal-admin {
  display: none;
  /* Hidden by default */
  position: fixed;
  /* Stay in place */
  z-index: 100000;
  /* Sit on top */
  padding-top: 100px;
  /* Location of the box */
  left: 0;
  top: 0;
  width: 100%;
  /* Full width */
  height: 100%;
  /* Full height */
  overflow: auto;
  /* Enable scroll if needed */
  background-color: rgb(0, 0, 0);
  /* Fallback color */
  background-color: rgba(0, 0, 0, 0.4);
  /* Black w/ opacity */
}

/* Modal Content */
.swish-modal-content {
  background-color: #fefefe;
  margin: auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

/* .swish-loader {
  -webkit-animation: spin 2s linear infinite;
   Safari
  animation: spin 2s linear infinite;
} */

/* Safari */
/*@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
  }
}*/

/*@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}*/

#overlay {
  position: fixed;
  display: none;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 100002;
  cursor: pointer;
}

#swish-text {
  position: fixed;
  text-align: center;
  font-size: 25px;
  color: black;
}

.swishcontent {
  display: none;
}

label[for=payment_method_swish] {
  line-height: 32px;
}

.wc-swish-label-container > img {
  float: right !important;
}

.wc-swish-label-container > span {
  float: left !important;
}

.swish_container {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  height: 100%;
}

.swish-centered-internal {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.swish-circle-internal {
  transform: scale(2);
}

.swish-logo-internal {
  transform: scale(2);
  margin-top: max(50px, calc(1% + 3vw));
  margin-bottom: max(50px, calc(1% + 3vw));
}

.swish-button-internal {
  background: linear-gradient(180deg,#1dafec,#129bd4 98.72%);
  border-radius: 8px;
  display: inline-flex; /* Changed to inline-flex */
  width: auto; /* Added width: auto; */
  padding: 16px 28px;
  justify-content: center; /* Centered text horizontally */
  align-items: center; /* Centered text vertically */
  text-align: center;
  margin-top: max(50px, calc(1% + 3vw));
  transition: background-color 0.3s;
}

.swish-button-internal a {
  color: #fff;
  font-family: Museo Sans Rounded,sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  text-decoration: none;
}

.swish-button-internal:hover {
  background-color: #129bd4;
}

.swish-status-new {
  font-family: Museo Sans Rounded, sans-serif;
  font-weight: 600;
  font-size: 3.5rem;
  margin-bottom:max(80px, calc(1% + 6vw));
  line-height: 1.3;
}

/* /wp-content/plugins/woocommerce/assets/css/photoswipe/photoswipe.min.css */
.woocommerce img.pswp__img,.woocommerce-page img.pswp__img{max-width:none}button.pswp__button{box-shadow:none!important;background-image:url('/wp-content/plugins/woocommerce/assets/css/photoswipe/default-skin/default-skin.png')!important}button.pswp__button,button.pswp__button--arrow--left::before,button.pswp__button--arrow--right::before,button.pswp__button:hover{background-color:transparent!important}button.pswp__button--arrow--left,button.pswp__button--arrow--left:hover,button.pswp__button--arrow--right,button.pswp__button--arrow--right:hover{background-image:none!important}button.pswp__button--close:hover{background-position:0 -44px}button.pswp__button--zoom:hover{background-position:-88px 0}/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;-ms-touch-action:none;touch-action:none;z-index:1500;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:0}.pswp *{-webkit-box-sizing:border-box;box-sizing:border-box}.pswp img{max-width:none}.admin-bar .pswp{height:calc(100% - var(--wp-admin--admin-bar--height,0px));top:var(--wp-admin--admin-bar--height,0)}.pswp--animate_opacity{opacity:.001;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4, 0, .22, 1);transition:opacity 333ms cubic-bezier(.4, 0, .22, 1)}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.pswp__bg{position:absolute;left:0;top:0;width:100%;height:100%;background:#000;opacity:0;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;will-change:opacity}.pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden}.pswp__container,.pswp__zoom-wrap{-ms-touch-action:none;touch-action:none;position:absolute;left:0;right:0;top:0;bottom:0}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 333ms cubic-bezier(.4, 0, .22, 1);transition:transform 333ms cubic-bezier(.4, 0, .22, 1)}.pswp__bg{will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4, 0, .22, 1);transition:opacity 333ms cubic-bezier(.4, 0, .22, 1)}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{-webkit-transition:none;transition:none}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden}.pswp__item{position:absolute;left:0;right:0;top:0;bottom:0;overflow:hidden}.pswp__img{position:absolute;width:auto;height:auto;top:0;left:0}.pswp__img--placeholder{-webkit-backface-visibility:hidden}.pswp__img--placeholder--blank{background:#222}.pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.pswp__error-msg a{color:#ccc;text-decoration:underline}
/* /wp-content/plugins/woocommerce/assets/css/photoswipe/default-skin/default-skin.min.css */
/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp__button{width:44px;height:44px;position:relative;background:0 0;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:left;opacity:.75;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-box-shadow:none;box-shadow:none}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{outline:0;opacity:.9}.pswp__button::-moz-focus-inner{padding:0;border:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:url("/wp-content/plugins/woocommerce/assets/css/photoswipe/default-skin/default-skin.png") 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px}@media (-webkit-min-device-pixel-ratio:1.1),(-webkit-min-device-pixel-ratio:1.09375),(min-resolution:105dpi),(min-resolution:1.1dppx){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url("/wp-content/plugins/woocommerce/assets/css/photoswipe/default-skin/default-skin.svg")}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:0 0}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{display:none;background-position:-88px 0}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{background:0 0;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:'';top:35px;background-color:rgba(0,0,0,.3);height:30px;width:32px;position:absolute}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:1600;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity}.pswp__share-modal--hidden{display:none}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:44px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.25);box-shadow:0 2px 5px rgba(0,0,0,.25);-webkit-transform:translateY(6px);-ms-transform:translateY(6px);transform:translateY(6px);-webkit-transition:-webkit-transform .25s;transition:transform .25s;-webkit-backface-visibility:hidden;will-change:transform}.pswp__share-tooltip a{display:block;padding:8px 12px;color:#000;text-decoration:none;font-size:14px;line-height:18px}.pswp__share-tooltip a:hover{text-decoration:none;color:#000}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px}.pswp__share-modal--fade-in{opacity:1}.pswp__share-modal--fade-in .pswp__share-tooltip{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.pswp--touch .pswp__share-tooltip a{padding:16px 12px}a.pswp__share--facebook:before{content:'';display:block;width:0;height:0;position:absolute;top:-12px;right:15px;border:6px solid transparent;border-bottom-color:#fff;-webkit-pointer-events:none;-moz-pointer-events:none;pointer-events:none}a.pswp__share--facebook:hover{background:#3e5c9a;color:#fff}a.pswp__share--facebook:hover:before{border-bottom-color:#3e5c9a}a.pswp__share--twitter:hover{background:#55acee;color:#fff}a.pswp__share--pinterest:hover{background:#ccc;color:#ce272d}a.pswp__share--download:hover{background:#ddd}.pswp__counter{position:relative;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px;margin-inline-end:auto}.pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px}.pswp__caption small{font-size:11px;color:#bbb}.pswp__caption__center{text-align:left;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;will-change:opacity;direction:ltr}.pswp__preloader__icn{width:20px;height:20px;margin:12px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url("/wp-content/plugins/woocommerce/assets/css/photoswipe/default-skin/preloader.gif") 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{-webkit-animation:clockwise .5s linear infinite;animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{-webkit-animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite;animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{background:0 0;opacity:.75;width:14px;height:14px;position:absolute;left:15px;top:15px;margin:0}.pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.pswp--css_animation .pswp__preloader__donut{-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;border:2px solid #fff;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;position:absolute;top:0;left:0;background:0 0;margin:0}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right}}@-webkit-keyframes clockwise{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes clockwise{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes donut-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(-140deg);transform:rotate(-140deg)}100%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes donut-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(-140deg);transform:rotate(-140deg)}100%{-webkit-transform:rotate(0);transform:rotate(0)}}.pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:1550}.pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%;display:flex;justify-content:flex-end}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4, 0, .22, 1);transition:opacity 333ms cubic-bezier(.4, 0, .22, 1)}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__caption,.pswp__top-bar{background-color:rgba(0,0,0,.5)}.pswp__ui--fit .pswp__caption,.pswp__ui--fit .pswp__top-bar{background-color:rgba(0,0,0,.3)}.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:0 0}
/* /wp-content/themes/strumpsnodden/assets/css/woo.css */
/*
 * Strumpsnodden WooCommerce: product page, archives, cart, checkout, order
 * received and My Account. Loaded only on those pages, where it replaces
 * WooCommerce's general, layout, small-screen and block-theme stylesheets
 * (functions.php). It draws WooCommerce's own classic markup; every colour,
 * face and size comes from theme.json through the base.css tokens.
 */

/* ---------- Tokens derived from theme.json ---------- */
:root {
	/* White text on the buy green and the campaign pink reaches 4.5:1 only when they are a little deeper. */
	--sn-buy: color-mix(in srgb, var(--sn-green) 78%, var(--sn-navy));
	--sn-alert: color-mix(in srgb, var(--sn-pink) 85%, var(--sn-navy));
	/* Field and control borders: 3:1 against white and cream. */
	--sn-field: color-mix(in srgb, var(--sn-navy) 55%, var(--sn-white));
	--sn-ok-bg: color-mix(in srgb, var(--sn-green) 12%, var(--sn-white));
	--sn-alert-bg: color-mix(in srgb, var(--sn-pink) 9%, var(--sn-white));
	--sn-pink-soft: color-mix(in srgb, var(--sn-pink) 7%, var(--sn-white));
	/* The home page's number badge (base.css .sn-num), here for the checkout's step numbers. */
	--sn-badge: #FCE1EA;
	/* The one buy action on a page lifts off the card. */
	--sn-buy-shadow: 0 6px 18px color-mix(in srgb, var(--sn-buy) 28%, transparent);
	--sn-card-radius: 16px;
	--sn-field-radius: 12px;
	--sn-field-h: 50px;
}

/* ---------- Page frame ---------- */
.sn-woo { background: var(--sn-cream); padding-block: clamp(1.25rem, 0.8rem + 2vw, 2.5rem) var(--wp--preset--spacing--60); min-height: 50vh; }
.sn-woo__inner > * + * { margin-block-start: 1.25rem; }
.sn-woo [data-block-name="woocommerce/legacy-template"] { max-width: none; }
.sn-woo .clear { clear: both; }
.sn-woo h1, .sn-woo .page-title { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.625rem); line-height: 1.1; letter-spacing: -0.01em; }
.sn-woo h2 { font-size: clamp(1.375rem, 1.15rem + 0.9vw, 1.875rem); }
.sn-woo h3 { font-size: 1.125rem; font-family: var(--wp--preset--font-family--body); font-weight: 700; line-height: 1.3; }
.sn-woo p, .sn-woo address { line-height: 1.55; }
.sn-woo a { color: var(--sn-navy); }
.sn-woo a:hover { color: var(--sn-buy); }
.sn-woo .amount { white-space: nowrap; }

.woocommerce-breadcrumb { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--sn-muted); margin-bottom: 0.75rem; }
.woocommerce-breadcrumb a { color: var(--sn-muted); display: inline-block; padding-block: 0.375rem; text-decoration-color: color-mix(in srgb, var(--sn-muted) 45%, transparent); }
.woocommerce-breadcrumb a:hover { color: var(--sn-navy); text-decoration-color: currentColor; }

/* ---------- Buttons ---------- */
.sn-woo .button, .sn-woo .wp-element-button, .sn-woo #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 3rem; padding: 0.5rem 1.375rem; border-radius: 999px;
	border: 2px solid var(--sn-navy); background: var(--sn-white); color: var(--sn-navy);
	font: 700 1rem/1.15 var(--wp--preset--font-family--body); text-align: center; text-decoration: none;
	cursor: pointer; transition: background-color .15s ease, color .15s ease;
}
.sn-woo .button:hover, .sn-woo .wp-element-button:hover, .sn-woo #respond input#submit:hover { background: var(--sn-navy); color: var(--sn-white); }
/* The page's one green action: add to cart, to checkout, place order, sign in. */
.sn-woo .button.alt, .sn-woo .single_add_to_cart_button, .sn-woo .checkout-button, .sn-woo #place_order,
.sn-woo ul.products li.product .button.add_to_cart_button, .sn-woo .return-to-shop .button,
.sn-woo .woocommerce-form-login__submit, .sn-woo .woocommerce-form-register__submit, .sn-woo .woocommerce-ResetPassword .button {
	background: var(--sn-buy); border-color: var(--sn-buy); color: var(--sn-white);
}
.sn-woo .button.alt:hover, .sn-woo .single_add_to_cart_button:hover, .sn-woo .checkout-button:hover, .sn-woo #place_order:hover,
.sn-woo ul.products li.product .button.add_to_cart_button:hover, .sn-woo .return-to-shop .button:hover,
.sn-woo .woocommerce-form-login__submit:hover, .sn-woo .woocommerce-form-register__submit:hover, .sn-woo .woocommerce-ResetPassword .button:hover {
	background: var(--sn-navy); border-color: var(--sn-navy); color: var(--sn-white);
}
.sn-woo .button.disabled, .sn-woo .button:disabled, .sn-woo .button[disabled] { opacity: 0.55; cursor: not-allowed; }
.sn-woo .button:disabled:hover, .sn-woo .button[disabled]:hover { background: var(--sn-white); color: var(--sn-navy); }
.sn-woo .single_add_to_cart_button.disabled:hover { background: var(--sn-buy); border-color: var(--sn-buy); }
.sn-woo .button.loading { opacity: 0.7; pointer-events: none; }
.sn-woo .button.loading::after { content: ""; width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: sn-spin .7s linear infinite; }
.sn-woo .button.added::after { content: ""; width: 0.5em; height: 0.9em; border: solid currentColor; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translateY(-0.1em); }
.sn-woo a.added_to_cart { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 700; }
@keyframes sn-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sn-woo .button.loading::after, .sn-woo .blockUI.blockOverlay::before { animation-duration: 2.5s; } .sn-woo .button { transition: none; } }

/* ---------- Notices (WooCommerce's block-style banners and the classic notices) ---------- */
.sn-woo .wc-block-components-notice-banner, .sn-woo .woocommerce-error, .sn-woo .woocommerce-message, .sn-woo .woocommerce-info, .sn-woo .woocommerce-notice {
	display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.875rem;
	margin: 0 0 1rem; padding: 0.875rem 1rem; list-style: none;
	border: 1px solid var(--sn-line); border-radius: 14px; background: var(--sn-white); color: var(--sn-navy);
	font-size: 1rem; line-height: 1.45;
}
.sn-woo .wc-block-components-notice-banner > svg { flex: 0 0 auto; width: 24px; height: 24px; margin: 0; border-radius: 999px; padding: 2px; background: var(--sn-navy); fill: var(--sn-white); }
.sn-woo .wc-block-components-notice-banner > .wc-block-components-notice-banner__content { flex: 1 1 14rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; font-size: 1rem; }
.sn-woo .wc-block-components-notice-banner__content > ul { margin: 0; padding-left: 1.1rem; }
.sn-woo .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward,
.sn-woo .woocommerce-message .button { order: 2; min-height: 2.75rem; opacity: 1; float: none; padding: 0.375rem 1.125rem; text-decoration: none; color: var(--sn-navy); }
.sn-woo .wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward:hover { color: var(--sn-white); }
/* WooCommerce Blocks' notice style takes the ring off the link inside a notice; it gets the theme's ring back. */
.sn-woo .wc-block-components-notice-banner > .wc-block-components-notice-banner__content :is(a, .button):focus-visible { outline: 3px solid var(--sn-pink); outline-offset: 3px; box-shadow: none; }
/* WooCommerce moves focus to a notice it has just shown so a screen reader reads it; the notice is not a control and gets no ring. */
.sn-woo :is(.woocommerce-notices-wrapper, .woocommerce-NoticeGroup, .wc-block-components-notice-banner, .woocommerce-error, .woocommerce-message, .woocommerce-info)[tabindex="-1"]:focus { outline: none; }
.sn-woo .wc-block-components-notice-banner.is-success, .sn-woo .woocommerce-message, .sn-woo .woocommerce-notice--success { background: var(--sn-ok-bg); border-color: color-mix(in srgb, var(--sn-green) 35%, var(--sn-white)); }
.sn-woo .wc-block-components-notice-banner.is-success > svg { background: var(--sn-buy); }
.sn-woo .wc-block-components-notice-banner.is-error, .sn-woo .woocommerce-error { background: var(--sn-alert-bg); border-color: var(--sn-alert); }
.sn-woo .wc-block-components-notice-banner.is-error > svg { background: var(--sn-alert); }
.sn-woo .wc-block-components-notice-banner.is-info, .sn-woo .woocommerce-info { background: var(--sn-white); border-color: var(--sn-line); }
.sn-woo .woocommerce-error li { margin: 0; }
.sn-woo .woocommerce-NoticeGroup { margin-bottom: 1rem; }
.sn-woo .coupon-error-notice, .sn-woo .checkout-inline-error-message { flex-basis: 100%; margin: 0.25rem 0 0; color: var(--sn-alert); font-weight: 600; font-size: 0.9375rem; }
.woocommerce-store-notice, p.demo_store { position: fixed; inset: auto 0 0; z-index: 99; margin: 0; padding: 0.875rem var(--sn-gutter); background: var(--sn-navy); color: var(--sn-white); text-align: center; }
.woocommerce-store-notice a { color: var(--sn-white); font-weight: 700; }

/* ---------- Forms ---------- */
.sn-woo .form-row { margin: 0 0 0.875rem; padding: 0; }
.sn-woo .form-row label:not(.woocommerce-form__label-for-checkbox, .checkbox), .sn-woo .woocommerce-form label:not(.woocommerce-form__label-for-checkbox, .checkbox), .sn-woo .comment-form label {
	display: block; margin-bottom: 0.375rem; font-size: 0.9375rem; font-weight: 600; line-height: 1.3;
}
.sn-woo .required { color: var(--sn-alert); text-decoration: none; border: 0; font-weight: 700; }
.sn-woo .optional { color: var(--sn-muted); font-weight: 400; }
.sn-woo .woocommerce-input-wrapper { display: block; position: relative; }
.sn-woo input.input-text, .sn-woo input[type="text"], .sn-woo input[type="email"], .sn-woo input[type="tel"], .sn-woo input[type="password"],
.sn-woo input[type="number"], .sn-woo input[type="search"], .sn-woo input[type="url"], .sn-woo input[type="date"], .sn-woo textarea, .sn-woo select {
	width: 100%; min-height: var(--sn-field-h); padding: 0 0.875rem; margin: 0;
	border: 1.5px solid var(--sn-field); border-radius: var(--sn-field-radius); background-color: var(--sn-white); color: var(--sn-navy);
	font: 400 1rem/1.4 var(--wp--preset--font-family--body); box-shadow: none;
}
.sn-woo textarea { min-height: 7rem; padding: 0.75rem 0.875rem; resize: vertical; }
.sn-woo select { appearance: none; padding-right: 2.5rem; background: var(--sn-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2316204F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.875rem center; cursor: pointer; }
.sn-woo input:focus, .sn-woo textarea:focus, .sn-woo select:focus { border-color: var(--sn-navy); }
.sn-woo input::placeholder, .sn-woo textarea::placeholder { color: var(--sn-muted); opacity: 0.8; }
.sn-woo .woocommerce-invalid input.input-text, .sn-woo .woocommerce-invalid select, .sn-woo .woocommerce-invalid .select2-selection, .sn-woo input.has-error, .sn-woo input[aria-invalid="true"] { border-color: var(--sn-alert); }
.sn-woo input[type="checkbox"], .sn-woo input[type="radio"] { width: 22px; height: 22px; margin: 0; flex: 0 0 auto; accent-color: var(--sn-buy); cursor: pointer; }
.sn-woo .woocommerce-form__label-for-checkbox, .sn-woo label.checkbox {
	display: inline-flex; align-items: center; gap: 0.625rem; min-height: 2.75rem; margin: 0; font-size: 1rem; font-weight: 600; cursor: pointer;
}
.sn-woo form .form-row-first, .sn-woo form .form-row-last { width: calc(50% - 0.375rem); }
.sn-woo form .form-row-first { float: left; }
.sn-woo form .form-row-last { float: right; }
.sn-woo form .form-row-wide { clear: both; }
.sn-woo fieldset { border: 0; margin: 0 0 1rem; padding: 0; min-width: 0; }
.sn-woo legend { font-weight: 700; font-size: 1.125rem; margin-bottom: 0.75rem; padding: 0; }
/* Field wrappers are a grid: two half fields share a row, postcode sits beside the town, everything else is full width. */
.sn-woo .woocommerce-billing-fields__field-wrapper, .sn-woo .woocommerce-shipping-fields__field-wrapper, .sn-woo .woocommerce-address-fields__field-wrapper {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 0.75rem;
}
.sn-woo [class*="fields__field-wrapper"] > .form-row { grid-column: 1 / -1; width: auto; float: none; }
.sn-woo [class*="fields__field-wrapper"] > .form-row-first, .sn-woo [class*="fields__field-wrapper"] > .form-row-last,
.sn-woo [class*="fields__field-wrapper"] > [id$="_postcode_field"], .sn-woo [class*="fields__field-wrapper"] > [id$="_city_field"] { grid-column: auto; }
.sn-woo .password-input { display: block; position: relative; }
.sn-woo .password-input input { padding-right: 3.25rem; }
.sn-woo .show-password-input {
	position: absolute; top: 50%; right: 0.25rem; transform: translateY(-50%); width: 44px; height: 44px; min-height: 0; padding: 0;
	border: 0; border-radius: 999px; background: transparent; color: var(--sn-navy); cursor: pointer;
}
.sn-woo .show-password-input::before {
	content: ""; position: absolute; inset: 11px; background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sn-woo .show-password-input.display-password::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3l18 18'/%3E%3Cpath d='M10.6 6.1A10 10 0 0 1 12 6c6.4 0 10 6 10 6a17 17 0 0 1-3.2 3.9M6.6 6.6C3.7 8.4 2 12 2 12s3.6 7 10 7a9.6 9.6 0 0 0 5.4-1.6'/%3E%3Cpath d='M9.9 9.9a3 3 0 0 0 4.2 4.2'/%3E%3C/svg%3E");
}
.sn-woo .woocommerce-password-strength { margin-top: 0.5rem; padding: 0.5rem 0.75rem; border-radius: 10px; font-weight: 600; font-size: 0.9375rem; background: var(--sn-alert-bg); }
.sn-woo .woocommerce-password-strength.strong, .sn-woo .woocommerce-password-strength.good { background: var(--sn-ok-bg); }
.sn-woo .woocommerce-password-hint { display: block; margin-top: 0.375rem; font-size: 0.875rem; color: var(--sn-muted); }

/* select2 (country), which WooCommerce draws over the native select. */
.sn-woo .select2-container { width: 100% !important; /* select2 writes a pixel width inline */ }
.sn-woo .select2-container .select2-selection--single { height: var(--sn-field-h); border: 1.5px solid var(--sn-field); border-radius: var(--sn-field-radius); background: var(--sn-white); }
.sn-woo .select2-container .select2-selection--single .select2-selection__rendered { line-height: calc(var(--sn-field-h) - 3px); padding: 0 2.5rem 0 0.875rem; color: var(--sn-navy); font-size: 1rem; }
.sn-woo .select2-container .select2-selection--single .select2-selection__arrow { height: calc(var(--sn-field-h) - 3px); right: 0.625rem; }
.sn-woo .select2-container--focus .select2-selection--single, .sn-woo .select2-container--open .select2-selection--single { border-color: var(--sn-navy); outline: 3px solid var(--sn-pink); outline-offset: 2px; }
.select2-dropdown { border: 1.5px solid var(--sn-navy); border-radius: var(--sn-field-radius); overflow: hidden; font-family: var(--wp--preset--font-family--body); color: var(--sn-navy); }
.select2-container--open .select2-dropdown--below { border-top-left-radius: 0; border-top-right-radius: 0; }
.select2-container--open .select2-dropdown--above { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.select2-results__option { padding: 0.75rem 0.875rem; min-height: 44px; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--sn-navy); color: var(--sn-white); }
.select2-search--dropdown .select2-search__field { min-height: 44px; border-radius: 10px; padding: 0 0.75rem; font-size: 1rem; }

/* The busy overlay that WooCommerce's scripts lay over a form while it updates. */
.sn-woo .blockUI.blockOverlay { position: relative; }
.sn-woo .blockUI.blockOverlay::before {
	content: ""; position: absolute; top: 50%; left: 50%; width: 2rem; height: 2rem; margin: -1rem 0 0 -1rem;
	border: 3px solid var(--sn-line); border-top-color: var(--sn-buy); border-radius: 50%; animation: sn-spin .8s linear infinite;
}

/* ---------- Price, sale badge, stars, stock ---------- */
.sn-woo .price { color: var(--sn-navy); font-weight: 800; }
.sn-woo .price del { color: var(--sn-muted); font-weight: 600; font-size: 0.65em; margin-right: 0.35rem; opacity: 1; }
.sn-woo .price ins { text-decoration: none; color: var(--sn-navy); }
.sn-woo span.onsale {
	position: absolute; top: 0.875rem; left: 0.875rem; z-index: 3; min-height: 0; min-width: 0; margin: 0;
	padding: 0.3rem 0.75rem; border-radius: 999px; background: var(--sn-alert); color: var(--sn-white);
	font-weight: 800; font-size: 0.875rem; line-height: 1.2; letter-spacing: 0.04em; text-transform: uppercase;
}
.sn-woo .star-rating { position: relative; display: inline-block; overflow: hidden; width: 5.6em; height: 1.15em; font: 1rem/1.15 system-ui, sans-serif; letter-spacing: 0.12em; }
.sn-woo .star-rating::before { content: "\2605\2605\2605\2605\2605"; position: absolute; top: 0; left: 0; color: var(--sn-line); }
.sn-woo .star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; height: 0; padding-top: 1.5em; }
.sn-woo .star-rating span::before { content: "\2605\2605\2605\2605\2605"; position: absolute; top: 0; left: 0; color: var(--sn-navy); }
.sn-woo .stock { font-weight: 700; }
.sn-woo .stock.in-stock { color: var(--sn-buy); }
.sn-woo .stock.out-of-stock, .sn-woo .stock.available-on-backorder { color: var(--sn-alert); }

/* ---------- Product cards: shop, categories, search, related, upsells, cross-sells ----------
 * The home page's bestseller card (blocks/bestsellers/style.css), grown for a catalogue: a large square
 * picture, a name that may take two lines, and price and button on one baseline across the row. */
.sn-woo ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.sn-woo ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sn-woo ul.products::before, .sn-woo ul.products::after { content: none; }
.sn-woo ul.products li.product {
	position: relative; margin: 0; width: auto; float: none;
	display: flex; flex-direction: column; align-items: stretch; gap: 0.875rem; text-align: center;
	padding: 0.75rem 0.75rem 1.25rem; background: var(--sn-white); border-radius: var(--sn-radius); box-shadow: var(--sn-shadow);
	transition: box-shadow .2s ease, transform .2s ease;
}
.sn-woo ul.products li.product:hover { box-shadow: 0 2px 0 var(--sn-line), 0 14px 32px rgb(22 32 79 / 0.10); transform: translateY(-2px); }
.sn-woo ul.products li.product > a.woocommerce-LoopProduct-link { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; width: 100%; text-decoration: none; color: var(--sn-navy); }
.sn-woo ul.products li.product a.woocommerce-LoopProduct-link:focus-visible { outline-offset: 4px; border-radius: 14px; }
.sn-woo ul.products li.product img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; margin: 0 0 0.5rem; border-radius: 14px; background: var(--sn-white); }
.sn-woo ul.products li.product.outofstock img { opacity: 0.6; }
.sn-woo ul.products li.product .woocommerce-loop-product__title, .sn-woo ul.products li.product .woocommerce-loop-category__title {
	padding-inline: 0.5rem; font-family: var(--sn-heading); font-size: 1.25rem; line-height: 1.2; margin: 0; overflow-wrap: anywhere; text-wrap: balance;
}
.sn-woo ul.products li.product a:hover .woocommerce-loop-product__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.15em; }
/* The price sits at the foot of the link, so every price in a row lines up whatever the name's length. */
.sn-woo ul.products li.product .price { display: block; margin-top: auto; padding-top: 0.25rem; font-size: 1.5rem; line-height: 1.2; }
.sn-woo ul.products li.product .star-rating { margin: 0 auto; }
.sn-woo ul.products li.product .button { align-self: center; width: auto; min-width: 78%; max-width: 100%; margin-top: 0; min-height: 3.25rem; white-space: nowrap; }
/* The same cart symbol as the home page's buy buttons. */
.sn-woo ul.products li.product .button.add_to_cart_button.ajax_add_to_cart::before, .sn-woo div.product form.cart .single_add_to_cart_button::before {
	content: ""; flex: 0 0 auto; width: 1.25em; height: 1.25em; background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11h10.2L20 8H6.2'/%3E%3Ccircle cx='9' cy='19' r='1.5'/%3E%3Ccircle cx='17' cy='19' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sn-woo ul.products li.product .button.loading::before, .sn-woo ul.products li.product .button.added::before { content: none; }
.sn-woo ul.products li.product .added_to_cart { align-self: center; margin-top: -0.5rem; }
.sn-woo ul.products li.product .onsale { top: 1.25rem; left: 1.25rem; }
.sn-woo ul.products li.product-category mark.count { background: none; color: var(--sn-muted); }
@media (prefers-reduced-motion: reduce) { .sn-woo ul.products li.product, .sn-woo ul.products li.product:hover { transition: none; transform: none; } }
@media (max-width: 1100px) { .sn-woo ul.products, .sn-woo ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
	.sn-woo ul.products, .sn-woo ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }
	.sn-woo ul.products li.product { padding: 0.5rem 0.5rem 0.75rem; gap: 0.5rem; border-radius: 16px; }
	.sn-woo ul.products li.product:hover { transform: none; }
	.sn-woo ul.products li.product img { margin-bottom: 0.25rem; border-radius: 12px; }
	.sn-woo ul.products li.product .woocommerce-loop-product__title, .sn-woo ul.products li.product .woocommerce-loop-category__title { padding-inline: 0.25rem; font: 700 0.9375rem/1.25 var(--wp--preset--font-family--body); }
	.sn-woo ul.products li.product .price { font-size: 1.25rem; }
	.sn-woo ul.products li.product .price del { font-size: 0.75em; }
	.sn-woo ul.products li.product .button { align-self: stretch; width: auto; min-width: 0; min-height: 2.75rem; padding: 0.375rem 0.5rem; font-size: 0.875rem; }
	.sn-woo ul.products li.product .button.add_to_cart_button.ajax_add_to_cart::before { content: none; }
	.sn-woo ul.products li.product .onsale { top: 0.75rem; left: 0.75rem; font-size: 0.75rem; }
}

/* ---------- Archives ---------- */
.sn-woo .woocommerce-products-header { margin-bottom: 1.5rem; }
.sn-woo .woocommerce-products-header .term-description, .sn-woo .woocommerce-products-header .page-description { margin-top: 0.75rem; max-width: 70ch; color: var(--sn-muted); font-size: var(--wp--preset--font-size--large); }
.sn-woo .woocommerce-result-count { float: left; margin: 0 0 1.25rem; padding-block: 0.75rem; color: var(--sn-muted); font-size: 0.9375rem; font-weight: 600; }
.sn-woo .woocommerce-ordering { float: right; margin: 0 0 1.25rem; }
.sn-woo .woocommerce-ordering select { width: auto; min-width: 15rem; min-height: 48px; border-radius: 999px; padding-left: 1.125rem; font-weight: 600; }
.sn-woo ul.products, .sn-woo .woocommerce-pagination { clear: both; }
.sn-woo .woocommerce-pagination { margin-top: 2rem; }
.sn-woo .woocommerce-pagination ul.page-numbers { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; border: 0; }
.sn-woo .woocommerce-pagination .page-numbers li { margin: 0; border: 0; }
.sn-woo .woocommerce-pagination a.page-numbers, .sn-woo .woocommerce-pagination span.page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 2.875rem; height: 2.875rem; padding: 0 0.75rem;
	border-radius: 999px; border: 1.5px solid var(--sn-field); background: var(--sn-white); font-weight: 700; text-decoration: none;
}
.sn-woo .woocommerce-pagination a.page-numbers:hover { border-color: var(--sn-navy); color: var(--sn-navy); }
.sn-woo .woocommerce-pagination span.current { background: var(--sn-navy); border-color: var(--sn-navy); color: var(--sn-white); }
@media (max-width: 760px) {
	.sn-woo .woocommerce-result-count, .sn-woo .woocommerce-ordering { float: none; margin-bottom: 0.75rem; }
	.sn-woo .woocommerce-result-count { padding-block: 0; font-size: 0.875rem; }
	.sn-woo .woocommerce-ordering select { width: 100%; min-width: 0; }
}

/* ---------- Product page ---------- */
.sn-woo div.product { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 2rem clamp(2rem, 4vw, 4rem); align-items: start; }
.sn-woo div.product > * { grid-column: 1 / -1; min-width: 0; }
.sn-woo div.product > .woocommerce-product-gallery { grid-column: 1; }
.sn-woo div.product > .summary { grid-column: 2; }
.sn-woo div.product > span.onsale { top: 1rem; left: 1rem; }

.sn-woo .woocommerce-product-gallery { position: relative; margin: 0; }
.sn-woo .woocommerce-product-gallery .flex-viewport, .sn-woo .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { background: var(--sn-white); border-radius: var(--sn-radius); overflow: hidden; box-shadow: var(--sn-shadow); }
.sn-woo .woocommerce-product-gallery__wrapper { margin: 0; padding: 0; transition: all cubic-bezier(.795, -.035, 0, 1) .5s; }
.sn-woo .woocommerce-product-gallery__image a { display: block; }
.sn-woo .woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; }
.sn-woo .woocommerce-product-gallery .flex-control-thumbs { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.625rem; }
.sn-woo .woocommerce-product-gallery .flex-control-thumbs li { margin: 0; }
.sn-woo .woocommerce-product-gallery .flex-control-thumbs img {
	display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 12px; background: var(--sn-white);
	border: 2px solid transparent; opacity: 0.7; cursor: pointer; transition: opacity .15s ease;
}
.sn-woo .woocommerce-product-gallery .flex-control-thumbs img:hover, .sn-woo .woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--sn-navy); }
.sn-woo .woocommerce-product-gallery__trigger {
	position: absolute; top: 0.75rem; right: 0.75rem; z-index: 9; width: 44px; height: 44px; border-radius: 999px;
	background: var(--sn-white); box-shadow: 0 0 0 1px var(--sn-line); text-decoration: none;
}
.sn-woo .woocommerce-product-gallery__trigger > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sn-woo .woocommerce-product-gallery__trigger::before { content: ""; position: absolute; top: 12px; left: 12px; width: 15px; height: 15px; border: 2.5px solid var(--sn-navy); border-radius: 50%; box-sizing: border-box; }
.sn-woo .woocommerce-product-gallery__trigger::after { content: ""; position: absolute; top: 28px; left: 24px; width: 8px; height: 2.5px; background: var(--sn-navy); border-radius: 2px; transform: rotate(45deg); }

.sn-woo div.product .summary { display: flex; flex-direction: column; gap: 1.125rem; }
.sn-woo div.product .summary > * { margin: 0; }
.sn-woo div.product .product_title { font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.75rem); line-height: 1.08; }
.sn-woo div.product .woocommerce-product-rating { display: flex; align-items: center; gap: 0.5rem; }
.sn-woo div.product .woocommerce-review-link { font-size: 0.9375rem; color: var(--sn-muted); display: inline-flex; min-height: 2.75rem; align-items: center; }
.sn-woo div.product p.price, .sn-woo div.product span.price { font-size: clamp(1.75rem, 1.5rem + 0.8vw, 2.125rem); line-height: 1.1; }
.sn-woo div.product .summary > p.price { margin-top: -0.25rem; }
.sn-woo div.product .woocommerce-product-details__short-description { color: var(--sn-muted); font-size: 1.0625rem; }
.sn-woo div.product .woocommerce-product-details__short-description > * + * { margin-top: 0.75rem; }
.sn-woo div.product .woocommerce-product-details__short-description strong:first-child { color: var(--sn-navy); }
/* Stock as a status dot. */
.sn-woo div.product .stock { display: inline-flex; align-items: center; gap: 0.5rem; }
.sn-woo div.product .stock::before { content: ""; width: 0.625rem; height: 0.625rem; border-radius: 999px; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 18%, transparent); }

.sn-woo div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.75rem; margin: 0.25rem 0 0; }
.sn-woo div.product form.cart > :not(.quantity):not(.single_add_to_cart_button) { flex-basis: 100%; }
.sn-woo .quantity { display: inline-flex; }
.sn-woo .quantity .qty { width: 5.25rem; min-height: 3.5rem; padding: 0 0.5rem; text-align: center; font-weight: 700; font-size: 1.125rem; }
.sn-woo div.product form.cart .single_add_to_cart_button { flex: 1 1 14rem; min-height: 3.5rem; padding-inline: 1.75rem; font-size: 1.1875rem; box-shadow: var(--sn-buy-shadow); }
.sn-woo div.product form.cart .single_add_to_cart_button.disabled { box-shadow: none; }
.sn-woo div.product form.cart table.variations { display: block; width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.sn-woo div.product form.cart table.variations tbody, .sn-woo div.product form.cart table.variations tr { display: block; }
.sn-woo div.product form.cart table.variations tr + tr { margin-top: 1rem; }
.sn-woo div.product form.cart table.variations th, .sn-woo div.product form.cart table.variations td { display: block; padding: 0; text-align: left; border: 0; background: none; line-height: 1.3; }
.sn-woo div.product form.cart table.variations th.label { margin-bottom: 0.5rem; }
.sn-woo div.product form.cart table.variations th label { display: inline; margin: 0; font-size: 1rem; font-weight: 700; }
.sn-woo div.product form.cart table.variations td select { max-width: 24rem; }
.sn-woo div.product form.cart .reset_variations { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: 0.25rem; font-weight: 600; font-size: 0.9375rem; }
.sn-woo div.product form.cart .single_variation_wrap { display: flex; flex-direction: column; gap: 0.75rem; }
.sn-woo div.product form.cart .single_variation_wrap .woocommerce-variation:empty { display: none; }
.sn-woo div.product form.cart .woocommerce-variation-price .price { font-size: 1.5rem; }
.sn-woo div.product form.cart .woocommerce-variation-description { color: var(--sn-muted); }
.sn-woo div.product form.cart .variations_button { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.sn-woo div.product .product_meta { display: flex; flex-direction: column; gap: 0.125rem; padding-top: 0.875rem; border-top: 1px solid var(--sn-line); color: var(--sn-muted); font-size: 0.875rem; }
.sn-woo div.product .product_meta a { color: var(--sn-muted); }

/* Variation swatches (Variation Swatches for WooCommerce), through the plugin's own custom properties. */
body.woo-variation-swatches {
	--wvs-single-product-item-height: 48px;
	--wvs-single-product-item-width: 48px;
	--wvs-single-product-item-font-size: 16px;
	--wvs-item-background-color: var(--sn-white);
	--wvs-item-text-color: var(--sn-navy);
	--wvs-hover-item-background-color: var(--sn-white);
	--wvs-hover-item-text-color: var(--sn-navy);
	--wvs-selected-item-background-color: var(--sn-navy);
	--wvs-selected-item-text-color: var(--sn-white);
	--wvs-item-box-shadow: 0 0 0 1.5px var(--sn-field);
	--wvs-hover-item-box-shadow: 0 0 0 2px var(--sn-navy);
	--wvs-selected-item-box-shadow: 0 0 0 2px var(--sn-navy);
	--wvs-tooltip-background-color: var(--sn-navy);
	--wvs-tooltip-text-color: var(--sn-white);
}
.sn-woo .variable-items-wrapper { gap: 0.5rem; margin: 0; padding: 0; }
.sn-woo .variable-items-wrapper.wvs-style-squared .variable-item.button-variable-item:not(.radio-variable-item), .sn-woo .variable-items-wrapper .variable-item.button-variable-item:not(.radio-variable-item) { border-radius: 999px; padding-inline: 0.625rem; font-weight: 600; }
.sn-woo .woo-selected-variation-item-name { font-weight: 400; color: var(--sn-muted); }

/* Product bundles (WPC Product Bundles): the bundle's items as one card. */
.sn-woo .woosb-wrap { margin: 0; }
.sn-woo .woosb-wrap .woosb-products { margin: 0; padding: 0.25rem 1rem; border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); background: var(--sn-white); }
.sn-woo .woosb-wrap .woosb-products .woosb-product { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 0; margin: 0; border-bottom: 1px solid var(--sn-line); }
.sn-woo .woosb-wrap .woosb-products .woosb-product:last-child { border-bottom: 0; }
.sn-woo .woosb-wrap .woosb-product .woosb-thumb { flex: 0 0 56px; width: 56px; }
.sn-woo .woosb-wrap .woosb-product .woosb-thumb img { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; }
.sn-woo .woosb-wrap .woosb-product .woosb-title { flex: 1 1 auto; min-width: 0; font-weight: 600; text-align: left; }
.sn-woo .woosb-wrap .woosb-product .woosb-title a { text-decoration: none; }
.sn-woo .woosb-wrap .woosb-product .woosb-quantity { flex: 0 0 auto; width: auto; }
.sn-woo .woosb-wrap .woosb-product .woosb-quantity .qty { width: 4.25rem; min-height: 2.875rem; font-size: 1rem; text-align: center; }
.sn-woo .woosb-wrap .woosb-product .woosb-price { flex: 0 0 auto; width: auto; min-width: 4.5rem; text-align: right; font-weight: 700; }
.sn-woo .woosb-wrap .woosb-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; margin-top: 0.75rem; padding: 0.75rem 1rem; border-radius: 12px; background: var(--sn-sand); font-weight: 700; }
.sn-woo .woosb-wrap .stock, .sn-woo .woosb-wrap .woosb-availability { color: var(--sn-buy); font-weight: 700; font-size: 0.875rem; }
.sn-woo .woosb-wrap .woosb-product .woosb-title, .sn-woo .woosb-wrap .woosb-product .woosb-name { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 480px) {
	.sn-woo .woosb-wrap .woosb-products { padding-inline: 0.75rem; }
	.sn-woo .woosb-wrap .woosb-products .woosb-product { gap: 0.5rem; }
	.sn-woo .woosb-wrap .woosb-product .woosb-thumb, .sn-woo .woosb-wrap .woosb-product .woosb-thumb img { flex-basis: 44px; width: 44px; height: 44px; }
	.sn-woo .woosb-wrap .woosb-product .woosb-title { font-size: 0.9375rem; }
	.sn-woo .woosb-wrap .woosb-product .woosb-quantity .qty { width: 3.5rem; }
	.sn-woo .woosb-wrap .woosb-product .woosb-price { min-width: 0; font-size: 0.9375rem; }
}
.sn-woo .woosb-wrap .woosb-alert:empty { display: none; }
.sn-woo .woosb-wrap .woosb-alert { margin-top: 0.75rem; padding: 0.75rem 1rem; border-radius: 12px; background: var(--sn-alert-bg); color: var(--sn-navy); }

/* Tabs: description, additional information, reviews. */
.sn-woo .woocommerce-tabs { margin-top: 1rem; }
.sn-woo .woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.sn-woo .woocommerce-tabs ul.tabs::before, .sn-woo .woocommerce-tabs ul.tabs li::before, .sn-woo .woocommerce-tabs ul.tabs li::after { content: none; }
.sn-woo .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: none; }
.sn-woo .woocommerce-tabs ul.tabs li a {
	display: inline-flex; align-items: center; min-height: 2.875rem; padding: 0 1.25rem; border-radius: 999px;
	border: 1.5px solid var(--sn-field); background: var(--sn-white); font-weight: 700; text-decoration: none;
}
.sn-woo .woocommerce-tabs ul.tabs li a:hover { border-color: var(--sn-navy); color: var(--sn-navy); }
.sn-woo .woocommerce-tabs ul.tabs li.active a { background: var(--sn-navy); border-color: var(--sn-navy); color: var(--sn-white); }
.sn-woo .woocommerce-tabs .panel { margin: 0; padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-radius); }
.sn-woo .woocommerce-tabs .panel > * + *, .sn-woo .woocommerce-tabs .panel #comments > * + * { margin-top: 0.875rem; }
.sn-woo .woocommerce-tabs .panel h2 { font-size: 1.5rem; }
.sn-woo .woocommerce-tabs .panel > h2:first-child { margin-bottom: 0.25rem; }
.sn-woo .woocommerce-tabs .panel :where(p, li) { max-width: 75ch; }
.sn-woo table.woocommerce-product-attributes { width: 100%; border-collapse: collapse; }
.sn-woo table.woocommerce-product-attributes th, .sn-woo table.woocommerce-product-attributes td { padding: 0.625rem 0; border-bottom: 1px solid var(--sn-line); text-align: left; vertical-align: top; }
.sn-woo table.woocommerce-product-attributes th { width: 35%; font-weight: 700; }
.sn-woo table.woocommerce-product-attributes td p { margin: 0; }

/* Reviews */
.sn-woo #reviews .commentlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.sn-woo #reviews .commentlist li .comment_container { display: flex; gap: 0.875rem; }
.sn-woo #reviews .commentlist li img.avatar { width: 48px; height: 48px; border-radius: 999px; }
.sn-woo #reviews .commentlist li .comment-text { flex: 1; padding: 0.875rem 1rem; border: 1px solid var(--sn-line); border-radius: 14px; }
.sn-woo #reviews .commentlist li .meta { color: var(--sn-muted); font-size: 0.9375rem; }
.sn-woo #reviews .comment-reply-title { display: block; font-weight: 700; font-size: 1.125rem; margin: 1.5rem 0 0.75rem; }
.sn-woo #reviews .comment-form > p, .sn-woo #reviews .comment-form > div { margin: 0 0 0.875rem; }
.sn-woo #reviews .comment-form-cookies-consent { display: flex; gap: 0.625rem; align-items: center; }
.sn-woo #reviews .comment-form-cookies-consent label { margin: 0; font-weight: 400; }
.sn-woo p.stars { margin: 0.25rem 0 0; }
.sn-woo p.stars > span { display: inline-flex; }
.sn-woo p.stars a { position: relative; display: inline-block; width: 44px; height: 44px; overflow: hidden; text-indent: -999em; text-decoration: none; }
.sn-woo p.stars a::before { content: "\2606"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-indent: 0; font: 1.75rem/1 system-ui, sans-serif; color: var(--sn-navy); }
.sn-woo p.stars:hover a::before, .sn-woo p.stars.selected a:not(.active)::before, .sn-woo p.stars.selected a.active::before { content: "\2605"; }
.sn-woo p.stars a:hover ~ a::before, .sn-woo p.stars.selected a.active ~ a::before, .sn-woo p.stars.selected:hover a:hover ~ a::before { content: "\2606"; }

/* Related products, upsells and cross-sells */
.sn-woo .related.products, .sn-woo .upsells.products { margin-top: clamp(1.5rem, 1rem + 2vw, 3rem); }
.sn-woo .related.products > h2, .sn-woo .upsells.products > h2, .sn-woo .cross-sells > h2 { text-align: center; margin-bottom: 1.5rem; }
.sn-woo .related.products > h2, .sn-woo .upsells.products > h2 { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.625rem); }

@media (max-width: 860px) {
	.sn-woo div.product { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.sn-woo div.product > .woocommerce-product-gallery, .sn-woo div.product > .summary { grid-column: 1; }
	.sn-woo .woocommerce-product-gallery .flex-control-thumbs { gap: 0.5rem; }
}
@media (max-width: 760px) {
	/* The tabs stay on one line and scroll sideways inside their own row. */
	.sn-woo .woocommerce-tabs ul.tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--sn-gutter)); padding: 0.25rem var(--sn-gutter); scrollbar-width: none; }
	.sn-woo .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
	.sn-woo .woocommerce-tabs ul.tabs li { flex: 0 0 auto; }
	.sn-woo .woocommerce-tabs ul.tabs li a { min-height: 2.75rem; padding: 0 1rem; font-size: 0.9375rem; white-space: nowrap; }
	.sn-woo div.product .product_title { font-size: 1.875rem; }
}

/* ---------- Shared: tables and cards for cart, checkout, order and account ---------- */
.sn-woo table.shop_table { width: 100%; border-collapse: collapse; border-spacing: 0; margin: 0; }
.sn-woo table.shop_table th, .sn-woo table.shop_table td { padding: 0.75rem 0; border: 0; border-bottom: 1px solid var(--sn-line); text-align: left; vertical-align: top; }
.sn-woo table.shop_table th { font-weight: 700; }
.sn-woo table.shop_table tr:last-child > * { border-bottom: 0; }
.sn-woo table.shop_table .order-total th, .sn-woo table.shop_table .order-total td { font-size: 1.1875rem; font-weight: 800; }
.sn-woo table.shop_table .order-total .includes_tax { display: block; font-size: 0.875rem; font-weight: 400; color: var(--sn-muted); }
.sn-woo .wc-item-meta, .sn-woo dl.variation { list-style: none; margin: 0.25rem 0 0; padding: 0; font-size: 0.875rem; font-weight: 400; color: var(--sn-muted); }
.sn-woo .wc-item-meta li, .sn-woo dl.variation { display: flex; flex-wrap: wrap; gap: 0 0.3rem; }
.sn-woo dl.variation dt, .sn-woo dl.variation dd, .sn-woo .wc-item-meta p { margin: 0; display: inline; }
.sn-woo dl.variation dd p { display: inline; margin: 0; }
.sn-woo dl.variation dd { margin-right: 0.5rem; }
/*
 * Cart totals and the checkout's order summary are label/value rows, drawn as flex rows rather than a table,
 * so the shipping row can take the full width: a shipping method's name is the shop's own text and is
 * often a whole sentence. Each method is a card like the payment methods.
 */
.sn-woo .cart_totals table.shop_table, .sn-woo table.woocommerce-checkout-review-order-table,
.sn-woo .cart_totals table.shop_table :is(thead, tbody, tfoot), .sn-woo table.woocommerce-checkout-review-order-table :is(thead, tbody, tfoot) { display: block; }
.sn-woo .cart_totals table.shop_table tr, .sn-woo table.woocommerce-checkout-review-order-table tr {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 1rem; border-bottom: 1px solid var(--sn-line);
}
.sn-woo .cart_totals table.shop_table tr:last-child, .sn-woo table.woocommerce-checkout-review-order-table tfoot tr:last-child { border-bottom: 0; }
.sn-woo .cart_totals table.shop_table tr > *, .sn-woo table.woocommerce-checkout-review-order-table tr > * { display: block; border: 0; }
.sn-woo .cart_totals table.shop_table tr > :first-child, .sn-woo table.woocommerce-checkout-review-order-table tr > :first-child { flex: 1 1 0; min-width: 0; }
.sn-woo .cart_totals table.shop_table tr > :last-child:not(:first-child), .sn-woo table.woocommerce-checkout-review-order-table tr > :last-child:not(:first-child) { flex: 0 1 auto; text-align: right; }
/* The shipping methods take the whole row under their label. */
.sn-woo .cart_totals table.shop_table tr.woocommerce-shipping-totals > td:last-child:not(:first-child),
.sn-woo table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > td:last-child:not(:first-child) { flex: 1 1 100%; padding-top: 0; text-align: left; }
.sn-woo ul.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.sn-woo ul.woocommerce-shipping-methods li { display: flex; align-items: flex-start; gap: 0.625rem; min-width: 0; margin: 0; padding: 0.625rem 0.875rem; border: 1.5px solid var(--sn-field); border-radius: 14px; background: var(--sn-white); }
.sn-woo ul.woocommerce-shipping-methods li:has(> input:checked) { border: 2px solid var(--sn-navy); padding: calc(0.625rem - 0.5px) calc(0.875rem - 0.5px); }
.sn-woo ul.woocommerce-shipping-methods li input { flex: none; margin-top: 0.0625rem; }
.sn-woo ul.woocommerce-shipping-methods li label { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 0.9375rem; font-weight: 600; line-height: 1.4; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.sn-woo .woocommerce-shipping-destination, .sn-woo .woocommerce-shipping-contents { margin: 0.25rem 0 0; font-size: 0.875rem; font-weight: 400; color: var(--sn-muted); }
.sn-woo .shipping-calculator-button { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; font-size: 0.9375rem; }
.sn-woo .shipping-calculator-form { padding-top: 0.5rem; text-align: left; }
.sn-woo .cart_totals, .sn-woo form.woocommerce-checkout > #customer_details, .sn-woo #order_review, .sn-woo .woocommerce-order-details, .sn-woo .woocommerce-customer-details address,
.sn-woo .woocommerce-MyAccount-content .woocommerce-Address, .sn-woo form.woocommerce-form-login, .sn-woo form.woocommerce-form-register,
.sn-woo form.woocommerce-ResetPassword, .sn-woo form.lost_reset_password {
	background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-radius); padding: clamp(1.25rem, 1rem + 1vw, 1.75rem);
}
/* Card titles in the home page's heading face. */
.sn-woo .cart_totals > h2, .sn-woo .woocommerce-order-details__title, .sn-woo .woocommerce-column__title, .sn-woo .woocommerce-customer-details > h2 {
	font: 700 1.5rem/1.15 var(--sn-heading); letter-spacing: -0.005em; margin: 0 0 0.75rem;
}
/* Cart, checkout and My Account carry the page title; the shortcode draws the rest. */
.sn-woo--page .sn-woo__title { margin: 0 0 1.25rem; }
.sn-woo--page .sn-woo__inner > .sn-woo__content { margin-top: 0; }

/* ---------- Free-shipping progress (Strumpsnodden Core reads the threshold from the shipping zone) ---------- */
.sn-freeship { display: grid; gap: 0.5rem; margin: 0 0 1rem; padding: 0.875rem 1rem; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); }
.sn-freeship__text { margin: 0; font-size: 1rem; }
.sn-freeship__bar { display: block; height: 8px; border-radius: 999px; background: var(--sn-line); overflow: hidden; }
.sn-freeship__fill { display: block; height: 100%; border-radius: 999px; background: var(--sn-buy); }
.sn-freeship--reached { background: var(--sn-ok-bg); border-color: color-mix(in srgb, var(--sn-green) 35%, var(--sn-white)); font-weight: 600; }

/* ---------- Buying facts by the buy buttons (Strumpsnodden Core reads each from the shop) ---------- */
.sn-buyfacts { list-style: none; margin: 0; padding: 0.375rem 1rem; display: grid; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); }
.sn-buyfacts__item { display: flex; align-items: center; gap: 0.75rem; min-height: 2.75rem; padding-block: 0.375rem; font-weight: 600; line-height: 1.35; }
.sn-buyfacts__item + .sn-buyfacts__item { border-top: 1px solid var(--sn-line); }
.sn-buyfacts__item .sn-icon { flex: 0 0 auto; width: 2rem; height: 2rem; padding: 0.375rem; border-radius: 999px; background: var(--sn-ok-bg); color: var(--sn-buy); }
.sn-buyfacts__item--swish .sn-icon { background: var(--sn-pink-soft); color: var(--sn-alert); }
/* In the cart: one quiet line under "Fortsätt till kassan". */
.sn-buyfacts--cart { margin-top: 0.875rem; padding: 0; background: none; border: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.25rem; }
.sn-buyfacts--cart .sn-buyfacts__item { min-height: 2.25rem; gap: 0.375rem; font-size: 0.9375rem; color: var(--sn-muted); }
.sn-buyfacts--cart .sn-buyfacts__item + .sn-buyfacts__item { border-top: 0; }
.sn-buyfacts--cart .sn-buyfacts__item .sn-icon { width: 1.25rem; height: 1.25rem; padding: 0; background: none; color: var(--sn-navy); }

/* ---------- Årsblomman card (Strumpsnodden Sales Platform) in the shop's colours ---------- */
.sn-woo .snsp-annual-support-card { background: var(--sn-pink-soft); border: 1px solid color-mix(in srgb, var(--sn-pink) 22%, var(--sn-white)); box-shadow: none; color: var(--sn-navy); }
.sn-woo .snsp-annual-support-card__media img { box-shadow: 0 0 0 1px var(--sn-line); }
.sn-woo .snsp-annual-support-card__eyebrow { color: var(--sn-alert); background: var(--sn-white); }
.sn-woo .snsp-annual-support-card__title { color: var(--sn-navy); font-family: var(--sn-heading); font-weight: 700; }
.sn-woo .snsp-annual-support-card__text, .sn-woo .snsp-annual-support-card__note { color: var(--sn-muted); }
.sn-woo .snsp-annual-support-card .snsp-pill { color: var(--sn-navy); border-color: color-mix(in srgb, var(--sn-pink) 22%, var(--sn-white)); }
.sn-woo .snsp-annual-support-card .snsp-button {
	min-height: 2.75rem; padding: 0.5rem 1.25rem; background: var(--sn-white); color: var(--sn-alert); border: 2px solid var(--sn-alert);
	box-shadow: none; font-size: 0.9375rem; text-decoration: none;
}
.sn-woo .snsp-annual-support-card .snsp-button:hover { background: var(--sn-alert); color: var(--sn-white); transform: none; filter: none; }
@media (min-width: 768px) {
	.sn-woo .snsp-annual-support-card--shop { padding: 1rem 1.25rem; gap: 1.25rem; align-items: center; }
	.sn-woo .snsp-annual-support-card--shop .snsp-annual-support-card__media { align-self: center; }
	.sn-woo .snsp-annual-support-card__content { gap: 0.5rem; }
}
/* In the cart and the checkout the card is a reminder, not the page's subject. */
@media (max-width: 767px) {
	.woocommerce-cart .sn-woo .snsp-annual-support-card__note, .woocommerce-checkout .sn-woo .snsp-annual-support-card__note { display: none; }
}

/* ---------- Cart ---------- */
/* The shortcode's .woocommerce box is found by what it holds, not by being the content's child: on staging WPBakery wraps the page content. */
.woocommerce-cart .sn-woo__content .woocommerce:has(> .woocommerce-cart-form) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 0 2rem; align-items: start; }
.woocommerce-cart .sn-woo__content .woocommerce:has(> .woocommerce-cart-form) > * { grid-column: 1 / -1; min-width: 0; }
.woocommerce-cart .sn-woo__content .woocommerce:has(> .woocommerce-cart-form) > .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .sn-woo__content .woocommerce:has(> .woocommerce-cart-form) > .cart-collaterals { grid-column: 2; position: sticky; top: 1.5rem; }
.sn-woo table.cart, .sn-woo table.cart tbody { display: block; border: 0; }
.sn-woo table.cart thead { display: none; }
.sn-woo table.cart tr.cart_item {
	display: grid; grid-template-columns: 88px minmax(0, 1fr) auto auto 44px;
	grid-template-areas: "thumb name qty sub remove" "thumb price qty sub remove";
	align-items: center; gap: 0.125rem 1rem; margin: 0 0 0.75rem; padding: 0.875rem;
	background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius);
}
.sn-woo table.cart tr.cart_item > td { display: block; padding: 0; border: 0; text-align: left; }
.sn-woo table.cart td.product-thumbnail { grid-area: thumb; }
.sn-woo table.cart td.product-thumbnail a { display: block; }
.sn-woo table.cart td.product-thumbnail img { display: block; width: 88px; height: 88px; object-fit: cover; border-radius: 10px; background: var(--sn-sand); }
.sn-woo table.cart td.product-name { grid-area: name; align-self: end; font-weight: 700; font-size: 1.0625rem; line-height: 1.3; }
.sn-woo table.cart td.product-name a { text-decoration: none; }
.sn-woo table.cart td.product-name a:hover { text-decoration: underline; }
.sn-woo table.cart td.product-price { grid-area: price; align-self: start; color: var(--sn-muted); font-size: 0.9375rem; }
.sn-woo table.cart td.product-quantity { grid-area: qty; }
.sn-woo table.cart td.product-quantity .qty { min-height: var(--sn-field-h); width: 4.75rem; font-size: 1rem; }
.sn-woo table.cart td.product-subtotal { grid-area: sub; min-width: 5rem; text-align: right; font-weight: 800; font-size: 1.0625rem; }
.sn-woo table.cart td.product-remove { grid-area: remove; justify-self: end; }
.sn-woo table.cart a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px;
	font-size: 1.625rem; line-height: 1; font-weight: 400; color: var(--sn-navy); text-decoration: none;
}
.sn-woo table.cart a.remove:hover { background: var(--sn-alert-bg); color: var(--sn-alert); }
.sn-woo table.cart tr:not(.cart_item) { display: block; }
.sn-woo table.cart td.actions { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.75rem; padding: 0.25rem 0 0; border: 0; }
.sn-woo table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 0.5rem; flex: 1 1 22rem; max-width: 32rem; }
.sn-woo table.cart td.actions .coupon .input-text { flex: 1 1 8rem; width: auto; min-width: 0; }
.sn-woo table.cart td.actions .button { min-height: var(--sn-field-h); }
/* Items of a bundle sit under their bundle (WPC Product Bundles). */
.sn-woo table.cart tr.cart_item.woosb-cart-child { margin: -0.5rem 0 0.75rem 1.5rem; padding: 0.625rem 0.875rem; grid-template-columns: 56px minmax(0, 1fr) auto auto 44px; background: var(--sn-sand); }
.sn-woo table.cart tr.woosb-cart-child td.product-thumbnail img { width: 56px; height: 56px; }
.sn-woo table.cart tr.woosb-cart-child td.product-name { font-size: 0.9375rem; font-weight: 600; }
/* A bundle's items show their prices for information only; WPC Product Bundles fades them to 30 %, below AA. */
.sn-woo .woosb-cart-child .amount { opacity: 1; color: var(--sn-muted); font-weight: 400; }
/* On the cart page, the "Visa varukorg" link in the added-to-cart notice leads to the page itself. */
.woocommerce-cart .sn-woo .woocommerce-message .wc-forward, .woocommerce-cart .sn-woo .wc-block-components-notice-banner .wc-forward { display: none; }
/* Empty cart and a search with no hits: one calm card in the middle. */
.sn-woo .wc-empty-cart-message .cart-empty, .sn-woo .woocommerce-no-products-found .woocommerce-info,
.sn-woo .wc-empty-cart-message .wc-block-components-notice-banner, .sn-woo .woocommerce-no-products-found .wc-block-components-notice-banner {
	flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; max-width: 36rem; margin-inline: auto; padding: 2.5rem 1.5rem;
	text-align: center; font-size: 1.1875rem; font-weight: 600; border-radius: var(--sn-radius);
}
.sn-woo .wc-empty-cart-message .wc-block-components-notice-banner > svg, .sn-woo .woocommerce-no-products-found .wc-block-components-notice-banner > svg { width: 3rem; height: 3rem; padding: 0.625rem; background: var(--sn-pink-soft); fill: var(--sn-alert); }
.sn-woo .wc-empty-cart-message .wc-block-components-notice-banner__content, .sn-woo .woocommerce-no-products-found .wc-block-components-notice-banner__content { flex: 0 1 auto; justify-content: center; text-align: center; font-size: 1.1875rem; }
.woocommerce-cart .sn-woo:has(.wc-empty-cart-message) .sn-woo__title, .sn-woo:has(.woocommerce-no-products-found) .woocommerce-products-header { text-align: center; }
.sn-woo .return-to-shop { margin-top: 1rem; text-align: center; }
.sn-woo .return-to-shop .button { min-height: 3.5rem; }
.sn-woo .wc-proceed-to-checkout { padding-top: 1rem; }
.sn-woo .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; min-height: 3.5rem; font-size: 1.1875rem; box-shadow: var(--sn-buy-shadow); }
.sn-woo .cart-collaterals .cross-sells { margin-bottom: 1.5rem; }
.sn-woo .cart-collaterals .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }

@media (max-width: 900px) {
	.woocommerce-cart .sn-woo__content .woocommerce:has(> .woocommerce-cart-form) { display: block; }
	.woocommerce-cart .sn-woo__content .woocommerce:has(> .woocommerce-cart-form) > .cart-collaterals { position: static; margin-top: 1rem; }
}
@media (max-width: 600px) {
	.sn-woo table.cart tr.cart_item {
		grid-template-columns: 72px minmax(0, 1fr) auto; gap: 0.25rem 0.75rem; padding: 0.75rem;
		grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub";
	}
	.sn-woo table.cart td.product-thumbnail { align-self: start; }
	.sn-woo table.cart td.product-thumbnail img { width: 72px; height: 72px; }
	.sn-woo table.cart td.product-name { align-self: center; font-size: 1rem; }
	.sn-woo table.cart td.product-remove { align-self: start; margin: -0.375rem -0.375rem 0 0; }
	.sn-woo table.cart td.product-subtotal { align-self: center; }
	.sn-woo table.cart tr.cart_item.woosb-cart-child { margin-left: 0.75rem; grid-template-columns: 56px minmax(0, 1fr) auto; }
	.sn-woo table.cart td.actions .coupon, .sn-woo table.cart td.actions > .button { flex-basis: 100%; max-width: none; }
}

/* ---------- Checkout ---------- */
/* "Återkommande kund?" and "Har du en rabattkod?" side by side above the form, as quiet one-line notices. */
.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout) > * { grid-column: 1 / -1; min-width: 0; }
.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout) > .woocommerce-form-login-toggle { grid-column: 1; }
.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout) > .woocommerce-form-coupon-toggle { grid-column: 2; }
.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout):not(:has(> .woocommerce-form-login-toggle)) > .woocommerce-form-coupon-toggle,
.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout):not(:has(> .woocommerce-form-coupon-toggle)) > .woocommerce-form-login-toggle { grid-column: 1 / -1; }
.sn-woo :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) :is(.woocommerce-info, .wc-block-components-notice-banner) { padding: 0.25rem 1rem; min-height: 3.25rem; font-size: 0.9375rem; }
.sn-woo :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .wc-block-components-notice-banner > svg { width: 20px; height: 20px; background: var(--sn-muted); }
.sn-woo :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) .wc-block-components-notice-banner__content { justify-content: flex-start; gap: 0 0.375rem; font-size: 0.9375rem; }
.sn-woo .woocommerce-form-coupon-toggle a, .sn-woo .woocommerce-form-login-toggle a { font-weight: 700; display: inline-flex; min-height: 2.75rem; align-items: center; }
.sn-woo form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 0.5rem; max-width: 34rem; margin: 0 0 1rem; padding: 1rem; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); }
.sn-woo form.checkout_coupon .form-row { float: none; width: auto; margin: 0; }
.sn-woo form.checkout_coupon .form-row-first { flex: 1 1 12rem; }
.sn-woo form.checkout_coupon .button { min-height: var(--sn-field-h); }
.sn-woo form.checkout_coupon .clear, .sn-woo form.checkout_coupon > p:not(.form-row) { flex-basis: 100%; margin: 0; }
.sn-woo form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 440px); grid-template-rows: auto 1fr; gap: 0 clamp(2rem, 4vw, 3.5rem); align-items: start; margin-top: 0.5rem; counter-reset: sn-step; }
.sn-woo form.woocommerce-checkout > * { grid-column: 1 / -1; min-width: 0; }
.sn-woo form.woocommerce-checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.sn-woo form.woocommerce-checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
.sn-woo form.woocommerce-checkout > #order_review { grid-column: 2; grid-row: 2; }
.sn-woo .col2-set .col-1, .sn-woo .col2-set .col-2 { float: none; width: auto; max-width: none; }
.sn-woo #customer_details .col-2 { margin-top: 0.5rem; }
.sn-woo #customer_details h3, .sn-woo .woocommerce-additional-fields > h3 { margin: 0 0 0.875rem; font-size: 1.125rem; }
/* The two steps carry the home page's pink number badges: 1 your details, 2 your order. */
.sn-woo #customer_details .woocommerce-billing-fields > h3, .sn-woo #order_review_heading {
	display: flex; align-items: center; gap: 0.75rem; margin: 0 0 1.25rem; font: 700 1.5rem/1.15 var(--sn-heading); letter-spacing: -0.005em;
}
.sn-woo #customer_details .woocommerce-billing-fields > h3::before, .sn-woo #order_review_heading::before {
	counter-increment: sn-step; content: counter(sn-step); flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center; background: var(--sn-badge); color: var(--sn-navy); font: 700 1.25rem/1 var(--sn-heading);
}
.sn-woo #ship-to-different-address { margin: 0 0 0.5rem; }
.sn-woo .shipping_address { padding-top: 0.5rem; }
.sn-woo .woocommerce-additional-fields { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--sn-line); }
.sn-woo .woocommerce-account-fields { margin-bottom: 1rem; }
.sn-woo #order_review { position: relative; }
.sn-woo .woocommerce-checkout-review-order-table thead th { padding-top: 0; font-size: 0.875rem; color: var(--sn-muted); font-weight: 600; }
.sn-woo .woocommerce-checkout-review-order-table td, .sn-woo .woocommerce-checkout-review-order-table th { padding-block: 0.625rem; }
.sn-woo .woocommerce-checkout-review-order-table .product-total, .sn-woo .woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.sn-woo .woocommerce-checkout-review-order-table .product-name { padding-right: 1rem; }
.sn-woo .woocommerce-checkout-review-order-table .product-quantity { font-weight: 600; color: var(--sn-muted); }
.sn-woo .woocommerce-checkout-review-order-table tr.woosb-cart-child .product-name { padding-left: 0.75rem; font-size: 0.9375rem; color: var(--sn-muted); }

.sn-woo #payment { margin-top: 1.25rem; background: none; border-radius: 0; }
.sn-woo #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; border: 0; }
.sn-woo #payment ul.payment_methods li { position: relative; margin: 0; padding: 0.375rem 1rem; border: 1.5px solid var(--sn-field); border-radius: 14px; background: var(--sn-white); line-height: 1.4; }
.sn-woo #payment ul.payment_methods li:has(> input:checked) { border: 2px solid var(--sn-navy); padding: calc(0.375rem - 0.5px) calc(1rem - 0.5px); }
.sn-woo #payment ul.payment_methods li > input.input-radio { position: absolute; top: 1.0625rem; left: 1rem; }
.sn-woo #payment ul.payment_methods li > label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; min-height: 2.75rem; margin: 0; padding-left: 2.125rem; font-size: 1.0625rem; font-weight: 700; cursor: pointer; }
/* One payment method: there is nothing to choose, so it has no radio and is drawn as chosen. */
.sn-woo #payment ul.payment_methods li.wc_payment_method:only-child { border: 2px solid var(--sn-navy); padding: calc(0.375rem - 0.5px) calc(1rem - 0.5px); }
.sn-woo #payment ul.payment_methods li.wc_payment_method:only-child > input.input-radio { display: none; }
.sn-woo #payment ul.payment_methods li.wc_payment_method:only-child > label { padding-left: 0; }
.sn-woo #payment ul.payment_methods li > label img { max-height: 1.75rem; width: auto; margin-left: auto; }
.sn-woo #payment ul.payment_methods li.woocommerce-notice { padding: 0.875rem 1rem; }
.sn-woo #payment .payment_box { margin: 0.25rem 0 0.625rem; padding: 0.875rem 1rem; border-radius: 10px; background: var(--sn-sand); color: var(--sn-navy); font-size: 0.9375rem; }
.sn-woo #payment .payment_box::before { content: none; }
.sn-woo #payment .payment_box > * + * { margin-top: 0.75rem; }
.sn-woo #payment .payment_box fieldset { margin: 0.5rem 0 0; }
.sn-woo #payment .payment_box .form-row { margin-bottom: 0.5rem; }
.sn-woo #payment .place-order { margin: 1.25rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.875rem; }
.sn-woo #payment .woocommerce-terms-and-conditions-wrapper { font-size: 0.9375rem; color: var(--sn-muted); }
.sn-woo #payment .woocommerce-terms-and-conditions-wrapper > * + * { margin-top: 0.5rem; }
.sn-woo #payment .woocommerce-terms-and-conditions { max-height: 16rem; overflow: auto; padding: 1rem; border: 1px solid var(--sn-line); border-radius: 12px; background: var(--sn-white); }
.sn-woo #payment .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
/* The terms label is a sentence: the box sits in its margin, so the asterisk follows the words instead of standing alone at the far edge. */
.sn-woo #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox { display: block; position: relative; padding: 0.625rem 0 0.625rem 2.125rem; line-height: 1.4; }
.sn-woo #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox > input { position: absolute; left: 0; top: 0.6875rem; }
.sn-woo #payment .woocommerce-terms-and-conditions-checkbox-text { color: var(--sn-navy); font-weight: 600; }
.sn-woo #place_order { width: 100%; min-height: 3.625rem; font-size: 1.1875rem; box-shadow: var(--sn-buy-shadow); }
.sn-woo #place_order::before {
	content: ""; flex: 0 0 auto; width: 1.1em; height: 1.1em; background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sn-purchase-terms { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.25rem; font-size: 0.875rem; color: var(--sn-muted); }
.sn-purchase-terms li { display: inline-flex; align-items: center; min-height: 2.75rem; }
.sn-purchase-terms a { color: var(--sn-muted); font-weight: 600; }

@media (min-width: 901px) {
	/* The summary's heading lines up with the first step inside the details card, and the summary follows the scroll. */
	.sn-woo form.woocommerce-checkout > #order_review_heading { padding-top: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
	.sn-woo form.woocommerce-checkout > #order_review { position: sticky; top: 1.5rem; }
}
@media (max-width: 900px) {
	.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout) { display: block; }
	.woocommerce-checkout .sn-woo__content .woocommerce:has(> form.woocommerce-checkout) > :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) :is(.woocommerce-info, .wc-block-components-notice-banner) { margin-bottom: 0.5rem; }
	.sn-woo form.woocommerce-checkout { display: block; }
	.sn-woo #order_review_heading { margin-top: 2rem; }
}
@media (max-width: 600px) {
	.sn-woo #customer_details .woocommerce-billing-fields > h3, .sn-woo #order_review_heading { font-size: 1.3125rem; }
}

/* ---------- Order received and order details ---------- */
.sn-woo .woocommerce-order > * + * { margin-top: 1.25rem; }
.sn-woo [data-template="order-confirmation"] > h1 { margin-bottom: 1.25rem; }
.sn-woo .woocommerce-thankyou-order-received, .sn-woo .woocommerce-order > .wc-block-components-notice-banner.is-success {
	padding: 1.25rem 1.5rem; border-radius: var(--sn-radius); font: 700 clamp(1.375rem, 1.1rem + 1vw, 1.875rem)/1.2 var(--sn-heading);
}
.sn-woo .woocommerce-thankyou-order-received::before {
	content: ""; flex: 0 0 auto; width: 2.5rem; height: 2.5rem; border-radius: 999px;
	background: var(--sn-buy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 60% no-repeat;
}
.sn-woo ul.woocommerce-order-overview { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.625rem; }
.sn-woo ul.woocommerce-order-overview li { margin: 0; padding: 0.875rem 1rem; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: 14px; font-size: 0.875rem; color: var(--sn-muted); overflow-wrap: anywhere; }
.sn-woo ul.woocommerce-order-overview li strong { display: block; margin-top: 0.125rem; font-size: 1rem; color: var(--sn-navy); }
.sn-woo .woocommerce-order-details .shop_table td.product-total, .sn-woo .woocommerce-order-details .shop_table tfoot td, .sn-woo .woocommerce-order-details .shop_table th.product-total { text-align: right; }
.sn-woo .woocommerce-order-details .order-again { margin-top: 1rem; }
.sn-woo .woocommerce-order-details .shop_table td.product-name a { text-decoration: none; font-weight: 600; }
.sn-woo .woocommerce-order-details .shop_table td.product-name a:hover { text-decoration: underline; }
.sn-woo .woocommerce-customer-details .col2-set.addresses, .sn-woo .woocommerce-Addresses.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.sn-woo .woocommerce-customer-details address { font-style: normal; height: auto; }
.sn-woo .woocommerce-customer-details address p { margin: 0.375rem 0 0; }
.sn-woo .woocommerce-customer-details--phone, .sn-woo .woocommerce-customer-details--email { overflow-wrap: anywhere; }
.sn-woo .woocommerce-order .wc-bacs-bank-details, .sn-woo .woocommerce-bacs-bank-details { padding: 1rem; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); }
@media (max-width: 700px) {
	.sn-woo .woocommerce-customer-details .col2-set.addresses, .sn-woo .woocommerce-Addresses.col2-set { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.sn-woo ul.woocommerce-order-overview li:is(.woocommerce-order-overview__email, .woocommerce-order-overview__payment-method) { grid-column: 1 / -1; }
}

/* ---------- My Account ---------- */
.woocommerce-account .sn-woo__content .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: 1.5rem clamp(1.5rem, 3vw, 3rem); align-items: start; }
.woocommerce-account .sn-woo__content .woocommerce:has(> .woocommerce-MyAccount-navigation) > * { grid-column: 1 / -1; min-width: 0; }
.woocommerce-account .sn-woo__content .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation { grid-column: 1; }
.woocommerce-account .sn-woo__content .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content { grid-column: 2; }
.sn-woo .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0.625rem; display: grid; gap: 0.25rem; background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-radius); }
.sn-woo .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
.sn-woo .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 2.875rem; padding: 0 1rem; border-radius: 10px; font-weight: 600; text-decoration: none; }
.sn-woo .woocommerce-MyAccount-navigation a:hover { background: var(--sn-cream); color: var(--sn-navy); }
.sn-woo .woocommerce-MyAccount-navigation li.is-active a { background: var(--sn-navy); color: var(--sn-white); }
.sn-woo .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0.375rem; padding-top: 0.375rem; border-top: 1px solid var(--sn-line); }
.sn-woo .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--sn-muted); }
.sn-woo .woocommerce-MyAccount-content > * + * { margin-top: 1rem; }
/* The dashboard's greeting and its line under it as one card. */
.sn-woo .woocommerce-MyAccount-content > p:first-of-type:has(a[href*="logout"]) { padding: 1.25rem 1.5rem 0; margin: 0; background: var(--sn-white); border: 1px solid var(--sn-line); border-bottom: 0; border-radius: var(--sn-radius) var(--sn-radius) 0 0; font-size: 1.125rem; }
.sn-woo .woocommerce-MyAccount-content > p:first-of-type:has(a[href*="logout"]) + p { margin: 0; padding: 0.75rem 1.5rem 1.5rem; background: var(--sn-white); border: 1px solid var(--sn-line); border-top: 0; border-radius: 0 0 var(--sn-radius) var(--sn-radius); color: var(--sn-muted); }
.sn-woo .woocommerce-MyAccount-content mark { background: none; color: inherit; font-weight: 700; }
.sn-woo table.woocommerce-orders-table, .sn-woo table.woocommerce-MyAccount-downloads, .sn-woo table.woocommerce-table--order-downloads { background: var(--sn-white); border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); border-collapse: separate; overflow: hidden; }
.sn-woo table.woocommerce-orders-table th, .sn-woo table.woocommerce-orders-table td, .sn-woo table.woocommerce-MyAccount-downloads th, .sn-woo table.woocommerce-MyAccount-downloads td { padding: 0.75rem 1rem; vertical-align: middle; }
.sn-woo table.woocommerce-orders-table thead th { font-size: 0.875rem; color: var(--sn-muted); }
.sn-woo .woocommerce-orders-table__cell-order-actions .button { min-height: 2.75rem; margin: 0.125rem 0.25rem 0.125rem 0; }
.sn-woo .woocommerce-MyAccount-content .woocommerce-Address-title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.sn-woo .woocommerce-MyAccount-content .woocommerce-Address-title h2 { font: 700 1.25rem/1.2 var(--sn-heading); margin: 0; }
.sn-woo .woocommerce-MyAccount-content .woocommerce-Address-title a.edit { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; }
.sn-woo .woocommerce-MyAccount-content address { font-style: normal; }
.sn-woo .woocommerce-MyAccount-content form > h2, .sn-woo .woocommerce-MyAccount-content form > h3 { font-family: var(--wp--preset--font-family--body); font-size: 1.25rem; margin-bottom: 1rem; }
.sn-woo .woocommerce-MyAccount-content > form { max-width: 40rem; }
.sn-woo .woocommerce-EditAccountForm fieldset { margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--sn-line); border-radius: var(--sn-card-radius); background: var(--sn-white); }
.sn-woo .woocommerce-EditAccountForm .form-row em, .sn-woo .woocommerce-form .form-row em { display: block; margin-top: 0.375rem; font-size: 0.875rem; color: var(--sn-muted); font-style: normal; }
.sn-woo .woocommerce-MyAccount-content form .button { min-height: var(--sn-field-h); }
/* Signed out: sign in (and sign up, when the shop allows it), the card in the middle of the page. */
.woocommerce-account:not(.logged-in) .sn-woo__title { text-align: center; }
.woocommerce-account:not(.logged-in) .sn-woo__content .woocommerce:is(:has(> form.woocommerce-form-login), :has(> form.lost_reset_password)) { max-width: 30rem; margin-inline: auto; }
.woocommerce-account:not(.logged-in) .sn-woo__content .woocommerce:is(:has(> form.woocommerce-form-login), :has(> form.lost_reset_password)) > h2 { text-align: center; font-size: 1.5rem; margin-bottom: 1rem; }
.sn-woo .woocommerce-form-login__submit, .sn-woo .woocommerce-form-register__submit, .sn-woo .woocommerce-ResetPassword .button { width: 100%; min-height: 3.25rem; font-size: 1.0625rem; }
.sn-woo .u-columns.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.sn-woo .u-columns.col2-set h2 { font-size: 1.5rem; margin-bottom: 0.75rem; }
.sn-woo form.woocommerce-form-login, .sn-woo form.woocommerce-ResetPassword, .sn-woo form.lost_reset_password { max-width: 30rem; }
.sn-woo .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: column; align-items: stretch; gap: 0.75rem; }
.sn-woo .woocommerce-form-login .woocommerce-form-login__rememberme { align-self: flex-start; }
.sn-woo .woocommerce-LostPassword { margin: 0.5rem 0 0; text-align: center; }
.sn-woo .woocommerce-LostPassword a { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; }
.sn-woo .woocommerce-privacy-policy-text { font-size: 0.875rem; color: var(--sn-muted); }

@media (max-width: 760px) {
	.woocommerce-account .sn-woo__content .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: block; }
	.woocommerce-account .sn-woo__content .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation { margin-bottom: 1.25rem; }
	/* The account menu as an even two-column grid. */
	.sn-woo .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.375rem; padding: 0; background: none; border: 0; }
	.sn-woo .woocommerce-MyAccount-navigation a { justify-content: center; min-height: 2.75rem; padding: 0 0.5rem; border: 1.5px solid var(--sn-field); border-radius: 12px; background: var(--sn-white); font-size: 0.9375rem; text-align: center; }
	.sn-woo .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }
	.sn-woo .woocommerce-MyAccount-navigation li.is-active a { border-color: var(--sn-navy); }
	.sn-woo .u-columns.col2-set { grid-template-columns: minmax(0, 1fr); }
	/* Account tables (orders, downloads): each row a block, each cell with its label. */
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive thead { display: none; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive, .sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tbody, .sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tr { display: block; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tbody th:not([data-title]) { display: none; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tr td, .sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tbody th[data-title] { display: block; text-align: right; padding: 0.5rem 1rem; border: 0; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tr td::before, .sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tbody th[data-title]::before { content: attr(data-title); float: left; margin-right: 1rem; font-weight: 700; text-align: left; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tr td:not([data-title])::before, .sn-woo .woocommerce-MyAccount-content table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions::before { content: none; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tbody tr { padding: 0.5rem 0; border-bottom: 1px solid var(--sn-line); }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tbody tr:last-child { border-bottom: 0; }
	.sn-woo .woocommerce-MyAccount-content table.shop_table_responsive tr td.woocommerce-orders-table__cell-order-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; }
}

/* /wp-content/plugins/mailin/css/mailin-front.css */
div.sib-sms-field {
    display: inline-block;
    position: relative;
    width: 100%;
}

.sib-sms-field .sib-country-block {
    position: absolute;
    right: auto;
    left: 0;
    top: 0;
    bottom: 0;
    padding: 1px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.sib-country-block .sib-toggle.sib-country-flg {
    z-index: 1;
    position: relative;
    width: 46px;
    height: 100%;
    padding: 0 0 0 8px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-color: #dbdbdb;
    cursor: pointer;
}

.sib-country-block .sib-toggle .sib-cflags {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    height: 15px;
    width: 20px;
    background-repeat: no-repeat;
    background-color: #dbdbdb;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-image: url('/wp-content/plugins/mailin/img/flags/fr.png');
}
.sib-country-block .sib-toggle .sib-icon-arrow {
    position: absolute;
    top: 50%;
    margin-top: -2px;
    right: 6px;
    width:  0;
    height: 0;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 4px solid;
}
.sib-sms-field ul.sib-country-list {
    position: absolute;
    z-index: 2;
    list-style: none;
    text-align: left;
    padding: 0px;
    margin: 0px 0px 0px -1px;
    box-shadow: rgba(0, 0, 0, 0.2) 1px 1px 4px;
    background-color: white;
    border: 1px solid rgb(204, 204, 204);
    white-space: nowrap;
    max-height: 150px;
    overflow-y: scroll;
    overflow-x: hidden;
    top: 50px;
    width: 250px;
}
.sib-sms-field ul.sib-country-list li.sib-country-prefix {
    font-size: 14px;
    padding:1px 10px;
    cursor: pointer;
}
.sib-sms-field ul.sib-country-list li.sib-country-prefix:hover {
    background-color: #dbdbdb;
}
.sib-sms-field ul.sib-country-list li .sib-flag-box {
    width: 20px;
}

.sib-sms-field ul.sib-country-list li .sib-flag-box .sib-flag {
    height: 18px;
    width: 20px;
    background-image: url("/wp-content/plugins/mailin/img/flags/ad.png");
    vertical-align: middle;
    display: inline-block;
    background-repeat:no-repeat;
}
.sib-sms-field ul.sib-country-list li .sib-flag-box .sib-dial-code {
    margin-left: 20px;
}
.sib-sms-field .sib-sms {
    padding-right: 6px;
    padding-left: 52px;
    margin-left: 0;
    position: relative;
    z-index: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-right: 0;
}
.sib-multi-lists.sib_error {
    color: #A94442;
}
