/*
Theme Name: KWKWNA
Theme URI: https://kwkwna.gr
Author: Fixit E.E.
Author URI: https://www.fixit.gr
Description: Child theme of Fixit for the KWKWNA phone shop. Colours, fonts, header, footer and content are managed from fixit-core (Site Settings, Customizer → Fixit Core, fx/* blocks); this theme carries the house styling on top.
Template: Fixit
Version: 1.0.0
Requires PHP: 8.1
Text Domain: kwkwna
License: Proprietary
*/

/* ==========================================================================
   Tokens — every value reads a fixit-core variable first, so Site Settings
   (palette, typography, buttons, fields) and Customizer → Fixit Core keep
   control. The fallbacks are the KWKWNA defaults.
   ========================================================================== */

:root {
	--kw-ink: var(--color-content-primary, #0c0c0c);
	--kw-bg: var(--color-content-bg, #f2efe9);
	--kw-surface: var(--color-content-bg-alt, #e8e3da);
	--kw-paper: color-mix(in srgb, var(--kw-bg) 45%, #fff);
	--kw-text: var(--color-content-text, #1b1a18);
	--kw-muted: var(--color-content-faded, #6f6a63);
	--kw-line: var(--color-content-border, #ddd6cb);
	--kw-accent: var(--color-content-accent, #c8963e);
	--kw-sale: #c23a2b;
	--kw-radius: var(--fx-radius, 18px);
	--kw-radius-sm: var(--fx-radius-sm, 12px);
	--kw-radius-lg: var(--fx-radius-lg, 28px);
	--kw-heading: var(--fx-font-heading-override, "Inter Tight", sans-serif);
	--kw-body: var(--fx-font-body-override, "Manrope", sans-serif);
	--kw-wrap: 1440px;
	--kw-gutter: clamp(16px, 3.2vw, 44px);
	--kw-ease: cubic-bezier(.2, .7, .1, 1);
	--kw-shadow: 0 30px 60px -32px rgba(35, 25, 12, .32);
	--kw-section: clamp(56px, 7vw, var(--fx-section-py, 96px));
	/* fixit-core section options read these */
	--fx-gutter: var(--kw-gutter);
	--fx-decor-color: var(--kw-accent);
	--fx-decor-strength: 1;
}

/* Base ---------------------------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; }
body {
	background: var(--kw-bg);
	color: var(--kw-text);
	font-family: var(--kw-body);
	font-weight: 500;
	overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--kw-heading); font-weight: 800; letter-spacing: -.035em; line-height: 1.02; color: var(--color-content-heading, var(--kw-ink)); }
a { color: inherit; }
a:hover { opacity: 1; }
::selection { background: var(--kw-ink); color: var(--kw-bg); }
:focus-visible { outline: 2px solid var(--kw-accent); outline-offset: 3px; }
.kw-icon { width: 22px; height: 22px; flex: none; }

.t-container { max-width: var(--kw-wrap); padding-left: var(--kw-gutter); padding-right: var(--kw-gutter); margin-left: auto; margin-right: auto; }
.t-section { padding-top: var(--kw-section); padding-bottom: var(--kw-section); background: var(--kw-bg); }
.t-section--white { background: var(--kw-bg); }
.t-section--soft { background: var(--kw-surface); }
.t-section--navy { background: var(--kw-ink); color: var(--kw-bg); }
.t-section--navy h2, .t-section--navy h3 { color: var(--kw-bg); }
/* Rhythm: two light sections in a row share one gap; a coloured band or a framed block keeps its own. */
.t-block.t-section--white + .t-block.t-section--white { padding-top: 0; }
.kw-hero + .t-block.t-block.t-block, .kw-banner + .t-block.t-block.t-block, .t-block--newsletter + .t-block.t-block.t-block { padding-top: var(--kw-section); }
.t-block.kw-banner { padding-top: 0; padding-bottom: 0; }
.t-block.kw-banner + .t-block.kw-banner { margin-top: var(--kw-section); }
.t-section--soft + .t-block.kw-banner, .t-section--navy + .t-block.kw-banner { margin-top: var(--kw-section); }
.t-block.t-section--white + .t-block.kw-banner { margin-top: 0; }
.kw-main > .t-block:last-child:not(.t-section--soft):not(.t-section--navy) { padding-bottom: 0; }

/* Section headings: big, left aligned, eyebrow with a gold dot (no uppercase — Greek loses its accents). */
.t-section-label {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--kw-body); font-size: 13px; font-weight: 700; letter-spacing: .02em; text-transform: none;
	color: var(--kw-accent); margin-bottom: 14px;
}
.t-section-title { font-size: clamp(34px, 4.4vw, var(--fx-fs-h2, 52px)); margin: 0 0 14px; text-align: left; max-width: 900px; text-wrap: balance; }
.fx-section-head { margin-bottom: clamp(24px, 3vw, 40px); }
.fx-section-head--center .t-section-title { text-align: center; margin-inline: auto; }
.fx-carousel-btn { width: 50px; height: 50px; color: var(--kw-ink); border-color: color-mix(in srgb, var(--kw-ink) 20%, transparent); background: var(--kw-paper); }
.fx-carousel-btn:hover:not(:disabled) { background: var(--kw-ink); border-color: var(--kw-ink); color: var(--kw-bg); }
.fx-section-cta .t-btn-outline { min-height: 52px; padding: 0 28px; }
.t-section-subtitle, .t-section-title + p { color: var(--kw-muted); font-size: clamp(16px, 1.3vw, 18px); max-width: 620px; margin: 0; text-align: left; }

/* Buttons (fixit-core's classes; colours/radius/padding come from Site Settings → Button Styles). */
.t-btn-primary, .t-btn-ghost, .t-btn-outline, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .single_add_to_cart_button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 50px; padding: 0 26px;
	border-radius: var(--fx-btn-radius, 999px);
	font-family: var(--kw-body); font-size: 15px; font-weight: 700; letter-spacing: -.005em; line-height: 1;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: background .25s, color .25s, border-color .25s, transform .25s var(--kw-ease);
}
.t-btn-primary, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .single_add_to_cart_button {
	background: var(--fx-btn-primary-bg, var(--kw-ink)); color: var(--fx-btn-primary-text, var(--kw-bg)); border: 1px solid var(--fx-btn-primary-bg, var(--kw-ink));
}
.t-btn-primary:hover, .woocommerce .button:hover, .single_add_to_cart_button:hover {
	background: var(--fx-btn-primary-hover-bg, var(--kw-accent)); color: var(--fx-btn-primary-hover-text, var(--kw-ink)); border-color: var(--fx-btn-primary-hover-bg, var(--kw-accent)); transform: translateY(-1px);
}
.t-btn-ghost, .t-btn-outline { background: transparent; color: var(--kw-ink); border: 1px solid color-mix(in srgb, var(--kw-ink) 25%, transparent); }
.t-btn-ghost:hover, .t-btn-outline:hover { background: var(--kw-ink); color: var(--kw-bg); border-color: var(--kw-ink); }
.t-section--navy .t-btn-primary { background: var(--kw-bg); color: var(--kw-ink); border-color: var(--kw-bg); }
.t-section--navy .t-btn-ghost { color: var(--kw-bg); border-color: color-mix(in srgb, var(--kw-bg) 35%, transparent); }

/* Announcement ------------------------------------------------------------- */

.fx-announcement { font-size: 13px !important; font-weight: 600; letter-spacing: .01em; padding: 9px 16px !important; }
.fx-announcement a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Header ---------------------------------------------------------------------- */

.fx-header {
	background: color-mix(in srgb, var(--fx-header-bg, var(--kw-bg)) 88%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(16px); backdrop-filter: saturate(1.4) blur(16px);
	box-shadow: 0 1px 0 var(--kw-line);
}
.fx-header-inner { max-width: var(--kw-wrap); padding: 0 var(--kw-gutter); gap: 24px; }
.fx-logo-img { height: 30px; }
.fx-nav { flex: 1; justify-content: center; }
.fx-nav-list { gap: 2px; }
.fx-nav-link { font-size: 15px; font-weight: 700; letter-spacing: -.01em; padding: 10px 14px; border-radius: 999px; }
.fx-nav-link:hover, .fx-nav-list > li.current-menu-item > .fx-nav-link, .fx-nav-list > li.current-menu-ancestor > .fx-nav-link { background: color-mix(in srgb, var(--kw-ink) 6%, transparent); color: var(--kw-ink); }
.fx-header-actions { gap: 4px; }
.fx-header-actions > a, .fx-header-actions > button:not(.fx-nav-toggle) {
	position: relative; display: inline-grid !important; place-items: center; width: 44px; height: 44px; padding: 0 !important;
	border-radius: 50%; color: var(--kw-ink) !important; transition: background .2s;
}
.fx-header-actions > a:hover, .fx-header-actions > button:not(.fx-nav-toggle):hover { background: color-mix(in srgb, var(--kw-ink) 7%, transparent) !important; }
.fx-header-actions svg { width: 22px; height: 22px; }
.fx-cart-icon-count:empty { display: none !important; }
.fx-cart-icon-count {
	position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
	background: var(--kw-accent); color: var(--kw-ink); font-size: 11px; font-weight: 800; display: grid; place-items: center; line-height: 1;
}
.fx-nav-search-form { padding: 22px var(--kw-gutter) 26px; background: var(--kw-bg); border-top: 1px solid var(--kw-line); box-shadow: 0 30px 60px -30px rgba(40, 25, 10, .35); border-radius: 0 0 28px 28px; }
.fx-search-form input[type="search"] { min-height: 62px; border: 0 !important; border-radius: 999px !important; background: #fff !important; font-size: 17px !important; box-shadow: 0 10px 30px -18px rgba(40, 25, 10, .35); }
.fx-search-form input[type="search"]:focus { outline: 2px solid var(--kw-ink); outline-offset: 2px; }
.fx-search-submit { width: 50px; height: 50px; background: var(--kw-ink); }
.fx-search-submit:hover { background: var(--kw-accent); color: var(--kw-ink); }
.fx-search-close:hover { background: var(--kw-surface); }
.fx-search-chips-label { color: var(--kw-muted); opacity: 1; }
.fx-search-chips .fx-chip { background: #fff; border: 0; color: var(--kw-ink); font-weight: 700; transition: background .2s, color .2s; }
.fx-search-chips .fx-chip:hover { background: var(--kw-ink); color: #fff; }
.fx-live-search { max-width: 820px; }
.fx-live-search-item { background: #fff; border-radius: 16px; }

/* Mega menu: full-width panel, one column per first-level item. */
.fx-mega-menu {
	position: fixed; left: 0; right: 0; top: auto; transform: none; min-width: 0; width: 100%;
	margin-top: 14px; padding: 36px 0 42px; border-radius: 0 0 var(--kw-radius-lg) var(--kw-radius-lg);
	background: var(--kw-paper); border: 0; border-top: 1px solid var(--kw-line); box-shadow: 0 40px 60px -40px rgba(0,0,0,.3);
}
.fx-mega-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.fx-mega-inner { display: block; max-width: var(--kw-wrap); margin: 0 auto; padding: 0 var(--kw-gutter); }
.fx-mega-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--fx-mega-cols, 4), minmax(0, 1fr)); gap: 28px 40px; }
.fx-mega-list > li > a { font-family: var(--kw-heading); font-size: 19px; font-weight: 800; letter-spacing: -.02em; padding: 0 0 10px; background: none !important; color: var(--kw-ink); }
.fx-mega-list > li > a:hover { color: var(--kw-accent); }
.fx-mega-list .fx-sub-menu { gap: 0; }
.fx-mega-list .fx-sub-menu a { padding: 6px 0; font-size: 15px; font-weight: 600; color: var(--kw-muted); background: none; }
.fx-mega-list .fx-sub-menu a:hover { color: var(--kw-ink); }
.fx-mega-list .fx-sub-menu .fx-sub-menu { display: none; }
.fx-has-mega.fx-trigger-hover:hover > .fx-mega-menu, .fx-has-mega.fx-open > .fx-mega-menu { animation: kw-drop .3s var(--kw-ease); }
@keyframes kw-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Mobile nav */
.fx-nav-toggle { width: 44px; height: 44px; padding: 12px 10px; border-radius: 50%; }
.fx-nav-toggle span { background: var(--kw-ink); }
.fx-nav-mobile { background: var(--kw-bg); border-top: 1px solid var(--kw-line); }
.fx-nav-mobile-inner { padding: 16px var(--kw-gutter) 28px; gap: 18px; }
.fx-nav-mobile .fx-search-form input[type="search"] { min-height: 52px; font-size: 16px !important; }
.fx-nav-mobile .fx-search-submit { width: 42px; height: 42px; }
.fx-nav-mobile-list { padding: 0; gap: 0; }
.fx-nav-mobile-list > li { border-bottom: 1px solid var(--kw-line); }
.fx-nav-mobile-list > li > a { font-family: var(--kw-heading); font-size: 22px; font-weight: 800; letter-spacing: -.02em; padding: 15px 0; border: 0; border-radius: 0; background: none !important; color: var(--kw-ink) !important; }
.fx-nav-mobile-expand { background: #fff; color: var(--kw-ink); width: 40px; height: 40px; }
.fx-nav-mobile-expand[aria-expanded="true"] { background: var(--kw-ink); color: #fff; }
.fx-nav-mobile-list .sub-menu, .fx-nav-mobile-list .fx-sub-menu { display: grid; list-style: none; gap: 2px; padding: 0 0 14px 2px; margin: 0; }
.fx-nav-mobile-list .sub-menu[hidden], .fx-nav-mobile-list .fx-sub-menu[hidden] { display: none !important; }
.fx-nav-mobile-list .sub-menu a, .fx-nav-mobile-list .fx-sub-menu a { display: block; font-size: 16px; font-weight: 600; color: var(--kw-muted); padding: 9px 0; background: none; }
.fx-nav-mobile-list .sub-menu a:hover { color: var(--kw-ink) !important; }
.fx-nav-mobile-foot { border-top: 0; gap: 8px; padding-top: 8px; }
.fx-nav-mobile-link { padding: 12px 16px; border-radius: 16px; background: #fff; color: var(--kw-ink); font-size: 15px; }
.fx-nav-mobile-link svg { color: var(--kw-accent); }

/* Hero (fx/hero) ------------------------------------------------------------- */

.t-hero-full.kw-hero {
	position: relative; display: flex; align-items: center; overflow: hidden;
	min-height: min(78vh, 760px) !important;
	margin: 12px var(--kw-gutter) 0; border-radius: var(--kw-radius-lg);
	background-size: cover !important; background-position: 70% center !important;
	padding: clamp(40px, 6vw, 96px) 0;
}
.t-hero-full.kw-hero::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit;
	background: linear-gradient(90deg, var(--kw-bg) 0%, color-mix(in srgb, var(--kw-bg) 85%, transparent) 30%, transparent 58%);
}
.t-hero-full.kw-hero .t-container { position: relative; width: 100%; max-width: var(--kw-wrap); }
.t-hero-full.kw-hero .t-container > * { max-width: 600px; }
.kw-hero .t-hero-tag {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px; padding: 8px 16px 8px 12px; border-radius: 999px;
	background: color-mix(in srgb, #fff 55%, transparent); border: 1px solid var(--kw-line); color: var(--kw-ink);
	font-size: 13px; font-weight: 700; letter-spacing: .01em; text-transform: none;
}
.kw-hero .t-hero-tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kw-accent); }
.kw-hero h1 { font-size: clamp(46px, 6.6vw, var(--fx-fs-h1, 76px)); line-height: .92; letter-spacing: -.055em; color: var(--kw-ink); margin-bottom: 22px; }
.kw-hero h1 em { display: block; font-style: normal; color: var(--kw-muted); text-wrap: balance; }
.kw-hero p { font-size: clamp(16px, 1.35vw, 19px); color: var(--kw-muted); max-width: 460px; margin-bottom: 30px; }
.kw-hero .t-hero-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.kw-hero .t-btn-primary, .kw-hero .t-btn-ghost { min-height: 56px; padding: 0 30px; font-size: 16px; }
.kw-hero .t-btn-ghost { background: color-mix(in srgb, #fff 45%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* Collage hero (fx/hero style=collage with .kw-hero) ------------------------------------------ */

.kw-hero.fx-hero--collage { background: var(--kw-bg); }
.kw-hero .fx-hero-collage { padding: 12px var(--kw-gutter) 0; gap: 12px; max-width: calc(var(--kw-wrap) + 400px); margin: 0 auto; }
.kw-hero .fx-hero-tile { border-radius: var(--kw-radius-lg); background: var(--kw-surface); }
.kw-hero .fx-hero-tile-label { background: color-mix(in srgb, var(--kw-paper) 90%, transparent); color: var(--kw-ink); font-weight: 800; transition: background .25s, color .25s; }
.kw-hero a.fx-hero-tile:hover .fx-hero-tile-img { transform: none; }
.kw-hero .fx-hero-tile-label svg { transition: transform .3s var(--kw-ease); }
.kw-hero a.fx-hero-tile:hover .fx-hero-tile-label svg { transform: translateX(3px); }
.kw-hero .fx-hero-collage-content { border-radius: var(--kw-radius-lg); background: var(--kw-ink); color: var(--kw-bg); }
.kw-hero .t-hero-tag {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 6px 14px 6px 10px; border-radius: 999px;
	background: color-mix(in srgb, var(--kw-bg) 12%, transparent); color: var(--kw-bg); font-size: 13px; font-weight: 700; letter-spacing: .01em; text-transform: none;
}
.kw-hero .t-hero-tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kw-accent); }
.kw-hero .fx-hero-collage-content { padding: clamp(24px, 2.6vw, 40px); }
.kw-hero .fx-hero-title { font-size: clamp(32px, 3.2vw, 52px); line-height: .98; letter-spacing: -.045em; color: var(--kw-bg); text-wrap: balance; }
.kw-hero .fx-hero-title em { font-style: normal; color: var(--kw-accent); }
.kw-hero .fx-hero-subtitle { font-size: 16px; line-height: 1.55; color: color-mix(in srgb, var(--kw-bg) 72%, transparent); opacity: 1; max-width: 460px; }
.kw-hero .t-hero-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.kw-hero .t-btn-primary { background: var(--kw-accent); border-color: var(--kw-accent); color: var(--kw-ink); min-height: 52px; padding: 0 24px; }
.kw-hero .t-btn-ghost { padding: 0 24px; }
.kw-hero .t-btn-primary:hover { background: var(--kw-bg); border-color: var(--kw-bg); color: var(--kw-ink); }
.kw-hero .t-btn-ghost { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; color: var(--kw-bg); border-color: color-mix(in srgb, var(--kw-bg) 35%, transparent); min-height: 52px; }
.kw-hero .t-btn-ghost:hover { background: var(--kw-bg); color: var(--kw-ink); border-color: var(--kw-bg); }
/* Poster hero: edge-to-edge collage, huge outlined headline across the photos, moving ribbon. */
.kw-hero.fx-hero--content-center .fx-hero-collage { padding: 0; gap: 0; max-width: none; height: clamp(560px, calc(100vh - 150px), 820px); }
.kw-hero.fx-hero--content-center .fx-hero-tile { border-radius: 0; }
.kw-hero.fx-hero--content-center .fx-hero-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.18)); pointer-events: none; }
.kw-hero.fx-hero--content-center .fx-hero-tile-label { z-index: 2; left: 16px; bottom: 16px; }
@media (min-width: 701px) { .kw-hero.fx-hero--content-center :is(.fx-hero-tile--2, .fx-hero-tile--3) .fx-hero-tile-label { display: none; } }
.kw-hero.fx-hero--content-center .fx-hero-collage-content {
	width: min(1200px, calc(100% - 32px)); padding: 0; border-radius: 0; background: none; color: #fff; pointer-events: none;
}
.kw-hero.fx-hero--content-center .fx-hero-collage-content a { pointer-events: auto; }
.kw-hero.fx-hero--content-center .fx-hero-title {
	margin: 0 0 24px; font-size: clamp(40px, 5.2vw, 80px); line-height: .95; letter-spacing: -.04em; font-weight: 900; font-style: italic;
	color: #fff; -webkit-text-stroke: 2px var(--kw-ink); paint-order: stroke fill;
	text-shadow: 0 3px 0 var(--kw-ink), 0 20px 40px rgba(0, 0, 0, .3);
}
.kw-hero.fx-hero--content-center .fx-hero-title em { display: block; font-style: italic; color: var(--kw-accent); }
.kw-hero.fx-hero--content-center .t-btn-primary { background: var(--kw-ink); border-color: var(--kw-ink); color: #fff; min-height: 58px; padding: 0 30px; box-shadow: 0 16px 30px -12px rgba(0,0,0,.45); }
.kw-hero.fx-hero--content-center .t-btn-primary:hover { background: var(--kw-accent); border-color: var(--kw-accent); color: var(--kw-ink); }
.kw-hero.fx-hero--content-center .t-btn-ghost { background: #fff; border-color: #fff; color: var(--kw-ink); min-height: 58px; padding: 0 30px; box-shadow: 0 16px 30px -12px rgba(0,0,0,.35); }
.kw-hero.fx-hero--content-center .t-btn-ghost:hover { background: var(--kw-ink); border-color: var(--kw-ink); color: #fff; }
.kw-hero .fx-hero-ribbon { background: var(--kw-ink); color: var(--kw-bg); border-top: 3px solid var(--kw-accent); }
.kw-hero .fx-hero-ribbon--text .fx-hero-ribbon-run { gap: clamp(28px, 3vw, 48px); padding: 18px clamp(14px, 1.5vw, 24px); font-family: var(--kw-heading); font-size: clamp(17px, 1.6vw, 24px); font-weight: 600; font-style: italic; letter-spacing: -.02em; }
.kw-hero .fx-hero-ribbon--text .fx-hero-ribbon-run span:nth-of-type(odd) { color: var(--kw-accent); }
/* Product ticker */
.kw-hero .fx-hero-ribbon--products .fx-hero-ribbon-run { gap: 10px; padding: 12px 5px; }
.kw-hero .fx-hero-ribbon-title {
	position: relative; z-index: 1; gap: 10px; padding: 0 clamp(16px, 2vw, 28px); background: var(--kw-accent); color: var(--kw-ink);
	font-family: var(--kw-heading); font-size: clamp(15px, 1.3vw, 19px); font-weight: 800; font-style: italic; letter-spacing: -.02em; white-space: nowrap;
	box-shadow: 18px 0 24px -6px var(--kw-ink);
}
.kw-hero .fx-hero-ribbon-title::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kw-ink); animation: kw-pulse 1.8s ease-in-out infinite; }
@keyframes kw-pulse { 50% { opacity: .25; } }
.kw-hero .fx-hero-ribbon-item { padding: 5px 20px 5px 5px; border: 1px solid color-mix(in srgb, var(--kw-bg) 14%, transparent); background: color-mix(in srgb, var(--kw-bg) 5%, transparent); }
.kw-hero .fx-hero-ribbon-item:hover { background: var(--kw-bg); color: var(--kw-ink); border-color: var(--kw-bg); }
.kw-hero .fx-hero-ribbon-thumb { width: 46px; height: 46px; background: var(--kw-surface); }
.kw-hero .fx-hero-ribbon-name { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.kw-hero .fx-hero-ribbon-price { color: var(--kw-accent); opacity: 1; font-size: 15px; }
.kw-hero .fx-hero-ribbon-item:hover .fx-hero-ribbon-price { color: var(--kw-ink); }
.kw-hero .fx-hero-ribbon-price del { color: inherit; }

.kw-hero .fx-hero-ribbon-logo { height: clamp(16px, 1.5vw, 22px); filter: invert(1) brightness(1.3); opacity: .9; }
@media (prefers-reduced-motion: no-preference) {
	.kw-hero.fx-hero--content-center .fx-hero-title { animation: kw-title-in 1s cubic-bezier(.2, 1.4, .4, 1) .45s both; }
	.kw-hero.fx-hero--content-center .fx-hero-title em { animation: kw-title-in 1s cubic-bezier(.2, 1.4, .4, 1) .65s both; }
	.kw-hero.fx-hero--content-center .fx-hero-collage-content { animation: none; }
	@keyframes kw-title-in { from { opacity: 0; transform: translateY(40px) rotate(-3deg) scale(.9); } }
}

/* Highlights: three pastel cards that pick up the collage colours. */
.kw-hero .fx-hero-below { max-width: var(--kw-wrap); padding: clamp(36px, 4.5vw, 64px) var(--kw-gutter) 0; }
.kw-hero .fx-hero-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; width: 100%; margin: 0; padding: 0; }
.kw-hero .fx-hero-highlights li {
	--kw-tint: #f5d3dd; position: relative; overflow: hidden; gap: 18px; padding: 22px 24px; border-radius: var(--kw-radius-lg);
	background: color-mix(in srgb, var(--kw-tint) 55%, var(--kw-paper)); color: var(--kw-ink);
	transition: transform .35s var(--kw-ease), box-shadow .35s var(--kw-ease);
}
.kw-hero .fx-hero-highlights li:nth-child(2) { --kw-tint: #f4e3a1; }
.kw-hero .fx-hero-highlights li:nth-child(3) { --kw-tint: #cfe6c6; }
.kw-hero .fx-hero-highlights li:hover { transform: translateY(-3px); box-shadow: 0 24px 40px -28px rgba(60, 40, 20, .45); }
.kw-hero .fx-hero-highlight-icon {
	position: relative; z-index: 1; flex: none; width: 54px; height: 54px; border-radius: 16px; color: var(--kw-ink);
	background: #fff; box-shadow: 0 10px 20px -12px rgba(60, 40, 20, .4); transition: transform .4s var(--kw-ease);
}
.kw-hero .fx-hero-highlight-icon svg { width: 24px; height: 24px; }
.kw-hero .fx-hero-highlights li:hover .fx-hero-highlight-icon { transform: rotate(-8deg) scale(1.05); }
.kw-hero .fx-hero-highlight-text { position: relative; z-index: 1; gap: 4px; }
.kw-hero .fx-hero-highlight-text strong { font-family: var(--kw-heading); font-size: 17px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.kw-hero .fx-hero-highlight-text small { font-size: 13.5px; font-weight: 600; color: color-mix(in srgb, var(--kw-ink) 62%, transparent); opacity: 1; }

/* Entrance: tiles rise in one after another, the headline card follows. Off for reduced motion. */
@media (prefers-reduced-motion: no-preference) {
	.kw-hero .fx-hero-tile { animation: kw-tile-in .9s var(--kw-ease) both; }
	.kw-hero .fx-hero-tile-img { animation: kw-img-in 1.8s var(--kw-ease) both; }
	.kw-hero .fx-hero-tile--1 { animation-delay: .05s; }
	.kw-hero .fx-hero-tile--2 { animation-delay: .15s; }
	.kw-hero .fx-hero-tile--3 { animation-delay: .25s; }
	.kw-hero .fx-hero-tile--4 { animation-delay: .2s; }
	.kw-hero .fx-hero-tile--5 { animation-delay: .35s; }
	.kw-hero .fx-hero-tile--6 { animation-delay: .45s; }
	.kw-hero .fx-hero-tile-label { animation: kw-fade-up .7s var(--kw-ease) .8s both; }
	.kw-hero .fx-hero-collage-content { animation: kw-card-in 1s var(--kw-ease) .1s both; }
	.kw-hero .fx-hero-collage-content > * { animation: kw-fade-up .8s var(--kw-ease) both; }
	.kw-hero .fx-hero-collage-content > :nth-child(1) { animation-delay: .35s; }
	.kw-hero .fx-hero-collage-content > :nth-child(2) { animation-delay: .5s; }
	.kw-hero .fx-hero-collage-content > :nth-child(3) { animation-delay: .65s; }
	.kw-hero .fx-hero-title em { display: block; animation: kw-fade-up .8s var(--kw-ease) .55s both; }
	.kw-hero .fx-hero-highlights li { animation: kw-fade-up .7s var(--kw-ease) both; }
	.kw-hero .fx-hero-highlights li:nth-child(1) { animation-delay: .7s; }
	.kw-hero .fx-hero-highlights li:nth-child(2) { animation-delay: .8s; }
	.kw-hero .fx-hero-highlights li:nth-child(3) { animation-delay: .9s; }
	@keyframes kw-tile-in { from { opacity: 0; transform: translateY(28px) scale(.96); } }
	@keyframes kw-img-in { from { transform: scale(1.18); } }
	@keyframes kw-card-in { from { opacity: 0; transform: translateY(36px) scale(.97); } }
	@keyframes kw-fade-up { from { opacity: 0; transform: translateY(16px); } }
}
@media (max-width: 700px) {
	.kw-hero .fx-hero-collage { padding: 8px 8px 0; gap: 6px; }
	.kw-hero .fx-hero-tile { border-radius: 16px; }
	.kw-hero.fx-hero--content-center .fx-hero-collage { padding: 0; gap: 0; }
	.kw-hero.fx-hero--content-center .fx-hero-tile { border-radius: 0; }
	.kw-hero.fx-hero--content-center .fx-hero-collage { height: auto; padding: 12px var(--kw-gutter) 0; gap: 8px; }
	.kw-hero.fx-hero--content-center .fx-hero-tile { border-radius: 22px; }
	.kw-hero.fx-hero--content-center .fx-hero-tile::after { display: none; }
	.kw-hero.fx-hero--content-center .fx-hero-tile-label { left: 10px; bottom: 10px; padding: 7px 12px; font-size: 12px; }
	.kw-hero.fx-hero--content-center .fx-hero-collage-content { width: auto; padding: 22px var(--kw-gutter) 26px; background: none; align-items: flex-start; text-align: left; }
	.kw-hero.fx-hero--content-center .fx-hero-title { font-size: 34px; line-height: 1; margin-bottom: 18px; font-style: normal; color: var(--kw-ink); -webkit-text-stroke: 0; text-shadow: none; }
	.kw-hero.fx-hero--content-center .fx-hero-title em { display: inline; font-style: normal; color: var(--kw-accent); }
	.kw-hero.fx-hero--content-center .t-hero-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; align-self: stretch; }
	.kw-hero.fx-hero--content-center .t-btn-primary, .kw-hero.fx-hero--content-center .t-btn-ghost { min-height: 50px; padding: 0 12px; font-size: 14px; box-shadow: none; }
	.kw-hero.fx-hero--content-center .t-btn-ghost { background: transparent; border-color: color-mix(in srgb, var(--kw-ink) 22%, transparent); }
	.kw-hero.fx-hero--content-center .t-btn-primary svg { display: none; }
	.kw-hero .fx-hero-ribbon { border-top-width: 2px; }
	.kw-hero .fx-hero-ribbon--products .fx-hero-ribbon-run { gap: 6px; padding: 8px 3px; }
	.kw-hero .fx-hero-ribbon-item { gap: 8px; padding: 3px 12px 3px 3px; border: 0; background: color-mix(in srgb, var(--kw-bg) 8%, transparent); }
	.kw-hero .fx-hero-ribbon-thumb { width: 30px; height: 30px; }
	.kw-hero .fx-hero-ribbon-name, .kw-hero .fx-hero-ribbon-price { font-size: 12px; }
	.kw-hero .t-hero-btns { width: 100%; }
	.kw-hero .t-hero-btns a { flex: 1 1 auto; }
	.kw-hero .fx-hero-below { padding-top: 20px; }
	.kw-hero .fx-hero-highlights { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.kw-hero .fx-hero-highlights li { padding: 14px 16px; gap: 14px; border-radius: 18px; }
	.kw-hero .fx-hero-highlight-icon { width: 44px; height: 44px; border-radius: 13px; }
	.kw-hero .fx-hero-highlight-icon svg { width: 20px; height: 20px; }
	.kw-hero .fx-hero-highlight-text strong { font-size: 15px; }
	.kw-hero .fx-hero-highlight-text small { font-size: 12.5px; }
}

/* Device tiles (fx/services with .kw-devices) --------------------------------- */

.kw-devices .fx-track { --fx-gap: 14px; }
.kw-devices .t-card {
	position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 0; aspect-ratio: 4 / 4.6;
	padding: 22px; border-radius: var(--kw-radius); overflow: hidden; isolation: isolate; background: var(--kw-surface);
	box-shadow: none; border: 0; text-decoration: none; color: var(--kw-ink);
}
.kw-devices .t-card-img { position: absolute; inset: 0; z-index: -1; margin: 0; height: auto; border-radius: 0; }
.kw-devices .t-card-img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1s var(--kw-ease); }
.kw-devices .t-card:hover .t-card-img img { transform: scale(1.08); }
.kw-devices .t-card::before {
	content: ""; position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; border-radius: 50%; background: var(--kw-ink);
	transition: transform .4s var(--kw-ease), background .3s;
}
.kw-devices .t-card::after {
	content: ""; position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; background: var(--kw-bg);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16 16 8M9 8h7v7'/%3E%3C/svg%3E") center / 18px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16 16 8M9 8h7v7'/%3E%3C/svg%3E") center / 18px no-repeat;
	transition: transform .4s var(--kw-ease);
}
.kw-devices .t-card:hover::before { background: var(--kw-accent); }
.kw-devices .t-card:hover::after { transform: rotate(45deg); background: var(--kw-ink); }
.kw-devices .t-card-title, .kw-devices .t-card-body {
	position: relative; margin: 0; align-self: flex-start;
	background: color-mix(in srgb, var(--kw-paper) 82%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.kw-devices .t-card-title { font-size: clamp(17px, 1.5vw, 21px); padding: 10px 14px 2px; border-radius: 14px 14px 0 0; }
.kw-devices .t-card-body { font-size: 13px; font-weight: 700; color: var(--kw-muted); padding: 0 14px 10px; border-radius: 0 14px 14px 14px; }

/* Coloured sections (Section → Background colour): an inset rounded band. */
.t-block.fx-has-bg { margin: 0 var(--kw-gutter); border-radius: clamp(28px, 3vw, 44px); padding-top: var(--kw-section) !important; padding-bottom: var(--kw-section); }
.t-block.fx-has-bg + .t-block { margin-top: var(--kw-section); }
.t-block.fx-has-bg + .t-block.t-section--white { padding-top: 0; }
@media (min-width: 1528px) { .t-block.fx-has-bg { max-width: calc(var(--kw-wrap) + 400px); margin-left: auto; margin-right: auto; } }
.fx-has-bg .t-section-label { color: var(--kw-ink); }
.fx-has-bg .t-section-subtitle { color: color-mix(in srgb, var(--kw-ink) 65%, transparent); }
.fx-has-bg .fx-carousel-btn { background: #fff; border-color: #fff; }
.fx-has-bg .fx-section-cta .t-btn-outline { background: var(--kw-ink); color: #fff; border-color: var(--kw-ink); }
.fx-has-bg .fx-section-cta .t-btn-outline:hover { background: #fff; color: var(--kw-ink); border-color: #fff; }

del { color: var(--kw-muted); font-weight: 600; font-size: .9em; }
ins { text-decoration: none; color: var(--kw-sale); }

/* Category tiles (fx/categories-grid) --------------------------------------------- */
/* Same language as the product cards: white-framed photo, radius 26, soft lift, round arrow. */

.fx-cats:not(.fx-cats--bubbles) .fx-track { --fx-gap: 16px; }
.fx-cats--bento .fx-track--grid, .fx-cats--bento .fx-track--carousel_mobile { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(230px, 20vw, 300px); }
.fx-cat-card {
	border-radius: 26px; background: #fff; color: var(--kw-ink); box-shadow: none;
	transition: transform .45s var(--kw-ease), box-shadow .45s var(--kw-ease);
}
.fx-cat-card:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -30px rgba(60, 40, 20, .45); }
.fx-cat-card:hover .fx-cat-card-img { transform: none; }
.fx-cat-card-text {
	left: 14px; bottom: 14px; max-width: calc(100% - 84px); gap: 2px; padding: 12px 16px; border-radius: 18px;
	background: color-mix(in srgb, #fff 86%, transparent);
}
.fx-cat-card-title { font-family: var(--kw-heading); font-size: 18px; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.fx-cats--bento .fx-track > .fx-cat-card:first-child .fx-cat-card-title { font-size: clamp(24px, 2.4vw, 34px); }
.fx-cat-card-count { font-size: 12.5px; font-weight: 700; color: var(--kw-muted); opacity: 1; }
.fx-cat-card-go { right: 14px; bottom: 14px; width: 44px; height: 44px; background: #fff; color: var(--kw-ink); box-shadow: 0 8px 18px -10px rgba(0,0,0,.35); transition: background .3s, color .3s; }
.fx-cat-card-go svg { transition: transform .35s var(--kw-ease); }
.fx-cat-card:hover .fx-cat-card-go { background: var(--kw-ink); color: #fff; }
.fx-cat-card:hover .fx-cat-card-go svg { transform: rotate(-45deg); }
@media (min-width: 701px) { .fx-cats--bento .fx-track--carousel_mobile > .fx-cat-card:first-child { grid-column: span 2; grid-row: span 2; } }
@media (max-width: 700px) {
	.fx-cats--bento .fx-track--carousel_mobile { grid-template-columns: none; grid-auto-rows: auto; grid-auto-columns: 62%; }
	.fx-cats .fx-track--carousel_mobile .fx-cat-card { aspect-ratio: 4 / 5; border-radius: 22px; }
	.fx-cat-card-text { left: 10px; bottom: 10px; max-width: calc(100% - 64px); padding: 9px 12px; border-radius: 14px; }
	.fx-cat-card-title, .fx-cats--bento .fx-track > .fx-cat-card:first-child .fx-cat-card-title { font-size: 16px; }
	.fx-cat-card-go { right: 10px; bottom: 10px; width: 36px; height: 36px; }
}

/* Text + image banners (fx/text-image with .kw-banner) ----------------------------- */

.kw-banner .t-container {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch;
	padding: 0; overflow: hidden; border-radius: var(--kw-radius-lg); background: var(--kw-banner-bg, var(--kw-surface));
	max-width: calc(var(--kw-wrap) - 2 * var(--kw-gutter)); margin-left: var(--kw-gutter); margin-right: var(--kw-gutter);
}
@media (min-width: 1440px) { .kw-banner .t-container { margin-left: auto; margin-right: auto; } }
.kw-banner--lilac { --kw-banner-bg: #dcd6f0; }
.kw-banner--sand { --kw-banner-bg: #e5dccd; }
.kw-banner .t-container > div:first-child { padding: clamp(32px, 5vw, 80px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.kw-banner .t-container > div:last-child { position: relative; min-height: 420px; }
.kw-banner .t-container > div:last-child img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.kw-banner .t-section-title { font-size: clamp(34px, 4.2vw, 62px); line-height: .95; margin-bottom: 20px; }
.kw-banner p { font-size: 17px; color: color-mix(in srgb, var(--kw-ink) 70%, transparent); max-width: 460px; }
.kw-banner p:last-child { margin: 18px 0 0; }
.kw-banner .t-btn-primary { min-height: 56px; padding: 0 30px; }
/* image_side=left puts the image first in the markup */
.kw-banner .t-container > div:first-child:has(> img) { order: 0; position: relative; min-height: 420px; padding: 0; }
.kw-banner .t-container > div:first-child:has(> img) img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kw-banner .t-container > div:last-child:has(> h2) { min-height: 0; padding: clamp(32px, 5vw, 80px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }

.kw-image-left .t-container > div:last-child { order: -1; }
@media (max-width: 1100px) and (min-width: 901px) {
	.fx-nav-link { padding: 8px 7px; font-size: 13px; }
	.fx-header-actions > a, .fx-header-actions > button:not(.fx-nav-toggle) { width: 38px; height: 38px; }
}

@media (max-width: 900px) { .kw-image-left .t-container > div:last-child { order: 0; } }

/* Plain text-image (no .kw-banner) */
.t-block--text-image:not(.kw-banner) .t-container { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.t-block--text-image:not(.kw-banner) img { border-radius: var(--kw-radius-lg); width: 100%; }

/* USP (fx/values with .kw-usp): tinted cards, icon tile and text side by side on phones */

.kw-usp .t-section-title { font-size: clamp(30px, 3.4vw, 48px); margin-bottom: clamp(24px, 3vw, 40px); }
.kw-usp .t-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kw-usp .t-grid > div {
	--kw-tint: #f6d6de; position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0;
	padding: clamp(22px, 2.4vw, 30px); border: 0; border-radius: 24px; overflow: hidden;
	background: color-mix(in srgb, var(--kw-tint) 38%, #fff); transition: transform .35s var(--kw-ease), box-shadow .35s var(--kw-ease);
}
.kw-usp .t-grid > div:nth-child(2) { --kw-tint: #f6e7b0; }
.kw-usp .t-grid > div:nth-child(3) { --kw-tint: #d6ead0; }
.kw-usp .t-grid > div:nth-child(4) { --kw-tint: #e1d8f4; }
.kw-usp .t-card-icon {
	display: grid; place-items: center; width: 56px; height: 56px; margin: 0 0 18px; border-radius: 18px;
	background: var(--kw-tint); color: var(--kw-ink); transition: transform .4s var(--kw-ease);
}
.kw-usp .t-card-icon svg { width: 26px; height: 26px; }
.kw-usp .t-card-title { margin: 0; font-family: var(--kw-heading); font-size: 19px; font-weight: 800; line-height: 1.25; letter-spacing: -.02em; }
.kw-usp .t-card-body { font-size: 15px; line-height: 1.5; color: var(--kw-muted); }
@media (hover: hover) {
	.kw-usp .t-grid > div:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -30px rgba(35, 25, 12, .45); }
	.kw-usp .t-grid > div:hover .t-card-icon { transform: rotate(-8deg) scale(1.05); }
}
@media (max-width: 1000px) { .kw-usp .t-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.kw-usp .t-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.kw-usp .t-grid > div { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; row-gap: 2px; align-items: center; padding: 18px; border-radius: 20px; }
	.kw-usp .t-card-icon { grid-row: span 2; width: 52px; height: 52px; margin: 0; border-radius: 16px; }
	.kw-usp .t-card-title { font-size: 17px; align-self: end; }
	.kw-usp .t-card-body { font-size: 14px; align-self: start; }
}

/* About page ---------------------------------------------------------------------------- */

.kw-about-intro { margin-top: clamp(16px, 2vw, 28px); }
.t-block.kw-stats { padding-top: var(--kw-section); padding-bottom: 0; }
.kw-stats .t-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--kw-line); border-bottom: 1px solid var(--kw-line); }
.kw-stats .t-grid > div { padding: clamp(22px, 3vw, 40px) clamp(12px, 2vw, 28px); text-align: left; }
.kw-stats .t-grid > div + div { border-left: 1px solid var(--kw-line); }
.kw-stats .t-grid > div > div:first-child { font-family: var(--kw-heading); font-size: clamp(36px, 4.4vw, 64px); font-weight: 800; line-height: 1; letter-spacing: -.04em; color: var(--kw-ink); }
.kw-stats .t-grid > div > div:last-child { margin-top: 10px; font-size: 15px; font-weight: 600; color: var(--kw-muted); }
@media (max-width: 800px) {
	.kw-stats .t-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kw-stats .t-grid > div:nth-child(3) { border-left: 0; }
	.kw-stats .t-grid > div:nth-child(n+3) { border-top: 1px solid var(--kw-line); }
	.kw-stats .t-grid > div { padding: 22px 14px; }
}
.t-block.kw-about-split .t-container { align-items: center; }
.kw-about-split img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; }

/* Process (fx/process) */
.t-block--process .t-grid, .t-block--process .t-container > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 32px; }
.t-block--process .t-container > div:last-child > div { position: relative; padding: clamp(24px, 2.6vw, 34px); border-radius: 24px; background: var(--kw-paper); }
.kw-process .t-section-title { font-size: clamp(30px, 3.4vw, 48px); }
.kw-process .t-grid > div > div:first-child { color: #fff !important; display: inline-grid; place-items: center; min-width: 48px; height: 48px; padding: 0 12px; border-radius: 999px; background: var(--kw-ink); color: #fff; font-family: var(--kw-heading); font-size: 16px; font-weight: 800; }
.kw-process .t-card-title { margin: 22px 0 8px; font-family: var(--kw-heading); font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.kw-process .t-card-body { font-size: 15px; line-height: 1.55; color: var(--kw-muted); }
@media (max-width: 800px) { .t-block--process .t-grid, .t-block--process .t-container > div:last-child { grid-template-columns: minmax(0, 1fr); } }

/* FAQ (fx/faq) ---------------------------------------------------------------------------- */

.fx-faq .t-container { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 0 clamp(32px, 6vw, 96px); align-items: start; }
.fx-faq .fx-section-head { position: sticky; top: calc(var(--fx-header-height, 76px) + 32px); margin: 0; }
.fx-faq .t-section-subtitle { margin-top: 14px; }
.fx-faq-list { display: grid; gap: 10px; border: 0; }
.fx-faq-item { border: 0; border-radius: 22px; background: #fff; transition: background .3s, box-shadow .3s; }
.fx-faq-item[open] { box-shadow: 0 24px 40px -32px rgba(60, 40, 20, .5); }
.fx-faq-q { gap: 16px; padding: 20px 20px 20px 24px; font-size: 17px; font-weight: 800; letter-spacing: -.01em; color: var(--kw-ink); }
.fx-faq-num { font-family: var(--kw-heading); font-size: 14px; color: var(--kw-accent); opacity: 1; }
.fx-faq-icon { border: 0; background: var(--kw-surface); color: var(--kw-ink); }
.fx-faq-item[open] .fx-faq-icon { background: var(--kw-ink); color: #fff; transform: rotate(180deg); }
.fx-faq-q:hover .fx-faq-icon { background: var(--kw-ink); color: #fff; }
.fx-faq-a-inner { padding: 0 72px 22px 60px; font-size: 15.5px; line-height: 1.65; color: color-mix(in srgb, var(--kw-ink) 72%, transparent); }

/* Newsletter (fx/newsletter) ----------------------------------------------------------------- */

.t-block--newsletter .t-container {
	display: grid; grid-template-columns: 1fr 1fr; gap: 24px 64px; align-items: center;
	padding: clamp(32px, 5vw, 72px); border-radius: var(--kw-radius-lg); background: var(--kw-surface);
	max-width: calc(var(--kw-wrap) - 2 * var(--kw-gutter)); margin: 0 var(--kw-gutter);
}
@media (min-width: 1440px) { .t-block--newsletter .t-container { margin: 0 auto; } }
.t-block--newsletter .t-section-title { grid-column: 1; margin: 0; font-size: clamp(32px, 3.8vw, 54px); }
.t-block--newsletter .t-section-subtitle { grid-column: 1; }
.t-block--newsletter .fx-newsletter { grid-column: 2; grid-row: 1 / span 2; display: grid; gap: 12px; }
.fx-newsletter > div { display: flex; gap: 8px; }
.fx-newsletter input[type="email"] { flex: 1; min-height: 56px; border-radius: 999px !important; padding: 0 22px !important; background: var(--kw-paper) !important; border: 1px solid var(--kw-line) !important; }
.fx-newsletter .t-btn-primary { min-height: 56px; padding: 0 28px; }
.fx-newsletter label { display: flex; gap: 10px; align-items: center; font-size: 13px; color: var(--kw-muted); }
.fx-newsletter input[type="checkbox"] { accent-color: var(--kw-ink); width: 18px; height: 18px; }
.fx-nl-msg { font-size: 14px; font-weight: 700; }

/* CTA (fx/cta) ---------------------------------------------------------------------------- */

.t-block--cta { padding-left: var(--kw-gutter); padding-right: var(--kw-gutter); background: var(--kw-bg); }
.t-block--cta .t-container {
	position: relative; overflow: hidden; max-width: calc(var(--kw-wrap) - 2 * var(--kw-gutter));
	padding: clamp(40px, 6vw, 88px) clamp(24px, 5vw, 72px); border-radius: var(--kw-radius-lg); background: var(--kw-ink); color: var(--kw-bg); text-align: center;
}
.t-block--cta .t-container::before { content: ""; position: absolute; width: 560px; height: 560px; right: -160px; top: -280px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--kw-accent) 55%, transparent), transparent 70%); pointer-events: none; }
.t-block--cta.t-section--navy { background: var(--kw-bg); }
.t-block--cta h2 { position: relative; color: var(--kw-bg); font-size: clamp(32px, 4vw, 56px); max-width: 820px; margin: 0 auto 14px; }
.t-block--cta p { position: relative; color: color-mix(in srgb, var(--kw-bg) 65%, transparent); max-width: 560px; margin: 0 auto 28px; }
.t-block--cta .t-container > div:last-child { position: relative; display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.t-block--cta .t-btn-primary { background: var(--kw-bg); color: var(--kw-ink); border-color: var(--kw-bg); }
.t-block--cta .t-btn-primary:hover { background: var(--kw-accent); border-color: var(--kw-accent); }
.t-block--cta .t-btn-ghost, .t-block--cta .t-btn-outline { color: var(--kw-bg); border-color: color-mix(in srgb, var(--kw-bg) 35%, transparent); }

/* Contact (fx/contact-split + fx_cform) ------------------------------------------------------ */

.fx-contact-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-top: 36px; align-items: stretch; }
.fx-contact-split > div:first-child > div { height: 100%; min-height: 420px; border-radius: var(--kw-radius-lg); overflow: hidden; }
.fx-contact-split iframe { border: 0; display: block; filter: grayscale(.6) contrast(1.05); }
.fx-contact-split .t-card { padding: clamp(24px, 3vw, 40px); border-radius: var(--kw-radius-lg); background: var(--kw-paper); border: 1px solid var(--kw-line); box-shadow: none; }
.fx-contact-split .t-card > div:first-child { display: grid; gap: 4px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--kw-line); }
.fx-contact-split .t-card > div:first-child p { margin: 0; }
.w-form-h { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.w-form-row { grid-column: 1 / -1; }
.w-form-row.cols_2 { grid-column: span 1; }
.w-form-row-label { font-size: 13px; font-weight: 800; margin-bottom: 6px; }
.w-form-row-state { display: none; font-size: 13px; color: var(--kw-sale); margin-top: 4px; }
.w-form-row.check_wrong .w-form-row-state { display: block; }
.w-form input:not([type="checkbox"]), .w-form select, .w-form textarea { border-radius: var(--fx-input-radius, 14px) !important; }
.w-form textarea { min-height: 140px; }
.w-form .for_agreement label { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--kw-muted); cursor: pointer; }
.w-form-checkbox { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--kw-line); display: inline-block; flex: none; }
.w-form input:checked + .w-form-checkbox { background: var(--kw-ink); border-color: var(--kw-ink); box-shadow: inset 0 0 0 3px var(--kw-paper); }
.w-form .w-btn, .w-form button[type="submit"] { width: 100%; min-height: 54px; border-radius: 999px; background: var(--kw-ink); color: var(--kw-bg); border: 0; font-weight: 700; font-size: 16px; cursor: pointer; }
.w-form-message { margin-top: 12px; font-weight: 700; }

/* Plain pages (legal, account) ---------------------------------------------------------------- */

.kw-page .t-container { max-width: 860px; }
.kw-page-title, .woocommerce-products-header__title, .product_title { font-size: clamp(38px, 5vw, 64px); line-height: .98; letter-spacing: -.045em; }
.kw-main > .wp-block-heading, .kw-main > p, .kw-main > .wp-block-list, .kw-main > .wp-block-table { max-width: 780px; margin-left: auto; margin-right: auto; padding: 0 var(--kw-gutter); }
.kw-main > .wp-block-heading { font-size: clamp(24px, 2.4vw, 32px); margin-top: 48px; margin-bottom: 12px; }
.kw-main > p, .kw-main > .wp-block-list { font-size: 17px; line-height: 1.75; }
.kw-main > .wp-block-table table { width: 100%; border-collapse: collapse; }
.kw-main > .wp-block-table th, .kw-main > .wp-block-table td { padding: 12px 14px; border-bottom: 1px solid var(--kw-line); text-align: left; }


/* Footer (fixit-core Nimbus footer) ------------------------------------------------------------- */

.fx-footer { position: relative; background: var(--fx-footer-bg, var(--kw-ink)); color: var(--fx-footer-text, var(--kw-bg)); margin-top: clamp(48px, 6vw, 88px); border-radius: 40px 40px 0 0; overflow: hidden; }
.fx-fn-top { padding: clamp(56px, 6vw, 96px) 0 clamp(36px, 4vw, 56px) !important; border: 0 !important; }
.fx-fn-inner { max-width: var(--kw-wrap); padding: 0 var(--kw-gutter) !important; display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 40px; }
.fx-fn-logo-img { max-width: 170px !important; filter: invert(1) brightness(1.2); margin-bottom: 18px; }
.fx-fn-tagline { color: rgba(255, 255, 255, .6); font-size: 15px; line-height: 1.6; max-width: 300px; margin-bottom: 22px; }
.fx-fn-col-title { font-family: var(--kw-body); font-size: 12px; font-weight: 700; letter-spacing: .08em; margin: 0 0 18px; color: var(--kw-accent); }
.fx-fn-nav-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fx-fn-nav a, .fx-fn-contact-link { position: relative; color: rgba(255, 255, 255, .78); font-size: 15.5px; font-weight: 600; text-decoration: none; transition: color .25s; }
.fx-fn-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -3px; height: 1.5px; background: var(--kw-accent); transition: right .35s var(--kw-ease); }
.fx-fn-nav a:hover, .fx-fn-contact-link:hover { color: #fff !important; }
.fx-fn-nav a:hover::after { right: 0; }
.fx-fn-col--contact { display: flex; flex-direction: column; gap: 12px; }
.fx-fn-contact-icon { width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .08); color: var(--kw-accent); transition: background .25s, color .25s; }
.fx-fn-contact-link:hover .fx-fn-contact-icon { background: var(--kw-accent); color: var(--kw-ink); }
.fx-fn-social { width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .08); color: #fff; transition: background .25s, color .25s; }
.fx-fn-social:hover { background: var(--kw-accent) !important; color: var(--kw-ink) !important; }
.fx-footer--nimbus .fx-fn-bottom { padding: 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.fx-fn-bottom-inner { max-width: var(--kw-wrap); margin: 0 auto; padding: 22px calc(var(--kw-gutter) + 64px) 22px var(--kw-gutter) !important; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; font-size: 13.5px; color: rgba(255, 255, 255, .5); }
.fx-fn-copyright { color: rgba(255, 255, 255, .5); margin-right: auto; }
.fx-fn-legal a { font-size: 13.5px; color: rgba(255, 255, 255, .6); padding: 0; }
.fx-fn-legal a:hover { color: #fff !important; }
.fx-fn-legal-list { gap: 6px 22px; }
.fx-fn-dev a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, .06); color: rgba(255, 255, 255, .75); font-weight: 600; text-decoration: none; transition: background .25s, color .25s; }
.fx-fn-dev a:hover { background: var(--kw-accent); color: var(--kw-ink); }
.fx-fn-wordmark { max-width: var(--kw-wrap); margin: -8px auto -2.5%; padding: 0 var(--kw-gutter); }
.fx-fn-wordmark img { filter: invert(1); opacity: .07; }
.fx-fab-stack { bottom: 88px !important; }

/* Responsive ------------------------------------------------------------------------------------ */

@media (max-width: 1180px) {
	.fx-nav-link { padding: 10px 10px; font-size: 14px; }
	.fx-header-inner { gap: 12px; }
	.fx-logo-img { height: 26px; }
	.kw-usp .t-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
	.fx-fn-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
	.fx-logo-img { height: 26px; }
	.t-hero-full.kw-hero { margin: 8px var(--kw-gutter) 0; min-height: 0 !important; align-items: flex-end; padding: 32px 0 36px; background-size: 185% auto !important; background-position: 78% 0 !important; background-repeat: no-repeat !important; padding-top: 88vw; background-color: #ece6dc; }
	.t-hero-full.kw-hero::before { background: linear-gradient(180deg, transparent 38%, color-mix(in srgb, var(--kw-bg) 92%, transparent) 62%, var(--kw-bg) 80%); }
	.kw-banner .t-container, .t-block--newsletter .t-container, .fx-contact-split, .fx-faq .t-container, .t-block--text-image:not(.kw-banner) .t-container { grid-template-columns: minmax(0, 1fr); }
	.kw-banner .t-container > div:first-child:has(> img) { order: 2; }
	.kw-banner .t-container > div:last-child { min-height: 0; aspect-ratio: 8 / 7; }
	.kw-banner .t-container > div:first-child:has(> img) { min-height: 0; aspect-ratio: 8 / 7; }
	.fx-faq .fx-section-head { position: static; margin-bottom: 20px; }
	.t-block--newsletter .fx-newsletter { grid-column: 1; grid-row: auto; }
	.t-block--process .t-container > div:last-child { grid-template-columns: minmax(0, 1fr); }
	}

@media (max-width: 700px) {
	.t-block.fx-has-bg { margin: 0 8px; border-radius: 26px; }
	.fx-section-head .fx-carousel-nav { display: none; }
	.kw-usp .t-grid { grid-template-columns: minmax(0, 1fr); }
	.kw-devices .t-card { padding: 12px; }
	.kw-devices .t-card::before, .kw-devices .t-card::after { width: 34px; height: 34px; top: 10px; right: 10px; }
	.kw-devices .t-card-title { font-size: 15px; }
	.fx-newsletter > div { flex-direction: column; }
	.fx-faq-list { gap: 8px; }
	.fx-faq-item { border-radius: 18px; }
	.fx-faq-q { gap: 12px; padding: 16px 14px 16px 16px; font-size: 15.5px; }
	.fx-faq-icon { width: 32px; height: 32px; }
	.fx-faq-a-inner { padding: 0 16px 18px 16px; font-size: 15px; }
	.w-form-h { grid-template-columns: minmax(0, 1fr); }
	.w-form-row.cols_2 { grid-column: 1 / -1; }
	.fx-fn-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px 20px !important; }
	.fx-fn-col--brand { grid-column: 1 / -1; }
	.fx-fn-col--contact { grid-column: 1 / -1; }
	.fx-footer { border-radius: 28px 28px 0 0; }
	.fx-fn-bottom-inner { padding: 20px var(--kw-gutter) 24px !important; flex-direction: column; align-items: flex-start; }
			.fx-shop-filter--select, }

/* Overrides for WooCommerce's and fixit-core's default shop CSS ------------------------------- */

.fx-logo img, .fx-logo .fx-logo-img { height: 30px; width: auto; max-width: none; }
@media (max-width: 900px) { .fx-logo img, .fx-logo .fx-logo-img { height: 26px !important; } }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { background: transparent !important; }
.woocommerce button.button.alt, .woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce button.button.alt:disabled[disabled] {
	background: var(--fx-btn-primary-bg, var(--kw-ink)) !important; color: var(--fx-btn-primary-text, var(--kw-bg)) !important; border-color: var(--fx-btn-primary-bg, var(--kw-ink)) !important;
}
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled { opacity: .45 !important; }
.kw-banner .t-container, .t-block--newsletter .t-container { width: auto; box-sizing: border-box; }
.kw-page-head { max-width: 780px; margin: 0 auto; padding: clamp(40px, 6vw, 88px) var(--kw-gutter) 8px; }
.kw-page .kw-page-head { padding: 0 0 24px; }
.kw-page-head + .wp-block-heading { margin-top: 32px !important; }
.kw-main > .wp-block-table { overflow-x: auto; }
.kw-main > .wp-block-table table { border: 0; }
.kw-main > .wp-block-table th { font-weight: 800; border-bottom: 1.5px solid var(--kw-ink); }
.kw-main > .wp-block-table td, .kw-main > .wp-block-table th { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; }
.woocommerce-cart .kw-page .t-container, .woocommerce-checkout .kw-page .t-container, .woocommerce-account .kw-page .t-container { max-width: 1240px; }
.woocommerce-cart .kw-page-head, .woocommerce-checkout .kw-page-head, .woocommerce-account .kw-page-head { max-width: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	margin: 0 0 24px; padding: 14px 16px 14px 22px; border: 1px solid var(--kw-line); border-radius: 18px;
	background: var(--kw-paper); color: var(--kw-ink); font-weight: 600; list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button { order: 2; min-height: 42px; padding: 0 20px; }
.woocommerce-error { border-color: color-mix(in srgb, var(--kw-sale) 45%, transparent) !important; color: var(--kw-sale) !important; }
.wc-block-components-button:not(.is-link) { border-radius: 999px; min-height: 54px; background: var(--kw-ink); color: var(--kw-bg); }
.wc-block-components-text-input input, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea { border-radius: 14px !important; background: var(--kw-paper); }
.wp-block-woocommerce-checkout-order-summary-block, .wc-block-components-sidebar .wc-block-components-panel { border-radius: 18px; }

/* Search ----------------------------------------------------------------------------------- */

.fx-product-search { display: flex; gap: 8px; max-width: 640px; margin: 18px 0 8px; }
.fx-product-search input[type="search"] { flex: 1; min-height: 56px; border-radius: 999px !important; padding: 0 24px; font-size: 17px; background: var(--kw-paper); border: 1px solid var(--kw-line) !important; }
.fx-product-search input[type="search"]:focus { border-color: var(--kw-ink) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--kw-ink) 8%, transparent); }
.fx-product-search .t-btn-primary { min-height: 56px; padding: 0 30px; }
.fx-live-search { max-width: 820px; margin: 0 auto; padding: 0 0 16px; display: none; }
.fx-live-search.is-open { display: block; }
.fx-live-search-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding-top: 14px; }
.fx-live-search-item { display: grid; grid-template-columns: 56px 1fr; gap: 14px; align-items: center; padding: 8px; border-radius: 16px; text-decoration: none; color: var(--kw-ink); transition: background .2s; }
.fx-live-search-item:hover { background: var(--kw-paper); }
.fx-live-search-item img { width: 56px; height: 70px; object-fit: cover; border-radius: 10px; background: var(--kw-surface); }
.fx-live-search-item strong { display: block; font-size: 15px; font-weight: 800; line-height: 1.25; }
.fx-live-search-item span span { font-size: 14px; font-weight: 700; color: var(--kw-muted); }
.fx-live-search-msg { margin: 14px 8px 0; font-weight: 600; color: var(--kw-muted); }
.fx-live-search-all { display: inline-flex; margin: 10px 8px 0; font-weight: 800; font-size: 14px; color: var(--kw-ink); text-decoration: underline; text-underline-offset: 4px; }

.fx-shop-empty { clear: both; text-align: center; padding: clamp(40px, 7vw, 96px) 20px; display: grid; justify-items: center; }
.fx-shop-empty-title { font-family: var(--kw-heading); font-size: clamp(26px, 3vw, 38px); font-weight: 800; letter-spacing: -.03em; color: var(--kw-ink); margin: 0 0 10px; }
.fx-shop-empty-text { color: var(--kw-muted); font-size: 17px; margin: 0 0 20px; max-width: 520px; }
.fx-shop-empty .fx-product-search { width: 100%; margin: 0 auto 24px; }
.fx-shop-empty-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 760px; }
.fx-chip { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--kw-ink) 22%, transparent); font-size: 14px; font-weight: 700; color: var(--kw-ink); text-decoration: none; transition: .2s; }
.fx-chip:hover { background: var(--kw-ink); color: var(--kw-bg); border-color: var(--kw-ink); }

/* Newsletter band above the footer --------------------------------------------------------- */

.fx-newsletter-band { padding-bottom: 0; }
.fx-newsletter-band .t-container {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 64px; align-items: center;
	padding: clamp(32px, 5vw, 72px); border-radius: var(--kw-radius-lg); background: var(--kw-surface);
	width: auto; max-width: calc(var(--kw-wrap) - 2 * var(--kw-gutter)); margin: 0 var(--kw-gutter);
}
@media (min-width: 1440px) { .fx-newsletter-band .t-container { margin: 0 auto; } }
.fx-newsletter-band .t-section-title { font-size: clamp(30px, 3.6vw, 50px); margin: 0 0 10px; }
.fx-newsletter-band .fx-newsletter { display: grid; gap: 12px; }
.fx-newsletter-band + .fx-footer, .fx-newsletter-band ~ .fx-footer { margin-top: clamp(48px, 6vw, 88px); }

/* Forms everywhere --------------------------------------------------------------------------- */

.kw-main input[type="text"], .kw-main input[type="email"], .kw-main input[type="tel"], .kw-main input[type="password"], .kw-main input[type="number"], .kw-main select, .kw-main textarea {
	min-height: 52px; border-radius: var(--fx-input-radius, 14px); border: 1px solid var(--kw-line); background: var(--kw-paper); color: var(--kw-ink); font-weight: 600;
	transition: border-color .2s, box-shadow .2s;
}
.kw-main textarea { min-height: 140px; padding-top: 14px; }
.kw-main input:focus, .kw-main select:focus, .kw-main textarea:focus { border-color: var(--kw-ink) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--kw-ink) 8%, transparent) !important; outline: none; }
.kw-main ::placeholder { color: color-mix(in srgb, var(--kw-muted) 80%, transparent); font-weight: 500; }
.kw-main input[type="checkbox"], .kw-main input[type="radio"] { accent-color: var(--kw-ink); width: 18px; height: 18px; }

/* fx/contact (info + form) */
.t-block--contact .t-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 16px; margin-top: 32px; align-items: start; }
.t-block--contact .t-card { padding: clamp(24px, 3vw, 40px); border-radius: var(--kw-radius-lg); background: var(--kw-paper); border: 1px solid var(--kw-line); box-shadow: none; }
.t-block--contact.t-section--soft .t-card { background: var(--kw-bg); }
.t-block--contact .t-grid > .t-card:first-child { display: grid; gap: 14px; align-content: start; }
.t-block--contact .t-grid > .t-card:first-child p { margin: 0; display: grid; gap: 2px; font-size: 16px; font-weight: 700; }
.t-block--contact .t-grid > .t-card:first-child strong { font-size: 13px; color: var(--kw-muted); font-weight: 700; }
.t-block--contact .t-grid > .t-card:first-child a { color: var(--kw-ink); }
.fx-contact-split .t-card > div:first-child p { display: flex; gap: 6px; }

/* fixit-core contact form (fx_cform) */
.w-form .w-form-h { gap: 14px; }
.w-form-row-label { color: var(--kw-muted); }
.w-form .w-btn, .w-form button[type="submit"], .w-form .w-form-row.for_submit button { min-height: 56px; border-radius: 999px; font-size: 16px; transition: background .25s, color .25s; }
.w-form .w-btn:hover, .w-form button[type="submit"]:hover { background: var(--kw-accent); color: var(--kw-ink); }
.w-form-message, .w-form-message.type_success { margin-top: 14px; padding: 14px 18px; border-radius: 14px; background: #e3f1e0; color: #1f5a22; font-weight: 700; }
.w-form-message:empty { display: none; }
.w-form-row.check_wrong input, .w-form-row.check_wrong textarea { border-color: var(--kw-sale) !important; }

/* WooCommerce account: login / register */
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 12px; }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { width: auto; float: none; padding: clamp(24px, 3vw, 40px); border-radius: var(--kw-radius-lg); background: var(--kw-paper); border: 1px solid var(--kw-line); }
.woocommerce-account .u-columns h2 { font-size: clamp(26px, 2.6vw, 34px); margin-bottom: 18px; }
.woocommerce form.login, .woocommerce form.register { border: 0; padding: 0; margin: 0; border-radius: 0; }
.woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.woocommerce form .form-row label { display: block; font-size: 13px; font-weight: 800; margin-bottom: 6px; color: var(--kw-ink); }
.woocommerce form .form-row .required { color: var(--kw-sale); text-decoration: none; }
.woocommerce form .form-row .input-text { width: 100%; }
.woocommerce form.login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: 8px; font-weight: 600 !important; margin: 0 !important; }
.woocommerce form .button, .woocommerce-form-login__submit, .woocommerce-form-register__submit { min-height: 54px !important; padding: 0 30px !important; }
.woocommerce-LostPassword a, .woocommerce-privacy-policy-text a { color: var(--kw-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-privacy-policy-text { font-size: 13px; color: var(--kw-muted); }
.password-input { position: relative; display: block; }
.show-password-input { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); background: none; border: 0; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 18px; border-radius: 14px; font-weight: 700; color: var(--kw-ink); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--kw-ink); color: var(--kw-bg); }

@media (max-width: 900px) {
	.fx-newsletter-band .t-container, .t-block--contact .t-grid, .woocommerce-account .u-columns.col2-set { grid-template-columns: minmax(0, 1fr); }
	.fx-live-search-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
	.fx-product-search { flex-direction: column; }
	.fx-product-search .t-btn-primary { width: 100%; }
}
.woocommerce-account .u-columns.col2-set::before, .woocommerce-account .u-columns.col2-set::after, .col2-set::before, .col2-set::after { display: none; }

/* Product ticker fades out at both edges instead of a hard cut. */
.kw-hero .fx-hero-ribbon--products .fx-hero-ribbon-viewport {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

/* Category bubbles (fx/categories-grid style=bubbles with .kw-bubbles) ------------------------- */

.kw-bubbles .fx-section-head { margin-bottom: clamp(28px, 3vw, 44px); }
.kw-bubbles .fx-track { gap: 28px clamp(14px, 2vw, 30px); }
.kw-bubbles .fx-cat-bubble { width: 134px; gap: 2px; }
.kw-bubbles .fx-cat-bubble-ring {
	position: relative; width: 124px; height: 124px; padding: 4px; margin-bottom: 12px; isolation: isolate; overflow: hidden;
	background: none; box-shadow: 0 18px 30px -18px rgba(60, 40, 20, .45);
}
/* Colourful ring that turns slowly on hover. */
.kw-bubbles .fx-cat-bubble-ring::before {
	content: ""; position: absolute; inset: -30%; z-index: -1;
	background: conic-gradient(#f3a6bd, #f6d97a, #a9d8a0, #9cc4ee, #c3b1ef, #f3a6bd);
	transition: filter .3s;
}
.kw-bubbles .fx-cat-bubble-img { border: 4px solid var(--kw-bg); background: var(--kw-surface); }
.kw-bubbles .fx-cat-bubble-title { font-family: var(--kw-heading); font-size: 17px; font-weight: 800; letter-spacing: -.02em; color: var(--kw-ink); }
.kw-bubbles .fx-cat-card-count { font-size: 12px; font-weight: 700; color: var(--kw-muted); }
@media (prefers-reduced-motion: no-preference) {
	.kw-bubbles .fx-cat-bubble:hover .fx-cat-bubble-ring::before { animation: kw-spin 2.4s linear infinite; }
	.kw-bubbles .fx-cat-bubble-ring { transition: transform .35s var(--kw-ease); }
	.kw-bubbles .fx-cat-bubble:hover .fx-cat-bubble-ring { transform: translateY(-4px); }
	@keyframes kw-spin { to { transform: rotate(1turn); } }
}
@media (max-width: 700px) {
	.kw-bubbles .fx-track { gap: 14px; }
	.kw-bubbles .fx-cat-bubble { width: 96px; }
	.kw-bubbles .fx-cat-bubble-ring { width: 88px; height: 88px; padding: 3px; margin-bottom: 8px; }
	.kw-bubbles .fx-cat-bubble-img { border-width: 3px; }
	.kw-bubbles .fx-cat-bubble-title { font-size: 13px; }
}

/* Best sellers band (.kw-bestsellers): colour mesh, drifting outlined «Best sellers», ranked cards. */
.kw-bestsellers.fx-has-bg {
	background:
		radial-gradient(60% 80% at 0% 0%, #f7bfd0 0, transparent 60%),
		radial-gradient(45% 70% at 100% 10%, #f7e4a4 0, transparent 60%),
		radial-gradient(55% 70% at 80% 100%, #d8cdf3 0, transparent 60%),
		radial-gradient(40% 60% at 15% 100%, #cfe8c9 0, transparent 60%),
		var(--fx-section-bg) !important;
	color: var(--kw-ink);
}
.kw-bestsellers .fx-watermark { top: 22%; }
.kw-bestsellers .fx-watermark span { font-family: var(--kw-heading); font-style: italic; -webkit-text-stroke: 2px color-mix(in srgb, #fff 75%, transparent); }
.kw-bestsellers .fx-section-head { align-items: flex-end; margin-bottom: clamp(28px, 3vw, 48px); }
.kw-bestsellers .t-section-label {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 7px 14px; border-radius: 999px;
	background: var(--kw-ink); color: #fff; font-size: 13px;
}
.kw-bestsellers .t-section-label::before {
	content: ""; width: 14px; height: 14px; background: var(--kw-accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17 9 11l4 4 8-8M15 7h6v6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17 9 11l4 4 8-8M15 7h6v6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.kw-bestsellers .t-section-title { font-size: clamp(48px, 6.4vw, 96px); font-style: italic; line-height: .9; letter-spacing: -.05em; }
.kw-bestsellers .t-section-subtitle { max-width: 520px; font-size: 17px; color: color-mix(in srgb, var(--kw-ink) 70%, transparent); }
.kw-bestsellers .fx-products-track { --fx-gap: 14px; }
.kw-bestsellers .fx-product-card-rank {
	top: auto; right: auto; left: 12px; bottom: 10px; font-family: var(--kw-heading); font-style: italic; font-weight: 900;
	font-size: clamp(34px, 3.2vw, 48px); letter-spacing: -.05em; color: #fff; -webkit-text-stroke: 1.5px var(--kw-ink); paint-order: stroke fill;
	text-shadow: 0 3px 0 var(--kw-ink);
}
@media (max-width: 700px) {
	.kw-bestsellers .t-section-title { font-size: 52px; }
	.kw-bestsellers .fx-track--carousel { grid-auto-columns: 58%; }
	.kw-bestsellers .fx-product-card-rank { font-size: 32px; }
}

/* Leather & Luxe lookbook (.kw-lookbook): light, borderless, image and products share one height. */
.kw-lookbook .fx-lookbook-top { align-items: flex-end; margin-bottom: clamp(24px, 2.6vw, 36px); }
.kw-lookbook .fx-lookbook-top .fx-section-head { max-width: 640px; }
.kw-lookbook .t-section-title { margin-bottom: 0; }
.kw-lookbook .fx-tabs { gap: 4px; padding: 5px; border-radius: 999px; background: var(--kw-surface); }
.kw-lookbook .fx-tab { min-height: 42px; padding: 0 20px; border: 0; color: var(--kw-muted); font-size: 15px; }
.kw-lookbook .fx-tab:hover { color: var(--kw-ink); }
.kw-lookbook .fx-tab.is-active { background: #fff; color: var(--kw-ink); box-shadow: 0 6px 16px -8px rgba(60, 40, 20, .35); }
.kw-lookbook .fx-lookbook-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(16px, 2vw, 28px); }
.kw-lookbook .fx-lookbook-feature { min-height: 0; border-radius: 26px; }
.kw-lookbook .fx-lookbook-feature::after { background: linear-gradient(180deg, transparent 45%, rgba(20, 14, 10, .62)); }
.kw-lookbook .fx-lookbook-feature-title { font-family: var(--kw-heading); font-weight: 800; letter-spacing: -.035em; font-size: clamp(26px, 2.6vw, 38px); }
.kw-lookbook .fx-lookbook-feature-desc { max-width: 380px; color: rgba(255, 255, 255, .85); font-size: 15px; }
.kw-lookbook .fx-lookbook-feature-cta { justify-self: start; min-height: 46px; padding: 0 20px; border-radius: 999px; background: #fff; color: var(--kw-ink); }
.kw-lookbook .fx-lookbook-feature-cta svg { transition: transform .3s var(--kw-ease); }
.kw-lookbook .fx-lookbook-feature:hover .fx-lookbook-feature-cta svg { transform: translateX(4px); }
.kw-lookbook .fx-lookbook-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
@media (max-width: 900px) {
	.kw-lookbook .fx-lookbook-grid { grid-template-columns: minmax(0, 1fr); }
	.kw-lookbook .fx-lookbook-feature { aspect-ratio: 4 / 3; }
	.kw-lookbook .fx-tabs { width: auto; max-width: 100%; }
}
@media (max-width: 700px) {
	.kw-lookbook .fx-lookbook-top { margin-bottom: 18px; }
	.kw-lookbook .fx-tab { min-height: 38px; padding: 0 14px; font-size: 14px; }
	.kw-lookbook .fx-lookbook-feature { border-radius: 22px; }
	.kw-lookbook .fx-lookbook-products { gap: 18px 10px; }
		}

/* Offers band (.kw-offers): butter yellow, heading in a side column, sticker, red prices. */
.kw-offers .t-section-label {
	display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; margin-bottom: 16px; border-radius: 999px;
	background: var(--kw-sale); color: #fff; font-size: 13px; transform: rotate(-3deg);
}
.kw-offers .t-section-title { font-size: clamp(38px, 4.2vw, 64px); line-height: .95; letter-spacing: -.045em; }
.kw-offers .t-section-subtitle { margin-top: 16px; font-size: 16px; color: color-mix(in srgb, var(--kw-ink) 68%, transparent); }
.kw-offers .fx-section-cta .t-btn-primary { background: var(--kw-ink); border-color: var(--kw-ink); color: #fff; }
.kw-offers .fx-section-cta .t-btn-primary:hover { background: var(--kw-sale); border-color: var(--kw-sale); }
.kw-offers .fx-carousel-btn { background: #fff; border-color: #fff; }
@media (max-width: 1000px) {
	.kw-offers .fx-section-head { margin-bottom: 24px; }
	.kw-offers .fx-section-cta { margin-top: 28px; }
}
.fx-search-form input[type="search"] { padding: 0 64px 0 56px !important; }

/* Contact page (fx/contact-split style=cards) */
.fx-contact-cards { padding-top: clamp(40px, 5vw, 72px); }
.fx-contact-cards .t-section-title { font-size: clamp(44px, 5.4vw, 80px); line-height: .95; }
.fx-contact-method { background: #fff; }
.fx-contact-method-icon { background: var(--kw-surface); color: var(--kw-ink); }
.fx-contact-methods li:nth-child(1) .fx-contact-method-icon { background: #f6d6de; }
.fx-contact-methods li:nth-child(2) .fx-contact-method-icon { background: #f6e7b0; }
.fx-contact-methods li:nth-child(3) .fx-contact-method-icon { background: #d6e4f5; }
.fx-contact-methods li:nth-child(4) .fx-contact-method-icon { background: #d6ead0; }
.fx-contact-method-label { color: var(--kw-muted); opacity: 1; }
.fx-contact-method-value { font-family: var(--kw-heading); font-size: 18px; letter-spacing: -.01em; color: var(--kw-ink); }
.fx-contact-method-note { color: var(--kw-muted); opacity: 1; }
a.fx-contact-method::after { content: ""; margin-left: auto; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--kw-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 16px no-repeat; transition: background-color .25s; }
a.fx-contact-method:hover::after { background-color: var(--kw-accent); }
.fx-contact-form-card { border-radius: 32px; }
.fx-contact-form-title { font-family: var(--kw-heading); letter-spacing: -.03em; }
.fx-contact-form-text { color: var(--kw-muted); opacity: 1; }

.kw-process .t-grid > div > div:first-child { font-size: 16px !important; line-height: 1; }
.kw-about-split .t-container p, .kw-about-intro .t-container p { margin: 0 0 12px; color: var(--kw-muted); }
.kw-usp .t-grid > div { margin: 0; }
