/* QTT Sites — every colour and font comes from theme.json presets, which follow the app's settings. */

:root {
	--c-base: var(--wp--preset--color--base, #fff);
	--c-surface: var(--wp--preset--color--surface, #f5f6fa);
	--c-text: var(--wp--preset--color--contrast, #111827);
	--c-muted: var(--wp--preset--color--muted, #6b7280);
	--c-primary: var(--wp--preset--color--primary, #4f46e5);
	--c-secondary: var(--wp--preset--color--secondary, #0f172a);
	--c-accent: var(--wp--preset--color--accent, #f43f5e);
	--c-dark: var(--wp--preset--color--dark, #0f172a);
	--f-heading: var(--wp--preset--font-family--heading, system-ui, sans-serif);
	--f-body: var(--wp--preset--font-family--body, system-ui, sans-serif);
	--r: var(--qtt-radius, 10px);
	--r-btn: var(--qtt-button-radius, 10px);
	--line: color-mix(in srgb, var(--c-text) 12%, transparent);
	--shadow: 0 1px 2px rgb(0 0 0 / .04), 0 8px 28px rgb(0 0 0 / .07);
	--shadow-lg: 0 20px 50px rgb(0 0 0 / .16);
	--gutter: clamp(16px, 4vw, 32px);
	--wide: 1280px;
	--header-h: 72px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
/* Menu links (#about) land below the sticky header. Not scroll-padding on the page: that makes the browser
   scroll while typing in the header's search box. */
.qtts-section[id], .qtts-main [id] { scroll-margin-top: calc(var(--header-h) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--c-base); color: var(--c-text); font-family: var(--f-body); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--c-primary); text-underline-offset: .2em; }
h1, h2, h3, h4 { font-family: var(--f-heading); line-height: 1.2; margin: 0 0 .5em; color: inherit; text-wrap: balance; }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.qtts-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
[hidden] { display: none !important; }

/* Layout */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0 !important; }
.qtts-wrap { width: 100%; max-width: var(--wide); margin-inline: auto; padding-inline: var(--gutter); }
.qtts-narrow { max-width: 860px; }
.qtts-center { text-align: center; margin-top: 2rem; }
.qtts-section { padding-block: clamp(3rem, 7vw, 6rem); position: relative; }
/* Two plain sections in a row share their spacing. */
.qtts-bg-base:not(.qtts-hero):not(.qtts-features):not(.qtts-page-title) + .qtts-bg-base:not(.qtts-banner):not(.qtts-cta) { padding-top: 0; }
.qtts-bg-surface { background: var(--c-surface); }
.qtts-bg-primary { background: var(--c-primary); color: #fff; }
.qtts-bg-dark { background: var(--c-dark); color: #fff; }
.qtts-bg-primary a:not(.qtts-btn), .qtts-bg-dark a:not(.qtts-btn) { color: inherit; }
.qtts-bg-primary .qtts-eyebrow, .qtts-bg-dark .qtts-eyebrow, .qtts-bg-primary .qtts-lead, .qtts-bg-dark .qtts-lead { color: rgb(255 255 255 / .82); }
.qtts-section-head { margin-bottom: clamp(1.75rem, 4vw, 3rem); max-width: 720px; }
.qtts-section-head.is-center { margin-inline: auto; text-align: center; }
.qtts-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700; color: var(--c-primary); margin-bottom: .75rem; }
.qtts-title { font-size: clamp(1.75rem, 3.6vw, 2.75rem); margin-bottom: .4em; }
.qtts-lead { font-size: clamp(1.02rem, 1.4vw, 1.18rem); color: var(--c-muted); margin: 0; }
.qtts-grid { display: grid; gap: clamp(1rem, 2.4vw, 1.75rem); grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.qtts-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.is-image-left .qtts-split-media { order: -1; }
.qtts-split-media img, .qtts-split-media .qtts-art { border-radius: calc(var(--r) * 1.6); width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
@media (max-width: 900px) {
	.qtts-grid { grid-template-columns: repeat(min(var(--cols, 3), 2), minmax(0, 1fr)); }
	.qtts-split { grid-template-columns: 1fr; }
	.is-image-left .qtts-split-media { order: 0; }
}
@media (max-width: 560px) { .qtts-grid { grid-template-columns: 1fr; } }

/* Buttons */
.qtts-btn, .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .8em 1.5em; border-radius: var(--r-btn);
	background: var(--c-primary); color: #fff; border: 2px solid var(--c-primary); font: 600 .97rem/1.2 var(--f-body); text-decoration: none; cursor: pointer;
	transition: background .2s, color .2s, border-color .2s, transform .2s var(--ease), box-shadow .2s;
}
.qtts-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--c-secondary); border-color: var(--c-secondary); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow); }
.qtts-buttons-outline .qtts-btn:not(.qtts-btn-light) { background: transparent; color: var(--c-primary); }
.qtts-buttons-outline .qtts-btn:not(.qtts-btn-light):hover { background: var(--c-primary); color: #fff; }
.qtts-btn-lg { padding: 1em 1.9em; font-size: 1.02rem; }
.qtts-btn-sm { padding: .55em 1.1em; font-size: .9rem; }
.qtts-btn-block { width: 100%; }
.qtts-btn-ghost { background: transparent; color: var(--c-primary); }
.qtts-bg-primary .qtts-btn-ghost, .qtts-bg-dark .qtts-btn-ghost, .qtts-hero--full .qtts-btn-ghost, .qtts-hero--centered .qtts-btn-ghost { color: #fff; border-color: rgb(255 255 255 / .7); }
.qtts-btn-light { background: #fff; color: var(--c-primary); border-color: #fff; }
.qtts-btn-light:hover { background: var(--c-secondary); border-color: var(--c-secondary); color: #fff; }
.qtts-btn-wa { background: #25d366; border-color: #25d366; margin-top: .75rem; }
.qtts-btn-wa:hover { background: #1da851; border-color: #1da851; }
.qtts-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.qtts-buttons:empty { display: none; }
.qtts-link-arrow { display: inline-flex; align-items: center; gap: .35em; font-weight: 600; text-decoration: none; }
.qtts-link-btn { background: none; border: 0; padding: 0; color: inherit; font: inherit; display: inline-flex; gap: .4em; align-items: center; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.qtts-icon-btn { background: none; border: 0; color: inherit; width: 44px; height: 44px; border-radius: 50%; display: inline-grid; place-items: center; cursor: pointer; position: relative; text-decoration: none; }
.qtts-icon-btn:hover { background: color-mix(in srgb, var(--c-text) 7%, transparent); }
.qtts-count { position: absolute; top: 4px; right: 2px; background: var(--c-accent); color: #fff; font-size: .68rem; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px; display: grid; place-items: center; padding: 0 4px; }

/* Placeholder art (before the owner adds a picture) */
.qtts-art { position: relative; overflow: hidden; display: grid; place-items: center; aspect-ratio: 5 / 4; border-radius: calc(var(--r) * 1.6); color: #fff;
	background: radial-gradient(120% 90% at 20% 10%, color-mix(in srgb, var(--c-primary) 85%, #fff) 0%, var(--c-primary) 45%, var(--c-secondary) 100%); }
.qtts-art svg { position: relative; z-index: 1; opacity: .9; width: 22%; height: auto; }
.qtts-art-a, .qtts-art-b { position: absolute; border-radius: 50%; }
.qtts-art-a { width: 70%; aspect-ratio: 1; right: -18%; top: -22%; background: color-mix(in srgb, var(--c-accent) 75%, transparent); filter: blur(2px); }
.qtts-art-b { width: 45%; aspect-ratio: 1; left: -10%; bottom: -15%; background: rgb(255 255 255 / .18); }

/* Announcement and header */
.qtts-announce { background: var(--c-secondary); color: #fff; text-align: center; font-size: .88rem; padding: .55rem var(--gutter); }
.qtts-announce a { color: inherit; text-decoration: none; }
.qtts-site-header { position: relative; z-index: 50; }
.qtts-sticky .qtts-site-header { position: sticky; top: 0; }
.admin-bar.qtts-sticky .qtts-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.qtts-header { background: var(--c-base); transition: background .25s, box-shadow .25s, color .25s; }
.qtts-header.is-scrolled { box-shadow: 0 6px 24px rgb(0 0 0 / .08); }
.qtts-header-row { display: flex; align-items: center; gap: 1.25rem; min-height: var(--header-h); }
.qtts-logo { display: inline-flex; align-items: center; text-decoration: none; color: inherit; flex-shrink: 0; }
.qtts-logo-img { height: var(--qtt-logo-height, 44px); width: auto; }
.qtts-logo-text { font: 700 clamp(1.15rem, 2vw, 1.45rem)/1 var(--f-heading); letter-spacing: -.01em; }
.qtts-actions { display: flex; align-items: center; gap: .25rem; margin-left: auto; }
.qtts-nav ul { list-style: none; margin: 0; padding: 0; }
.qtts-nav > ul { display: flex; gap: .25rem; align-items: center; }
.qtts-nav > ul > li { position: relative; }
.qtts-nav > ul > li > a { display: flex; align-items: center; gap: .3em; padding: .6rem .85rem; color: inherit; text-decoration: none; font-weight: 500; border-radius: var(--r); }
.qtts-nav > ul > li > a:hover { color: var(--c-primary); }
.qtts-header--classic .qtts-nav { margin-inline: auto; }
.qtts-sub { position: absolute; top: 100%; left: 0; min-width: 220px; background: var(--c-base); color: var(--c-text); box-shadow: var(--shadow-lg); border-radius: var(--r); padding: .5rem; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s var(--ease); z-index: 20; list-style: none; margin: 0; }
.qtts-sub a { display: block; padding: .55rem .8rem; color: inherit; text-decoration: none; border-radius: calc(var(--r) * .6); }
.qtts-sub a:hover { background: var(--c-surface); color: var(--c-primary); }
.has-sub:hover > .qtts-sub, .has-sub:focus-within > .qtts-sub, .has-sub:hover > .qtts-mega, .has-sub:focus-within > .qtts-mega { opacity: 1; visibility: visible; transform: none; }
.qtts-mega { position: fixed; left: 0; right: 0; top: auto; margin-top: 0; background: var(--c-base); color: var(--c-text); box-shadow: 0 24px 40px rgb(0 0 0 / .12); border-top: 1px solid var(--line); padding: 2rem 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s var(--ease); }
.qtts-mega-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem 2rem; }
.qtts-mega-col a { display: block; padding: .3rem 0; color: var(--c-muted); text-decoration: none; }
.qtts-mega-col a:hover { color: var(--c-primary); }
.qtts-mega-col .qtts-mega-title { color: var(--c-text); font-weight: 700; margin-bottom: .25rem; }
.qtts-header-center { justify-content: space-between; }
.qtts-header-center .qtts-header-side { flex: 1; }
.qtts-header-center .qtts-actions { flex: 1; justify-content: flex-end; }
.qtts-nav-center { display: flex; justify-content: center; border-top: 1px solid var(--line); }
.qtts-header--store .qtts-header-row { gap: clamp(1rem, 3vw, 2.5rem); }
.qtts-header-bar { background: var(--c-primary); color: #fff; }
.qtts-header-bar .qtts-header-row { min-height: 50px; gap: 1rem; }
.qtts-header-bar .qtts-nav > ul > li > a:hover { color: #fff; background: rgb(255 255 255 / .12); }
.qtts-allcats { position: relative; }
.qtts-allcats > button { display: flex; align-items: center; gap: .5rem; background: rgb(0 0 0 / .14); color: #fff; border: 0; height: 50px; padding: 0 1.1rem; font: 600 .95rem var(--f-body); cursor: pointer; }
.qtts-allcats .qtts-sub { min-width: 260px; border-radius: 0 0 var(--r) var(--r); }
.qtts-search { position: relative; display: flex; align-items: center; background: var(--c-surface); border-radius: var(--r-btn); border: 1px solid var(--line); }
.qtts-search input { flex: 1; min-width: 0; border: 0; background: transparent; padding: .8rem 1rem; font: inherit; color: inherit; }
.qtts-search input:focus { outline: none; }
.qtts-search:focus-within { border-color: var(--c-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-primary) 18%, transparent); }
.qtts-search button { border: 0; background: var(--c-primary); color: #fff; width: 52px; align-self: stretch; cursor: pointer; display: grid; place-items: center; border-radius: 0 calc(var(--r-btn) - 1px) calc(var(--r-btn) - 1px) 0; }
.qtts-search.is-searching button svg { animation: qtts-pulse .8s infinite alternate; }
@keyframes qtts-pulse { to { opacity: .35; } }
/* Live search results under the box */
.qtts-suggest { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 60; background: var(--c-base); color: var(--c-text); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow-lg); padding: .4rem; max-height: min(70vh, 520px); overflow-y: auto; text-align: left; }
.qtts-suggest-head { margin: .5rem .6rem .25rem; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.qtts-suggest a { display: flex; align-items: center; gap: .75rem; padding: .5rem .6rem; border-radius: calc(var(--r) * .6); color: inherit; text-decoration: none; }
.qtts-suggest a:hover, .qtts-suggest a.is-active { background: var(--c-surface); }
.qtts-suggest img { width: 48px; height: 48px; object-fit: cover; border-radius: calc(var(--r) * .5); background: var(--c-surface); flex-shrink: 0; }
.qtts-suggest-item span { display: grid; min-width: 0; }
.qtts-suggest-item strong { font-weight: 600; font-size: .93rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qtts-suggest-item small { color: var(--c-muted); font-weight: 600; }
.qtts-suggest-item small.is-sale { color: var(--c-accent); }
.qtts-suggest-cat small { margin-left: auto; color: var(--c-muted); }
.qtts-suggest-all { justify-content: center; font-weight: 600; color: var(--c-primary) !important; border-top: 1px solid var(--line); margin-top: .3rem; border-radius: 0 !important; }
.qtts-suggest-empty { margin: 0; padding: 1rem; color: var(--c-muted); text-align: center; }
.qtts-search-wide { flex: 1; max-width: 640px; }
.qtts-search-panel { border-top: 1px solid var(--line); padding: 1rem 0; background: var(--c-base); }
.qtts-transparent .qtts-site-header { position: absolute; left: 0; right: 0; }
.qtts-transparent.qtts-sticky .qtts-site-header { position: fixed; }
.qtts-transparent .qtts-header:not(.is-scrolled) { background: transparent; color: #fff; }
.qtts-transparent .qtts-header:not(.is-scrolled) .qtts-btn { background: #fff; color: var(--c-primary); border-color: #fff; }
.qtts-transparent .qtts-header:not(.is-scrolled) .qtts-nav-center { border-color: rgb(255 255 255 / .2); }
.qtts-burger { display: none; }
@media (max-width: 960px) {
	.qtts-hide-sm { display: none !important; }
	.qtts-burger { display: inline-grid; }
	.qtts-header-center .qtts-header-side { display: none; }
	:root { --header-h: 64px; }
}

/* Phone drawer */
.qtts-drawer { position: fixed; inset: 0; z-index: 200; background: rgb(0 0 0 / .45); }
.qtts-drawer-inner { position: absolute; top: 0; bottom: 0; left: 0; width: min(88vw, 380px); background: var(--c-base); color: var(--c-text); padding: 1rem 1.25rem 2rem; overflow-y: auto; display: flex; flex-direction: column; gap: 1rem; animation: qtts-in .25s var(--ease); }
@keyframes qtts-in { from { transform: translateX(-100%); } }
.qtts-drawer-head { display: flex; align-items: center; justify-content: space-between; }
.qtts-nav-drawer > ul { flex-direction: column; align-items: stretch; gap: 0; }
.qtts-nav-drawer > ul > li { border-bottom: 1px solid var(--line); }
.qtts-nav-drawer > ul > li > a { padding: .9rem .25rem; font-size: 1.05rem; }
.qtts-nav-drawer .qtts-sub, .qtts-nav-drawer .qtts-mega { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 0 0 .75rem .75rem; border: 0; background: none; }
.qtts-nav-drawer .qtts-mega-grid { grid-template-columns: 1fr; gap: .5rem; padding: 0; }
.qtts-nav-drawer .qtts-mega .qtts-wrap { padding: 0; }
.qtts-drawer-contact { display: flex; gap: .6rem; align-items: center; color: inherit; font-weight: 600; text-decoration: none; }
body.qtts-locked { overflow: hidden; }

/* Hero */
.qtts-hero { padding: 0; overflow: hidden; }
.qtts-slider { position: relative; }
.qtts-slides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.qtts-slides::-webkit-scrollbar { display: none; }
.qtts-slide { flex: 0 0 100%; scroll-snap-align: start; position: relative; display: flex; align-items: center; }
.qtts-h-medium .qtts-slide { min-height: clamp(380px, 52vh, 520px); }
.qtts-h-tall .qtts-slide { min-height: clamp(460px, 74vh, 760px); }
.qtts-h-screen .qtts-slide { min-height: 100svh; }
.qtts-hero-bg { position: absolute; inset: 0; z-index: 0; }
.qtts-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.qtts-hero-gradient { background:
	radial-gradient(60% 80% at 85% 20%, color-mix(in srgb, var(--c-accent) 55%, transparent), transparent 70%),
	radial-gradient(70% 90% at 10% 90%, color-mix(in srgb, var(--c-primary) 70%, transparent), transparent 70%),
	linear-gradient(135deg, var(--c-secondary), var(--c-dark)); }
.qtts-hero--full .qtts-slide.has-image .qtts-hero-bg::after, .qtts-hero--centered .qtts-slide.has-image .qtts-hero-bg::after, .qtts-banner-box .qtts-hero-bg::after, .qtts-cta.has-image .qtts-hero-bg::after, .qtts-page-title.has-image .qtts-hero-bg::after {
	content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / .62), rgb(0 0 0 / .18)); }
.qtts-hero--full .qtts-slide > .qtts-wrap, .qtts-hero--centered .qtts-slide > .qtts-wrap { position: relative; z-index: 1; color: #fff; padding-block: calc(var(--header-h) + 3rem) 4rem; }
.qtts-hero-text { max-width: 640px; }
.qtts-hero--centered .qtts-hero-text { margin-inline: auto; text-align: center; }
.qtts-hero--centered .qtts-buttons { justify-content: center; }
.qtts-hero-title { font-size: clamp(2.3rem, 5.8vw, 4.6rem); line-height: 1.05; letter-spacing: -.02em; margin-bottom: .35em; }
.qtts-hero-lead { font-size: clamp(1.05rem, 1.6vw, 1.3rem); opacity: .9; max-width: 560px; }
.qtts-hero--full .qtts-eyebrow, .qtts-hero--centered .qtts-eyebrow { color: #fff; opacity: .85; }
.qtts-hero--split .qtts-slide { background: linear-gradient(180deg, var(--c-surface), var(--c-base)); }
.qtts-hero--split .qtts-split { padding-block: calc(var(--header-h) + 2rem) 3rem; }
.qtts-hero--split .qtts-hero-media img, .qtts-hero--split .qtts-art { border-radius: calc(var(--r) * 2); aspect-ratio: 4 / 3.4; object-fit: cover; width: 100%; box-shadow: var(--shadow-lg); }
.qtts-transparent .qtts-hero--split .qtts-split { padding-top: calc(var(--header-h) + 3rem); }
.qtts-hero--boxed { padding: 1rem var(--gutter) 0; }
.qtts-hero--boxed .qtts-slider { border-radius: calc(var(--r) * 2); overflow: hidden; max-width: var(--wide); margin-inline: auto; }
.qtts-hero--boxed .qtts-slide > .qtts-wrap { position: relative; z-index: 1; color: #fff; padding-block: 4rem; }
.qtts-slider-prev, .qtts-slider-next, .qtts-car-prev, .qtts-car-next { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgb(255 255 255 / .92); color: #111; display: grid; place-items: center; cursor: pointer; box-shadow: var(--shadow); z-index: 3; transition: opacity .2s; }
.qtts-slider-prev, .qtts-car-prev { left: clamp(8px, 2vw, 20px); }
.qtts-slider-next, .qtts-car-next { right: clamp(8px, 2vw, 20px); }
.qtts-dots { position: absolute; bottom: 1.25rem; left: 0; right: 0; display: flex; justify-content: center; gap: .5rem; z-index: 3; }
.qtts-dots button { width: 10px; height: 10px; border-radius: 5px; border: 0; background: rgb(255 255 255 / .55); cursor: pointer; padding: 0; transition: width .25s; }
.qtts-dots button[aria-current="true"] { width: 28px; background: #fff; }
.qtts-hero--split .qtts-dots button { background: color-mix(in srgb, var(--c-text) 25%, transparent); }
.qtts-hero--split .qtts-dots button[aria-current="true"] { background: var(--c-primary); }
@media (max-width: 900px) { .qtts-hero--split .qtts-hero-media { order: -1; } .qtts-slider-prev, .qtts-slider-next { display: none; } }

/* Page heading */
.qtts-page-title { padding-block: calc(var(--header-h) + 2.5rem) clamp(2.5rem, 6vw, 4.5rem); background: var(--c-surface); text-align: center; }
.qtts-page-title.has-image { color: #fff; }
.qtts-page-title.has-image .qtts-lead { color: rgb(255 255 255 / .9); }
.qtts-page-title .qtts-hero-bg img { object-position: center 35%; }
.qtts-page-title > .qtts-wrap { position: relative; z-index: 1; }
.qtts-page-title .qtts-title { font-size: clamp(2rem, 5vw, 3.4rem); }
body:not(.qtts-transparent) .qtts-page-title { padding-top: clamp(2.5rem, 6vw, 4.5rem); }
.qtts-transparent .qtts-page-title:not(.has-image) { background: var(--c-dark); color: #fff; }

/* Features */
.qtts-features-grid { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 1.25rem; }
.qtts-feature { display: flex; gap: .9rem; align-items: flex-start; }
.qtts-feature h3 { font-size: 1.02rem; margin: 0 0 .15rem; }
.qtts-feature p { margin: 0; color: var(--c-muted); font-size: .93rem; }
.qtts-bg-primary .qtts-feature p, .qtts-bg-dark .qtts-feature p { color: rgb(255 255 255 / .8); }
.qtts-feature-icon { flex-shrink: 0; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--c-primary) 11%, transparent); color: var(--c-primary); }
.qtts-features.is-strip { padding-block: 2rem; border-bottom: 1px solid var(--line); }
.qtts-features.is-cards .qtts-feature { flex-direction: column; background: var(--c-base); padding: 1.75rem; border-radius: calc(var(--r) * 1.4); box-shadow: var(--shadow); }
.qtts-bg-surface.qtts-features.is-cards .qtts-feature { background: var(--c-base); }
@media (max-width: 900px) { .qtts-features-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .qtts-features.is-strip .qtts-features-grid { grid-template-columns: 1fr 1fr; gap: 1rem .75rem; } .qtts-features.is-strip .qtts-feature { flex-direction: column; gap: .5rem; } .qtts-features.is-cards .qtts-features-grid { grid-template-columns: 1fr; } }

/* Cards and services */
.qtts-card { background: var(--c-base); color: var(--c-text); border-radius: calc(var(--r) * 1.4); padding: clamp(1.25rem, 2.5vw, 2rem); box-shadow: var(--shadow); border: 1px solid var(--line); transition: transform .25s var(--ease), box-shadow .25s; }
.qtts-service:hover, .qtts-post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.qtts-service h3 { font-size: 1.2rem; margin: 1rem 0 .4rem; }
.qtts-service h3 a { color: inherit; text-decoration: none; }
.qtts-service p { color: var(--c-muted); margin-bottom: .5rem; }
.qtts-service-icon { width: 60px; height: 60px; border-radius: calc(var(--r) * 1.2); display: grid; place-items: center; background: linear-gradient(135deg, var(--c-primary), color-mix(in srgb, var(--c-primary) 60%, var(--c-accent))); color: #fff; }
.qtts-card-media { margin: calc(clamp(1.25rem, 2.5vw, 2rem) * -1) calc(clamp(1.25rem, 2.5vw, 2rem) * -1) 0; overflow: hidden; border-radius: calc(var(--r) * 1.4) calc(var(--r) * 1.4) 0 0; }
.qtts-card-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.qtts-price-tag { font-weight: 700; color: var(--c-primary); margin: .25rem 0 0; }
.qtts-ticks { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .6rem; }
.qtts-ticks li { display: flex; gap: .6rem; align-items: flex-start; }
.qtts-ticks svg { color: var(--c-primary); flex-shrink: 0; margin-top: .1em; }

/* Numbers */
.qtts-stats { padding-block: clamp(2.5rem, 5vw, 4rem); }
.qtts-stats-grid { display: grid; grid-template-columns: repeat(var(--n, 4), 1fr); gap: 1.5rem; text-align: center; }
.qtts-stat strong { display: block; font: 800 clamp(2rem, 4.5vw, 3.2rem)/1.1 var(--f-heading); letter-spacing: -.02em; }
.qtts-stat span { opacity: .82; }
@media (max-width: 700px) { .qtts-stats-grid { grid-template-columns: 1fr 1fr; } }

/* Steps */
.qtts-steps-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: 1.5rem; counter-reset: step; }
.qtts-steps-list li { counter-increment: step; position: relative; padding-top: 4rem; }
.qtts-steps-list li::before { content: counter(step); position: absolute; top: 0; left: 0; width: 48px; height: 48px; border-radius: 50%; background: var(--c-primary); color: #fff; display: grid; place-items: center; font: 700 1.2rem var(--f-heading); }
.qtts-steps-list li::after { content: ""; position: absolute; top: 24px; left: 60px; right: -12px; height: 2px; background: repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px); }
.qtts-steps-list li:last-child::after { display: none; }
.qtts-steps-list h3 { font-size: 1.15rem; }
.qtts-steps-list p { color: var(--c-muted); }
@media (max-width: 800px) { .qtts-steps-list { grid-template-columns: 1fr; } .qtts-steps-list li::after { display: none; } }

/* Menu / price list */
.qtts-menu-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem 3rem; }
.qtts-menu-group h3 { font-size: 1.3rem; padding-bottom: .5rem; border-bottom: 2px solid var(--c-primary); display: inline-block; }
.qtts-menu-group ul { list-style: none; padding: 0; margin: 0; }
.qtts-menu-group li { padding: .7rem 0; }
.qtts-menu-row { display: flex; align-items: baseline; gap: .5rem; font-weight: 600; }
.qtts-menu-dots { flex: 1; border-bottom: 2px dotted var(--line); transform: translateY(-4px); }
.qtts-menu-price { color: var(--c-primary); }
.qtts-menu-group p { margin: .2rem 0 0; color: var(--c-muted); font-size: .92rem; }

/* Pricing */
.qtts-pricing-grid { align-items: stretch; }
.qtts-plan { display: flex; flex-direction: column; position: relative; }
.qtts-plan .qtts-ticks { flex: 1; }
.qtts-plan-price strong { font: 800 2.4rem/1 var(--f-heading); }
.qtts-plan-price span { color: var(--c-muted); }
.qtts-plan.is-highlight { border: 2px solid var(--c-primary); transform: scale(1.03); box-shadow: var(--shadow-lg); }
.qtts-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--c-accent); color: #fff; font-size: .78rem; font-weight: 700; padding: .3rem .9rem; border-radius: 999px; white-space: nowrap; }

/* Gallery */
.qtts-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .75rem; }
.is-masonry .qtts-gallery-grid { display: block; columns: 3 260px; column-gap: .75rem; }
.is-masonry .qtts-gallery-item { break-inside: avoid; margin-bottom: .75rem; }
.qtts-gallery-item { margin: 0; overflow: hidden; border-radius: var(--r); position: relative; }
.qtts-gallery-item img { width: 100%; transition: transform .5s var(--ease); }
.is-grid .qtts-gallery-item img { aspect-ratio: 1; object-fit: cover; }
.qtts-gallery-item:hover img { transform: scale(1.05); }
.qtts-gallery-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.5rem .9rem .7rem; color: #fff; background: linear-gradient(transparent, rgb(0 0 0 / .65)); font-size: .9rem; }

/* Carousel */
.qtts-carousel, [data-qtts-carousel] { position: relative; }
.qtts-track { display: flex; gap: clamp(.75rem, 2vw, 1.5rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: .5rem; }
.qtts-products.is-carousel ul.products { display: flex !important; gap: clamp(.75rem, 2vw, 1.5rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: .5rem; }
.qtts-track::-webkit-scrollbar, .qtts-products.is-carousel ul.products::-webkit-scrollbar { display: none; }
.qtts-track > * { scroll-snap-align: start; flex: 0 0 calc((100% - 2 * clamp(.75rem, 2vw, 1.5rem)) / 3); }
.qtts-products.is-carousel ul.products > li { scroll-snap-align: start; flex: 0 0 calc((100% - (var(--cols, 4) - 1) * clamp(.75rem, 2vw, 1.5rem)) / var(--cols, 4)) !important; }
@media (max-width: 900px) { .qtts-track > * { flex-basis: 70%; } .qtts-products.is-carousel ul.products > li { flex-basis: 46% !important; } }
@media (max-width: 520px) { .qtts-track > * { flex-basis: 86%; } .qtts-products.is-carousel ul.products > li { flex-basis: 64% !important; } .qtts-car-prev, .qtts-car-next { display: none; } }
.qtts-car-prev[disabled], .qtts-car-next[disabled] { opacity: 0; pointer-events: none; }

/* Team and testimonials */
.qtts-person { text-align: center; }
.qtts-person-photo { width: 160px; aspect-ratio: 1; margin: 0 auto 1rem; border-radius: 50%; overflow: hidden; background: var(--c-surface); display: grid; place-items: center; }
.qtts-person-photo img { width: 100%; height: 100%; object-fit: cover; }
.qtts-person h3 { font-size: 1.1rem; margin-bottom: .2rem; }
.qtts-person p { color: var(--c-muted); }
.qtts-avatar { width: 44px; height: 44px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--c-primary); color: #fff; font: 700 1.1rem var(--f-heading); text-transform: uppercase; flex-shrink: 0; }
.qtts-person-photo .qtts-avatar { width: 100%; height: 100%; font-size: 3rem; }
.qtts-quote { margin: 0; display: flex; flex-direction: column; }
.qtts-quote p { font-size: 1.04rem; flex: 1; }
.qtts-quote footer { display: flex; gap: .8rem; align-items: center; margin-top: 1rem; }
.qtts-quote footer small { display: block; color: var(--c-muted); }
.qtts-stars { color: #f5a524; letter-spacing: .1em; font-size: 1.05rem; display: block; margin-bottom: .75rem; }
.qtts-stars span { color: var(--line); }

/* Logos */
.qtts-logos-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem clamp(2rem, 5vw, 4rem); }
.qtts-logo-item img { max-height: 54px; width: auto; filter: grayscale(1); opacity: .7; transition: .25s; }
.qtts-logo-item:hover img { filter: none; opacity: 1; }
.qtts-logo-item span { font: 700 1.3rem var(--f-heading); color: var(--c-muted); }

/* FAQ */
.qtts-faq-list { display: grid; gap: .75rem; }
.qtts-faq-item { background: var(--c-base); border: 1px solid var(--line); border-radius: var(--r); }
.qtts-bg-surface .qtts-faq-item { background: var(--c-base); }
.qtts-faq-item summary { list-style: none; cursor: pointer; padding: 1.1rem 1.25rem; font-weight: 600; display: flex; justify-content: space-between; gap: 1rem; align-items: center; color: var(--c-text); }
.qtts-faq-item summary::-webkit-details-marker { display: none; }
.qtts-faq-item summary svg { transition: transform .2s; flex-shrink: 0; }
.qtts-faq-item[open] summary svg { transform: rotate(180deg); }
.qtts-faq-item > div { padding: 0 1.25rem 1.1rem; color: var(--c-muted); }

/* Call to action */
.qtts-cta { overflow: hidden; }
.qtts-cta-box { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.qtts-cta-box .qtts-title { margin-bottom: .25rem; }
.qtts-cta-box .qtts-buttons { margin: 0; }
.qtts-cta.has-image { color: #fff; }
.qtts-bg-base.qtts-cta .qtts-btn-light, .qtts-bg-surface.qtts-cta .qtts-btn-light { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }

/* Video */
.qtts-video { display: block; width: 100%; position: relative; padding: 0; border: 0; cursor: pointer; border-radius: calc(var(--r) * 1.4); overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.qtts-video img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.qtts-video svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #fff; filter: drop-shadow(0 4px 14px rgb(0 0 0 / .5)); }
.qtts-video iframe { width: 100%; height: 100%; border: 0; }

/* Contact */
.qtts-contact-grid { align-items: start; }
.qtts-contact-list { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .75rem; }
.qtts-contact-list li { display: flex; gap: .75rem; align-items: center; }
.qtts-contact-list a { color: inherit; }
.qtts-contact-big li { font-size: 1.05rem; }
.qtts-map { margin-top: 2.5rem; border-radius: calc(var(--r) * 1.4); overflow: hidden; aspect-ratio: 21 / 8; min-height: 280px; }
.qtts-map iframe { width: 100%; height: 100%; border: 0; }
.qtts-lead-grid { align-items: start; }
.qtts-lead-form .qtts-contact-list, .qtts-bg-dark .qtts-contact-list svg, .qtts-bg-primary .qtts-contact-list svg { color: inherit; }
.qtts-bg-dark .qtts-feature-icon, .qtts-bg-primary .qtts-feature-icon { background: rgb(255 255 255 / .12); color: #fff; }

/* Hours */
.qtts-hours-list { margin: 0; display: grid; gap: .25rem; }
.qtts-hours-list div { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.qtts-hours-list dt { font-weight: 600; }
.qtts-hours-list dd { margin: 0; color: var(--c-muted); text-align: right; }

/* Forms */
.qtts-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.qtts-form > .qtts-btn, .qtts-form .qtts-form-msg, .qtts-field-wide { grid-column: 1 / -1; }
.qtts-field label { display: block; font-size: .88rem; font-weight: 600; margin-bottom: .35rem; }
.qtts-field input, .qtts-field select, .qtts-field textarea, .qtts-form-inline input {
	width: 100%; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: var(--r); background: var(--c-base); color: var(--c-text); font: inherit; transition: border-color .2s, box-shadow .2s; }
.qtts-field input:focus, .qtts-field select:focus, .qtts-field textarea:focus, .qtts-form-inline input:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-primary) 18%, transparent); }
.qtts-form-msg { margin: 0; font-weight: 600; min-height: 1.4em; }
.qtts-form-msg.is-ok { color: #16a34a; }
.qtts-form-msg.is-error { color: #dc2626; }
.qtts-form-inline { display: flex; flex-wrap: wrap; gap: .5rem; }
.qtts-form-inline input { flex: 1 1 220px; }
.qtts-form-inline .qtts-form-msg { flex-basis: 100%; }
@media (max-width: 560px) { .qtts-form { grid-template-columns: 1fr; } }
.qtts-newsletter-box { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.qtts-newsletter-box .qtts-section-head { margin: 0; }
@media (max-width: 800px) { .qtts-newsletter-box { grid-template-columns: 1fr; } }

/* Banner and promo tiles */
.qtts-banner-box { position: relative; overflow: hidden; border-radius: calc(var(--r) * 2); color: #fff; min-height: 360px; display: flex; align-items: center; }
.qtts-banner-text { position: relative; z-index: 1; padding: clamp(2rem, 6vw, 4.5rem); max-width: 640px; }
.qtts-banner .qtts-eyebrow, .qtts-banner .qtts-lead { color: rgb(255 255 255 / .88); }
.qtts-banner .qtts-btn { margin-top: 1.5rem; }
.qtts-banner.is-center .qtts-banner-box { justify-content: center; text-align: center; }
.qtts-promos-grid { display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: clamp(.75rem, 2vw, 1.5rem); }
.qtts-promo { position: relative; overflow: hidden; border-radius: calc(var(--r) * 1.4); min-height: 240px; display: flex; align-items: flex-end; text-decoration: none; color: #fff; isolation: isolate; }
.qtts-promo-img, .qtts-promo-art { position: absolute !important; inset: 0; width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; border-radius: 0 !important; z-index: -1; transition: transform .6s var(--ease); }
.qtts-promo-1 .qtts-promo-art { background: radial-gradient(120% 90% at 80% 10%, color-mix(in srgb, var(--c-accent) 90%, #fff), var(--c-accent) 40%, var(--c-secondary)); }
.qtts-promo-2 .qtts-promo-art { background: radial-gradient(120% 90% at 30% 0%, color-mix(in srgb, var(--c-secondary) 70%, #fff), var(--c-secondary) 50%, var(--c-dark)); }
.qtts-promo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(transparent 30%, rgb(0 0 0 / .55)); }
.qtts-promo:hover .qtts-promo-img, .qtts-promo:hover .qtts-promo-art { transform: scale(1.06); }
.qtts-promo-text { padding: 1.5rem; display: grid; gap: .25rem; }
.qtts-promo-text small { text-transform: uppercase; letter-spacing: .12em; font-weight: 700; font-size: .75rem; opacity: .9; }
.qtts-promo-text strong { font: 700 1.5rem/1.2 var(--f-heading); }
@media (max-width: 800px) { .qtts-promos-grid { grid-template-columns: 1fr; } .qtts-promo { min-height: 190px; } }

/* Blog cards */
.qtts-post-card a { color: inherit; text-decoration: none; }
.qtts-post-card img { border-radius: var(--r); aspect-ratio: 16 / 10; object-fit: cover; width: 100%; margin-bottom: 1rem; }
.qtts-post-card h3 { font-size: 1.15rem; }

/* WordPress pages and posts */
.qtts-wp-page { padding-block: clamp(2rem, 6vw, 4rem); padding-inline: var(--gutter); }
.qtts-transparent .qtts-wp-page { padding-top: calc(var(--header-h) + 3rem); }
.qtts-prose { font-size: 1.05rem; }

/* Footer */
.qtts-site-footer { margin-top: 0 !important; }
.qtts-footer { background: var(--c-dark); color: rgb(255 255 255 / .78); padding-top: clamp(3rem, 6vw, 5rem); }
.qtts-footer a { color: rgb(255 255 255 / .78); text-decoration: none; }
.qtts-footer a:hover { color: #fff; }
.qtts-footer h3 { color: #fff; font-size: 1.02rem; margin-bottom: 1rem; }
.qtts-footer-grid { display: flex; flex-wrap: wrap; gap: 2.5rem 3rem; padding-bottom: 3rem; }
.qtts-footer-grid > * { flex: 1 1 170px; min-width: 0; }
.qtts-footer-grid > .qtts-footer-about { flex: 1.6 1 280px; }
.qtts-footer-about .qtts-logo { color: #fff; margin-bottom: 1rem; }
.qtts-footer-about p { max-width: 380px; }
.qtts-footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.qtts-footer .qtts-contact-list li { align-items: flex-start; }
.qtts-footer .qtts-contact-list svg { flex-shrink: 0; margin-top: .15em; }
.qtts-footer .qtts-btn { background: var(--c-primary); border-color: var(--c-primary); }
.qtts-footer .qtts-form-inline input { background: rgb(255 255 255 / .08); border-color: rgb(255 255 255 / .15); color: #fff; }
.qtts-socials { display: flex; gap: .5rem; margin-top: 1.25rem; flex-wrap: wrap; }
.qtts-socials a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, currentColor 12%, transparent); color: inherit; transition: background .2s, color .2s; }
.qtts-socials a:hover { background: var(--c-primary); color: #fff; }
.qtts-footer-bottom { border-top: 1px solid rgb(255 255 255 / .1); padding-block: 1.25rem; font-size: .88rem; }
.qtts-footer-bottom .qtts-wrap { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.qtts-payments { display: inline-flex; gap: .4rem; align-items: center; }
@media (max-width: 800px) { .qtts-footer-grid > .qtts-footer-about { flex-basis: 100%; } }

/* Floating: WhatsApp, back to top, phone bar, toast */
.qtts-wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 90; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: 0 10px 25px rgb(37 211 102 / .4); transition: transform .2s; }
.qtts-wa-float:hover { transform: scale(1.08); color: #fff; }
.qtts-top { position: fixed; right: 26px; bottom: 90px; z-index: 89; width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--c-base); color: var(--c-text); box-shadow: var(--shadow); cursor: pointer; display: grid; place-items: center; }
.qtts-mobile-bar { display: none; }
@media (max-width: 960px) {
	.qtts-has-mobile-bar .qtts-mobile-bar { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; background: var(--c-base); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -6px 20px rgb(0 0 0 / .06); }
	.qtts-mobile-bar a { display: grid; justify-items: center; gap: 2px; padding: .5rem 0 .45rem; color: var(--c-text); text-decoration: none; font-size: .7rem; font-weight: 600; }
	.qtts-has-mobile-bar { padding-bottom: 64px; }
	.qtts-has-mobile-bar .qtts-wa-float { bottom: 78px; }
	.qtts-has-mobile-bar .qtts-top { bottom: 146px; }
}
.qtts-toast { position: fixed; left: 50%; bottom: 90px; transform: translateX(-50%); background: var(--c-text); color: var(--c-base); padding: .75rem 1.25rem; border-radius: 999px; z-index: 300; font-weight: 600; font-size: .92rem; box-shadow: var(--shadow-lg); }

/* Modals */
.qtts-modal { position: fixed; inset: 0; z-index: 250; background: rgb(0 0 0 / .55); display: grid; place-items: center; padding: 1rem; animation: qtts-fade .2s; }
@keyframes qtts-fade { from { opacity: 0; } }
.qtts-modal-box { position: relative; background: var(--c-base); color: var(--c-text); border-radius: calc(var(--r) * 1.6); padding: clamp(1.5rem, 4vw, 2.5rem); width: min(560px, 100%); max-height: 90vh; overflow-y: auto; box-shadow: var(--shadow-lg); }
.qtts-modal-wide { width: min(960px, 100%); }
.qtts-modal-close { position: absolute; top: .5rem; right: .5rem; z-index: 2; }
.qtts-popup .qtts-modal-box.has-image { display: grid; grid-template-columns: 1fr 1fr; padding: 0; width: min(820px, 100%); overflow: hidden; }
.qtts-popup-img img { width: 100%; height: 100%; object-fit: cover; }
.qtts-popup .has-image .qtts-popup-body { padding: 2.5rem 2rem; align-self: center; }
@media (max-width: 640px) { .qtts-popup .qtts-modal-box.has-image { grid-template-columns: 1fr; } .qtts-popup-img { max-height: 200px; overflow: hidden; } }
.qtts-cookie { position: fixed; left: 1rem; bottom: 1rem; right: 1rem; max-width: 520px; z-index: 240; background: var(--c-base); color: var(--c-text); border-radius: var(--r); box-shadow: var(--shadow-lg); padding: 1rem 1.25rem; display: flex; gap: 1rem; align-items: center; }
.qtts-cookie p { margin: 0; font-size: .9rem; }
.qtts-has-mobile-bar .qtts-cookie { bottom: 76px; }

/* ===================================================================== store */

/* Every product list (home sections, shop, categories, search, related) is a grid; columns from WooCommerce's columns-N. */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: clamp(.75rem, 2vw, 1.5rem); margin: 0 0 2rem !important; padding: 0; }
.qtts-products ul.products { margin: 0 !important; }
.woocommerce ul.products.columns-1 { --cols: 1; } .woocommerce ul.products.columns-2 { --cols: 2; } .woocommerce ul.products.columns-3 { --cols: 3; }
.woocommerce ul.products.columns-4 { --cols: 4; } .woocommerce ul.products.columns-5 { --cols: 5; } .woocommerce ul.products.columns-6 { --cols: 6; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product, .qtts-products ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; position: relative; display: flex; flex-direction: column; }
/* Carousels are flex, so these only change grids. */
@media (max-width: 1024px) { .woocommerce ul.products { grid-template-columns: repeat(min(var(--cols, 4), 3), minmax(0, 1fr)); } }
@media (max-width: 700px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Product card */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { position: relative; display: block; color: inherit; text-decoration: none; }
.woocommerce ul.products li.product a img { margin: 0 0 .9rem !important; border-radius: var(--r); aspect-ratio: 1; object-fit: cover; width: 100%; background: var(--c-surface); transition: opacity .35s, transform .5s var(--ease); }
.qtts-hover-img { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; }
.woocommerce ul.products li.product:hover .qtts-hover-img { opacity: 1; }
.woocommerce ul.products li.product:hover a img:first-of-type:not(.qtts-hover-img) { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font: 600 .98rem/1.35 var(--f-body) !important; padding: 0 !important; margin: 0 0 .35rem !important; color: var(--c-text); }
.woocommerce ul.products li.product .price { color: var(--c-text) !important; font-weight: 700; font-size: 1.02rem !important; margin-bottom: .75rem !important; display: flex; gap: .5rem; align-items: baseline; flex-wrap: wrap; }
.woocommerce ul.products li.product .price del { color: var(--c-muted); font-weight: 400; font-size: .88em; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--c-accent); }
.woocommerce ul.products li.product .star-rating { font-size: .8rem; margin-bottom: .4rem; color: #f5a524; }
.woocommerce ul.products li.product .button { margin-top: auto !important; width: 100%; font-size: .9rem; padding: .7em 1em; }
.woocommerce ul.products li.product .added_to_cart { display: block; text-align: center; padding-top: .4rem; font-size: .88rem; }
.qtts-labels { position: absolute; top: .65rem; left: .65rem; z-index: 2; display: flex; flex-direction: column; gap: .3rem; align-items: flex-start; }
.qtts-label { font-size: .72rem; font-weight: 700; padding: .25rem .55rem; border-radius: calc(var(--r) * .5); color: #fff; line-height: 1.2; letter-spacing: .02em; }
.qtts-label.is-sale { background: var(--c-accent); }
.qtts-label.is-new { background: var(--c-primary); }
.qtts-label.is-hot { background: #f59e0b; }
.qtts-label.is-out { background: #6b7280; }
.summary .qtts-labels { position: static; flex-direction: row; margin-bottom: .75rem; }
.qtts-card-tools { position: absolute; top: .65rem; right: .65rem; z-index: 3; display: flex; flex-direction: column; gap: .4rem; }
.qtts-card-tools button { width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--c-base); color: var(--c-text); display: grid; place-items: center; cursor: pointer; box-shadow: var(--shadow); opacity: 0; transform: translateX(8px); transition: .25s var(--ease); }
li.product:hover .qtts-card-tools button, li.product:focus-within .qtts-card-tools button, .qtts-card-tools button[aria-pressed="true"] { opacity: 1; transform: none; }
.qtts-card-tools button:hover { background: var(--c-primary); color: #fff; }
@media (hover: none) { .qtts-card-tools button { opacity: 1; transform: none; } .qtts-card-tools .qtts-qv { display: none; } }
.qtts-wish[aria-pressed="true"] { color: var(--c-accent) !important; }
.qtts-wish[aria-pressed="true"] svg { fill: currentColor; }

.qtts-cards-boxed ul.products li.product { background: var(--c-base); border: 1px solid var(--line); border-radius: calc(var(--r) * 1.3); padding: .75rem .75rem 1rem; transition: box-shadow .25s, transform .25s var(--ease); }
.qtts-cards-boxed ul.products li.product:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.qtts-cards-minimal ul.products li.product { text-align: center; }
.qtts-cards-minimal ul.products li.product .price { justify-content: center; }
.qtts-cards-minimal ul.products li.product .button { background: transparent; color: var(--c-text); border-color: var(--line); }
.qtts-cards-minimal ul.products li.product .button:hover { background: var(--c-text); color: var(--c-base); }
.qtts-cards-overlay ul.products li.product .button { position: absolute; left: .75rem; right: .75rem; width: auto; top: calc((100% - 6rem) - 3rem); opacity: 0; transform: translateY(8px); transition: .25s var(--ease); z-index: 3; }
.qtts-cards-overlay ul.products li.product:hover .button, .qtts-cards-overlay ul.products li.product:focus-within .button { opacity: 1; transform: none; }
@media (hover: none) { .qtts-cards-overlay ul.products li.product .button { position: static; opacity: 1; transform: none; } }

/* Categories */
.qtts-categories:not(.is-carousel) .qtts-cat-list .qtts-track { display: grid; grid-template-columns: repeat(min(var(--n, 6), 6), minmax(0, 1fr)); gap: 1.25rem; overflow: visible; }
.qtts-categories:not(.is-carousel) .qtts-track > * { flex: none; }
.qtts-categories.is-carousel .qtts-cat-list .qtts-track { display: flex; overflow-x: auto; }
.qtts-categories.is-carousel .qtts-track > * { flex-basis: calc((100% - 5 * 1.25rem) / 6); }
.qtts-cat { text-decoration: none; color: inherit; display: grid; justify-items: center; text-align: center; gap: .3rem; }
.qtts-cat-media { width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: var(--c-surface); display: block; transition: transform .3s var(--ease), box-shadow .3s; }
.qtts-cat-media img, .qtts-cat-media .qtts-cat-art { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1; border-radius: 0; }
.qtts-cat:hover .qtts-cat-media { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.qtts-cat-name { font-weight: 700; margin-top: .5rem; }
.qtts-cat small { color: var(--c-muted); }
.qtts-categories.is-cards .qtts-cat-media { border-radius: calc(var(--r) * 1.4); aspect-ratio: 4 / 5; }
.qtts-categories.is-cards .qtts-cat-media img { aspect-ratio: 4 / 5; }
@media (max-width: 900px) { .qtts-categories:not(.is-carousel) .qtts-cat-list .qtts-track { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .qtts-categories:not(.is-carousel) .qtts-cat-list .qtts-track { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }

/* Tabs */
.qtts-tab-list { display: flex; justify-content: center; gap: .5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.qtts-tab-list button { border: 1px solid var(--line); background: var(--c-base); color: var(--c-text); padding: .6rem 1.3rem; border-radius: 999px; font: 600 .95rem var(--f-body); cursor: pointer; transition: .2s; }
.qtts-tab-list button[aria-selected="true"] { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }

/* Deal */
.qtts-deal-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.qtts-deal-head .qtts-section-head { margin: 0; }
.qtts-countdown { display: flex; gap: .5rem; }
.qtts-countdown span { background: var(--c-accent); color: #fff; border-radius: var(--r); padding: .55rem .4rem; min-width: 64px; text-align: center; display: grid; }
.qtts-countdown strong { font: 800 1.5rem/1 var(--f-heading); }
.qtts-countdown small { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; opacity: .85; margin-top: .2rem; }

/* Product page */
.qtts-shop { padding-block: 1.5rem 4rem; }
.qtts-shop .woocommerce-breadcrumb, .qtts-shop .wc-block-breadcrumbs { font-size: .88rem; color: var(--c-muted); margin-bottom: 1.25rem; }
.qtts-shop .woocommerce-products-header__title { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.woocommerce div.product .product_title { font-size: clamp(1.6rem, 3vw, 2.3rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--c-text) !important; font-size: 1.6rem !important; font-weight: 700; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--c-accent); }
.woocommerce div.product p.price del { color: var(--c-muted); font-size: .7em; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-bottom: 1rem !important; }
.woocommerce div.product form.cart .quantity input { height: 48px; width: 76px; border-radius: var(--r); border: 1px solid var(--line); }
.woocommerce div.product form.cart .button { height: 48px; flex: 1 1 160px; }
.qtts-buy-now { background: var(--c-secondary) !important; border-color: var(--c-secondary) !important; }
.woocommerce div.product form.variations_form { display: block; }
.woocommerce div.product form.variations_form .single_variation_wrap .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; }
.qtts-price-note { color: #16a34a; font-weight: 600; font-size: .93rem; }
.qtts-stock, .qtts-ship-bar { margin: 1rem 0; }
.qtts-stock p, .qtts-ship-bar p { margin: 0 0 .4rem; font-weight: 600; font-size: .92rem; display: flex; gap: .5rem; align-items: center; }
.qtts-stock p { color: #dc2626; }
.qtts-stock-bar { display: block; height: 6px; background: var(--c-surface); border-radius: 3px; overflow: hidden; }
.qtts-stock-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--c-accent), #f59e0b); border-radius: 3px; }
.qtts-ship-bar .qtts-stock-bar span { background: linear-gradient(90deg, var(--c-primary), #16a34a); }
.qtts-ship-bar { background: var(--c-surface); padding: 1rem 1.25rem; border-radius: var(--r); }
.qtts-product-extras { display: flex; gap: 1.25rem; align-items: center; margin: .5rem 0; }
.qtts-wish-text { border: 0; background: none; cursor: pointer; display: inline-flex; gap: .4rem; align-items: center; color: inherit; font: inherit; padding: 0; }
.qtts-wish-text::after { content: attr(aria-label); text-decoration: underline; text-underline-offset: .2em; }
.qtts-share { display: flex; gap: .5rem; align-items: center; margin-top: 1.25rem; color: var(--c-muted); font-size: .9rem; }
.qtts-share a, .qtts-share button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; color: var(--c-text); background: none; cursor: pointer; }
.qtts-share a:hover, .qtts-share button:hover { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: var(--r) var(--r) 0 0; background: var(--c-surface); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--c-base); }
.woocommerce span.onsale { display: none; }
.qtts-sticky-cart { position: fixed; left: 0; right: 0; bottom: 0; z-index: 96; background: var(--c-base); box-shadow: 0 -8px 30px rgb(0 0 0 / .1); padding: .65rem 0; animation: qtts-up .25s var(--ease); }
@keyframes qtts-up { from { transform: translateY(100%); } }
.qtts-sticky-cart .qtts-wrap { display: flex; align-items: center; gap: 1rem; }
.qtts-sticky-cart img { width: 48px; height: 48px; object-fit: cover; border-radius: calc(var(--r) * .6); }
.qtts-sticky-name { font-weight: 600; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qtts-sticky-price { font-weight: 700; }
.qtts-sticky-price del { color: var(--c-muted); font-weight: 400; }
@media (max-width: 960px) { .qtts-has-mobile-bar .qtts-sticky-cart { bottom: 64px; } .qtts-sticky-cart img, .qtts-sticky-price { display: none; } }

/* Quick view */
.qtts-qv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
.qtts-qv-media img { border-radius: var(--r); width: 100%; }
.qtts-qv-info h2 { font-size: 1.6rem; }
.qtts-qv-info .qtts-labels { position: static; flex-direction: row; margin-bottom: .75rem; }
.qtts-qv-info form.cart { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
@media (max-width: 700px) { .qtts-qv-grid { grid-template-columns: 1fr; } }

/* Wishlist page and empty states */
.qtts-empty { text-align: center; color: var(--c-muted); padding: 2rem 0; }
.qtts-loading { opacity: .5; pointer-events: none; }

/* WooCommerce bits */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--r); border-top-color: var(--c-primary); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--c-primary); }
.woocommerce .woocommerce-ordering select, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { border-radius: var(--r); border: 1px solid var(--line); padding: .7rem .9rem; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: .4rem; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { border-radius: var(--r); min-width: 42px; padding: .7rem; background: var(--c-surface); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--c-primary); color: #fff; }
.qtts-cart .wc-block-mini-cart__button { padding: 10px; }
.qtts-cart .wc-block-mini-cart__button { position: relative; color: inherit; }
.qtts-cart .wc-block-mini-cart__badge { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--c-accent) !important; color: #fff !important; font: 700 .68rem/18px var(--f-body); text-align: center; border: 0; transform: none; }
.qtts-cart .wc-block-mini-cart__badge:empty { display: none; }

/* Products without a picture yet: a soft tile in the site's colours instead of WooCommerce's grey icon. */
.woocommerce ul.products li.product a img.woocommerce-placeholder, .woocommerce div.product img.woocommerce-placeholder { background: linear-gradient(135deg, color-mix(in srgb, var(--c-primary) 10%, var(--c-base)), color-mix(in srgb, var(--c-accent) 14%, var(--c-base))); padding: 22%; object-fit: contain; opacity: .9; mix-blend-mode: multiply; }
/* Never wider than the screen. */
html, body { max-width: 100%; overflow-x: clip; }

/* ===================================================================== shop pages: filters, load more */
.qtts-shop-layout.has-filters { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.75rem); align-items: start; }
.qtts-shop-results { min-width: 0; transition: opacity .2s; }
.qtts-shop-layout.qtts-loading .qtts-shop-results { opacity: .45; pointer-events: none; }
.qtts-filters { position: sticky; top: calc(var(--header-h) + 1rem); max-height: calc(100vh - var(--header-h) - 2rem); overflow-y: auto; scrollbar-width: thin; padding-right: .25rem; }
.qtts-filters-head { display: flex; align-items: center; justify-content: space-between; }
.qtts-filters-head h2 { font-size: 1.15rem; margin: 0; }
.qtts-filters-close, .qtts-filters-open { display: none !important; }
.qtts-filter { border-bottom: 1px solid var(--line); padding: .9rem 0; }
.qtts-filter summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-weight: 700; font-size: .95rem; }
.qtts-filter summary::-webkit-details-marker { display: none; }
.qtts-filter[open] summary svg { transform: rotate(180deg); }
.qtts-filter > :not(summary) { margin-top: .75rem; }
.qtts-filter-cats { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.qtts-filter-cats a, .qtts-filter-cats span { display: flex; justify-content: space-between; padding: .35rem 0; color: var(--c-text); text-decoration: none; font-size: .93rem; }
.qtts-filter-cats a:hover { color: var(--c-primary); }
.qtts-filter-cats .is-current span { font-weight: 700; color: var(--c-primary); }
.qtts-filter-cats small, .qtts-chk small { color: var(--c-muted); font-size: .8rem; }
.qtts-filter-terms { display: grid; gap: .1rem; max-height: 260px; overflow-y: auto; }
.qtts-chk { display: flex; align-items: center; gap: .6rem; padding: .35rem 0; cursor: pointer; font-size: .93rem; position: relative; }
.qtts-chk input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.qtts-chk-label { flex: 1; }
.qtts-box { width: 18px; height: 18px; border: 1.5px solid color-mix(in srgb, var(--c-text) 35%, transparent); border-radius: 5px; display: grid; place-items: center; flex-shrink: 0; transition: .15s; }
.qtts-chk input:checked + .qtts-box { background: var(--c-primary); border-color: var(--c-primary); }
.qtts-chk input:checked + .qtts-box::after { content: ""; width: 9px; height: 5px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.qtts-chk input:focus-visible + .qtts-box, .qtts-chk input:focus-visible + .qtts-dot { outline: 2px solid var(--c-primary); outline-offset: 2px; }
.qtts-dot { width: 20px; height: 20px; border-radius: 50%; background: var(--sw, #ccc); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .14); flex-shrink: 0; display: inline-block; }
.qtts-chk input:checked + .qtts-dot { box-shadow: 0 0 0 2px var(--c-base), 0 0 0 4px var(--c-primary); }
.qtts-price-filter { --a: 0%; --b: 100%; }
.qtts-range { position: relative; height: 28px; }
.qtts-range::before { content: ""; position: absolute; left: 0; right: 0; top: 12px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--line) var(--a), var(--c-primary) var(--a), var(--c-primary) var(--b), var(--line) var(--b)); }
.qtts-range input { position: absolute; inset: 0; width: 100%; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.qtts-range input::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: var(--c-base); border: 2px solid var(--c-primary); cursor: pointer; box-shadow: var(--shadow); }
.qtts-range input::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--c-base); border: 2px solid var(--c-primary); cursor: pointer; }
.qtts-price-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.qtts-price-inputs label span { display: block; font-size: .75rem; color: var(--c-muted); margin-bottom: .2rem; }
.qtts-price-inputs input { width: 100%; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: calc(var(--r) * .6); background: var(--c-base); color: inherit; font: inherit; }
.qtts-filter-actions { padding-top: 1rem; display: grid; gap: .75rem; justify-items: center; }
.js-ready .qtts-filter-actions [data-qtts-filter-apply] { display: none; }
.qtts-chips { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0 0 1.25rem; clear: both; }
.qtts-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .5rem .35rem .8rem; border-radius: 999px; background: var(--c-surface); border: 1px solid var(--line); color: var(--c-text); text-decoration: none; font-size: .85rem; font-weight: 600; }
.qtts-chip:hover { border-color: var(--c-primary); color: var(--c-primary); }
.qtts-no-results { padding: 2rem 0; }
.qtts-shop .woocommerce-result-count { margin: 0 0 1rem; }
.qtts-shop .woocommerce-ordering { margin: 0 0 1rem; }
.qtts-shop .woocommerce-ordering select { padding: .55rem 2rem .55rem .9rem; border-radius: var(--r-btn); border: 1px solid var(--line); background-color: var(--c-base); font: inherit; }
.qtts-load-more { text-align: center; margin: 2rem 0 1rem; clear: both; }
[data-pagination="load_more"] .woocommerce-pagination, [data-pagination="infinite"] .woocommerce-pagination { display: none; }
@media (max-width: 960px) {
	.qtts-shop-layout.has-filters { display: block; }
	.qtts-filters-open { display: inline-flex !important; margin: 0 .75rem 1rem 0; float: left; }
	.qtts-filters-close { display: inline-grid !important; }
	.qtts-filters { position: fixed; top: 0; bottom: 0; left: 0; z-index: 210; width: min(88vw, 360px); max-height: none; background: var(--c-base); padding: 1rem 1.25rem 0; box-shadow: 0 0 0 100vmax rgb(0 0 0 / 0); transform: translateX(-105%); transition: transform .28s var(--ease), box-shadow .28s; }
	.qtts-filters.is-open { transform: none; box-shadow: 0 0 0 100vmax rgb(0 0 0 / .45); }
	.js-ready .qtts-filter-actions [data-qtts-filter-apply] { display: inline-flex; }
	.qtts-filter-actions { position: sticky; bottom: 0; background: var(--c-base); padding-bottom: 1rem; }
}

/* ===================================================================== colour and size buttons */
.qtts-swatch-wrap { position: relative; }
.qtts-swatch-wrap > select { position: absolute !important; opacity: 0; pointer-events: none; width: 1px !important; height: 1px; }
.qtts-swatches { display: flex; flex-wrap: wrap; gap: .5rem; }
.qtts-swatch { border: 1.5px solid var(--line); background: var(--c-base); color: var(--c-text); min-width: 46px; height: 42px; padding: 0 .9rem; border-radius: var(--r); font: 600 .9rem var(--f-body); cursor: pointer; transition: .15s; }
.qtts-swatch:hover:not(:disabled) { border-color: var(--c-text); }
.qtts-swatch[aria-checked="true"] { border-color: var(--c-primary); background: var(--c-primary); color: #fff; }
.qtts-swatches.is-color .qtts-swatch { min-width: 0; width: 40px; height: 40px; padding: 0; border-radius: 50%; display: grid; place-items: center; }
.qtts-swatches.is-color .qtts-swatch .qtts-dot { width: 30px; height: 30px; }
.qtts-swatches.is-color .qtts-swatch[aria-checked="true"] { background: var(--c-base); border-color: var(--c-primary); box-shadow: 0 0 0 1px var(--c-primary); }
.qtts-swatch.is-unavailable { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.woocommerce div.product form.cart .variations { margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; padding: 0 0 .4rem; text-align: left; }
.woocommerce div.product form.cart .variations label { font-weight: 700; }
.woocommerce div.product form.cart .reset_variations { font-size: .85rem; margin-top: .4rem; display: inline-block; }
.qtts-card-dots { display: flex; gap: .3rem; align-items: center; margin: 0 0 .4rem; }
.qtts-card-dots .qtts-dot { width: 14px; height: 14px; }
.qtts-card-dots small { color: var(--c-muted); font-size: .75rem; }
.qtts-cards-minimal .qtts-card-dots { justify-content: center; }

/* ===================================================================== compare */
.qtts-card-tools .qtts-compare-btn[aria-pressed="true"] { background: var(--c-primary); color: #fff; opacity: 1; transform: none; }
.qtts-link-btn.qtts-compare-btn[aria-pressed="true"] { color: var(--c-primary); }
.qtts-compare-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 1rem; z-index: 97; background: var(--c-dark); color: #fff; border-radius: 999px; box-shadow: var(--shadow-lg); padding: .45rem .5rem .45rem 1.2rem; }
.qtts-compare-bar .qtts-wrap { display: flex; align-items: center; gap: 1rem; padding: 0; width: auto; }
.qtts-compare-bar .qtts-link-btn { color: rgb(255 255 255 / .8); }
.qtts-compare-bar span { font-weight: 600; font-size: .92rem; white-space: nowrap; }
@media (max-width: 960px) { .qtts-has-mobile-bar .qtts-compare-bar { bottom: 76px; } }
.qtts-compare-scroll { overflow-x: auto; margin-top: 1rem; }
.qtts-compare-table { border-collapse: collapse; width: 100%; min-width: calc(140px + var(--n) * 190px); font-size: .92rem; }
.qtts-compare-table th, .qtts-compare-table td { padding: .75rem; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.qtts-compare-table th { width: 140px; color: var(--c-muted); font-weight: 600; position: sticky; left: 0; background: var(--c-base); z-index: 1; }
.qtts-compare-head { position: relative; }
.qtts-compare-head a { color: inherit; text-decoration: none; display: grid; gap: .5rem; }
.qtts-compare-head img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r); background: var(--c-surface); }
.qtts-compare-remove { position: absolute; top: .9rem; right: .9rem; background: var(--c-base); width: 32px; height: 32px; box-shadow: var(--shadow); }
.qtts-compare-table .is-in { color: #16a34a; font-weight: 600; }
.qtts-compare-table .is-out { color: #dc2626; font-weight: 600; }
.qtts-compare-table .button { font-size: .85rem; padding: .6em 1em; }

/* ===================================================================== cart feedback */
.qtts-spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; display: inline-block; animation: qtts-spin .7s linear infinite; flex-shrink: 0; }
@keyframes qtts-spin { to { transform: rotate(360deg); } }
.single_add_to_cart_button.is-loading, .single_add_to_cart_button.is-added { pointer-events: none; }
.single_add_to_cart_button.is-added { background: #16a34a !important; border-color: #16a34a !important; }
.woocommerce ul.products li.product .button.is-loading, .woocommerce ul.products li.product .button.loading { position: relative; color: transparent !important; pointer-events: none; opacity: 1; }
.woocommerce ul.products li.product .button.is-loading::after, .woocommerce ul.products li.product .button.loading::after { content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; border: 2px solid #fff; border-right-color: transparent; animation: qtts-spin .7s linear infinite; }
.woocommerce ul.products li.product .button.added { background: #16a34a; border-color: #16a34a; }
.woocommerce ul.products li.product .button.added::after { content: " ✓"; font-family: inherit; margin-left: .25em; }
.woocommerce ul.products li.product .added_to_cart { display: none !important; } /* the confirmation panel has "View cart" */
.qtts-added { position: fixed; top: calc(var(--header-h) + 12px); right: 16px; z-index: 260; width: min(360px, calc(100vw - 32px)); background: var(--c-base); color: var(--c-text); border-radius: calc(var(--r) * 1.4); box-shadow: var(--shadow-lg); border: 1px solid var(--line); padding: 1rem; animation: qtts-drop .3s var(--ease); }
.qtts-added.is-leaving { opacity: 0; transform: translateY(-8px); transition: .3s; }
@keyframes qtts-drop { from { opacity: 0; transform: translateY(-10px); } }
.qtts-added-head { display: flex; align-items: center; gap: .5rem; color: #16a34a; }
.qtts-added-head strong { flex: 1; color: var(--c-text); }
.qtts-added-head .qtts-icon-btn { width: 32px; height: 32px; color: var(--c-muted); }
.qtts-added-item { display: flex; gap: .85rem; align-items: center; margin: .75rem 0 1rem; }
.qtts-added-item img { width: 64px; height: 64px; object-fit: cover; border-radius: calc(var(--r) * .7); background: var(--c-surface); }
.qtts-added-name { margin: 0; font-weight: 600; line-height: 1.3; }
.qtts-added-meta { margin: .2rem 0 0; color: var(--c-muted); font-size: .88rem; }
.qtts-added-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
@media (max-width: 960px) {
	.qtts-added { top: auto; bottom: 16px; left: 16px; right: 16px; width: auto; animation-name: qtts-rise; }
	.qtts-has-mobile-bar .qtts-added { bottom: 76px; }
	@keyframes qtts-rise { from { opacity: 0; transform: translateY(12px); } }
}
.qtts-count.is-bump { animation: qtts-bump .45s var(--ease); }
@keyframes qtts-bump { 40% { transform: scale(1.45); } }
.qtts-bar-icon { position: relative; display: inline-grid; }
.qtts-mobile-bar .qtts-count { top: -6px; right: -10px; }

/* ===================================================================== quantity − / + */
.quantity.qtts-qty { display: inline-flex !important; align-items: stretch; border: 1px solid var(--line); border-radius: var(--r-btn); overflow: hidden; height: 48px; background: var(--c-base); }
.quantity.qtts-qty input.qty { width: 48px !important; height: auto !important; border: 0 !important; border-radius: 0 !important; text-align: center; font: 600 1rem var(--f-body); -moz-appearance: textfield; padding: 0 !important; background: transparent; }
.quantity.qtts-qty input.qty::-webkit-inner-spin-button, .quantity.qtts-qty input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.qtts-qty-btn { width: 42px; border: 0; background: transparent; color: var(--c-text); font-size: 1.25rem; cursor: pointer; transition: background .15s; }
.qtts-qty-btn:hover:not(:disabled) { background: var(--c-surface); }
.qtts-qty-btn:disabled { opacity: .3; cursor: not-allowed; }

/* ===================================================================== stock status */
.woocommerce div.product .stock.qtts-stock-status, .qtts-stock-status { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: .93rem; margin: .5rem 0 1rem; color: #15803d; }
.qtts-stock-status::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 18%, transparent); }
.qtts-stock-status.is-low { color: #c2410c; }
.qtts-stock-status.out-of-stock { color: #b91c1c; }
.qtts-stock-status.available-on-backorder { color: #a16207; }
.qtts-stock { margin: -.5rem 0 1rem; max-width: 320px; }
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled { opacity: .45; cursor: not-allowed; }
