/*
Theme Name: Liverpool Sheds
Theme URI: https://liverpoolsheds.co.uk
Author: Monthly Webs
Description: WooCommerce theme for Liverpool Sheds. Homepage shed builder, category pages with size, treatment and price filters, and a product page configurator with door position, upgrades, old shed removal and fitting day booking.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
WC requires at least: 8.0
License: GPLv2 or later
Text Domain: liverpool-sheds
*/

:root {
	--ink: #10201A;
	--ink-2: #17302A;
	--ink-3: #24443A;
	--ink-line: #2E4A3F;
	--ink-line-2: #3D5A4E;
	--ink-deep: #0B1612;
	--stone: #ECEEE8;
	--stone-2: #D5D9D0;
	--stone-3: #F5F6F3;
	--line: #DCE0D8;
	--line-2: #C9CEC4;
	--line-soft: #EEF0EB;
	--text-2: #2C3B34;
	--muted: #3F4F47;
	--muted-2: #55625B;
	--pale: #C9D3CD;
	--pale-2: #B9C6BF;
	--pale-3: #9FB1A7;
	--pale-4: #7E948A;
	--orange: #FF5B1F;
	--orange-hover: #FF7440;
	--orange-text: #FF8A5C;
	--orange-deep: #C2410C;
	--orange-tint: #FFF1EA;
	--green: #1E6B48;
	--green-bg: #E3F1E8;
	--sans: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--wrap: 1360px;
	--gutter: 24px;
	--section: clamp(64px, 8vw, 112px);
	--section-sm: clamp(64px, 8vw, 104px);
	--r: 12px;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; }
img { height: auto; }
a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--orange-deep); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0; }
p { margin: 0; }
.ls-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 6px; }
.ls-skip:focus { left: 8px; color: #fff; }
.ls-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.ls-wrap { max-width: var(--wrap); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.ls-mono { font-family: var(--mono); }
.ls-small { font-size: 13px; color: var(--muted); }
.ls-muted { color: var(--muted); }
.ls-label { font-size: 12px; color: var(--muted-2); }
.ls-stat { font-weight: 800; font-size: 26px; }
.ls-u { text-decoration: underline; }
.ls-mb { margin-bottom: 28px; }
.ls-multiply { mix-blend-mode: multiply; }
.ls-stars { color: var(--orange-deep); letter-spacing: 1px; }

/* Type */
.ls-h-hero { font-weight: 850; font-variation-settings: "wdth" 112; font-size: clamp(40px, 4.6vw, 68px); line-height: .98; letter-spacing: -.035em; }
.ls-h1 { font-weight: 850; font-variation-settings: "wdth" 118; font-size: clamp(40px, 5.6vw, 84px); line-height: .95; letter-spacing: -.035em; }
.ls-h2 { font-weight: 850; font-variation-settings: "wdth" 112; font-size: clamp(34px, 4vw, 56px); line-height: 1; letter-spacing: -.03em; }
.ls-h2--narrow { max-width: 14em; }
.ls-h2--mid { font-size: clamp(32px, 3.6vw, 52px); max-width: 16em; }
.ls-h3 { font-weight: 850; font-variation-settings: "wdth" 112; font-size: clamp(30px, 3.2vw, 44px); line-height: 1; letter-spacing: -.03em; }
.ls-h4 { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 34px; line-height: 1.05; letter-spacing: -.02em; }
.ls-lead { margin-top: 18px; font-size: 18px; color: var(--text-2); max-width: 30em; }
.ls-lead--muted { font-size: 19px; color: var(--muted); max-width: 36em; }
.ls-lead--dark { font-size: 19px; line-height: 1.65; color: var(--pale); max-width: 32em; margin-top: 24px; }
.ls-headrow { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: end; justify-content: space-between; margin-bottom: 36px; }
.ls-headrow__p { font-size: 17px; color: var(--muted); max-width: 26em; }
.ls-link { font-weight: 700; display: inline-flex; gap: 10px; align-items: center; border-bottom: 2px solid var(--orange); padding-bottom: 2px; }
.ls-link--icon { margin-top: 24px; }
.ls-textbtn { margin-top: 10px; min-height: 44px; border: 0; background: transparent; padding: 0; font-weight: 700; font-size: 15px; text-decoration: underline; cursor: pointer; }
.ls-badge { display: inline-block; font-size: 12px; font-weight: 700; background: var(--green-bg); color: var(--green); padding: 3px 8px; border-radius: 4px; line-height: 1.4; }

/* Buttons */
.ls-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: 6px; border: 2px solid transparent; font-weight: 700; font-size: 16px; line-height: 1.2; cursor: pointer; text-align: center; transition: background .15s ease, transform .15s ease, color .15s ease; }
.ls-btn:hover { transform: translateY(-1px); }
.ls-btn--orange { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.ls-btn--orange:hover { background: var(--orange-hover); border-color: var(--orange-hover); color: var(--ink); }
.ls-btn--ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.ls-btn--ink:hover { background: var(--ink-3); border-color: var(--ink-3); color: #fff; }
.ls-btn--line { background: #fff; border-color: var(--ink); color: var(--ink); }
.ls-btn--line:hover { color: var(--ink); background: var(--stone); }
.ls-btn--white-line { background: transparent; border-color: #fff; color: #fff; }
.ls-btn--white-line:hover { color: #fff; background: rgba(255,255,255,.08); }
.ls-btn--lg { min-height: 56px; padding: 16px 26px; font-size: 17px; }
.ls-btn--sm { min-height: 44px; padding: 10px 16px; font-size: 15px; }
.ls-btn--block { width: 100%; }
.ls-btnrow { display: flex; flex-wrap: wrap; gap: 12px; }

/* Sections */
.ls-section { padding: var(--section) 0; }
.ls-section--top { padding-bottom: 0; }
.ls-section--flushtop { padding-top: 0; }
.ls-section--tight { padding: 48px 0; }
.ls-section--page { padding-top: 48px; }
.ls-stone { background: var(--stone); }
.ls-dark { background: var(--ink); color: #fff; }
.ls-orange { background: var(--orange); }

/* Top strip */
.ls-topbar { background: var(--ink); color: #E6ECE7; font-size: 13px; }
.ls-topbar__in { display: flex; flex-wrap: wrap; gap: 6px 24px; justify-content: flex-end; padding-top: 8px; padding-bottom: 8px; }
.ls-topbar a { color: #E6ECE7; display: inline-flex; gap: 6px; align-items: center; }
.ls-topbar a:hover { color: #fff; }
.ls-topbar__rating svg { color: var(--orange); }
.ls-topbar__phone { color: #fff !important; font-weight: 600; }

/* Header */
.ls-header { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 30; }
.admin-bar .ls-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ls-header { top: 0; } }
.ls-header__in { height: 76px; display: flex; align-items: center; gap: 32px; }
.ls-logo { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; color: var(--ink); }
.ls-logo:hover { color: var(--ink); }
.ls-logo__img { max-height: 56px; width: auto; }
.ls-logo__word { font-weight: 850; font-variation-settings: "wdth" 118; font-size: 21px; letter-spacing: -.01em; line-height: 1; }
.ls-logo__word span { display: block; font-weight: 500; letter-spacing: .28em; font-size: 12px; }
.ls-nav { flex: 1; min-width: 0; }
.ls-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 26px; font-size: 15px; font-weight: 600; }
.ls-nav__list a { display: block; padding: 26px 0; white-space: nowrap; }
.ls-nav__list .current-menu-item > a, .ls-nav__list .current-menu-ancestor > a, .ls-nav__list .current-product_cat-ancestor > a { box-shadow: inset 0 -3px 0 var(--orange); }
.ls-nav__list .is-highlight > a { color: var(--orange-deep); }
.ls-header__tools { display: flex; gap: 6px; align-items: center; margin-left: auto; }
.ls-iconbtn { position: relative; width: 44px; height: 44px; border: 0; background: transparent; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--ink); }
.ls-iconbtn:hover { background: var(--stone); color: var(--ink); }
.ls-cart__count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--orange); color: var(--ink); font-size: 11px; font-weight: 800; line-height: 18px; text-align: center; }
.ls-cart__count.is-empty { display: none; }
.ls-header__cta { margin-left: 8px; min-height: 44px; padding: 10px 20px; font-size: 15px; }
.ls-menubtn { display: none; width: 44px; height: 44px; border: 0; background: var(--ink); color: #fff; border-radius: 8px; align-items: center; justify-content: center; cursor: pointer; }
.ls-search { border-top: 1px solid var(--line); background: #fff; }
.ls-search__form { display: flex; gap: 8px; padding-top: 14px; padding-bottom: 14px; }
.ls-search__form input { flex: 1; min-width: 0; height: 52px; border: 2px solid var(--line); border-radius: 8px; padding: 0 16px; }
.ls-drawer { border-top: 1px solid var(--line); background: #fff; padding: 8px 0 24px; max-height: calc(100vh - 76px); overflow: auto; }
.ls-drawer__list { list-style: none; margin: 0 0 16px; padding: 0; }
.ls-drawer__list a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line-soft); font-weight: 700; font-size: 18px; }
.ls-drawer__phone { display: block; text-align: center; margin-top: 14px; font-weight: 700; }
@media (max-width: 1360px) {
	.ls-header__in { gap: 22px; }
	.ls-nav__list { gap: 18px; font-size: 14px; }
}
@media (max-width: 1240px) {
	.ls-nav__list { gap: 14px; }
	.ls-header__cta { padding: 10px 14px; }
}
@media (max-width: 1100px) {
	.ls-nav, .ls-header__cta { display: none; }
	.ls-menubtn { display: inline-flex; }
	.ls-header__in { gap: 16px; }
}

/* Selling points bar */
.ls-usp { background: var(--stone); border-bottom: 1px solid var(--line); }
.ls-usp__list { list-style: none; margin: 0 auto; display: flex; overflow-x: auto; scrollbar-width: none; }
.ls-usp__list::-webkit-scrollbar { display: none; }
.ls-usp__item { flex: 1 0 auto; display: flex; gap: 12px; align-items: center; padding: 14px 20px; white-space: nowrap; border-right: 1px solid var(--stone-2); }
.ls-usp__item:first-child { padding-left: 0; }
.ls-usp__item:last-child { padding-right: 0; border-right: 0; }
.ls-usp__item svg { color: var(--orange-deep); flex-shrink: 0; }
.ls-usp__item > span { display: flex; flex-direction: column; line-height: 1.25; }
.ls-usp__item strong { font-size: 15px; }
.ls-usp__item span span { font-size: 13px; color: var(--muted); }

/* Hero: builder */
.ls-hero { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--line); background: #fff; }
.ls-hero__main { flex: 1 1 600px; min-width: 0; padding: clamp(40px, 5vw, 72px) clamp(24px, 4vw, 64px) clamp(40px, 5vw, 64px) max(24px, calc((100% - 1312px) / 2)); }
.ls-hero__inner { max-width: 620px; }
.ls-hero__media { flex: 1 1 560px; min-width: 0; background: var(--stone); position: relative; min-height: 560px; display: flex; align-items: center; justify-content: center; padding: 48px 48px 140px; }
.ls-hero__img { width: 100%; max-width: 620px; aspect-ratio: 1; object-fit: contain; transition: opacity .25s ease; }
.ls-hero__tags { position: absolute; left: 32px; right: 32px; bottom: 32px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: flex-end; }
.ls-hero__summary { background: var(--ink); color: #fff; border-radius: 8px; padding: 14px 18px; }
.ls-hero__label { font-size: 12px; color: var(--pale-2); }
.ls-hero__name { font-weight: 800; font-size: 19px; }
.ls-hero__mm { font-size: 12px; color: var(--orange-text); margin-top: 2px; }
.ls-hero__chips { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.ls-hero__chips span { background: #fff; border-radius: 6px; padding: 8px 12px; }
.ls-hero .ls-btnrow { margin-top: 36px; }
.ls-builder { margin-top: 32px; display: flex; flex-direction: column; gap: 24px; }
.ls-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.ls-step legend { padding: 0; font-weight: 800; font-size: 15px; margin-bottom: 10px; }
.ls-step__n { font-family: var(--mono); color: var(--orange-deep); margin-right: 8px; }
.ls-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ls-grid-sizes { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; }
.ls-choice { position: relative; min-height: 64px; border-radius: 8px; cursor: pointer; border: 2px solid var(--line); background: #fff; color: var(--ink); transition: border-color .15s ease, background .15s ease; }
.ls-choice:hover { border-color: var(--ink); }
.ls-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ls-choice:has(input:checked) { border-color: var(--ink); background: var(--ink); color: #fff; }
.ls-choice:has(input:focus-visible) { outline: 3px solid var(--orange); outline-offset: 2px; }
.ls-choice--row { display: flex; align-items: center; gap: 14px; padding: 10px 16px; }
.ls-choice--col { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 8px; }
.ls-choice--col strong { font-weight: 800; font-size: 18px; }
.ls-choice--col span { font-size: 12px; opacity: .8; }
.ls-choice__text { display: flex; flex-direction: column; align-items: flex-start; }
.ls-choice__text strong { font-weight: 800; font-size: 17px; }
.ls-choice__text span { font-size: 13px; opacity: .8; }
.ls-choice.is-off { opacity: .4; }
.ls-swatch { width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line-2); }
.ls-swatch--dip { background: #B4522E; }
.ls-swatch--pressure { background: #CFC48A; }
.ls-builder__foot { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; padding-top: 24px; border-top: 2px solid var(--ink); }
.ls-builder__foot .ls-btn { margin-left: auto; font-weight: 800; border-radius: 8px; }
.ls-builder__price { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 44px; line-height: 1; letter-spacing: -.02em; margin: 2px 0 4px; }
.ls-builder__alt { margin-top: -8px; font-size: 14px; color: var(--muted); }
.ls-builder__alt a { text-decoration: underline; font-weight: 600; }

/* Proof strip */
.ls-proof { border-bottom: 1px solid var(--line); }
.ls-proof__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.ls-proof__grid > div { padding: 32px 28px; border-right: 1px solid var(--line); }
.ls-proof__grid > div:first-child { padding-left: 0; }
.ls-proof__grid > div:last-child { border-right: 0; padding-right: 0; }
.ls-proof__n { font-weight: 850; font-variation-settings: "wdth" 118; font-size: 44px; line-height: 1; letter-spacing: -.03em; }
.ls-proof p { margin-top: 10px; font-size: 15px; line-height: 1.5; color: var(--muted); }

/* Category tiles */
.ls-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.ls-cat { border-radius: var(--r); overflow: hidden; display: flex; gap: 8px; min-height: 272px; background: var(--stone); color: var(--ink); }
.ls-cat:hover { color: var(--ink); }
.ls-cat__text { flex: 1 1 50%; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; }
.ls-cat__top { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.ls-cat__name { display: block; font-weight: 850; font-variation-settings: "wdth" 112; font-size: 26px; line-height: 1.05; letter-spacing: -.02em; }
.ls-cat__line { display: block; margin-top: 8px; font-size: 15px; color: var(--muted); line-height: 1.5; }
.ls-cat__price { font-size: 14px; font-weight: 500; }
.ls-cat__img { flex: 1 1 50%; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ls-cat__img img { width: 125%; max-width: none; transition: transform .4s ease; }
.ls-cat--dark { background: var(--ink); color: #fff; }
.ls-cat--dark:hover { color: #fff; }
.ls-cat--dark .ls-cat__line { color: var(--pale); }
.ls-cat--dark .ls-cat__price { color: var(--orange-text); }
.ls-cat--dark .ls-cat__img { background: #fff; }
.ls-cat--dark .ls-cat__img img { mix-blend-mode: normal; width: 100%; }
.ls-cat--big { grid-row: span 2; flex-direction: column; min-height: 560px; }
.ls-cat--big .ls-cat__text { flex: 1; padding: 32px; }
.ls-cat--big .ls-cat__name { font-size: 36px; line-height: 1; }
.ls-cat--big .ls-cat__line { font-size: 16px; }
.ls-cat--big .ls-cat__img { order: 0; flex: 1; padding: 16px; }
.ls-cat--big .ls-cat__img img { width: 100%; max-width: 520px; }
.ls-cat--big .ls-cat__text { display: contents; }
.ls-cat--big .ls-cat__top { order: -1; padding: 32px 32px 0; }
.ls-cat--big .ls-cat__price { order: 1; padding: 0 32px 28px; }
.ls-tile:hover img { transform: scale(1.04); }
.ls-tile-go { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: #fff; display: inline-flex; align-items: center; justify-content: center; transition: background .15s ease; }
.ls-tile:hover .ls-tile-go { background: var(--orange); color: var(--ink); }
.ls-chips { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 10px; }
.ls-chip { border: 1px solid var(--line-2); border-radius: 6px; padding: 10px 16px; font-size: 15px; font-weight: 600; }
.ls-chip--hot { border-color: var(--orange); background: var(--orange-tint); }

/* Made to order */
.ls-made { margin-top: var(--section); }
.ls-split { padding-top: var(--section); padding-bottom: var(--section); display: flex; flex-wrap: wrap; gap: 64px; align-items: center; }
.ls-split__a { flex: 1 1 460px; min-width: 0; }
.ls-split__b { flex: 1 1 520px; min-width: 0; }
.ls-split__a > .ls-btn { margin-top: 40px; }
.ls-numlist { list-style: none; margin: 40px 0 0; padding: 0; }
.ls-numlist li { display: grid; grid-template-columns: 56px 1fr; gap: 16px; padding: 20px 0; border-top: 1px solid var(--ink-line); }
.ls-numlist li:last-child { border-bottom: 1px solid var(--ink-line); }
.ls-numlist li > span { font-family: var(--mono); color: var(--orange-text); font-size: 14px; padding-top: 3px; }
.ls-numlist strong { font-size: 18px; }
.ls-numlist p { margin-top: 4px; color: var(--pale-2); font-size: 16px; }
.ls-made__media { display: flex; flex-direction: column; gap: 16px; }
.ls-plancard { background: var(--ink-2); border: 1px solid var(--ink-line); border-radius: var(--r); padding: 28px; }
.ls-plancard__head { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--pale-2); margin-bottom: 18px; }
.ls-plancard svg { width: 100%; height: auto; display: block; }
.ls-plancard p { margin-top: 14px; font-size: 14px; color: var(--pale-2); }
.ls-made__photo { width: 100%; border-radius: var(--r); object-fit: cover; aspect-ratio: 16 / 7; display: block; }

/* Size guide */
.ls-guide__tabs { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 8px; }
.ls-tab { min-height: 48px; padding: 0 22px; border-radius: 6px; font-weight: 700; font-size: 16px; cursor: pointer; border: 2px solid var(--ink); background: #fff; color: var(--ink); }
.ls-tab[aria-pressed="true"] { background: var(--ink); color: #fff; }
.ls-guide__body { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 16px; }
.ls-guide__plan { flex: 1 1 520px; min-width: 0; background: var(--stone); border-radius: var(--r); padding: 32px; display: flex; flex-direction: column; gap: 20px; }
.ls-guide__meta { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); }
.ls-guide__grid { position: relative; height: 260px; background-image: linear-gradient(var(--stone-2) 1px, transparent 1px), linear-gradient(90deg, var(--stone-2) 1px, transparent 1px); background-size: 20px 20px; border: 1px solid var(--line-2); border-radius: 4px; overflow: hidden; }
.ls-guide__car { position: absolute; left: 20px; top: 20px; width: 160px; height: 320px; border: 2px dashed #7E8C84; border-radius: 3px; display: flex; justify-content: center; padding-top: 10px; font-size: 11px; color: var(--muted-2); }
.ls-guide__rect { position: absolute; left: 220px; top: 20px; max-width: calc(100% - 240px); background: rgba(255, 91, 31, .18); border: 3px solid var(--orange); border-radius: 3px; display: flex; align-items: center; justify-content: center; transition: width .3s ease, height .3s ease; }
.ls-guide__rect span { font-weight: 850; font-variation-settings: "wdth" 118; font-size: 22px; }
.ls-guide__stats { display: flex; flex-wrap: wrap; gap: 24px 40px; }
.ls-guide__info { flex: 1 1 360px; min-width: 0; border: 1px solid var(--line); border-radius: var(--r); padding: 32px; display: flex; flex-direction: column; }
.ls-guide__info h3 { font-weight: 800; font-size: 24px; letter-spacing: -.01em; }
.ls-guide__info > p { margin-top: 10px; color: var(--muted); font-size: 16px; }
.ls-guide__info .ls-btn { margin-top: auto; align-self: flex-start; }
.ls-ticks { margin: 20px 0 28px; padding: 0; list-style: none; display: grid; gap: 10px; }
.ls-ticks li { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; }
.ls-ticks svg { flex-shrink: 0; margin-top: 4px; color: var(--orange-deep); }
@media (max-width: 600px) {
	.ls-guide__car { width: 100px; }
	.ls-guide__rect { left: 136px; max-width: calc(100% - 150px); }
}

/* Treatment */
.ls-treat { margin-top: 4px; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.ls-treat__card { background: #fff; border-radius: var(--r); position: relative; overflow: hidden; }
.ls-treat__card--pick { box-shadow: inset 0 0 0 3px var(--ink); }
.ls-treat__flag { position: absolute; top: 0; right: 28px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 0 0 6px 6px; }
.ls-treat__head { display: flex; align-items: center; gap: 20px; padding: 28px 28px 0; }
.ls-treat__head img { width: 110px; height: 110px; object-fit: contain; }
.ls-treat__head h3 { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 28px; letter-spacing: -.02em; }
.ls-treat__head p { margin-top: 4px; font-size: 13px; color: var(--muted-2); }
.ls-treat dl { margin: 24px 0 0; padding: 0 28px 28px; display: grid; grid-template-columns: 150px 1fr; gap: 14px 16px; font-size: 16px; }
.ls-treat dt { color: var(--muted-2); }
.ls-treat dd { margin: 0; }
@media (max-width: 480px) { .ls-treat dl { grid-template-columns: 1fr; gap: 2px; } .ls-treat dd { margin-bottom: 10px; } }

/* How it works */
.ls-steps { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.ls-steps li { padding-right: 28px; border-top: 3px solid var(--ink); }
.ls-steps__n { font-weight: 850; font-variation-settings: "wdth" 125; font-size: 72px; line-height: 1; letter-spacing: -.04em; margin-top: 20px; color: var(--orange); }
.ls-steps h3 { margin-top: 16px; font-size: 21px; font-weight: 800; }
.ls-steps p { margin: 8px 0 24px; color: var(--muted); font-size: 16px; }

/* Popular and related cards */
.ls-pops { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.ls-pop { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; color: var(--ink); }
.ls-pop:hover { color: var(--ink); }
.ls-pop__img { position: relative; background: var(--stone); aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ls-pop__img img { width: 82%; height: 82%; object-fit: contain; mix-blend-mode: multiply; transition: transform .4s ease; }
.ls-pop__sizes { position: absolute; left: 12px; top: 12px; background: #fff; border-radius: 4px; padding: 4px 8px; font-family: var(--mono); font-size: 12px; font-weight: 500; }
.ls-pop__body { padding: 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.ls-pop__name { font-size: 19px; font-weight: 800; letter-spacing: -.01em; }
.ls-pop__desc { font-size: 15px; color: var(--muted); }
.ls-pop__price { margin-top: auto; padding-top: 14px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; border-top: 1px solid var(--line-soft); }
.ls-pop__price small { font-size: 13px; color: var(--muted-2); }
.ls-pop__price strong { font-size: 22px; }
.ls-pop__price .ls-mono { font-size: 13px; color: var(--muted); }
.ls-pop__free { font-size: 13px; color: var(--green); font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.ls-mini { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s ease; }
.ls-mini:hover { box-shadow: 0 18px 40px -24px rgba(16, 32, 26, .45); color: var(--ink); }
.ls-mini__img { background: var(--stone); aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; }
.ls-mini__img img { width: 78%; height: 78%; object-fit: contain; mix-blend-mode: multiply; }
.ls-mini__row { padding: 18px 20px; display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.ls-mini__row strong { font-size: 17px; }
.ls-mini__row .ls-mono { font-size: 14px; white-space: nowrap; }

/* Reviews band */
.ls-reviews { display: flex; flex-wrap: wrap; gap: 48px; }
.ls-reviews__head { flex: 1 1 320px; }
.ls-reviews__head .ls-h2 { color: var(--ink); }
.ls-reviews__score { margin-top: 28px; display: flex; align-items: center; gap: 16px; font-size: 15px; line-height: 1.4; color: var(--ink); }
.ls-reviews__score:hover { color: var(--ink); }
.ls-reviews__score .ls-stars { color: var(--ink); letter-spacing: 2px; }
.ls-reviews__n { font-weight: 850; font-variation-settings: "wdth" 118; font-size: 56px; line-height: 1; }
.ls-reviews__list { flex: 2 1 600px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.ls-quote { margin: 0; background: #fff; border-radius: var(--r); padding: 28px; display: flex; flex-direction: column; gap: 20px; }
.ls-quote blockquote { margin: 0; font-size: 18px; line-height: 1.55; font-weight: 500; }
.ls-quote figcaption { margin-top: auto; font-size: 14px; color: var(--muted); }
.ls-quote figcaption strong { color: var(--ink); }
.ls-quote--photo { background: var(--ink); color: #fff; padding: 0; overflow: hidden; gap: 0; }
.ls-quote--photo img { width: 100%; flex: 1; min-height: 160px; object-fit: cover; }
.ls-quote--photo figcaption { padding: 18px 22px; color: #fff; }
.ls-quote--photo figcaption strong { color: #fff; }

/* Showroom and areas */
.ls-visit { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; }
.ls-visit--one { grid-template-columns: 1fr; }
.ls-visit__showroom { background: var(--stone); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; }
.ls-visit__photo { width: 100%; height: 240px; object-fit: cover; display: block; }
.ls-visit__body { padding: 32px; }
.ls-visit__body .ls-muted { margin-top: 14px; }
.ls-visit__body .ls-btnrow { margin-top: 28px; }
.ls-dl { margin: 24px 0 0; display: grid; grid-template-columns: 90px 1fr; gap: 10px 16px; font-size: 16px; }
.ls-dl dt { color: var(--muted-2); }
.ls-dl dd { margin: 0; }
.ls-visit__areas { background: var(--ink); color: #fff; border-radius: var(--r); padding: 32px; display: flex; flex-direction: column; }
.ls-visit__areas > p { margin-top: 14px; color: var(--pale); }
.ls-areas { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.ls-areas li { padding: 14px 0; border-top: 1px solid var(--ink-line); display: flex; justify-content: space-between; gap: 8px; }
.ls-areas li:nth-last-child(-n+2) { border-bottom: 1px solid var(--ink-line); }
.ls-areas .ls-mono { font-size: 13px; color: var(--pale-3); text-align: right; }
.ls-pc { margin-top: auto; padding-top: 32px; display: flex; flex-wrap: wrap; gap: 8px; }
.ls-pc label { width: 100%; font-size: 14px; color: var(--pale); }
.ls-pc input { flex: 1 1 180px; height: 52px; border-radius: 6px; border: 1px solid var(--ink-line-2); background: var(--ink-2); color: #fff; padding: 0 16px; }
.ls-pc input::placeholder { color: var(--pale-3); }
.ls-pc .ls-btn { min-height: 52px; }
.ls-pc__result { width: 100%; font-size: 15px; font-weight: 600; min-height: 1.6em; }
.ls-pc__result.is-yes { color: #8FE0B5; }
.ls-pc__result.is-no { color: var(--orange-text); }
@media (max-width: 420px) { .ls-areas { grid-template-columns: 1fr; } .ls-areas li:nth-last-child(2) { border-bottom: 0; } }

/* FAQ */
.ls-faqwrap { display: flex; flex-wrap: wrap; gap: 48px; }
.ls-faqwrap__head { flex: 1 1 320px; }
.ls-faqwrap__head .ls-muted { margin-top: 20px; }
.ls-faqwrap__head a { text-decoration: underline; }
.ls-faq { flex: 2 1 560px; border-top: 1px solid var(--line-2); min-width: 0; }
.ls-faq details { border-bottom: 1px solid var(--line-2); }
.ls-faq summary { cursor: pointer; list-style: none; padding: 20px 0; display: flex; justify-content: space-between; gap: 24px; font-weight: 700; font-size: 18px; }
.ls-faq summary::-webkit-details-marker { display: none; }
.ls-faq p { margin: 0 0 20px; color: var(--muted); max-width: 40em; }
.ls-faq__plus { font-size: 24px; line-height: 1; transition: transform .2s ease; }
.ls-faq details[open] .ls-faq__plus { transform: rotate(45deg); }
.ls-faq--lg summary { padding: 24px 0; font-size: 19px; }
.ls-faq--lg p { margin-bottom: 24px; }

/* CTA */
.ls-cta { background: var(--ink); border-radius: 16px; padding: clamp(36px, 5vw, 72px); display: flex; flex-wrap: wrap; gap: 32px; align-items: center; justify-content: space-between; }
.ls-cta__title { flex: 1 1 480px; color: #fff; font-weight: 850; font-variation-settings: "wdth" 118; font-size: clamp(36px, 4.6vw, 64px); line-height: .98; letter-spacing: -.03em; }
.ls-cta__title span { color: var(--orange-text); }

/* Footer */
.ls-footer { background: var(--ink-deep); color: var(--pale); font-size: 15px; }
.ls-footer a { color: var(--pale); }
.ls-footer a:hover { color: #fff; }
.ls-footer__grid { padding-top: 72px; padding-bottom: 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 40px; }
.ls-footer__brand { grid-column: span 2; min-width: 0; }
.ls-footer__name { font-weight: 850; font-variation-settings: "wdth" 118; font-size: 26px; color: #fff; letter-spacing: -.01em; }
.ls-footer__brand > p { margin-top: 14px; max-width: 28em; }
.ls-footer__news { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 8px; max-width: 420px; }
.ls-footer__news label { width: 100%; color: #fff; font-weight: 600; }
.ls-footer__news input { flex: 1 1 200px; height: 48px; border-radius: 6px; border: 1px solid var(--ink-line); background: var(--ink); color: #fff; padding: 0 14px; }
.ls-footer__news button { height: 48px; padding: 0 18px; border: 0; border-radius: 6px; background: #fff; color: var(--ink); font-weight: 700; cursor: pointer; }
.ls-footer__col { display: flex; flex-direction: column; gap: 10px; }
.ls-footer__col strong { color: #fff; margin-bottom: 4px; }
.ls-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ls-footer__base { padding-top: 24px; padding-bottom: 24px; border-top: 1px solid #1F3830; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; font-size: 14px; color: var(--pale-3); }
@media (max-width: 600px) { .ls-footer__brand { grid-column: auto; } }

/* Plain pages */
.ls-pagehead { background: var(--ink); color: #fff; padding: 40px 0 44px; }
.ls-pagehead .ls-btnrow { margin-top: 28px; }
.ls-prose { max-width: 820px; }
.ls-prose > * + * { margin-top: 1em; }
.ls-prose h2 { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 32px; line-height: 1.1; letter-spacing: -.02em; margin-top: 1.6em; }
.ls-prose h3 { font-size: 22px; font-weight: 800; margin-top: 1.4em; }
.ls-prose a { text-decoration: underline; color: var(--orange-deep); }
.ls-prose img { border-radius: var(--r); }
.ls-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; }
.ls-post__img img { width: 100%; border-radius: var(--r); aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.ls-post__title { margin: 16px 0 6px; font-size: 22px; font-weight: 800; line-height: 1.2; }
.ls-pagination, .woocommerce-pagination { margin-top: 40px; }
.ls-pagination .nav-links, .woocommerce-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; border: 0; }
.ls-pagination .page-numbers, .woocommerce-pagination .page-numbers { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--line-2); border-radius: 6px; padding: 0 12px; font-weight: 700; }
.woocommerce-pagination li { border: 0 !important; }
.ls-pagination .current, .woocommerce-pagination .current { background: var(--ink); color: #fff; border-color: var(--ink); }

/* Category hero */
.ls-cathero { background: var(--ink); color: #fff; }
.ls-cathero > .ls-wrap { padding-top: 20px; padding-bottom: 28px; }
.ls-crumbs { font-size: 14px; color: var(--muted); display: flex; gap: 8px; flex-wrap: wrap; }
.ls-crumbs a { color: var(--muted); }
.ls-crumbs [aria-current] { color: var(--ink); font-weight: 600; }
.ls-cathero .ls-crumbs, .ls-cathero .ls-crumbs a { color: var(--pale-2); }
.ls-cathero .ls-crumbs a:hover { color: #fff; }
.ls-cathero .ls-crumbs [aria-current] { color: #fff; }
.ls-cathero__row { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 20px 64px; align-items: flex-end; justify-content: space-between; }
.ls-cathero__text { flex: 1 1 720px; min-width: 0; }
.ls-cathero__title { font-weight: 850; font-variation-settings: "wdth" 118; font-size: clamp(40px, 5.6vw, 84px); line-height: .95; letter-spacing: -.035em; }
@media (min-width: 761px) { .ls-cathero__title { white-space: nowrap; } }
.ls-cathero__title.is-long { font-size: clamp(36px, 4.4vw, 64px); }
.ls-cathero__intro { margin-top: 12px; font-size: 18px; color: var(--pale); max-width: 38em; }
.ls-cathero__stats { margin: 0; display: flex; flex-wrap: wrap; gap: 20px 40px; }
.ls-cathero__stats dt { font-family: var(--mono); font-size: 12px; color: var(--pale-3); }
.ls-cathero__stats dd { margin: 2px 0 0; font-weight: 850; font-variation-settings: "wdth" 112; font-size: 26px; line-height: 1.1; white-space: nowrap; }
.ls-types { margin-top: 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.ls-type { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 80px; padding: 10px 8px 10px 18px; border-radius: 10px; overflow: hidden; background: #fff; border: 2px solid #fff; color: var(--ink); transition: background .15s ease, border-color .15s ease; }
.ls-type:hover { color: var(--ink); border-color: var(--orange); }
.ls-type.is-on { background: var(--orange); border-color: var(--orange); }
.ls-type__text { display: flex; flex-direction: column; gap: 2px; }
.ls-type__text strong { font-weight: 800; font-size: 19px; letter-spacing: -.01em; }
.ls-type__text .ls-mono { font-size: 13px; opacity: .85; }
.ls-type img { width: 84px; height: 72px; object-fit: contain; flex-shrink: 0; mix-blend-mode: multiply; }
.ls-type.is-on img { background: #fff; border-radius: 6px; mix-blend-mode: normal; }

/* Toolbar */
.ls-toolbar { border-bottom: 1px solid var(--line); background: #fff; }
.ls-toolbar__in { padding-top: 16px; padding-bottom: 16px; display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; }
.ls-toolbar__jump { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ls-toolbar__label { font-size: 14px; font-weight: 600; margin-right: 4px; }
.ls-sizechip { border: 1px solid var(--line-2); border-radius: 6px; padding: 8px 12px; font-family: var(--mono); font-size: 13px; font-weight: 500; min-height: 36px; display: inline-flex; align-items: center; }
.ls-sizechip.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.ls-toolbar__sort { display: flex; gap: 16px; align-items: center; }
.ls-toolbar__sort .woocommerce-result-count { margin: 0; font-size: 15px; color: var(--muted); }
.ls-toolbar__sort .woocommerce-ordering { margin: 0; }
.ls-toolbar__sort select, .ls-select { height: 44px; border: 1px solid var(--line-2); border-radius: 6px; padding: 0 12px; font-size: 15px; background: #fff; color: var(--ink); }

/* Listing */
.ls-listing { padding: 40px 0 var(--section-sm); }
.ls-listing__in { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.ls-listing__main { flex: 999 1 640px; min-width: 0; }
.ls-filters { flex: 1 1 260px; max-width: 100%; min-width: 0; }
.ls-filters__box summary { list-style: none; }
.ls-filters__box summary::-webkit-details-marker { display: none; }
.ls-filters__head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; border-bottom: 2px solid var(--ink); min-height: 44px; }
.ls-filters__head h2 { font-size: 18px; font-weight: 800; }
.ls-filters__head a { font-size: 14px; color: var(--muted); text-decoration: underline; }
@media (min-width: 981px) { .ls-filters__box summary { pointer-events: none; } .ls-filters__head a { pointer-events: auto; } }
@media (max-width: 980px) { .ls-filters__head { cursor: pointer; } .ls-filters__head h2::after { content: " +"; } .ls-filters__box[open] .ls-filters__head h2::after { content: " –"; } }
.ls-fgroup { padding: 20px 0; border-bottom: 1px solid var(--line); }
.ls-fgroup h3 { font-weight: 700; font-size: 16px; margin-bottom: 10px; }
.ls-fwidths { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.ls-fwidth { border: 1px solid var(--line-2); border-radius: 6px; min-height: 44px; display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 13px; }
.ls-fwidth.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.ls-fchecks { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.ls-fcheck { display: flex; gap: 12px; align-items: center; min-height: 44px; }
.ls-fcheck__box { width: 20px; height: 20px; border: 2px solid var(--ink); border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: transparent; }
.ls-fcheck.is-on .ls-fcheck__box { background: var(--ink); color: #fff; }
.ls-fcheck__label { flex: 1; }
.ls-fcheck__side { font-size: 13px; color: var(--muted-2); }
.ls-helpcard { margin-top: 24px; background: var(--ink); color: #fff; border-radius: var(--r); padding: 24px; }
.ls-helpcard h2 { font-size: 19px; font-weight: 800; }
.ls-helpcard p { margin-top: 8px; font-size: 15px; color: var(--pale); line-height: 1.55; }
.ls-helpcard .ls-btn { margin-top: 16px; }
.ls-active { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ls-active li { display: inline-flex; gap: 8px; align-items: center; background: var(--stone); border-radius: 6px; padding: 6px 6px 6px 12px; font-size: 14px; font-weight: 600; }
.ls-active a { width: 28px; height: 28px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; }
.ls-active a:hover { background: #fff; }
.ls-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 20px; }
.ls-card { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; background: #fff; transition: box-shadow .2s ease; }
.ls-card:hover { box-shadow: 0 18px 40px -24px rgba(16, 32, 26, .45); }
.ls-card__img { display: block; background: var(--stone); aspect-ratio: 5 / 4; position: relative; overflow: hidden; }
.ls-card__img img { position: absolute; inset: 8%; width: 84%; height: 84%; object-fit: contain; mix-blend-mode: multiply; transition: transform .4s ease; }
.ls-card:hover .ls-card__img img { transform: scale(1.05); }
.ls-card__type { position: absolute; left: 12px; top: 12px; background: var(--ink); color: #fff; border-radius: 4px; padding: 4px 9px; font-size: 12px; font-weight: 700; }
.ls-card__sale { position: absolute; right: 12px; top: 12px; background: var(--orange); color: var(--ink); border-radius: 4px; padding: 4px 9px; font-size: 12px; font-weight: 700; }
.ls-card__sizes { position: absolute; right: 12px; bottom: 12px; background: #fff; border-radius: 4px; padding: 4px 9px; font-family: var(--mono); font-size: 12px; font-weight: 500; }
.ls-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ls-card__name { font-size: 20px; font-weight: 800; letter-spacing: -.01em; line-height: 1.2; }
.ls-card__desc { font-size: 15px; color: var(--muted); line-height: 1.5; }
.ls-card__specs { margin: 4px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.ls-card__specs li { font-size: 13px; border: 1px solid var(--line); border-radius: 4px; padding: 3px 8px; color: var(--text-2); }
.ls-card__foot { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line-soft); display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.ls-card__from { font-size: 13px; color: var(--muted-2); }
.ls-card__price { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 28px; line-height: 1.1; }
.ls-card__monthly { font-size: 13px; color: var(--muted); }
.ls-roofguide { border-radius: var(--r); background: var(--orange); padding: 28px; display: flex; flex-direction: column; gap: 14px; min-height: 420px; }
.ls-roofguide h3 { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 30px; line-height: 1.02; letter-spacing: -.02em; }
.ls-roofguide svg { width: 100%; height: auto; }
.ls-roofguide p { font-size: 16px; line-height: 1.55; }
.ls-empty { background: var(--stone); border-radius: var(--r); padding: 40px; }
.ls-empty .ls-muted { margin: 10px 0 20px; }
.ls-exbar { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; justify-content: space-between; background: var(--ink); color: #fff; border-radius: var(--r); padding: 28px 32px; }
.ls-exbar:hover { color: #fff; }
.ls-exbar__l { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.ls-exbar__l > span:last-child { display: flex; flex-direction: column; }
.ls-exbar__l strong { font-weight: 800; font-size: 21px; }
.ls-exbar__l span span { color: var(--pale); font-size: 15px; }
.ls-exbar__tag { font-size: 13px; background: var(--orange); color: var(--ink); border-radius: 4px; padding: 6px 10px; font-weight: 600; }
.ls-exbar__go { font-weight: 700; display: inline-flex; gap: 8px; align-items: center; }
.ls-exbar__go svg { color: var(--orange-text); }
.ls-included { margin-top: 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); border-radius: var(--r); overflow: hidden; }
.ls-included > div { background: #fff; padding: 28px; }
.ls-included svg { color: var(--orange-deep); }
.ls-included h3 { margin-top: 16px; font-size: 19px; font-weight: 800; }
.ls-included p { margin-top: 6px; font-size: 15px; color: var(--muted); line-height: 1.55; }
.ls-seo { display: flex; flex-wrap: wrap; gap: 56px; }
.ls-seo__text { flex: 1 1 440px; min-width: 0; }
.ls-seo__body { margin-top: 20px; color: var(--text-2); max-width: 38em; display: grid; gap: 16px; }
.ls-seo__faq { flex: 1 1 480px; min-width: 0; }
.ls-seo__faq .ls-faq { border-top: 1px solid var(--line-2); }

/* Product page */
.ls-notices:empty { display: none; }
.ls-notices { padding-top: 16px; }
.ls-product { background: #fff; }
.ls-product__crumbs { padding-top: 24px; }
.ls-product__grid { padding-top: 24px; padding-bottom: 64px; display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.ls-gallery { flex: 1 1 560px; min-width: 0; position: sticky; top: 100px; display: flex; flex-direction: column; gap: 12px; }
.admin-bar .ls-gallery { top: 132px; }
@media (max-width: 1100px) { .ls-gallery { position: static; } }
.ls-gallery__main { position: relative; background: var(--stone); border-radius: 14px; aspect-ratio: 1 / .86; overflow: hidden; }
.ls-gallery__img { position: absolute; left: 10%; top: 8%; width: 76%; height: 76%; object-fit: contain; }
.ls-gallery__tags { position: absolute; left: 16px; top: 16px; right: 120px; display: flex; flex-wrap: wrap; gap: 8px; }
.ls-gallery__tag { background: #fff; border-radius: 4px; padding: 5px 10px; font-size: 13px; font-weight: 600; }
.ls-gallery__tag--ink { background: var(--ink); color: #fff; font-weight: 700; }
.ls-gallery__3d { position: absolute; right: 16px; top: 16px; min-height: 44px; padding: 0 14px; border-radius: 6px; background: #fff; display: inline-flex; gap: 8px; align-items: center; font-weight: 700; font-size: 14px; }
.ls-dim { position: absolute; display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 13px; font-weight: 500; }
.ls-dim > span:not(.ls-dim__t) { flex: 1; background: var(--ink); }
.ls-dim__t { background: var(--stone); padding: 0 6px; white-space: nowrap; }
.ls-dim--w { left: 10%; right: 14%; bottom: 7%; }
.ls-dim--w > span:not(.ls-dim__t) { height: 1px; }
.ls-dim--h { right: 4%; top: 18%; bottom: 20%; flex-direction: column; }
.ls-dim--h > span:not(.ls-dim__t) { width: 1px; }
.ls-dim--h .ls-dim__t { writing-mode: vertical-rl; transform: rotate(180deg); padding: 6px 0; }
.ls-gallery__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ls-thumb { aspect-ratio: 1; border: 2px solid transparent; border-radius: 10px; background: var(--stone); padding: 6px; cursor: pointer; overflow: hidden; }
.ls-thumb[aria-pressed="true"] { border-color: var(--ink); }
.ls-thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.ls-trust { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.ls-trust li { display: flex; gap: 10px; align-items: center; font-size: 14px; font-weight: 600; background: var(--stone-3); border-radius: 8px; padding: 12px; }
.ls-trust svg { color: var(--orange-deep); flex-shrink: 0; }
.ls-pcol { flex: 1 1 480px; min-width: 0; }
.ls-pcol__sub { font-size: 13px; color: var(--muted); }
.ls-pcol__title { margin-top: 8px; font-weight: 850; font-variation-settings: "wdth" 114; font-size: clamp(36px, 3.8vw, 54px); line-height: 1; letter-spacing: -.03em; }
.ls-pcol__meta { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; font-size: 15px; }
.ls-pcol__meta a { display: inline-flex; gap: 8px; align-items: center; }
.ls-pcol__avail { color: var(--green); font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.ls-pcol__avail span { width: 8px; height: 8px; border-radius: 50%; background: #1E8A5A; }
.ls-pcol__desc { margin-top: 18px; color: var(--text-2); font-size: 17px; max-width: 34em; }
.ls-pcol__desc p + p { margin-top: .8em; }
.ls-pricebox { margin-top: 24px; padding: 20px 22px; background: var(--stone); border-radius: var(--r); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; }
.ls-pricebox__total { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 44px; line-height: 1.05; letter-spacing: -.02em; }
.ls-pricebox__r { text-align: right; }
.ls-pricebox__mo { font-size: 15px; font-weight: 600; }
.ls-pstep { border: 0; margin: 32px 0 0; padding: 0; min-width: 0; }
.ls-pstep legend, .ls-pstep__label { padding: 0; width: 100%; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-weight: 800; font-size: 20px; }
.ls-pstep__label { justify-content: flex-start; }
.ls-pstep legend .ls-step__n, .ls-pstep__label .ls-step__n { font-size: 14px; margin-right: 10px; }
.ls-pstep legend > .ls-step__n { order: -1; }
.ls-pstep legend { justify-content: flex-start; flex-wrap: wrap; }
.ls-pstep__aside { margin-left: auto; font-size: 14px; font-weight: 400; text-decoration: underline; }
.ls-pstep__aside.ls-badge { font-size: 13px; font-weight: 700; text-decoration: none; }
.ls-pstep__note { margin: 6px 0 14px; font-size: 14px; color: var(--muted); }
.ls-pstep legend + .ls-cards2, .ls-pstep legend + .ls-plan, .ls-pstep legend + .ls-dates, .ls-pstep legend + .ls-addons { margin-top: 14px; }
.ls-opt { position: relative; cursor: pointer; border: 2px solid var(--line); background: #fff; color: var(--ink); border-radius: 8px; transition: border-color .15s ease, background .15s ease; }
.ls-opt:hover { border-color: var(--ink); }
.ls-opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ls-opt:has(input:focus-visible) { outline: 3px solid var(--orange); outline-offset: 2px; }
.ls-opt:has(input:checked) { border-color: var(--ink); background: var(--stone); box-shadow: inset 0 0 0 1px var(--ink); }
.ls-opt.is-unavailable { opacity: .45; }
.ls-sizes { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.ls-sizes.is-collapsed .ls-opt--size:nth-child(n+11):not(:has(input:checked)) { display: none; }
.ls-opt--size { min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 8px; }
.ls-opt--size strong { font-weight: 800; font-size: 17px; }
.ls-opt--size .ls-mono { font-size: 12px; opacity: .8; }
.ls-opt--size:has(input:checked) { background: var(--ink); color: #fff; box-shadow: none; }
.ls-cards2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.ls-opt--card { border-radius: 10px; padding: 16px 18px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ls-opt__top { display: flex; justify-content: space-between; gap: 8px; width: 100%; }
.ls-opt__top strong { font-weight: 800; font-size: 17px; }
.ls-opt__top .ls-mono { font-size: 13px; font-weight: 600; white-space: nowrap; }
.ls-opt__sub { font-size: 14px; color: var(--muted); line-height: 1.45; }
.ls-plan { background: var(--ink); border-radius: var(--r); padding: 24px; color: #fff; }
.ls-plan__head, .ls-plan__foot { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: var(--pale-2); }
.ls-plan__cur { color: var(--orange-text); }
.ls-plan__stage { display: flex; justify-content: center; padding: 36px 0; }
.ls-plan__box { position: relative; width: 272px; max-width: 100%; aspect-ratio: 8 / 6; border: 3px solid #E6ECE7; border-radius: 2px; transition: width .3s ease; }
.ls-plan__area { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 12px; color: var(--pale-4); white-space: nowrap; }
.ls-plan__mid { position: absolute; left: 0; right: 0; top: 50%; border-top: 1px dashed var(--ink-line-2); }
.ls-plan__win { position: absolute; left: -5px; top: 30%; height: 40%; width: 8px; background: #7FB8D6; border-radius: 2px; }
.ls-plan__door { position: absolute; transform: translateX(-50%); width: 16%; min-width: 44px; height: 24px; border-radius: 3px; cursor: pointer; background: var(--ink-2); border: 2px dashed var(--pale-4); transition: background .15s ease, width .2s ease; }
.ls-plan__door--front { bottom: -12px; }
.ls-plan__door--back { top: -12px; }
.ls-plan__door.is-on { background: var(--orange); border: 2px solid var(--orange); }
.ls-plan__box.is-double .ls-plan__door { width: 26%; }
.ls-plan__door--left, .ls-plan__door--right { transform: translateY(-50%); width: 24px; min-width: 0; height: 16%; min-height: 44px; }
.ls-plan__door--left { left: -12px; }
.ls-plan__door--right { right: -12px; }
.ls-plan__box.is-double .ls-plan__door--left, .ls-plan__box.is-double .ls-plan__door--right { width: 24px; height: 26%; }
.ls-plan__door--rev:not(.is-on) { display: none; }
.ls-plan__door[hidden], .ls-opt[hidden], .ls-pstep[hidden] { display: none !important; }
.ls-chiprow { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.ls-opt--chip { min-height: 44px; padding: 0 14px; display: inline-flex; align-items: center; font-weight: 600; font-size: 15px; border-radius: 6px; }
.ls-opt--chip:has(input:checked) { background: var(--ink); color: #fff; box-shadow: none; }
.ls-addons { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.ls-opt--addon { min-height: 56px; padding: 10px 14px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ls-opt--addon strong { font-weight: 700; font-size: 16px; }
.ls-opt--addon .ls-mono { font-size: 13px; }
.ls-dates { display: grid; grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 8px; }
.ls-opt--date { min-height: 76px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 6px; }
.ls-opt--date strong { font-weight: 850; font-size: 22px; line-height: 1.1; }
.ls-opt__dow { font-size: 12px; font-weight: 600; }
.ls-opt--date:has(input:checked) { background: var(--orange); border-color: var(--orange); box-shadow: none; }
.ls-opt--date.is-full { border-color: var(--line-soft); background: var(--stone-3); color: #6B7770; cursor: not-allowed; text-decoration: line-through; }
.ls-opt--date.is-full input { cursor: not-allowed; }
.ls-select { width: 100%; height: 52px; border: 2px solid var(--line); border-radius: 8px; padding: 0 14px; font-size: 16px; }
.ls-summary { margin-top: 36px; border: 2px solid var(--ink); border-radius: 14px; overflow: hidden; }
.ls-summary__head { padding: 22px 24px; display: flex; justify-content: space-between; gap: 12px; align-items: baseline; border-bottom: 1px solid var(--line); }
.ls-summary__head h2 { font-size: 20px; font-weight: 800; }
.ls-summary__head .ls-mono { font-size: 13px; color: var(--muted); }
.ls-summary__lines { margin: 0; padding: 16px 24px 0; display: grid; grid-template-columns: 1fr auto; gap: 10px 16px; font-size: 15px; }
.ls-summary__lines dt { color: var(--text-2); }
.ls-summary__lines dd { margin: 0; font-family: var(--mono); font-size: 14px; text-align: right; }
.ls-summary__free { padding-bottom: 16px; padding-top: 10px; }
.ls-summary__free dt, .ls-summary__free dd { color: var(--green); font-weight: 600; }
.ls-summary__foot { padding: 20px 24px 24px; background: var(--stone); display: flex; flex-direction: column; gap: 14px; }
.ls-summary__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-weight: 700; }
.ls-summary__total strong { font-weight: 850; font-variation-settings: "wdth" 112; font-size: 34px; line-height: 1; }
.ls-summary .quantity, .ls-summary .woocommerce-variation-price, .ls-summary .woocommerce-variation-description { display: none !important; }
.ls-summary .woocommerce-variation-availability p { margin: 0; font-size: 14px; font-weight: 600; }
.ls-summary .woocommerce-variation-availability .out-of-stock { color: #B42318; }
.ls-summary .single_add_to_cart_button { width: 100%; min-height: 58px; border: 0; border-radius: 8px; background: var(--orange); color: var(--ink); font-weight: 800; font-size: 18px; cursor: pointer; padding: 12px 20px; transition: background .15s ease, transform .15s ease; }
.ls-summary .single_add_to_cart_button:hover { background: var(--orange-hover); transform: translateY(-1px); }
.ls-summary .single_add_to_cart_button.disabled { opacity: .5; cursor: not-allowed; transform: none; }
.ls-summary__alt { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
.ls-summary__alt .ls-btn { border-radius: 8px; font-size: 15px; }
.ls-summary__note { font-size: 13px; color: var(--muted); text-align: center; }
.reset_variations { display: none !important; }
.ls-stickybar { position: sticky; bottom: 0; z-index: 25; background: var(--ink); color: #fff; box-shadow: 0 -10px 30px -10px rgba(0, 0, 0, .35); }
.ls-stickybar__in { padding-top: 12px; padding-bottom: 12px; display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; }
.ls-stickybar__l { display: flex; gap: 16px; align-items: center; min-width: 0; flex: 1 1 280px; }
.ls-stickybar__l img { width: 52px; height: 52px; object-fit: contain; background: #fff; border-radius: 6px; flex-shrink: 0; }
.ls-stickybar__l > div { min-width: 0; }
.ls-stickybar__name { font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ls-stickybar__opts { font-size: 13px; color: var(--pale-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ls-stickybar__r { display: flex; gap: 16px; align-items: center; }
.ls-stickybar__price { text-align: right; display: flex; flex-direction: column; }
.ls-stickybar__price strong { font-weight: 850; font-size: 24px; line-height: 1; }
.ls-stickybar__price .ls-mono { font-size: 12px; color: var(--pale-2); }
.ls-stickybar .ls-btn { min-height: 52px; font-weight: 800; border-radius: 8px; }
@media (max-width: 600px) { .ls-stickybar__l img { display: none; } }
.ls-specs { display: flex; flex-wrap: wrap; gap: 48px; }
.ls-specs__head { flex: 1 1 360px; min-width: 0; }
.ls-specs__head .ls-muted { margin-top: 18px; max-width: 26em; }
.ls-specs__grid { flex: 2 1 600px; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); border-radius: var(--r); overflow: hidden; align-self: flex-start; }
.ls-specs__grid > div { background: #fff; padding: 20px 22px; }
.ls-specs__grid dt { font-size: 12px; color: var(--muted-2); }
.ls-specs__grid dd { margin: 4px 0 0; font-weight: 700; }
.ls-pdesc { margin: 0 auto; }
.ls-why { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.ls-why__card { background: var(--stone); border-radius: var(--r); padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.ls-why__card h3 { font-size: 22px; font-weight: 800; }
.ls-why__card p { color: var(--text-2); font-size: 16px; }
.ls-why__card--dark { background: var(--ink); color: #fff; }
.ls-why__card--dark p { color: var(--pale); }
.ls-why__n { font-weight: 850; font-variation-settings: "wdth" 125; font-size: 64px; line-height: 1; color: var(--orange); }
.ls-revhead { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: flex-end; justify-content: space-between; border-top: 3px solid var(--ink); padding-top: 32px; }
.ls-revhead__score { display: flex; align-items: center; gap: 14px; }
.ls-revhead__score > span:first-child { font-weight: 850; font-size: 40px; line-height: 1; }
.ls-revhead__score .ls-muted { font-size: 14px; }

/* WooCommerce reviews */
.ls-wcreviews { margin-top: 28px; }
.ls-wcreviews .woocommerce-Reviews-title { display: none; }
.ls-wcreviews .commentlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.ls-wcreviews .commentlist li { border: 1px solid var(--line); border-radius: var(--r); padding: 24px; }
.ls-wcreviews .comment_container { display: flex; gap: 14px; }
.ls-wcreviews .avatar { width: 40px; height: 40px; border-radius: 50%; }
.ls-wcreviews .comment-text { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.ls-wcreviews .meta { font-size: 14px; color: var(--muted); margin: 0; }
.ls-wcreviews .meta strong { color: var(--ink); }
.ls-wcreviews .description p { font-size: 16px; line-height: 1.55; }
.ls-wcreviews .woocommerce-noreviews { color: var(--muted); }
.ls-wcreviews #review_form_wrapper { margin-top: 32px; max-width: 720px; background: var(--stone); border-radius: var(--r); padding: 28px; }
.ls-wcreviews .comment-reply-title { display: block; font-size: 20px; font-weight: 800; margin-bottom: 12px; }
.ls-wcreviews .comment-form p { margin-bottom: 14px; }
.ls-wcreviews .comment-form label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.ls-wcreviews .comment-form input[type="text"], .ls-wcreviews .comment-form input[type="email"], .ls-wcreviews .comment-form textarea, .ls-wcreviews .comment-form select { width: 100%; border: 2px solid var(--line); border-radius: 8px; padding: 12px 14px; background: #fff; }
.ls-wcreviews .comment-form-cookies-consent label { display: inline; font-weight: 400; }
.ls-wcreviews .form-submit input { min-height: 48px; padding: 12px 22px; border: 0; border-radius: 6px; background: var(--ink); color: #fff; font-weight: 700; cursor: pointer; }
.star-rating { position: relative; display: inline-block; font-size: 16px; line-height: 1; height: 1em; width: 5.6em; letter-spacing: .12em; overflow: hidden; }
.star-rating::before { content: "★★★★★"; color: var(--line-2); position: absolute; left: 0; top: 0; }
.star-rating span { position: absolute; left: 0; top: 0; height: 1em; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; color: var(--orange-deep); position: absolute; left: 0; top: 0; }
p.stars { margin: 0; }
p.stars span { display: inline-flex; }
p.stars a { position: relative; display: inline-block; width: 1.3em; height: 1.3em; overflow: hidden; text-indent: -999em; font-size: 22px; }
p.stars a::before { content: "★"; position: absolute; left: 0; top: 0; text-indent: 0; color: var(--line-2); }
p.stars:hover a::before, p.stars.selected a::before { color: var(--orange-deep); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: var(--line-2); }

/* WooCommerce notices */
.woocommerce-message, .woocommerce-error, .woocommerce-info, .woocommerce-notices-wrapper > div { list-style: none; margin: 0 0 16px; padding: 16px 20px; border-radius: 8px; background: var(--stone); border-left: 0; font-weight: 600; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.woocommerce-message { background: var(--green-bg); color: var(--green); }
.woocommerce-error { background: #FDECEA; color: #8A1C12; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; background: var(--ink); color: #fff; border-radius: 6px; padding: 10px 16px; font-weight: 700; }
.woocommerce-error li { list-style: none; }

/* Basket, checkout and account (WooCommerce styles load here) */
.ls-shoppage .button, .ls-shoppage button.button, .wc-block-components-button:not(.is-link) { background: var(--orange) !important; color: var(--ink) !important; border-radius: 8px !important; font-weight: 800 !important; }
.ls-shoppage .wc-block-components-button:not(.is-link):hover { background: var(--orange-hover) !important; }
.ls-shoppage a { color: var(--ink); }
.ls-shoppage .wc-block-components-product-name { font-weight: 800; }

/* Small screens */
@media (max-width: 760px) {
	.ls-proof__grid > div { padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
	.ls-proof__grid > div:last-child { border-bottom: 0; }
	.ls-hero__media { min-height: 420px; padding: 32px 24px 150px; }
	.ls-hero__tags { left: 16px; right: 16px; bottom: 16px; }
	.ls-steps li { padding-right: 0; }
	.ls-cat--big { min-height: 460px; }
	.ls-split { gap: 40px; }
	.ls-guide__plan, .ls-guide__info, .ls-visit__body, .ls-visit__areas { padding: 24px; }
	.ls-pricebox__total { font-size: 38px; }
	.ls-summary__head, .ls-summary__lines, .ls-summary__foot { padding-left: 18px; padding-right: 18px; }
	.ls-stickybar__r { width: 100%; justify-content: space-between; }
	.ls-toolbar__sort { width: 100%; justify-content: space-between; }
}
