/**
 * Kourtesis — component styles (front end and editor).
 *
 * Colours, fonts and sizes come from theme.json presets, so changes made in
 * Appearance → Editor → Styles flow through. Breakpoints:
 *   1280px  full navigation  → menu button
 *   1024px  4-column grids   → 2 columns
 *    768px  tablet           → mobile header (search on its own row)
 *    480px  small phones
 */

/* ------------------------------------------------------------------ */
/* Tokens                                                              */
/* ------------------------------------------------------------------ */

:root {
	--kw-container: var(--wp--custom--container, 1480px);
	--kw-gutter: var(--wp--custom--gutter, clamp(1rem, 2.5vw, 2.5rem));
	--kw-radius-sm: var(--wp--custom--radius--sm, 4px);
	--kw-radius-md: var(--wp--custom--radius--md, 6px);
	--kw-shadow: var(--wp--custom--shadow--card, 0 10px 28px rgba(11, 31, 69, 0.07));
	--kw-section-space: clamp(2.25rem, 4vw, 3.5rem);

	--kw-white: var(--wp--preset--color--base, #fff);
	--kw-surface: var(--wp--preset--color--surface, #f5f8fc);
	--kw-surface-alt: var(--wp--preset--color--surface-alt, #f9fafc);
	--kw-line: var(--wp--preset--color--line, #e3e9f1);
	--kw-brand: var(--wp--preset--color--brand, #083c58);
	--kw-navy: var(--wp--preset--color--navy, #022c4e);
	--kw-navy-light: var(--wp--preset--color--navy-light, #0f4269);
	--kw-ink: var(--wp--preset--color--ink, #0b1f45);
	--kw-text: var(--wp--preset--color--text, #2a3f66);
	--kw-muted: var(--wp--preset--color--muted, #5b6b86);
	--kw-star: var(--wp--preset--color--star, #f5a000);

	--kw-font-heading: var(--wp--preset--font-family--heading, "Roboto Condensed", "Arial Narrow", Arial, sans-serif);
	/* Roboto Condensed titles: H1/H2-level titles 400, H3-level and smaller titles 500 (H4-H6 are
	   Commissioner SemiBold, theme.json). */
	--kw-title-weight: 400;
	--kw-subtitle-weight: 500;
	--kw-font-body: var(--wp--preset--font-family--body, system-ui, sans-serif);

	/* Line icons as data URIs: used as CSS masks so they take the text colour. */
	--kw-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E");
	--kw-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='3' width='10' height='18' rx='2'/%3E%3Cpath d='M11 17.5h2'/%3E%3C/svg%3E");
	--kw-i-call: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.2 3.8h3l1.6 4.1-2.1 1.4a10.8 10.8 0 0 0 6.9 6.9l1.4-2.1 4.1 1.6v3a1.9 1.9 0 0 1-2.1 1.9C11 20.1 3.9 13 3.3 5.9a1.9 1.9 0 0 1 1.9-2.1z'/%3E%3C/svg%3E");
	--kw-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='1.5'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E");
	--kw-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E");
	--kw-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
	--kw-i-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19.5s-7.5-4.6-7.5-10A4.2 4.2 0 0 1 12 7a4.2 4.2 0 0 1 7.5 2.5c0 5.4-7.5 10-7.5 10z'/%3E%3C/svg%3E");
	--kw-i-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5h2.2l2.1 10a1.4 1.4 0 0 0 1.4 1.1h8.4a1.4 1.4 0 0 0 1.4-1.1L20.3 8H6'/%3E%3Ccircle cx='9.5' cy='19.2' r='1.2'/%3E%3Ccircle cx='16.8' cy='19.2' r='1.2'/%3E%3C/svg%3E");
	--kw-i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.75' cy='10.75' r='6.25'/%3E%3Cpath d='m15.5 15.5 4.5 4.5'/%3E%3C/svg%3E");
	--kw-i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------ */
/* Base and resets (scoped to theme components)                        */
/* ------------------------------------------------------------------ */

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

.wp-site-blocks > * {
	margin-block: 0;
}

.kw-header :is(h1, h2, h3, h4, h5, h6, p, figure, ul, ol),
:is(.kw-home, .kw-shop) :is(h1, h2, h3, h4, h5, h6, p, figure, ul, ol),
.kw-footer :is(h1, h2, h3, h4, h5, h6, p, figure, ul, ol) {
	margin: 0;
}

.kw-header :is(.wp-block-group, .wp-block-buttons, .wp-block-image, .wp-block-navigation, .wp-block-search, .wp-block-social-links),
:is(.kw-home, .kw-shop) :is(.wp-block-group, .wp-block-buttons, .wp-block-image, .wp-block-post-content > *),
.kw-footer :is(.wp-block-group, .wp-block-buttons, .wp-block-image, .wp-block-social-links) {
	margin: 0;
}

.kw-header img,
:is(.kw-home, .kw-shop) img,
.kw-footer img {
	display: block;
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

:is(.kw-header, .kw-home, .kw-shop, .kw-footer) :is(a, button, input):focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Shared content width for the top bar, header and every section. The selector
   outranks the margin reset above so the container stays centred. */
.kw-container,
:is(.kw-header, .kw-home, .kw-shop, .kw-footer) .kw-container {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--kw-container) + 2 * var(--kw-gutter));
	margin-inline: auto;
	padding-inline: var(--kw-gutter);
}

/* ------------------------------------------------------------------ */
/* Icons                                                               */
/* ------------------------------------------------------------------ */

.kw-icon {
	display: flex;
	align-items: center;
}

.kw-icon::before {
	content: "";
	flex: none;
	width: 1.15em;
	height: 1.15em;
	margin-inline-end: 0.55em;
	background-color: currentColor;
	-webkit-mask: var(--kw-icon-src) center / contain no-repeat;
	mask: var(--kw-icon-src) center / contain no-repeat;
}

.kw-icon--phone { --kw-icon-src: var(--kw-i-phone); }
/* The top bar's number is the landline: the handset of «Τηλεφωνική Παραγγελία», not the mobile phone. */
.kw-topbar__phone.kw-icon--phone { --kw-icon-src: var(--kw-i-call); }
.kw-icon--mail { --kw-icon-src: var(--kw-i-mail); }
.kw-icon--pin { --kw-icon-src: var(--kw-i-pin); }
.kw-icon--clock { --kw-icon-src: var(--kw-i-clock); }
.kw-icon--heart { --kw-icon-src: var(--kw-i-heart); }
.kw-icon--cart { --kw-icon-src: var(--kw-i-cart); }

/* Icon-only links: the text stays for screen readers, the icon is drawn by CSS. */
.kw-icon-link a {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	font-size: 0;
	color: var(--kw-ink);
	text-decoration: none;
	border-radius: 50%;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.kw-icon-link a::before {
	content: "";
	width: 22px;
	height: 22px;
	background-color: currentColor;
	-webkit-mask: var(--kw-icon-src) center / contain no-repeat;
	mask: var(--kw-icon-src) center / contain no-repeat;
}

.kw-icon-link a:hover {
	color: var(--kw-brand);
}

/* Arrow after buttons and "see all" links. */
.kw-has-arrow .wp-block-button__link::after,
.kw-more-link a::after {
	content: "";
	flex: none;
	width: 1.15em;
	height: 1.15em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-has-arrow .wp-block-button__link:hover::after,
.kw-more-link a:hover::after {
	transform: translateX(3px);
}

/* ------------------------------------------------------------------ */
/* Shared pieces: buttons, eyebrow, section head, grids, badges        */
/* ------------------------------------------------------------------ */

:is(.kw-header, .kw-home, .kw-shop, .kw-footer) .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.875rem;
}

:is(.kw-header, .kw-home, .kw-shop, .kw-footer) .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
	box-sizing: border-box;
	padding: 0.85em 1.35em;
	border: 1px solid transparent;
	border-radius: 3px;
	background-color: var(--kw-navy);
	color: var(--kw-white);
	font-family: var(--kw-font-body);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

:is(.kw-header, .kw-home, .kw-shop, .kw-footer) .wp-block-button__link:hover {
	background-color: var(--kw-brand);
	color: var(--kw-white);
}

:is(.kw-header, .kw-home, .kw-shop, .kw-footer) .is-style-kw-light .wp-block-button__link {
	background-color: var(--kw-white);
	color: var(--kw-navy);
}

:is(.kw-header, .kw-home, .kw-shop, .kw-footer) .is-style-kw-light .wp-block-button__link:hover {
	background-color: var(--kw-surface);
	color: var(--kw-navy);
}

.kw-eyebrow {
	font-family: var(--kw-font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.4;
	color: var(--kw-text);
}

.kw-eyebrow--light {
	color: rgba(255, 255, 255, 0.92);
}

.kw-section {
	padding-block: var(--kw-section-space);
}

.kw-section + .kw-section {
	padding-top: 0;
}

.kw-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	margin-bottom: clamp(1.25rem, 2vw, 1.75rem) !important;
}

.kw-section__titles {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

:is(.kw-home, .kw-shop) .kw-section__title {
	font-family: var(--kw-font-heading);
	font-size: var(--wp--preset--font-size--x-large, 2.375rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.15;
	letter-spacing: 0;
	color: var(--kw-ink);
	text-wrap: balance;
}

.kw-more-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.75em;
	padding-block: 0.35rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-decoration: none;
	white-space: nowrap;
}

.kw-more-link a:hover {
	color: var(--kw-brand);
}

.kw-grid {
	display: grid;
	gap: clamp(0.875rem, 1.4vw, 1.25rem);
}

.kw-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Marks content that must be replaced with real information before launch. */
.kw-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 3;
	padding: 0.2rem 0.55rem;
	border: 1px solid #efd29b;
	border-radius: 999px;
	background: #fff7e6;
	color: #8a5a00;
	font-size: 0.625rem !important;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.3;
	pointer-events: none;
}

/* ------------------------------------------------------------------ */
/* Header: sticky                                                      */
/* ------------------------------------------------------------------ */

/* The site header stays at the top while the page scrolls (position: sticky, so it keeps its place in the
   page: no layout shift). --kw-header-h is its height per layout (top bar + masthead ≥ 1280px; masthead
   1024–1279px; top bar + two-row masthead below 1024px), --kw-header-offset adds the WordPress admin bar,
   which stays fixed above it except on phones (≤ 600px, where it scrolls away). Anchors and in-page links
   land below the header (scroll-padding-top); sticky columns sit below it. The header's z-index keeps it
   and what it holds (mega menu, search suggestions, mini cart, mobile menu) above the page, and below the
   overlays that cover the whole page: filter drawer (100010–100011) and photo viewer (100003). */
:root {
	--kw-header-h: 9.65rem;
	--kw-sticky-top: var(--wp-admin--admin-bar--height, 0px);
	--kw-header-offset: calc(var(--kw-sticky-top) + var(--kw-header-h));
	scroll-padding-top: calc(var(--kw-header-offset) + 1rem);
}

@media (min-width: 1024px) {
	:root {
		--kw-header-h: 6.5rem;
	}
}

@media (min-width: 1280px) {
	:root {
		--kw-header-h: 9.8rem;
	}
}

@media (max-width: 600px) {
	:root {
		--kw-sticky-top: 0px;
	}
}

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--kw-sticky-top);
	z-index: 100000;
}

/* ------------------------------------------------------------------ */
/* Header: top bar                                                     */
/* ------------------------------------------------------------------ */

.kw-topbar {
	background-color: var(--kw-navy-light);
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.75rem;
	line-height: 1;
}

.kw-topbar__inner {
	display: flex;
	align-items: center;
	gap: 0.25rem 1.75rem;
	min-height: 2rem;
}

.kw-topbar__item {
	display: flex;
	align-items: center;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.kw-topbar .kw-icon::before {
	width: 0.9rem;
	height: 0.9rem;
	margin-inline-end: 0.45rem;
	opacity: 0.85;
}

.kw-topbar a {
	color: inherit;
	text-decoration: none;
}

.kw-topbar a:hover,
.kw-topbar a:focus-visible {
	color: var(--kw-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kw-topbar__tagline {
	margin-inline-start: auto !important;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ */
/* Header: masthead                                                    */
/* ------------------------------------------------------------------ */

.kw-masthead {
	/* Shared by the menu links and the appointment button: 13px at 1280px, 14px at 1440px, 15px from 1600px. */
	--kw-nav-font: clamp(0.8125rem, calc(0.625vw + 0.3125rem), 0.9375rem);
	--kw-nav-gap: clamp(1rem, calc(3.75vw - 2rem), 1.375rem);
	--kw-mainrow-pad: 0.75rem; /* Above and below the main row. */
	--kw-navrow-h: 3rem; /* The menu row (desktop). */
	position: relative;
	z-index: 20;
	border-bottom: 1px solid var(--kw-line);
	background-color: var(--kw-white);
}

/* Desktop: two rows. The main row: the logo, the product search across the middle, then account,
   cart and the appointment button. Under it, after a fine line, only the menu, centred. Phones and
   tablets rearrange the same grid (see the ≤ 1279px rules). */
.kw-masthead__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	grid-template-rows: auto var(--kw-navrow-h);
	grid-template-areas:
		"logo search icons cta"
		"nav nav nav nav";
	align-items: center;
	column-gap: clamp(0.875rem, calc(2.5vw - 1.125rem), 1.5rem);
	row-gap: var(--kw-mainrow-pad);
	padding-top: var(--kw-mainrow-pad);
}

.kw-logo {
	grid-area: logo;
}

.kw-logo a {
	display: block;
}

/* The original SVG at its own proportions; only the width is set. */
.kw-header .kw-logo img {
	width: clamp(8.5rem, calc(7.5vw + 2.5rem), 9.75rem);
	height: auto;
}

.kw-nav {
	grid-area: nav;
	justify-self: center;
	min-width: 0;
}

/* Desktop menu row: the full width of the header, a fine line above it, the links centred. (The
   block's own <nav>: its <ul> carries the class too.) */
@media (min-width: 1280px) {
	.kw-masthead__inner > .kw-nav {
		display: flex;
		align-items: center;
		justify-content: center;
		justify-self: stretch;
		box-sizing: border-box;
		height: 100%;
		margin-inline: calc(-1 * var(--kw-gutter));
		padding-inline: var(--kw-gutter);
		border-top: 1px solid var(--kw-line);
	}

	/* Top-level titles in the heading font (Roboto Condensed 500), in capitals (as styling: the menu
	   keeps its normal labels; the mega menu's links keep the body font and their own case). */
	.kw-masthead__inner > .kw-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		font-family: var(--kw-font-heading);
		font-size: calc(var(--kw-nav-font) * 1.1);
		font-weight: var(--kw-subtitle-weight);
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}
}

.kw-search {
	width: 100%;
	min-width: 0;
}

.kw-header__icons {
	grid-area: icons;
	display: flex;
	align-items: center;
	gap: 0.1rem;
}

.kw-header__icons .kw-icon-link a {
	width: 2.375rem;
	height: 2.375rem;
}

.kw-header__cta {
	grid-area: cta;
}

.kw-header .kw-header__cta .wp-block-button__link {
	gap: 0.55em;
	padding: 0.72em 1.1em;
	font-size: var(--kw-nav-font);
	font-weight: 500;
	letter-spacing: 0.005em;
}

.kw-header .kw-header__cta .wp-block-button__link::after {
	width: 1em;
	height: 1em;
}

/* No booking destination yet: the button is shown but is not a link. */
.kw-header .kw-header__cta .wp-block-button__link:not([href]) {
	cursor: default;
}

/* Navigation — desktop. Selectors repeat WordPress' own classes so the
   block's built-in mobile overlay keeps working. */
.kw-nav .wp-block-navigation__responsive-container-open,
.kw-nav .wp-block-navigation__responsive-container-close {
	display: none;
}

.kw-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
	display: block;
	position: static;
	inset: auto;
	width: auto;
	padding: 0;
	visibility: visible;
	background: transparent;
}

.kw-nav .wp-block-navigation__container {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--kw-nav-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-nav .wp-block-navigation-item {
	margin: 0;
}

.kw-nav .wp-block-navigation-item__content {
	position: relative;
	display: block;
	padding-block: 0.5rem;
	color: var(--kw-ink);
	font-size: var(--kw-nav-font);
	font-weight: 500;
	letter-spacing: 0.005em;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.kw-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.15rem;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s ease;
}

.kw-nav .wp-block-navigation-item__content:hover {
	color: var(--kw-brand);
}

.kw-nav .wp-block-navigation-item__content:hover::after,
.kw-nav .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

.kw-nav .kw-nav__cta-mobile {
	display: none;
}

/* Items shown only in the phone/tablet menu (the desktop header keeps its approved items). */
@media (min-width: 1280px) {
	.kw-nav .kw-nav__mobile-only {
		display: none;
	}
}

/* Menu items whose destination is not published yet (no link). */
.kw-nav .kw-nav__pending > .wp-block-navigation-item__content:not([href]) {
	cursor: default;
}

.kw-nav .kw-nav__pending > .wp-block-navigation-item__content:not([href]):hover {
	color: var(--kw-ink);
}

.kw-nav .kw-nav__pending > .wp-block-navigation-item__content:not([href])::after {
	display: none;
}

/* Product search: always visible. */
.kw-search .wp-block-search__label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.kw-search .wp-block-search__inside-wrapper {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	height: 3rem;
	padding: 0 0.3rem 0 1.1rem;
	border: 1px solid #c9d6e6;
	border-radius: 999px;
	background: var(--kw-white);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.kw-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--kw-brand);
	box-shadow: 0 0 0 3px rgba(8, 60, 88, 0.12);
}

.kw-search .wp-block-search__inside-wrapper .wp-block-search__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0 0.25rem;
	border: 0;
	border-radius: 0;
	outline: 0;
	background: transparent;
	color: var(--kw-ink);
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	box-shadow: none;
}

.kw-search .wp-block-search__inside-wrapper .wp-block-search__input::placeholder {
	color: #7d8ba3;
	opacity: 1;
}

/* Submit: a navy round button at the end of the field. */
.kw-search .wp-block-search__inside-wrapper .wp-block-search__button {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.375rem;
	height: 2.375rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--kw-navy);
	color: var(--kw-white);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.kw-search .wp-block-search__inside-wrapper .wp-block-search__button:hover {
	background: var(--kw-brand);
}

.kw-search .wp-block-search__button svg {
	width: 1.25rem;
	height: 1.25rem;
	min-width: 0;
	min-height: 0;
	fill: currentColor;
}

/* Header search: in the main row between the logo and the account/cart controls — a wide field (up
   to about 840px on desktop, the full width on phones) with a search icon and a labelled navy
   button. */
.kw-searchbar {
	grid-area: search;
	display: flex;
	justify-content: center;
	min-width: 0;
	padding-inline: clamp(0.25rem, calc(2.5vw - 1.25rem), 1.75rem);
}

.kw-searchbar .kw-search {
	max-width: 52.5rem;
	margin: 0 !important;
}

.kw-searchbar .kw-search .wp-block-search__inside-wrapper {
	position: relative;
	height: 3.25rem;
	padding: 0 0.35rem 0 3rem;
	border: 1px solid #c3d2e3;
	background: var(--kw-white);
	box-shadow: 0 12px 26px -20px rgba(2, 44, 78, 0.55);
}

.kw-searchbar .kw-search .wp-block-search__inside-wrapper::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 1.15rem;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: -0.625rem;
	background-color: var(--kw-muted);
	-webkit-mask: var(--kw-i-search) center / contain no-repeat;
	mask: var(--kw-i-search) center / contain no-repeat;
	pointer-events: none;
}

.kw-searchbar .kw-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--kw-brand);
	box-shadow: 0 0 0 4px rgba(8, 60, 88, 0.12), 0 12px 26px -20px rgba(2, 44, 78, 0.55);
}

.kw-searchbar .kw-search .wp-block-search__inside-wrapper .wp-block-search__input {
	font-size: 1rem;
}

.kw-searchbar .kw-search .wp-block-search__inside-wrapper .wp-block-search__button {
	width: auto;
	height: 2.6rem;
	padding: 0 1.4rem;
	border-radius: 999px;
	font-family: var(--kw-font-body);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}

/* Small phones: the button shows the search icon only (its text stays its accessible name). */
@media (max-width: 479.98px) {
	.kw-searchbar .kw-search .wp-block-search__inside-wrapper {
		height: 3rem;
		padding-left: 2.6rem;
	}

	.kw-searchbar .kw-search .wp-block-search__inside-wrapper::before {
		left: 0.95rem;
	}

	.kw-searchbar .kw-search .wp-block-search__inside-wrapper .wp-block-search__button {
		width: 2.4rem;
		height: 2.4rem;
		padding: 0;
		font-size: 0;
	}

	.kw-searchbar .kw-search .wp-block-search__inside-wrapper .wp-block-search__button::before {
		content: "";
		width: 1.15rem;
		height: 1.15rem;
		background-color: currentColor;
		-webkit-mask: var(--kw-i-search) center / contain no-repeat;
		mask: var(--kw-i-search) center / contain no-repeat;
	}
}

/* Live search (assets/js/live-search.js): suggestions in a compact white panel just under the field and
   as wide as it, above the page, the mega menu and the mini-cart. Each row: photo, the name in navy
   (with the availability under it when a product is not simply in stock) and the price as on the
   product cards (sale price included) in its own right-hand column; on narrow panels (phones) the price
   sits under the name. About six rows show before the list scrolls; "Δείτε όλα τα αποτελέσματα" stays
   pinned at the bottom. */
.kw-searchbar .kw-search {
	position: relative;
}

.kw-ls {
	position: absolute;
	top: calc(100% + 0.375rem);
	right: 0;
	left: 0;
	z-index: 50;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #d6e0ec;
	border-radius: 12px;
	background: var(--kw-white);
	box-shadow: 0 22px 44px -22px rgba(2, 44, 78, 0.34), 0 4px 14px rgba(2, 44, 78, 0.07);
	font-family: var(--kw-font-body);
	text-align: start;
	container: kw-ls / inline-size;
}

.kw-ls[hidden],
.kw-ls [hidden] {
	display: none !important;
}

.kw-ls__note {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.85rem 1.1rem;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--kw-text);
}

.kw-ls.is-loading .kw-ls__note::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	border: 2px solid #c3d2e3;
	border-top-color: var(--kw-navy);
	border-radius: 50%;
	animation: kw-ls-spin 0.7s linear infinite;
}

@keyframes kw-ls-spin {
	to {
		transform: rotate(360deg);
	}
}

/* About six rows, then the list scrolls (the pinned "see all" row is part of the list). */
.kw-ls__list {
	--kw-ls-row: 3.5rem;
	min-height: 0;
	max-height: calc(6.35 * var(--kw-ls-row) + 3.35rem);
	padding: 0.3rem 0.3rem 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	transition: opacity 0.15s ease;
}

.kw-ls.is-loading .kw-ls__list {
	opacity: 0.55;
}

/* Narrow panels: photo | name over price and availability. */
.kw-ls__item {
	display: grid;
	grid-template-columns: 2.75rem auto minmax(0, 1fr);
	grid-template-areas:
		"media name name"
		"media price stock";
	align-items: center;
	gap: 0.1rem 0.75rem;
	box-sizing: border-box;
	min-height: var(--kw-ls-row);
	padding: 0.375rem 0.625rem 0.375rem 0.375rem;
	border-radius: 8px;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-ls__item:hover,
.kw-ls__item[aria-selected="true"] {
	background: var(--kw-surface);
}

.kw-ls__item[aria-selected="true"] {
	box-shadow: inset 0 0 0 1px #c3d2e3;
}

.kw-ls__media {
	grid-area: media;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	overflow: hidden;
	border: 1px solid var(--kw-line);
	border-radius: 6px;
	background: var(--kw-white);
}

.kw-header .kw-ls__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.kw-ls__name {
	grid-area: name;
	display: -webkit-box;
	align-self: end;
	overflow: hidden;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-navy);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.kw-ls__item:hover .kw-ls__name,
.kw-ls__item[aria-selected="true"] .kw-ls__name {
	color: var(--kw-brand);
}

.kw-ls__price {
	grid-area: price;
	align-self: start;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-ink);
}

.kw-ls__price del {
	margin-inline-end: 0.35em;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--kw-muted);
}

.kw-ls__price ins {
	text-decoration: none;
}

.kw-ls__price .amount {
	white-space: nowrap;
}

.kw-ls__stock {
	grid-area: stock;
	align-self: start;
	min-width: 0;
	font-size: 0.75rem;
	line-height: 1.3;
	color: var(--kw-muted);
}

.kw-ls__item.is-out .kw-ls__stock {
	color: #a23b2a;
}

/* Wider panels (tablets, desktops): photo | name (availability under it) | price, right-aligned in one
   column, so names and prices line up row after row. */
@container kw-ls (min-width: 34rem) {
	.kw-ls__item {
		grid-template-columns: 2.75rem minmax(0, 1fr) auto;
		grid-template-areas:
			"media name price"
			"media stock price";
		gap: 0 0.85rem;
		padding-inline-end: 0.85rem;
	}

	.kw-ls__name {
		-webkit-line-clamp: 1;
	}

	.kw-ls__item:not(:has(.kw-ls__stock)) .kw-ls__name {
		grid-row: 1 / span 2;
		align-self: center;
	}

	.kw-ls__stock {
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}

	.kw-ls__price {
		align-self: center;
		padding-inline-start: 0.5rem;
		font-size: 0.9375rem;
		white-space: nowrap;
		text-align: end;
	}
}

/* "Δείτε όλα τα αποτελέσματα": pinned at the bottom of the panel while the rows scroll. */
.kw-ls__all {
	position: sticky;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	box-sizing: border-box;
	min-height: 2.75rem;
	margin: 0.3rem -0.3rem 0;
	padding: 0.5rem 1rem;
	border-top: 1px solid var(--kw-line);
	background: var(--kw-white);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-brand);
	text-decoration: none;
}

.kw-ls__arrow {
	transition: transform 0.18s ease;
}

.kw-ls__all:hover,
.kw-ls__all[aria-selected="true"] {
	background: var(--kw-surface);
	color: var(--kw-navy);
}

.kw-ls__all:hover .kw-ls__arrow,
.kw-ls__all[aria-selected="true"] .kw-ls__arrow {
	transform: translateX(3px);
}

.kw-ls__all[aria-selected="true"] {
	box-shadow: inset 0 0 0 1px #c3d2e3;
}

@media (prefers-reduced-motion: reduce) {
	.kw-ls.is-loading .kw-ls__note::before {
		animation-duration: 2s;
	}

	.kw-ls__arrow {
		transition: none;
	}
}

/* "Κατάστημα" mega menu (desktop): a white panel floating under the header, centred, in three parts
   (kourtesis_mega_panel_html): the departments as photo entry points with the shop shortcuts on a
   soft tint; the largest categories of each department with their counts; the storefront card. The
   navigation block opens it on hover, with a click or tap of the arrow and from the keyboard;
   Escape, a click elsewhere or focus leaving close it. Up to 81rem wide, so the category names
   ("Μηχανολογικός Εξοπλισμός", "Προϊόντα Καθαρισμού Πισίνας") fit on one line from 1280px. */
/* The whole header (top bar, search row, menu row) is the panel's reference, so the panel opens
   below the menu row, clear of the search above it. */
.kw-header {
	position: relative;
}

@media (min-width: 1280px) {
	.kw-masthead,
	.kw-masthead .kw-nav,
	.kw-masthead .kw-nav :is(.wp-block-navigation__responsive-container, .wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content, .wp-block-navigation__container),
	.kw-masthead .kw-nav li.kw-mega {
		position: static;
	}

	/* Shown and hidden by visibility only (never collapsed to zero size), so hiding can wait a
	   moment: the pointer can cross the gap from "Κατάστημα" to the panel without it closing.
	   Opening is immediate. */
	.kw-masthead .kw-nav li.kw-mega > ul.wp-block-navigation__submenu-container {
		top: calc(100% + 0.5rem);
		left: max(var(--kw-gutter), calc(50% - 40.5rem));
		right: max(var(--kw-gutter), calc(50% - 40.5rem));
		z-index: 30;
		display: block;
		box-sizing: border-box;
		width: auto;
		min-width: 0;
		height: auto;
		padding: 0;
		overflow: visible;
		border: 1px solid var(--kw-line);
		border-radius: 14px;
		background-color: var(--kw-white);
		box-shadow: 0 30px 60px -24px rgba(2, 44, 78, 0.32), 0 6px 18px rgba(2, 44, 78, 0.06);
		color: var(--kw-ink);
		font-family: var(--kw-font-body);
		white-space: normal;
		transition: opacity 0.15s ease 0.25s, visibility 0s linear 0.4s;
	}

	.kw-masthead .kw-nav li.kw-mega:is(:hover, :focus-within, :has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"])) > ul.wp-block-navigation__submenu-container {
		transition-delay: 0s, 0s;
	}

	/* A short bridge across the gap under the header. */
	.kw-masthead .kw-nav li.kw-mega > ul.wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: 0.6rem;
	}

	/* "Κατάστημα" marked while its panel is open; its arrow turns. */
	.kw-masthead .kw-nav li.kw-mega:is(:hover, :has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"])) > .wp-block-navigation-item__content {
		color: var(--kw-brand);
	}

	.kw-masthead .kw-nav li.kw-mega:is(:hover, :has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"])) > .wp-block-navigation-item__content::after {
		transform: scaleX(1);
	}

	.kw-masthead .kw-nav li.kw-mega > .wp-block-navigation-submenu__toggle svg {
		transition: transform 0.2s ease;
	}

	.kw-masthead .kw-nav li.kw-mega:is(:hover, :has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"])) > .wp-block-navigation-submenu__toggle svg {
		transform: rotate(180deg);
	}

	.kw-mega__panel {
		display: block;
		margin: 0;
	}

	.kw-mega__grid {
		display: grid;
		grid-template-columns: 15rem minmax(0, 1fr) 12.75rem;
		align-items: stretch;
		font-size: 0.875rem;
		line-height: 1.4;
	}

	.kw-mega__panel a {
		color: inherit;
		text-decoration: none;
	}

	.kw-mega__panel a:focus-visible {
		outline: 2px solid var(--kw-brand);
		outline-offset: 2px;
	}

	.kw-mega__panel ul {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	/* Departments and shortcuts, on a soft tint along the left edge. */
	.kw-mega__col--depts {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		padding: 1.1rem 1rem 1.05rem;
		border-inline-end: 1px solid var(--kw-line);
		border-radius: 13px 0 0 13px;
		background: var(--kw-surface);
	}

	.kw-mega__label {
		margin: 0 0 0.15rem;
		font-size: 0.6875rem;
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--kw-muted);
	}

	.kw-mega__dept {
		display: flex;
		align-items: center;
		gap: 0.7rem;
		padding: 0.45rem 0.6rem 0.45rem 0.45rem;
		border: 1px solid var(--kw-line);
		border-radius: 10px;
		background: var(--kw-white);
		transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
	}

	.kw-mega__dept:hover {
		border-color: #a9bdd4;
		box-shadow: 0 12px 24px -16px rgba(2, 44, 78, 0.45);
		transform: translateY(-1px);
	}

	.kw-mega__dept-media {
		flex: none;
		width: 2.75rem;
		height: 2.75rem;
		overflow: hidden;
		isolation: isolate;
		border-radius: 8px;
		background: #edf2f8;
	}

	.kw-masthead .kw-mega__dept-img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		mix-blend-mode: multiply;
	}

	.kw-mega__dept-body {
		display: flex;
		flex-direction: column;
		gap: 0.1rem;
	}

	.kw-mega__dept-name {
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--kw-navy);
	}

	.kw-mega__quick {
		display: flex;
		flex-direction: column;
		gap: 0.15rem;
		margin-top: 0.35rem !important;
		padding-top: 0.6rem !important;
		border-top: 1px solid #d8e2ee;
	}

	.kw-mega__quick a {
		display: flex;
		align-items: center;
		padding: 0.4rem 0.5rem;
		border-radius: 6px;
		font-weight: 600;
		color: var(--kw-ink);
		transition: background-color 0.18s ease, color 0.18s ease;
	}

	.kw-mega__quick a:hover {
		background: var(--kw-white);
		color: var(--kw-navy);
	}

	/* Category groups: Πισίνες in two columns, Spa & Υδρομασάζ in one, all three about as wide, so the
	   longest names ("Προϊόντα Καθαρισμού Πισίνας", "Εξοπλισμός – Ανταλλακτικά Spa") stay on one line. */
	.kw-mega__col--groups {
		display: grid;
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
		gap: 0 1.75rem;
		padding: 1.1rem 1.5rem 1.15rem;
	}

	.kw-mega__group {
		display: flex;
		flex-direction: column;
		min-width: 0;
	}

	.kw-mega__heading {
		margin: 0 0 0.45rem;
		padding-bottom: 0.5rem;
		border-bottom: 1px solid var(--kw-line);
		font-family: var(--kw-font-heading);
		font-size: 1.15rem;
		font-weight: var(--kw-subtitle-weight);
		line-height: 1.2;
		color: var(--kw-navy);
	}

	.kw-mega__heading a:hover {
		color: var(--kw-brand);
	}

	.kw-mega__links {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		column-gap: 1.25rem;
	}

	.kw-mega__group--pisina .kw-mega__links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Names only (no counts): a little more air between the rows. */
	.kw-mega__links a {
		display: flex;
		align-items: baseline;
		margin-inline: -0.5rem;
		padding: 0.4rem 0.5rem;
		border-radius: 6px;
		color: var(--kw-text);
		transition: background-color 0.18s ease, color 0.18s ease;
	}

	.kw-mega__links a:hover {
		background: var(--kw-surface);
		color: var(--kw-navy);
	}

	/* Narrower desktops (the panel is then the screen less its margins): a slightly narrower showroom
	   column. */
	@media (max-width: 1439.98px) {
		.kw-mega__grid {
			grid-template-columns: 15rem minmax(0, 1fr) 12rem;
		}

		.kw-mega__col--groups {
			gap: 0 1.5rem;
			padding-inline: 1.25rem;
		}
	}

	.kw-mega__all {
		display: inline-flex;
		align-self: flex-start;
		align-items: center;
		gap: 0.45em;
		margin-top: auto;
		padding-top: 0.6rem;
		font-weight: 600;
		color: var(--kw-brand) !important;
	}

	.kw-mega__all::after {
		content: "";
		width: 0.95em;
		height: 0.95em;
		background-color: currentColor;
		-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
		mask: var(--kw-i-arrow) center / contain no-repeat;
		transition: transform 0.18s ease;
	}

	.kw-mega__all:hover::after {
		transform: translateX(3px);
	}

	/* The storefront: a photo card on navy, with the appointment link. */
	.kw-mega__col--promo {
		padding: 0.75rem 0.75rem 0.75rem 0;
	}

	.kw-mega__promo {
		display: flex;
		flex-direction: column;
		height: 100%;
		overflow: hidden;
		border-radius: 10px;
		background: var(--kw-navy);
		color: var(--kw-white) !important;
	}

	.kw-mega__promo-media {
		display: block;
		flex: none;
		height: 7.75rem;
		overflow: hidden;
	}

	.kw-masthead .kw-mega__promo-img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 62% 40%;
		transition: transform 0.4s ease;
	}

	.kw-masthead .kw-mega__promo:hover .kw-mega__promo-img {
		transform: scale(1.04);
	}

	.kw-mega__promo-body {
		display: flex;
		flex: 1;
		flex-direction: column;
		gap: 0.25rem;
		padding: 0.8rem 0.95rem 0.9rem;
	}

	.kw-mega__promo-eyebrow {
		font-size: 0.6875rem;
		font-weight: 600;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.7);
	}

	.kw-mega__promo-title {
		font-family: var(--kw-font-heading);
		font-weight: var(--kw-subtitle-weight);
		font-size: 1.125rem;
		line-height: 1.2;
	}

	.kw-mega__promo-text {
		font-size: 0.8125rem;
		color: rgba(255, 255, 255, 0.78);
	}

	/* The phone number is never split across lines. */
	.kw-mega__promo-text span {
		white-space: nowrap;
	}

	.kw-mega__promo-cta {
		display: inline-flex;
		align-items: center;
		gap: 0.5em;
		margin-top: auto;
		padding-top: 0.6rem;
		font-size: 0.8125rem;
		font-weight: 600;
	}

	.kw-mega__promo-cta::after {
		content: "";
		width: 1em;
		height: 1em;
		background-color: currentColor;
		-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
		mask: var(--kw-i-arrow) center / contain no-repeat;
		transition: transform 0.18s ease;
	}

	.kw-mega__promo:hover .kw-mega__promo-cta::after {
		transform: translateX(3px);
	}

	/* The phone/tablet "Κατάστημα" list is not part of the desktop menu. */
	.kw-masthead .kw-nav .kw-nav__shop-mobile {
		display: none;
	}
}

/* Account, wishlist and mini-cart icons. */
.kw-account a,
.kw-mini-cart .wc-block-mini-cart__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--kw-ink);
	cursor: pointer;
}

.kw-account svg,
.kw-mini-cart .wc-block-mini-cart__icon {
	width: 1.45rem;
	height: 1.45rem;
	margin: 0;
}

.kw-account a:hover,
.kw-mini-cart .wc-block-mini-cart__button:hover {
	color: var(--kw-brand);
}

/* Header cart link ([kw_cart_link]): goes to the cart page; the count is hidden when the cart is empty. */
.kw-header__icons > p {
	display: contents;
}

.kw-header .kw-header__icons > * {
	margin-block: 0;
}

.kw-cart-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.375rem;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-cart-link:hover {
	color: var(--kw-brand);
}

.kw-cart-link__icon {
	width: 1.375rem;
	height: 1.375rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-cart) center / contain no-repeat;
	mask: var(--kw-i-cart) center / contain no-repeat;
}

.kw-cart-link__count {
	position: absolute;
	top: 0.2rem;
	right: 0;
	min-width: 1rem;
	height: 1rem;
	padding: 0 0.25rem;
	box-sizing: border-box;
	border-radius: 999px;
	background: var(--kw-navy);
	color: var(--kw-white);
	font-size: 0.625rem;
	font-weight: 600;
	line-height: 1rem;
	text-align: center;
}

.kw-cart-link__count[data-count="0"] {
	display: none;
}

.kw-cart-link:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
	border-radius: 6px;
}

/* Header mini-cart ([kw_minicart], assets/js/mini-cart.js): a dropdown on hover or keyboard focus,
   opening just below the header; a drawer from the right on touch screens. Only opens with products
   in the cart; the list scrolls past a set height. Below 1280px the dropdown's reference is the
   header row itself (.kw-masthead): below it, at the container's right edge. */
.kw-minicart {
	display: inline-flex;
}

.kw-minicart__panel {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: var(--kw-gutter);
	z-index: 40;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: 24rem;
	max-width: calc(100vw - 2rem);
	border: 1px solid var(--kw-line);
	border-radius: 14px;
	background: var(--kw-white);
	box-shadow: 0 30px 60px -24px rgba(2, 44, 78, 0.34), 0 6px 18px rgba(2, 44, 78, 0.07);
	color: var(--kw-ink);
	font-family: var(--kw-font-body);
	font-size: 0.875rem;
	line-height: 1.4;
	text-align: start;
	animation: kw-minicart-in 0.18s ease;
}

.kw-minicart__panel[hidden],
.kw-minicart__backdrop[hidden] {
	display: none;
}

/* Bridge over the gap between the icon and the panel. */
.kw-minicart__panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 0.8rem;
}

@keyframes kw-minicart-in {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
}

.kw-minicart__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.15rem 0.8rem;
	border-bottom: 1px solid var(--kw-line);
}

.kw-header .kw-minicart__title {
	margin: 0;
	font-family: var(--kw-font-heading);
	font-size: 1.25rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.2;
	color: var(--kw-navy);
}

.kw-minicart__title-count {
	font-family: var(--kw-font-body);
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-minicart__close {
	display: none;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	margin: -0.35rem -0.45rem -0.35rem 0;
	padding: 0;
	border: 1px solid var(--kw-line);
	border-radius: 50%;
	background: var(--kw-white);
	color: var(--kw-navy);
	cursor: pointer;
}

.kw-minicart__close::before {
	content: "";
	width: 1.1rem;
	height: 1.1rem;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.kw-minicart__close:hover {
	border-color: var(--kw-navy);
}

.kw-header .kw-minicart__items {
	max-height: min(22rem, 50vh);
	margin: 0;
	padding: 0.2rem 1.15rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	list-style: none;
	scrollbar-width: thin;
}

.kw-minicart__item {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr) auto;
	gap: 0.85rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--kw-line);
	transition: opacity 0.18s ease;
}

.kw-minicart__item:last-child {
	border-bottom: 0;
}

/* Remove a line: a quiet × beside it; while removing, the line fades and the button turns. */
.kw-minicart__remove {
	display: grid;
	place-items: center;
	align-self: start;
	width: 2rem;
	height: 2rem;
	margin: -0.3rem -0.4rem 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--kw-muted);
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.kw-minicart__remove::before {
	content: "";
	width: 0.95rem;
	height: 0.95rem;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.kw-minicart__remove:hover:not(:disabled) {
	background: var(--kw-surface);
	color: var(--kw-navy);
}

.kw-minicart__remove:disabled {
	cursor: default;
	opacity: 0.45;
}

.kw-minicart__item.is-removing {
	opacity: 0.5;
}

.kw-minicart__item.is-removing .kw-minicart__remove {
	opacity: 1;
}

.kw-minicart__item.is-removing .kw-minicart__remove::before {
	width: 1rem;
	height: 1rem;
	border: 2px solid var(--kw-line);
	border-top-color: var(--kw-navy);
	border-radius: 50%;
	background: none;
	-webkit-mask: none;
	mask: none;
	animation: kw-minicart-spin 0.7s linear infinite;
}

@keyframes kw-minicart-spin {
	to {
		transform: rotate(360deg);
	}
}

.kw-header .kw-minicart__error {
	margin: 0 1.15rem 0.6rem;
	padding: 0.55rem 0.75rem;
	border-radius: 8px;
	background: #fdecea;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #8a2b1d;
}

.kw-minicart__error[hidden] {
	display: none;
}

.kw-minicart__panel:focus {
	outline: none;
}

.kw-minicart__thumb {
	display: block;
	width: 4rem;
	height: 4rem;
	overflow: hidden;
	box-sizing: border-box;
	border: 1px solid var(--kw-line);
	border-radius: 8px;
	background: var(--kw-white);
}

.kw-header .kw-minicart__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.kw-minicart__info {
	min-width: 0;
}

.kw-minicart__name {
	display: -webkit-box;
	overflow: hidden;
	font-weight: 600;
	line-height: 1.35;
	color: var(--kw-ink);
	text-decoration: none;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.kw-minicart__name:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kw-header .kw-minicart__details {
	margin: 0.3rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.75rem;
	line-height: 1.45;
	color: var(--kw-text);
}

.kw-minicart__detail-label {
	color: var(--kw-muted);
}

.kw-header .kw-minicart__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.15rem 0.75rem;
	margin: 0.45rem 0 0;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-minicart__price {
	font-weight: 600;
	white-space: nowrap;
	color: var(--kw-navy);
}

.kw-minicart__foot {
	padding: 0.95rem 1.15rem 1.15rem;
	border-top: 1px solid var(--kw-line);
	border-radius: 0 0 14px 14px;
	background: var(--kw-surface-alt);
}

.kw-header .kw-minicart__subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-minicart__subtotal-value {
	font-size: 1.1875rem;
	white-space: nowrap;
	color: var(--kw-navy);
}

.kw-header .kw-minicart__note {
	margin: 0.15rem 0 0;
	font-size: 0.75rem;
	color: var(--kw-muted);
}

.kw-minicart__actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.45rem;
	margin-top: 0.9rem;
}

.kw-minicart__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 2.75rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--kw-navy);
	border-radius: 8px;
	background: var(--kw-navy);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	color: var(--kw-white);
	text-decoration: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.kw-minicart__btn:hover {
	border-color: var(--kw-brand);
	background: var(--kw-brand);
	color: var(--kw-white);
}

.kw-minicart__btn--ghost {
	background: var(--kw-white);
	color: var(--kw-navy);
}

.kw-minicart__btn--ghost:hover {
	border-color: var(--kw-navy);
	background: var(--kw-surface);
	color: var(--kw-navy);
}

.kw-minicart :is(a, button):focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* Touch screens: a drawer from the right over a dimmed page. */
.kw-minicart__panel.is-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 100001;
	width: min(24rem, 92vw);
	max-width: none;
	border-width: 0 0 0 1px;
	border-radius: 16px 0 0 16px;
	animation: kw-minicart-drawer 0.22s ease;
}

@keyframes kw-minicart-drawer {
	from {
		transform: translateX(100%);
	}
}

.kw-minicart__panel.is-drawer::before {
	display: none;
}

.kw-minicart__panel.is-drawer .kw-minicart__head {
	padding: 1.1rem 1.15rem 0.9rem;
}

.kw-minicart__panel.is-drawer .kw-minicart__close {
	display: inline-flex;
}

.kw-header .kw-minicart__panel.is-drawer .kw-minicart__items {
	flex: 1;
	max-height: none;
}

.kw-minicart__panel.is-drawer .kw-minicart__foot {
	border-radius: 0 0 0 16px;
}

.kw-minicart__panel.is-drawer .kw-minicart__actions {
	grid-template-columns: minmax(0, 1fr);
}

.kw-minicart__backdrop {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: rgba(2, 28, 52, 0.45);
}

html.kw-minicart-locked {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.kw-minicart__panel,
	.kw-minicart__panel.is-drawer {
		animation: none;
	}
}

/* Desktop: the dropdown's reference is the icon group, stretched to the main row's height, so its
   right edge is the cart icon's; it starts below the menu row underneath (the row gap, the menu row
   and the header's bottom line). mini-cart.js keeps it open while the pointer moves down to it. The
   list allows for that start, so the buttons stay in view on shorter screens. */
@media (min-width: 1280px) {
	.kw-masthead .kw-header__icons {
		position: relative;
		align-self: stretch;
	}

	.kw-masthead .kw-minicart__panel:not(.is-drawer) {
		top: calc(100% + var(--kw-mainrow-pad) + var(--kw-navrow-h) + 1px + 0.5rem);
		right: -0.75rem;
	}

	.kw-header .kw-minicart__panel:not(.is-drawer) .kw-minicart__items {
		max-height: min(22rem, max(9rem, calc(100vh - 28rem)));
	}

	/* The two panels open in the same place: the shop menu's stays hidden while the mini-cart is open
	   (mini-cart.js closes the mini-cart when the pointer or focus moves to "Κατάστημα"). */
	.kw-header:has(.kw-minicart.is-open) .kw-masthead .kw-nav li.kw-mega > ul.wp-block-navigation__submenu-container {
		visibility: hidden;
		opacity: 0;
		transition: none;
	}
}

.kw-mini-cart .wc-block-mini-cart__amount,
.kw-mini-cart .wc-block-mini-cart__tax-label {
	display: none;
}

.kw-mini-cart .wc-block-mini-cart__quantity-badge {
	position: relative;
	display: inline-flex;
}

.kw-mini-cart .wc-block-mini-cart__badge {
	position: absolute;
	top: -0.4rem;
	right: -0.55rem;
	min-width: 1rem;
	height: 1rem;
	padding: 0 0.2rem;
	border-radius: 999px;
	background: var(--kw-navy);
	color: var(--kw-white);
	font-size: 0.625rem;
	font-weight: 600;
	line-height: 1rem;
	text-align: center;
}

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */

.kw-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	min-height: clamp(30rem, 36vw, 38rem);
	overflow: hidden;
	background-color: var(--kw-navy);
	color: var(--kw-white);
}

.kw-hero__media {
	position: absolute !important;
	inset: 0;
	z-index: -1;
}

.kw-hero__media img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

.kw-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(3, 27, 52, 0.62) 0%, rgba(3, 27, 52, 0.36) 40%, rgba(3, 27, 52, 0) 70%),
		linear-gradient(0deg, rgba(3, 27, 52, 0.35) 0%, rgba(3, 27, 52, 0) 38%);
}

.kw-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2rem;
	padding-block: clamp(2.5rem, 4.2vw, 3.75rem) clamp(1.5rem, 2.4vw, 2.25rem);
}

.kw-hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.1rem;
	max-width: 38rem;
}

.kw-home .kw-hero__title {
	max-width: 12em;
	font-family: var(--kw-font-heading);
	font-size: var(--wp--preset--font-size--xx-large, 3.5rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.1;
	letter-spacing: -0.005em;
	color: var(--kw-white);
}

.kw-hero__lead {
	max-width: 28rem;
	font-size: clamp(1rem, 1.15vw, 1.1875rem);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.94);
}

.kw-hero__actions {
	margin-top: 0.85rem !important;
}

.kw-hero__signature {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.25rem;
}

/* Typeset stand-in for the "More life in water" artwork until the official file is supplied. */
.kw-tagline {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2.3vw, 2.25rem);
	font-style: italic;
	line-height: 1.1;
	letter-spacing: 0.01em;
	color: rgba(255, 255, 255, 0.92);
	white-space: nowrap;
}

.kw-hero__motto {
	padding-inline-start: 1.25rem;
	border-inline-start: 1px solid rgba(255, 255, 255, 0.45);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.65;
	max-width: 11.5em;
	color: rgba(255, 255, 255, 0.92);
}

/* ------------------------------------------------------------------ */
/* Categories                                                          */
/* ------------------------------------------------------------------ */

/* Homepage category cards ([kw_home_categories]): an editorial grid. Πισίνες (large) and
   Spa & Υδρομασάζ with photos of the company's own work under a navy veil; Εξοπλισμός and
   Χημικά & Φροντίδα as "studio" cards with the shop's category photos on a soft tint. Each card
   shows its product count and links to real sub-categories; the title link covers the card. */
.kw-catbento {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: minmax(15.5rem, auto);
	gap: clamp(0.875rem, 1.4vw, 1.25rem);
}

.kw-catbento__card {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-width: 0;
	overflow: hidden;
	border-radius: 14px;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.kw-catbento__card--1 {
	grid-column: 1 / span 2;
	grid-row: span 2;
}

.kw-catbento__card--2 {
	grid-column: 3 / span 2;
}

.kw-catbento__card:hover {
	box-shadow: 0 26px 46px -28px rgba(2, 44, 78, 0.55);
	transform: translateY(-3px);
}

.kw-catbento__media {
	position: absolute;
	inset: 0;
	z-index: -1;
	margin: 0;
}

.kw-catbento .kw-catbento__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.kw-catbento__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.45rem;
	padding: clamp(1.1rem, 2vw, 1.75rem);
}

.kw-catbento__body > * {
	margin: 0;
}

.kw-catbento__count {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.kw-home .kw-catbento__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2vw, 2rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.1;
	letter-spacing: 0;
}

.kw-home .kw-catbento__card--1 .kw-catbento__title {
	font-size: clamp(1.875rem, 2.8vw, 2.75rem);
}

.kw-catbento__link {
	color: inherit;
	text-decoration: none;
}

.kw-catbento__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.kw-catbento__subs {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0.15rem 0 0;
	padding: 0;
	list-style: none;
}

.kw-catbento__subs a {
	display: inline-flex;
	padding: 0.32rem 0.75rem;
	border: 1px solid;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.25;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.kw-catbento__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	margin-top: 0.35rem !important;
	font-size: 0.875rem;
	font-weight: 600;
}

.kw-catbento__cta::after {
	content: "";
	width: 1.05em;
	height: 1.05em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-catbento__card:hover .kw-catbento__cta::after {
	transform: translateX(3px);
}

/* Photo cards. */
.kw-catbento__card--photo {
	color: var(--kw-white);
	background: var(--kw-navy);
}

.kw-catbento__card--photo .kw-catbento__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(2, 28, 52, 0.88) 0%, rgba(2, 28, 52, 0.55) 34%, rgba(2, 28, 52, 0) 68%);
}

.kw-catbento .kw-catbento__card--photo:hover .kw-catbento__img {
	transform: scale(1.04);
}

.kw-catbento__card--photo .kw-catbento__count {
	color: rgba(255, 255, 255, 0.82);
}

.kw-catbento__card--photo .kw-catbento__subs a {
	border-color: rgba(255, 255, 255, 0.45);
	background: rgba(255, 255, 255, 0.08);
	color: var(--kw-white);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.kw-catbento__card--photo .kw-catbento__subs a:hover {
	border-color: var(--kw-white);
	background: var(--kw-white);
	color: var(--kw-navy);
}

.kw-catbento .kw-catbento__card--1 .kw-catbento__img {
	object-position: 50% 62%;
}

.kw-catbento .kw-catbento__card--2 .kw-catbento__img {
	object-position: 50% 82%;
}

/* Studio cards (Εξοπλισμός, Χημικά & Φροντίδα): the shop's own product photo on a raised white
   plinth over a deeper blue-grey tint, the title large in navy over a short rule, the
   sub-categories as white pills and the link at the foot. On hover the plinth lifts a little. */
.kw-catbento__card--studio {
	border: 0;
	background:
		radial-gradient(110% 85% at 100% 0%, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 60%),
		linear-gradient(160deg, #d7e3ef 0%, #e6edf5 48%, #f2f6fa 100%);
	box-shadow: inset 0 0 0 1px rgba(2, 44, 78, 0.07);
	color: var(--kw-ink);
}

.kw-catbento__card--studio .kw-catbento__body {
	gap: 0.55rem;
	padding: clamp(1.2rem, 1.8vw, 1.6rem);
}

.kw-catbento__card--studio .kw-catbento__media {
	inset: 1rem 1rem auto auto;
	width: min(38%, 9.75rem);
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 16px;
	background: var(--kw-white);
	box-shadow: 0 20px 34px -22px rgba(2, 44, 78, 0.55), 0 2px 8px rgba(2, 44, 78, 0.06);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.kw-catbento .kw-catbento__card--studio .kw-catbento__img {
	object-fit: contain;
	transition: transform 0.45s ease;
}

.kw-catbento__card--studio:hover .kw-catbento__media {
	transform: translateY(-4px);
	box-shadow: 0 26px 40px -22px rgba(2, 44, 78, 0.6), 0 2px 8px rgba(2, 44, 78, 0.06);
}

.kw-catbento .kw-catbento__card--studio:hover .kw-catbento__img {
	transform: scale(1.05);
}

.kw-catbento__card--studio :is(.kw-catbento__count, .kw-catbento__title) {
	max-width: 56%;
}

.kw-catbento__card--studio .kw-catbento__count {
	color: var(--kw-brand);
}

.kw-home .kw-catbento__card--studio .kw-catbento__title {
	position: relative;
	padding-bottom: 0.6rem;
	font-size: clamp(1.625rem, 2vw, 2rem);
	line-height: 1.05;
	color: var(--kw-navy);
}

.kw-home .kw-catbento__card--studio .kw-catbento__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 1.75rem;
	height: 2px;
	background: var(--kw-navy);
	opacity: 0.35;
	transition: width 0.3s ease, opacity 0.3s ease;
}

.kw-home .kw-catbento__card--studio:hover .kw-catbento__title::after {
	width: 2.75rem;
	opacity: 0.7;
}

.kw-home .kw-catbento__card--photo .kw-catbento__title {
	color: var(--kw-white);
}

.kw-catbento__card--studio .kw-catbento__subs a {
	border-color: rgba(2, 44, 78, 0.14);
	background: var(--kw-white);
	box-shadow: 0 1px 2px rgba(2, 44, 78, 0.06);
	color: var(--kw-ink);
	white-space: nowrap;
}

.kw-catbento__card--studio .kw-catbento__subs a:hover {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-catbento__card--studio .kw-catbento__cta {
	color: var(--kw-navy);
	white-space: nowrap;
}
/* The card's link covers it, so keyboard focus is shown around the card. */
.kw-catbento__card:has(.kw-catbento__link:focus-visible) {
	outline: 2px solid var(--kw-brand);
	outline-offset: 3px;
}

.kw-catbento__link:focus-visible {
	outline: none;
}

.kw-catbento__subs a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Desktop: as in the approved reference, the card row runs a little wider than the section heading. */
@media (min-width: 1280px) {
	.kw-home .kw-categories .kw-catbento {
		margin-inline: calc(-1 * min(var(--kw-gutter) - 1.25rem, (var(--kw-container) - 100%) / 2));
	}
}

/* Tablets and small laptops: two cards per row. */
@media (max-width: 1279.98px) {
	.kw-catbento {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: auto;
	}

	.kw-catbento__card--1,
	.kw-catbento__card--2 {
		grid-column: auto;
		grid-row: auto;
		min-height: 21rem;
	}

	.kw-catbento__card--studio {
		min-height: 15rem;
	}
}

/* Phones: one card per row; the studio cards keep their photo beside the text. */
@media (max-width: 639.98px) {
	.kw-catbento {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-catbento__card--1 {
		min-height: 22rem;
	}

	.kw-catbento__card--2 {
		min-height: 18rem;
	}

	.kw-catbento__card--studio {
		min-height: 14.75rem;
	}

	.kw-catbento__card--studio .kw-catbento__media {
		width: min(32%, 7.5rem);
	}


}

@media (prefers-reduced-motion: reduce) {
	.kw-catbento__card:hover,
	.kw-catbento__card--studio:hover .kw-catbento__media {
		transform: none;
	}
}

/* ------------------------------------------------------------------ */
/* Featured products: WooCommerce "Product Collection" block           */
/* (Featured collection). Each <li class="wc-block-product"> is a card. */
/* ------------------------------------------------------------------ */

:is(.kw-home, .kw-shop) .kw-products .wc-block-product-template {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.875rem, 1.4vw, 1.25rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Store notices (e.g. an add-to-cart error) only take space when there is one. */
:is(.kw-home, .kw-shop) .kw-products .wc-block-components-notices {
	margin: 0;
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-components-notices:has(.wc-block-components-notice-banner) {
	margin-bottom: 1rem;
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-product {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	width: auto;
	margin: 0;
	padding: 1rem 1.125rem 1.125rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	text-align: start;
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

/* Hover and keyboard focus: the card lifts 4px with a navy-tinted shadow and a firmer border, the
   photo eases forward, the title and the cart button take the brand colour. Without motion
   (reduced-motion setting) the shadow, border and colours still mark the card. */
:is(.kw-home, .kw-shop) .kw-products .wc-block-product:is(:hover, :focus-within) {
	border-color: #a9bdd4;
	box-shadow: 0 18px 36px -14px rgba(2, 44, 78, 0.32), 0 3px 10px rgba(2, 44, 78, 0.07);
	transform: translateY(-4px);
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__media img {
	transition: transform 0.22s ease;
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-product:is(:hover, :focus-within) .kw-product-card__media img {
	transform: scale(1.03);
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-product:is(:hover, :focus-within) .kw-product-card__cart .wp-block-button__link {
	background-color: var(--kw-brand);
	box-shadow: 0 0 0 3px rgba(8, 60, 88, 0.14);
}

@media (prefers-reduced-motion: reduce) {
	:is(.kw-home, .kw-shop) .kw-products .wc-block-product,
	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__media img {
		transition: none;
	}

	:is(.kw-home, .kw-shop) .kw-products .wc-block-product:is(:hover, :focus-within),
	:is(.kw-home, .kw-shop) .kw-products .wc-block-product:is(:hover, :focus-within) .kw-product-card__media img {
		transform: none;
	}
}

/* Product photo: whole product visible (contain) in a consistent 4:3 area. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__media {
	margin: 0 0 0.75rem;
	overflow: hidden;
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: contain;
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-sale-badge {
	padding: 0.2rem 0.55rem;
	border: 0;
	border-radius: 999px;
	background: var(--kw-navy);
	color: var(--kw-white);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__title {
	margin: 0;
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--kw-ink);
	text-wrap: pretty;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__title a {
	color: inherit;
	text-decoration: underline transparent;
	text-underline-offset: 3px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-product:is(:hover, :focus-within) .kw-product-card__title a {
	color: var(--kw-brand);
	text-decoration-color: rgba(8, 60, 88, 0.35);
}

/* The title link covers the whole card; the cart button sits above it. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

@supports selector(:has(a)) {
	:is(.kw-home, .kw-shop) .kw-products .wc-block-product:has(.kw-product-card__title a:focus-visible) {
		outline: 2px solid var(--kw-brand);
		outline-offset: 3px;
	}

	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__title a:focus-visible {
		outline: none;
	}
}

/* Price left, buttons right; on a card too narrow for both, the buttons move under the price (right). */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: auto;
	padding-top: 0.75rem;
}

/* The price takes the row's free space: a price range or a sale price wraps inside it (at the dash, or old
   above new) before the buttons ever move down. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__footer > .kw-product-card__price {
	flex: 1 1 0;
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-price {
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-ink);
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-price del {
	margin-inline-end: 0.35em;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--kw-muted);
}

:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-price ins {
	text-decoration: none;
}

/* Keep "1.590,00 €" together; a price range may only wrap at the dash. */
:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-price .amount {
	white-space: nowrap;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart {
	position: relative;
	z-index: 2;
	display: flex;
	flex: none;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0 auto;
}

/* Round icon button. WooCommerce's aria-label names it ("Προσθήκη στο καλάθι: …" or
   "Επιλέξτε επιλογές για …"); the visible text stays available to screen readers. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .wp-block-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--kw-navy);
	color: var(--kw-white);
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .wp-block-button__link:hover {
	background-color: var(--kw-brand);
	color: var(--kw-white);
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .wp-block-button__link > span {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .wp-block-button__link::before {
	content: "";
	width: 1.125rem;
	height: 1.125rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-cart) center / contain no-repeat;
	mask: var(--kw-i-cart) center / contain no-repeat;
}

/* Variable (choose options) or not purchasable here: an arrow to the product page. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .wp-block-button__link:not(.ajax_add_to_cart)::before {
	-webkit-mask-image: var(--kw-i-arrow);
	mask-image: var(--kw-i-arrow);
}

/* "Τηλεφωνική Παραγγελία" (catalogue cards, products from 800 €; inc/phone-order.php): a round button with
   a telephone handset right before the cart button, the same size, outlined in the cart button's navy;
   named by its aria-label. It sits in the cart block, above the card's stretched title link. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .kw-product-card__phone {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 2.5rem;
	height: 2.5rem;
	border: 1.5px solid var(--kw-navy);
	border-radius: 50%;
	background-color: var(--kw-white);
	color: var(--kw-navy);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .kw-product-card__phone::before {
	content: "";
	width: 1.125rem;
	height: 1.125rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-call) center / contain no-repeat;
	mask: var(--kw-i-call) center / contain no-repeat;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .kw-product-card__phone:is(:hover, :focus-visible) {
	background-color: var(--kw-navy);
	color: var(--kw-white);
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .kw-product-card__phone:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* A cart block with the phone icon: phone and cart side by side (WooCommerce stacks the block's items);
   the "Καλάθι" link revealed after adding stays under the cart button. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart.kw-product-card__cart--phone {
	display: grid;
	grid-template-columns: auto auto;
	align-items: center;
	justify-items: center;
	gap: 0.6rem 0.5rem;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart--phone > .kw-product-card__phone {
	grid-area: 1 / 1;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart--phone > .wp-block-button__link {
	grid-area: 1 / 2;
}

:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart--phone > span {
	grid-column: 2;
}

/* "Καλάθι" link that WooCommerce reveals after a product is added. */
:is(.kw-home, .kw-shop) .kw-products .kw-product-card__cart .added_to_cart {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-underline-offset: 3px;
}

/* ------------------------------------------------------------------ */
/* Services & projects                                                 */
/* ------------------------------------------------------------------ */

.kw-section.kw-projects {
	padding-block: var(--kw-section-space);
	background-color: var(--kw-surface);
}

.kw-projects + .kw-section {
	padding-top: var(--kw-section-space);
}

.kw-projects__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2.75fr);
	align-items: start;
	gap: clamp(1.5rem, 3vw, 3rem);
}

.kw-projects__intro {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
}

.kw-home .kw-projects__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.625rem, 2.3vw, 2.125rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.12;
	color: var(--kw-ink);
	text-wrap: balance;
}

.kw-projects__text {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--kw-text);
}

.kw-projects__actions {
	margin-top: 0.5rem !important;
}

.kw-projects__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kw-project-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.kw-project-card__media {
	aspect-ratio: 2 / 1;
	margin-bottom: 0.55rem !important;
	overflow: hidden;
	border-radius: var(--kw-radius-sm);
}

.kw-project-card__media img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform 0.6s ease;
}

/* Only cards that link to a published project react to hover. */
.kw-project-card:has(.kw-project-card__title a):hover .kw-project-card__media img {
	transform: scale(1.04);
}

.kw-home .kw-project-card__title {
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-project-card__title a {
	color: inherit;
	text-decoration: none;
}

.kw-project-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.kw-project-card__meta {
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

/* ------------------------------------------------------------------ */
/* Partner brands                                                      */
/* ------------------------------------------------------------------ */

.kw-section.kw-brands {
	padding-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
}

.kw-brands__row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: center;
}

.kw-brand {
	display: flex !important;
	align-items: center;
	justify-content: center;
	height: 4.5rem;
	padding-inline: clamp(0.75rem, 1.5vw, 1.5rem);
	border-inline-start: 1px solid var(--kw-line);
}

.kw-brand:first-child {
	border-inline-start: 0;
}

/* Typographic brand names (no official logo files on the site), linking to each brand's products. */
.kw-brand a {
	padding: 0.5rem 0.25rem;
	font-family: var(--kw-font-body);
	font-size: clamp(1rem, 1.25vw, 1.1875rem);
	font-weight: 600;
	letter-spacing: 0.18em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--kw-ink);
	text-decoration: none;
	transition: color 0.2s ease;
}

.kw-brand a:hover {
	color: var(--kw-brand);
}

/* ------------------------------------------------------------------ */
/* Trust strip (sits directly above reviews)                           */
/* ------------------------------------------------------------------ */

.kw-trust {
	background-color: var(--kw-surface);
	border-block: 1px solid #ebf0f6;
}

.kw-trust__row {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	padding-block: clamp(1.25rem, 2vw, 1.75rem);
}

.kw-trust__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	padding-inline: 1rem;
	border-inline-start: 1px solid var(--kw-line);
}

.kw-trust__item:first-child {
	border-inline-start: 0;
}

.kw-trust__icon {
	flex: none;
}

.kw-trust__icon img {
	width: 2.5rem;
	height: 2.5rem;
}

.kw-trust__label {
	max-width: 12em;
	font-size: 0.9375rem;
	line-height: 1.3;
	color: var(--kw-ink);
}

/* ------------------------------------------------------------------ */
/* Reviews                                                             */
/* ------------------------------------------------------------------ */

.kw-trust + .kw-reviews {
	padding-top: var(--kw-section-space);
}

/* Three cards of equal height: the quote area holds three lines in each (a longer review shows its
   first three with a button for the whole text, assets/js/reviews.js), so stars, quotes and product
   lines line up across the row. */
.kw-reviews__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}

.kw-review {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	box-sizing: border-box;
	height: 100%;
	padding: 1.75rem 1.75rem 1.5rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
}

.kw-reviews__note {
	max-width: 22rem;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--kw-muted);
}

.kw-review__quote {
	--kw-quote-lh: 1.45;
	min-height: calc(var(--kw-quote-lh) * 1em * 3);
	font-family: var(--kw-font-heading);
	font-size: 1.25rem;
	font-weight: var(--kw-title-weight);
	line-height: var(--kw-quote-lh);
	color: var(--kw-ink);
}

.kw-review.is-clamped:not(.is-expanded) .kw-review__quote {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.kw-review__more {
	align-self: flex-start;
	margin-top: -0.35rem;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-brand);
	text-decoration: underline;
	text-decoration-color: rgba(8, 60, 88, 0.35);
	text-underline-offset: 3px;
	cursor: pointer;
}

.kw-review__more:hover {
	color: var(--kw-navy);
	text-decoration-color: currentColor;
}

.kw-review__more:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Stars first, then the quote; the product line closes every card at the same height. */
.kw-review__stars {
	order: -1;
	font-size: 1rem;
	line-height: 1;
	letter-spacing: 0.15em;
	color: var(--kw-star);
}

/* Which product the review is about: product reviews, not company testimonials. Room for two lines
   (long product names), so the dividing lines of the three cards stay level. */
.kw-home .kw-review__product {
	box-sizing: border-box;
	min-height: calc(2 * 1.45em + 0.85rem + 1px);
	margin-top: auto;
	padding-top: 0.85rem;
	border-top: 1px solid var(--kw-line);
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--kw-muted);
	text-wrap: pretty;
}

.kw-review__product a {
	font-weight: 600;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-review__product a:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */

/* A deep navy band in the spirit of the original design: the brand on the left behind a fine
   vertical rule, five groups (four of links, then the contact details) whose headings sit on one
   fine line, and a lower line with the copyright, the legal links and the credit. */
.kw-footer {
	--kw-footer-text: rgba(232, 239, 246, 0.8);
	--kw-footer-soft: rgba(232, 239, 246, 0.7);
	--kw-footer-rule: rgba(255, 255, 255, 0.13);
	background:
		radial-gradient(110% 130% at 0% 0%, rgba(17, 74, 115, 0.45) 0%, rgba(17, 74, 115, 0) 58%),
		var(--kw-navy);
	color: var(--kw-footer-text);
	font-size: 1rem;
}

.kw-footer__top {
	padding-block: clamp(3.25rem, 6vw, 5rem) clamp(2.75rem, 4.5vw, 4rem);
}

/* Six columns from 1400px: each group at least as wide as its heading ("Εξυπηρέτηση Πελατών"), its
   links and the address, so every heading and the address stay on one line. */
.kw-footer__grid {
	--kw-footer-gap: clamp(1.25rem, 1.75vw, 2.5rem);
	display: grid;
	grid-template-columns: minmax(13rem, 1.25fr) minmax(8.5rem, 0.75fr) minmax(12.5rem, 1.1fr) minmax(13rem, 1fr) minmax(9.25rem, 0.75fr) minmax(17rem, 1.25fr);
	align-items: start;
	gap: 2.5rem var(--kw-footer-gap);
}

.kw-footer__brand,
.kw-footer__col {
	box-sizing: border-box;
	min-width: 0;
}

/* Brand: logo, tagline, one line about the company and the social profiles. */
.kw-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	align-self: stretch;
	gap: 1.1rem;
	padding-inline-end: var(--kw-footer-gap);
	border-inline-end: 1px solid var(--kw-footer-rule);
}

.kw-footer .kw-footer__logo img {
	width: clamp(9.5rem, 11.5vw, 11.25rem);
	height: auto;
}

.kw-footer__tagline {
	margin-top: 0.35rem !important;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.3125rem, 1.6vw, 1.5rem);
	font-style: italic;
	font-weight: var(--kw-title-weight);
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.95);
	text-wrap: balance;
}

.kw-footer__about {
	max-width: 20rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--kw-footer-soft);
}

/* Social profiles: the marks in fine circles. */
.kw-footer .kw-social.wp-block-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0.4rem 0 0;
	padding: 0;
	list-style: none;
}

.kw-footer .kw-social.wp-block-social-links .wp-social-link {
	margin: 0;
	background: none;
	color: var(--kw-white);
}

.kw-footer .kw-social .wp-social-link a {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 50%;
	color: var(--kw-white);
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

/* Hover / keyboard focus: white disc, navy mark. Core's
   `.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover` (0,5,0) sets
   the anchor and its svg to currentColor, i.e. the li's white, so the mark vanished on the white disc; this
   selector (0,5,1) wins and the svg (fill: currentColor) follows the anchor's colour. */
.kw-footer .kw-social.wp-block-social-links .wp-social-link a:is(:hover, :focus-visible) {
	border-color: var(--kw-white);
	background-color: var(--kw-white);
	color: var(--kw-navy);
}

.kw-footer .kw-social .wp-social-link svg {
	width: 1.05rem;
	height: 1.05rem;
	fill: currentColor;
}

/* Group headings: one fine line under all four, with a short brighter mark at its start. */
.kw-footer .kw-footer__heading {
	position: relative;
	margin-bottom: 1.25rem;
	padding-bottom: 0.95rem;
	border-bottom: 1px solid var(--kw-footer-rule);
	font-family: var(--kw-font-heading);
	font-size: 1.0625rem;
	font-weight: var(--kw-subtitle-weight);
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--kw-white);
}

.kw-footer .kw-footer__heading::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 2rem;
	height: 1px;
	background: rgba(255, 255, 255, 0.7);
}

.kw-footer__links,
.kw-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-footer__links li {
	line-height: 1.5;
}

.kw-footer__links a {
	color: var(--kw-footer-text);
	text-decoration: underline transparent;
	text-underline-offset: 5px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.kw-footer__links a:hover,
.kw-footer__links a:focus-visible {
	color: var(--kw-white);
	text-decoration-color: rgba(255, 255, 255, 0.45);
}

.kw-footer a:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85);
	outline-offset: 3px;
	border-radius: 2px;
}

/* "Όλα τα προϊόντα", "Όλες οι υπηρεσίες", "Φόρμα επικοινωνίας": each group's closing link. */
.kw-footer .kw-footer__all {
	margin-top: 0.3rem;
}

.kw-footer .kw-footer__all a {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	font-weight: 600;
	color: var(--kw-white);
	text-decoration: none;
}

.kw-footer .kw-footer__all a::after {
	content: "";
	width: 0.95em;
	height: 0.95em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-footer .kw-footer__all a:hover::after {
	transform: translateX(3px);
}

/* Contact details with their line icons. */
.kw-footer__contact li {
	align-items: flex-start;
	line-height: 1.55;
	color: var(--kw-footer-text);
}

.kw-footer__contact li::before {
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.18em;
	margin-inline-end: 0.75rem;
	color: rgba(255, 255, 255, 0.6);
}

.kw-footer__contact a {
	color: inherit;
	text-decoration: underline transparent;
	text-underline-offset: 5px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.kw-footer__contact a:hover {
	color: var(--kw-white);
	text-decoration-color: rgba(255, 255, 255, 0.45);
}

/* "More life in water": the signature of the original design under the contact details, after a
   fine rule, towards the right. */
.kw-footer .kw-footer__signature {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.9rem;
	margin-top: 1.75rem;
}

.kw-footer .kw-footer__signature::before {
	content: "";
	flex: 0 1 3.75rem;
	height: 1px;
	background: rgba(255, 255, 255, 0.4);
}

.kw-footer .kw-footer__signature img {
	flex: none;
	width: clamp(9.5rem, 11vw, 11rem);
	height: auto;
	opacity: 0.88;
}

/* Lower line: the copyright and the legal links on the left, the credit on the right. */
.kw-footer__base {
	border-top: 1px solid var(--kw-footer-rule);
}

/* One quiet line: the copyright on the left, the credit on the right. */
.kw-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem 2rem;
	padding-block: 1.6rem 1.75rem;
}

.kw-footer__legalities {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.75rem;
	min-width: 0;
}

.kw-footer__copy,
.kw-footer__credit,
.kw-footer__legal {
	font-size: 0.84375rem;
	line-height: 1.6;
	color: rgba(232, 239, 246, 0.74);
}

/* Terms of use, privacy, cookies: one row, separated by fine vertical rules in the gaps. A rule that
   would start a wrapped line falls outside the list's clip, so a line never begins with one. */
.kw-footer .kw-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 1.7rem;
	margin: 0 0 0 -0.4rem;
	padding: 0 0 0 0.4rem;
	list-style: none;
	clip-path: inset(-0.5rem -0.5rem -0.5rem 0);
}

.kw-footer__legal li {
	position: relative;
}

.kw-footer__legal li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -0.85rem;
	width: 1px;
	height: 0.85em;
	background: rgba(255, 255, 255, 0.28);
	transform: translateY(-50%);
}

.kw-footer__legal a {
	color: rgba(232, 239, 246, 0.86);
	text-decoration: underline transparent;
	text-underline-offset: 4px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.kw-footer__legal a:hover,
.kw-footer__legal a:focus-visible {
	color: var(--kw-white);
	text-decoration-color: rgba(255, 255, 255, 0.45);
}

.kw-footer__credit a {
	color: rgba(232, 239, 246, 0.92);
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.25);
	text-underline-offset: 4px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.kw-footer__credit a:hover {
	color: var(--kw-white);
	text-decoration-color: rgba(255, 255, 255, 0.6);
}

/* Below 1400px: the brand across the top, then the four link groups and the contact details in one
   row. */
@media (max-width: 1399.98px) {
	.kw-footer__grid {
		--kw-footer-gap: clamp(1.25rem, 2.2vw, 2.75rem);
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.15fr) minmax(13rem, 1fr) minmax(0, 0.8fr) minmax(17rem, 1.2fr);
		row-gap: 2.25rem;
	}

	.kw-footer__brand {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-column: 1 / -1;
		align-items: center;
		gap: 0.35rem 2.25rem;
		padding: 0 0 2rem;
		border-inline-end: 0;
		border-bottom: 1px solid var(--kw-footer-rule);
	}

	.kw-footer__brand > .kw-footer__logo {
		grid-row: 1 / 3;
	}

	.kw-footer__tagline {
		margin-top: 0 !important;
		align-self: end;
	}

	.kw-footer__about {
		grid-column: 2;
		align-self: start;
		max-width: none;
	}

	.kw-footer .kw-social.wp-block-social-links {
		grid-column: 3;
		grid-row: 1 / 3;
		margin: 0;
	}
}

/* Below 1280px: the four link groups in a row, the contact details across the width. */
@media (max-width: 1279.98px) {
	.kw-footer__grid {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.2fr) minmax(0, 1.1fr) minmax(0, 0.85fr);
	}

	.kw-footer__col--contact {
		grid-column: 1 / -1;
	}

	.kw-footer__contact {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.85rem 2.25rem;
	}
}

/* Tablets: the four link groups two by two. */
@media (max-width: 1023.98px) {
	.kw-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Phones: the brand, then the shop and the services side by side, then customer service,
   "Περισσότερα" and the contact details across the width. */
@media (max-width: 639.98px) {
	.kw-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.25rem 1.25rem;
	}

	.kw-footer__brand {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.9rem;
		padding-bottom: 1.75rem;
	}

	.kw-footer__tagline {
		align-self: auto;
	}

	.kw-footer .kw-social.wp-block-social-links {
		margin-top: 0.25rem;
	}

	.kw-footer__col--care,
	.kw-footer__col--more {
		grid-column: 1 / -1;
	}

	.kw-footer__col--care .kw-footer__links,
	.kw-footer__col--more .kw-footer__links {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem 1.25rem;
	}

	.kw-footer__contact {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	.kw-footer__legalities {
		flex-direction: column;
		align-items: flex-start;
	}
}
/* ------------------------------------------------------------------ */
/* ≤ 1279px: navigation collapses into the menu button                 */
/* ------------------------------------------------------------------ */

@media (max-width: 1279.98px) {
	/* One row: menu button, logo, search, account/cart, appointment button (the search moves to its
	   own line under them from 1023px down). */
	.kw-masthead__inner {
		grid-template-columns: auto auto minmax(0, 1fr) auto auto;
		grid-template-rows: none;
		grid-template-areas: "nav logo search icons cta";
		row-gap: 0.6rem;
		padding-block: 0.6rem;
	}

	.kw-nav {
		justify-self: start;
	}

	:is(.kw-home, .kw-shop) .kw-products .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-nav .wp-block-navigation__responsive-container-open {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 2.5rem;
		height: 2.5rem;
		margin-inline-start: -0.5rem;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--kw-ink);
		cursor: pointer;
	}

	.kw-nav .wp-block-navigation__responsive-container-open svg {
		width: 1.6rem;
		height: 1.6rem;
		fill: currentColor;
	}

	.kw-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	/* Open menu. Selectors include .wp-block-navigation__responsive-container.is-menu-open so they
	   outrank WordPress' own overlay spacing (large top padding and a 2em gap between links). */
	.kw-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed;
		inset: 0;
		z-index: 100000;
		display: flex;
		flex-direction: column;
		padding: 0.75rem var(--kw-gutter) 1.5rem;
		overflow: auto;
		visibility: visible;
		background-color: var(--kw-white);
		color: var(--kw-ink);
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: static;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 2.75rem;
		height: 2.75rem;
		margin: 0 -0.6rem 0 auto;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--kw-ink);
		cursor: pointer;
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
		width: 1.5rem;
		height: 1.5rem;
		fill: currentColor;
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: block;
		padding-top: 0.25rem;
	}

	/* The list carries the nav's own class (.kw-nav: justify-self) as well; keep it full width. */
	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		flex-direction: column;
		align-items: stretch;
		justify-self: stretch;
		width: 100%;
		gap: 0;
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		align-items: stretch;
		margin: 0;
		border-bottom: 1px solid var(--kw-line);
	}

	/* Same sans-serif as the header menu, 20px, ~20px between links. */
	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		padding-block: 0.625rem;
		font-family: var(--kw-font-body);
		font-size: 1.25rem;
		font-weight: 500;
		line-height: 1.3;
		letter-spacing: 0;
		color: var(--kw-ink);
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
		display: none;
	}

	/* The open menu's top-level titles as in the header row: Roboto Condensed 500 in capitals ("Κλείστε
	   ραντεβού" keeps its button style; the shop's category list keeps the body font). */
	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.kw-nav__cta-mobile) > .wp-block-navigation-item__content,
	.kw-nav .kw-shopnav__toggle {
		font-family: var(--kw-font-heading);
		font-size: 1.375rem;
		font-weight: var(--kw-subtitle-weight);
		letter-spacing: 0.06em;
		text-transform: uppercase;
	}

	/* "Κατάστημα" in the open menu: the compact list (kourtesis_mobile_shop_menu), closed until
	   tapped, instead of the desktop panel. */
	.kw-nav .wp-block-navigation__responsive-container.is-menu-open li.kw-mega {
		display: none;
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .kw-nav__shop-mobile {
		align-items: stretch;
	}

	.kw-shopnav {
		width: 100%;
	}

	.kw-shopnav__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding-block: 0.625rem;
		font-size: 1.25rem;
		font-weight: 500;
		line-height: 1.3;
		color: var(--kw-ink);
		list-style: none;
		cursor: pointer;
	}

	.kw-shopnav__toggle::-webkit-details-marker {
		display: none;
	}

	.kw-shopnav__toggle::after {
		content: "";
		flex: none;
		width: 1.25rem;
		height: 1.25rem;
		background-color: currentColor;
		-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
		mask: var(--kw-i-chevron) center / contain no-repeat;
		transition: transform 0.2s ease;
	}

	.kw-shopnav[open] > .kw-shopnav__toggle::after {
		transform: rotate(180deg);
	}

	.kw-shopnav__toggle:focus-visible {
		outline: 2px solid var(--kw-brand);
		outline-offset: 2px;
	}

	.kw-nav .kw-shopnav__list {
		display: flex;
		flex-direction: column;
		margin: 0 0 0.75rem;
		padding: 0 0 0 1rem;
		border-inline-start: 2px solid var(--kw-line);
		list-style: none;
	}

	.kw-nav .kw-shopnav__list li {
		margin: 0;
		border: 0;
	}

	.kw-nav .kw-shopnav__list a {
		display: block;
		padding: 0.55rem 0;
		font-size: 1.0625rem;
		line-height: 1.35;
		color: var(--kw-text);
		text-decoration: none;
	}

	.kw-nav .kw-shopnav__list a:hover {
		color: var(--kw-navy);
	}
}

/* ------------------------------------------------------------------ */
/* ≤ 1023px: tablet                                                    */
/* ------------------------------------------------------------------ */

@media (max-width: 1023.98px) {
	.kw-masthead__inner {
		grid-template-areas:
			"nav logo . icons cta"
			"search search search search search";
	}

	.kw-searchbar {
		padding-inline: 0;
	}

	.kw-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-topbar__address {
		display: none;
	}

	.kw-projects__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-projects__intro {
		max-width: 36rem;
	}

	/* Stacked under the introduction, the three photos get a taller crop. */
	.kw-project-card__media {
		aspect-ratio: 3 / 2;
	}

	.kw-trust__row {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		row-gap: 1.25rem;
	}

	.kw-trust__item {
		grid-column: span 2;
		justify-content: flex-start;
	}

	.kw-trust__item:nth-child(4) {
		grid-column: 2 / span 2;
	}

	.kw-trust__item:nth-child(3n + 1) {
		border-inline-start: 0;
	}

	.kw-reviews__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	/* One review under the other: no row to line up with, so no reserved quote height, and a short
	   review is not folded for its last few words (five lines before the button). */
	.kw-review__quote {
		min-height: 0;
	}

	.kw-review.is-clamped:not(.is-expanded) .kw-review__quote {
		-webkit-line-clamp: 5;
		line-clamp: 5;
	}

}

/* ------------------------------------------------------------------ */
/* ≤ 767px: mobile                                                     */
/* ------------------------------------------------------------------ */

@media (max-width: 767.98px) {
	.kw-topbar__tagline {
		display: none;
	}

	.kw-topbar__inner {
		justify-content: center;
		gap: 0.25rem 1.25rem;
	}

	.kw-masthead__inner {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas:
			"nav logo icons"
			"search search search";
	}

	.kw-header__cta {
		display: none !important;
	}

	.kw-header .kw-logo img {
		width: 7.75rem;
	}

	/* Compact telephone button at the end of the open menu. */
	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .kw-nav__cta-mobile {
		display: block;
		margin-top: 1.25rem;
		border-bottom: 0;
	}

	.kw-nav .wp-block-navigation__responsive-container.is-menu-open .kw-nav__cta-mobile .wp-block-navigation-item__content {
		display: inline-flex;
		align-items: center;
		padding: 0.7rem 1.15rem;
		border-radius: 3px;
		background-color: var(--kw-navy);
		color: var(--kw-white);
		font-size: 0.9375rem;
		font-weight: 500;
		line-height: 1.2;
	}

	.kw-hero {
		min-height: 30rem;
	}

	/* Portrait crop: keep the pool edge and the planting in view behind the text. */
	.kw-hero__media img {
		object-position: 72% 50%;
	}

	.kw-hero__media::after {
		background:
			linear-gradient(90deg, rgba(3, 27, 52, 0.6) 0%, rgba(3, 27, 52, 0.3) 100%),
			linear-gradient(0deg, rgba(3, 27, 52, 0.45) 0%, rgba(3, 27, 52, 0) 45%);
	}

	.kw-hero__signature {
		justify-content: flex-start;
	}

	.kw-hero__motto {
		display: none;
	}

	.kw-section__head {
		align-items: flex-start;
	}

	/* One large photo per row on phones. */
	.kw-projects__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	.kw-brands__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-brand:nth-child(n) {
		border-inline-start: 1px solid var(--kw-line);
		border-top: 1px solid var(--kw-line);
	}

	.kw-brand:nth-child(2n + 1) {
		border-inline-start: 0;
	}

	.kw-brand:nth-child(-n + 2) {
		border-top: 0;
	}

	.kw-trust__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-trust__item,
	.kw-trust__item:nth-child(4) {
		grid-column: auto;
		padding-inline: 0.5rem;
		border-inline-start: 0;
	}

	.kw-trust__item:last-child {
		grid-column: 1 / -1;
	}

}

/* ------------------------------------------------------------------ */
/* ≤ 479px: small phones                                               */
/* ------------------------------------------------------------------ */

@media (max-width: 479.98px) {
	.kw-topbar__email {
		display: none;
	}

	/* One compact card per row: photo on the left, name, price and button on the right. */
	:is(.kw-home, .kw-shop) .kw-products .wc-block-product-template {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.75rem;
	}

	:is(.kw-home, .kw-shop) .kw-products .wc-block-product {
		display: grid;
		grid-template-columns: 6.5rem minmax(0, 1fr);
		grid-template-rows: auto auto 1fr;
		gap: 0.25rem 0.9rem;
		padding: 0.75rem 0.9rem 0.75rem 0.75rem;
	}

	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__media {
		grid-row: 1 / span 3;
		align-self: center;
		margin: 0;
	}

	/* Name, a stock note ("Διαθέσιμο κατόπιν παραγγελίας") and the price row stay in the right column; a
	   stock note no longer pushes the price row under the photo. */
	:is(.kw-home, .kw-shop) .kw-products .wc-block-product > :not(.kw-product-card__media) {
		grid-column: 2;
	}

	/* WooCommerce writes the 4:3 ratio inline; a square suits the narrow photo column. */
	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__media img {
		aspect-ratio: 1 !important;
	}

	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__title {
		align-self: end;
		font-size: 0.9375rem;
	}

	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__footer {
		align-self: start;
		gap: 0.5rem;
		padding-top: 0.4rem;
	}

	:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-price {
		font-size: 1rem;
	}

	.kw-hero__actions .wp-block-button,
	.kw-hero__actions .wp-block-button__link {
		width: 100%;
		justify-content: space-between;
	}

	.kw-hero__actions {
		width: 100%;
	}

	/* Full-width quotation button: a large, easy tap target. */
	.kw-projects__actions,
	.kw-projects__actions .wp-block-button,
	.kw-projects__actions .wp-block-button__link {
		width: 100%;
	}

	.kw-projects__actions .wp-block-button__link {
		justify-content: space-between;
	}
}

/* Two narrow cards per row: the bottom row a little tighter (price, phone icon and cart on one row). */
@media (min-width: 480px) and (max-width: 639.98px) {
	:is(.kw-home, .kw-shop) .kw-products .kw-product-card__footer {
		gap: 0.5rem;
	}

	:is(.kw-home, .kw-shop) .kw-products .wc-block-components-product-price {
		font-size: 1rem;
	}
}

/* Narrowest phones: a slightly narrower photo column keeps a five-digit price ("20.900,00 €"), the phone
   icon and the cart button on one row. */
@media (max-width: 379.98px) {
	:is(.kw-home, .kw-shop) .kw-products .wc-block-product {
		grid-template-columns: 5.75rem minmax(0, 1fr);
	}
}

/* ------------------------------------------------------------------ */
/* Shop: catalogue, category, tag and brand archives, product search   */
/* (product cards reuse the Featured Products styles above).           */
/* ------------------------------------------------------------------ */

/* Shop-wide text and the promo banner belong to the first page of the main shop only. */
body:not(.woocommerce-shop) .kw-shop-only,
body.paged .kw-shop-only,
body.search .kw-shop-only {
	display: none !important;
}

.kw-shop-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-color: var(--kw-surface);
}

.kw-shop-hero__media {
	position: absolute !important;
	inset: 0;
	z-index: -1;
}

.kw-shop-hero__media img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: 50% 30%;
}

/* Light veil on the text side so navy type stays readable over the photo. */
.kw-shop-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.86) 30%, rgba(255, 255, 255, 0.25) 58%, rgba(255, 255, 255, 0) 72%);
}

.kw-shop-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.55rem;
	min-height: clamp(9.5rem, 13vw, 12.5rem);
	padding-block: clamp(1.25rem, 2.5vw, 2rem);
}

.kw-shop-hero .woocommerce-breadcrumb {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--kw-text);
}

.kw-shop-hero .kw-crumb-sep {
	margin-inline: 0.55em;
	color: var(--kw-muted);
}

.kw-shop-hero .woocommerce-breadcrumb a {
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-shop-hero .woocommerce-breadcrumb a:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kw-shop .kw-shop-hero__title {
	max-width: 22em;
	font-family: var(--kw-font-heading);
	font-size: var(--wp--preset--font-size--x-large, 2.375rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-shop-hero__lead {
	max-width: 32rem;
	font-size: clamp(1rem, 1.2vw, 1.125rem);
	line-height: 1.5;
	color: var(--kw-text);
}

/* Category teaser under the title (first page only, inc/category-content.php): the description's first
   paragraph clamped to two lines (three on phones), and «Περισσότερα» to the full text below. */
.kw-shop .kw-cat-teaser {
	position: relative;
	z-index: 0;
	max-width: 40rem;
	margin-top: 0.75rem;
}

/* A soft light glow behind the teaser only, so it stays readable where it reaches past the hero's veil
   onto the photo (tablet widths); blurred, so it has no visible edge. */
.kw-shop .kw-cat-teaser::before {
	content: "";
	position: absolute;
	inset: -0.5rem -1.5rem -0.5rem -1rem;
	z-index: -1;
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.62);
	filter: blur(14px);
	pointer-events: none;
}

.kw-shop .kw-cat-teaser__text {
	display: -webkit-box;
	max-width: none;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.kw-shop .kw-cat-teaser__more {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.35rem;
	font-weight: 600;
	color: var(--kw-brand);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.kw-shop .kw-cat-teaser__more::after {
	content: "↓";
	text-decoration: none;
}

.kw-shop .kw-cat-teaser__more:hover {
	color: var(--kw-navy);
}

html:has(#kw-cat-content) {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html:has(#kw-cat-content) {
		scroll-behavior: auto;
	}
}

/* Category text under the products (first page only): the full width of the site container, with the
   article typography of the site. */
.kw-shop .kw-cat-content {
	border-top: 1px solid var(--kw-line);
	background: var(--kw-surface);
}

.kw-shop .kw-cat-content__inner {
	padding-block: var(--kw-section-space);
}

.kw-shop .kw-cat-content__body {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--kw-text);
}

.kw-shop .kw-cat-content__body > * {
	margin: 0 0 1.25rem;
}

.kw-shop .kw-cat-content__body > :last-child {
	margin-bottom: 0;
}

.kw-shop .kw-cat-content__body > h2 {
	margin: 0 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.2;
	color: var(--kw-ink);
}

.kw-shop .kw-cat-content__body > h2:not(:first-child) {
	margin-top: clamp(2rem, 4vw, 2.75rem);
}

.kw-shop .kw-cat-content__body > :is(h3, h4) {
	margin: 1.75rem 0 0.75rem;
	font-family: var(--kw-font-heading);
	font-size: 1.3125rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.3;
	color: var(--kw-ink);
}

.kw-shop .kw-cat-content__body :is(strong, b) {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-shop .kw-cat-content__body a {
	color: var(--kw-brand);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.kw-shop .kw-cat-content__body a:hover {
	color: var(--kw-navy);
}

.kw-shop .kw-cat-content__body img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--kw-radius-md);
}

.kw-shop .kw-cat-content__body > :is(ul, ol) {
	padding-inline-start: 1.25rem;
}

@media (max-width: 600px) {
	.kw-shop .kw-cat-content__body {
		font-size: 1rem;
		line-height: 1.7;
	}

	.kw-shop .kw-cat-teaser__text {
		-webkit-line-clamp: 3;
		line-clamp: 3;
	}
}

/* Filter sidebar (320–344px) beside the results. */
.kw-shop .kw-shop__body {
	display: grid;
	grid-template-columns: clamp(20rem, 23vw, 21.5rem) minmax(0, 1fr);
	align-items: start;
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	padding-block: clamp(1.5rem, 3vw, 2.5rem) var(--kw-section-space);
}

.kw-shop .kw-shop__sidebar {
	min-width: 0;
}

.kw-catnav {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.kw-shop .kw-catnav__title,
.kw-shop .kw-filters__title {
	font-family: var(--kw-font-heading);
	font-size: 1.25rem;
	font-weight: var(--kw-title-weight);
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-catnav__group {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.kw-catnav__group + .kw-catnav__group {
	margin-top: 0.4rem;
}

.kw-catnav__group-title a,
.kw-catnav__current {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-catnav__group-title a:hover {
	color: var(--kw-brand);
}

.kw-catnav__back a {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-size: 0.8125rem;
	color: var(--kw-muted);
	text-decoration: none;
}

.kw-catnav__back a::before {
	content: "";
	width: 0.9em;
	height: 0.9em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transform: scaleX(-1);
}

.kw-catnav__back a:hover {
	color: var(--kw-ink);
}

.kw-catnav__list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-catnav__item a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.32rem 0;
	font-size: 0.875rem;
	line-height: 1.35;
	color: var(--kw-text);
	text-decoration: none;
}

.kw-catnav__item a:hover,
.kw-catnav__item.is-current a {
	color: var(--kw-ink);
}

.kw-catnav__item.is-current a {
	font-weight: 600;
}

.kw-catnav__count {
	flex: none;
	font-size: 0.75rem;
	color: var(--kw-muted);
}

.kw-catnav__more summary {
	padding: 0.32rem 0;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--kw-brand);
	cursor: pointer;
}

/* Shop filters ([kw_shop_filters], inc/shop-filters.php, assets/js/shop-filters.js): a column on
   desktop; below 1024px a "Φίλτρα" button that opens the same panel as a drawer. */
.kw-filters {
	--kw-filter-pad: 1.375rem;
	--kw-i-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
	--kw-i-sliders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M4 7h9M17 7h3M4 17h3M11 17h9'/%3E%3Ccircle cx='15' cy='7' r='2'/%3E%3Ccircle cx='9' cy='17' r='2'/%3E%3C/svg%3E");
	color: var(--kw-text);
}

.kw-filters__bar,
.kw-filters__close,
.kw-filters__backdrop {
	display: none;
}

.kw-filters__panel {
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
}

.kw-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.125rem var(--kw-filter-pad) 1rem;
	border-bottom: 1px solid var(--kw-line);
}

.kw-shop .kw-filters__title {
	margin: 0;
}

/* Active choices: removable chips and "clear all". */
.kw-filters__active {
	margin-bottom: 1rem;
	padding: 1rem var(--kw-filter-pad) 1.1rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface);
}

.kw-filters__active-title {
	margin: 0 0 0.65rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-filters__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-filters__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.35rem 0.55rem 0.35rem 0.75rem;
	border: 1px solid var(--kw-line);
	border-radius: 999px;
	background: var(--kw-white);
	font-size: 0.8125rem;
	line-height: 1.3;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-filters__chip::after {
	content: "";
	flex: none;
	width: 0.8rem;
	height: 0.8rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-close) center / contain no-repeat;
	mask: var(--kw-i-close) center / contain no-repeat;
}

.kw-filters__chip:hover {
	border-color: var(--kw-navy);
	color: var(--kw-navy);
}

.kw-filters__clear-all {
	display: inline-block;
	margin-top: 0.75rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-brand);
	text-underline-offset: 0.2em;
}

/* Sections: native disclosures with a chevron. */
.kw-filter {
	border-bottom: 1px solid var(--kw-line);
}

.kw-filter:last-child {
	border-bottom: 0;
}

.kw-filter__head {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 1rem var(--kw-filter-pad);
	font-family: var(--kw-font-heading);
	font-size: 1.0625rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.3;
	color: var(--kw-ink);
	list-style: none;
	cursor: pointer;
}

.kw-filter__head::-webkit-details-marker {
	display: none;
}

.kw-filter__head::after {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-left: auto;
	background-color: var(--kw-muted);
	-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
	mask: var(--kw-i-chevron) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-filter[open] > .kw-filter__head::after {
	transform: rotate(180deg);
}

.kw-filter__head:hover {
	color: var(--kw-brand);
}

.kw-filter__head:focus-visible,
.kw-filter__more > summary:focus-visible {
	outline: 2px solid var(--kw-navy);
	outline-offset: -2px;
}

.kw-filter__name {
	min-width: 0;
}

/* A closed section with choices names them on a second line under its title. */
.kw-filter__head:has(.kw-filter__picked) {
	flex-wrap: wrap;
	row-gap: 0.2rem;
}

.kw-filter__picked {
	order: 3;
	flex: 1 0 100%;
	min-width: 0;
	overflow: hidden;
	font-family: var(--kw-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.35;
	color: var(--kw-brand);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.kw-filter[open] > .kw-filter__head .kw-filter__picked {
	display: none;
}

.kw-filter__chosen,
.kw-filters__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	min-width: 1.35rem;
	height: 1.35rem;
	padding: 0 0.4rem;
	border-radius: 999px;
	background: var(--kw-navy);
	font-family: var(--kw-font-body, inherit);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1;
	color: var(--kw-white);
}

.kw-filter__body {
	padding: 0 var(--kw-filter-pad) 1.125rem;
}

.kw-filter__options,
.kw-filter__cats,
.kw-filter__subcats {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-filter__option label,
.kw-filter__cat {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	padding: 0.4rem 0;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--kw-text);
	text-decoration: none;
	cursor: pointer;
}

.kw-filter__option input[type="checkbox"] {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0.1rem 0 0;
	accent-color: var(--kw-navy);
	cursor: pointer;
}

.kw-filter__label {
	flex: 1;
	min-width: 0;
	overflow-wrap: anywhere;
}

.kw-filter__count {
	flex: none;
	min-width: 1.75rem;
	margin-top: 0.05rem;
	padding: 0.1rem 0.45rem;
	border-radius: 999px;
	background: var(--kw-surface);
	font-size: 0.75rem;
	line-height: 1.3;
	text-align: center;
	color: var(--kw-muted);
}

.kw-filter__option label:hover .kw-filter__label,
.kw-filter__cat:hover .kw-filter__label {
	color: var(--kw-ink);
}

.kw-filter__option input:checked + .kw-filter__label,
.kw-filter__cat.is-current {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-filter__more > summary {
	display: inline-block;
	padding: 0.45rem 0 0.15rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-brand);
	list-style: none;
	cursor: pointer;
}

.kw-filter__more > summary::-webkit-details-marker {
	display: none;
}

.kw-filter__more[open] > summary {
	color: var(--kw-muted);
}

/* Categories: departments with their categories; on a category, the way back and its sub-categories. */
.kw-filter__cats--depts > li + li {
	margin-top: 0.5rem;
}

.kw-filter__cats--depts > li > .kw-filter__cat {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-filter__subcats {
	margin: 0.1rem 0 0 0.3rem;
	padding-left: 0.85rem;
	border-left: 1px solid var(--kw-line);
}

.kw-filter__back {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	margin-bottom: 0.4rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
	text-decoration: none;
}

.kw-filter__back::before {
	content: "";
	width: 0.9em;
	height: 0.9em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transform: scaleX(-1);
}

.kw-filter__back:hover {
	color: var(--kw-ink);
}

.kw-filter__current {
	margin: 0.15rem 0 0.2rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--kw-ink);
}

/* Price: two-handle slider (with JavaScript) and from/to boxes. */
.kw-price {
	--kw-from: 0%;
	--kw-to: 100%;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

.kw-price__slider {
	position: relative;
	height: 1.25rem;
	margin: 0.3rem 0.5625rem 0;
}

html:not(.kw-js) .kw-filters .kw-price__slider {
	display: none;
}

.kw-price__track {
	position: absolute;
	inset: 50% 0 auto;
	height: 4px;
	margin-top: -2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--kw-line) var(--kw-from), var(--kw-navy) var(--kw-from), var(--kw-navy) var(--kw-to), var(--kw-line) var(--kw-to));
}

.kw-price__range {
	position: absolute;
	inset: 0 -0.5625rem;
	width: calc(100% + 1.125rem);
	height: 100%;
	margin: 0;
	background: none;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}

.kw-price__range::-webkit-slider-runnable-track {
	background: none;
}

.kw-price__range::-moz-range-track {
	background: none;
}

.kw-price__range::-webkit-slider-thumb {
	width: 1.125rem;
	height: 1.125rem;
	border: 2px solid var(--kw-white);
	border-radius: 50%;
	background: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy), 0 1px 3px rgba(11, 31, 69, 0.25);
	pointer-events: auto;
	cursor: grab;
	-webkit-appearance: none;
	appearance: none;
}

.kw-price__range::-moz-range-thumb {
	width: 0.875rem;
	height: 0.875rem;
	border: 2px solid var(--kw-white);
	border-radius: 50%;
	background: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy), 0 1px 3px rgba(11, 31, 69, 0.25);
	pointer-events: auto;
	cursor: grab;
}

.kw-price__fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: end;
	gap: 0.5rem;
}

.kw-price__field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.kw-price__caption {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-price__box {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	height: 2.625rem;
	padding: 0 0.7rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
}

.kw-price__box:focus-within {
	border-color: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy);
}

.kw-price__box input {
	width: 100%;
	min-width: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 0.9375rem;
	color: var(--kw-ink);
	outline: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}

.kw-price__box input::-webkit-outer-spin-button,
.kw-price__box input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.kw-price__unit {
	font-size: 0.875rem;
	color: var(--kw-muted);
}

.kw-price__dash {
	padding-bottom: 0.65rem;
	color: var(--kw-muted);
}

.kw-price__apply {
	height: 2.5rem;
	border: 1px solid var(--kw-navy);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	font: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-navy);
	cursor: pointer;
}

.kw-price__apply:hover {
	background: var(--kw-navy);
	color: var(--kw-white);
}

/* Apply / clear (drawer, or without JavaScript). */
.kw-filters__actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem var(--kw-filter-pad) 1.25rem;
	border-top: 1px solid var(--kw-line);
}

.kw-filters__apply {
	flex: 1;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	border: 0;
	border-radius: var(--kw-radius-sm);
	background: var(--kw-navy);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--kw-white);
	cursor: pointer;
}

.kw-filters__apply:hover {
	background: var(--kw-brand);
}

.kw-filters__reset {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-brand);
	text-underline-offset: 0.2em;
}

/* While the next filtered page loads. */
.kw-filters.is-loading .kw-filters__panel,
.kw-shop .kw-shop__results.is-loading {
	opacity: 0.55;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.kw-shop__empty-reset {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.5rem 1.25rem;
	border-radius: var(--kw-radius-sm);
	background: var(--kw-navy);
	font-weight: 600;
	color: var(--kw-white);
	text-decoration: none;
}

.kw-shop__empty-reset:hover {
	background: var(--kw-brand);
	color: var(--kw-white);
}

@media (min-width: 1024px) {
	/* Choices apply at once on desktop: no "Εφαρμογή", and "clear all" sits with the active chips. */
	.kw-js .kw-filters .kw-filters__actions {
		display: none;
	}
}

/* Results column. */
.kw-shop .kw-shop__results {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}

.kw-shop-promo {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: clamp(9rem, 12vw, 11.5rem);
	padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 3vw, 2.75rem);
	overflow: hidden;
	border-radius: var(--kw-radius-md);
	background-color: var(--kw-surface);
}

.kw-shop-promo__media {
	position: absolute !important;
	inset: 0;
	z-index: -1;
}

.kw-shop-promo__media img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: 60% 62%;
}

.kw-shop-promo__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.82) 38%, rgba(255, 255, 255, 0) 70%);
}

.kw-shop-promo__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.6rem;
	max-width: 28rem;
}

.kw-shop .kw-shop-promo__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.375rem, 2vw, 1.875rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.15;
	color: var(--kw-ink);
}

.kw-shop .kw-shop__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
}

.kw-shop .woocommerce-result-count {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--kw-text);
}

.kw-shop .woocommerce-ordering {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
}

.kw-shop .woocommerce-ordering::before {
	content: "Ταξινόμηση:";
	font-size: 0.875rem;
	color: var(--kw-text);
}

.kw-shop .woocommerce-ordering select {
	height: 2.75rem;
	padding: 0 2.4rem 0 0.9rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1f45' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.8rem center / 1rem;
	font: inherit;
	font-size: 0.875rem;
	color: var(--kw-ink);
	appearance: none;
	cursor: pointer;
}

/* Stock line on shop cards: only when a product is not simply in stock. */
.kw-shop .kw-product-card__stock {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.3;
	text-align: start;
}

.kw-shop .kw-product-card__stock .wc-block-components-product-stock-indicator--in-stock,
.kw-shop .kw-product-card__stock.wc-block-components-product-stock-indicator--in-stock {
	display: none;
}

.kw-shop :is(.wc-block-components-product-stock-indicator--out-of-stock, .kw-product-card__stock .wc-block-components-product-stock-indicator--out-of-stock) {
	color: #a23b2a;
}

.kw-shop :is(.wc-block-components-product-stock-indicator--available-on-backorder, .kw-product-card__stock .wc-block-components-product-stock-indicator--available-on-backorder) {
	color: var(--kw-muted);
}

/* Pagination: square boxes, current page in navy. */
.kw-shop .wp-block-query-pagination {
	gap: 0.45rem;
	margin-top: 1.5rem;
}

.kw-shop .wp-block-query-pagination-numbers {
	display: flex;
	gap: 0.45rem;
}

.kw-shop .wp-block-query-pagination :is(.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0 0.5rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-shop .wp-block-query-pagination a:hover {
	border-color: var(--kw-navy);
}

.kw-shop .wp-block-query-pagination .page-numbers.current {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-shop .wp-block-query-pagination .page-numbers.dots {
	border: 0;
	background: none;
}

/* Previous/next: chevron only; the text stays for screen readers. */
.kw-shop :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next) {
	font-size: 0 !important;
}

.kw-shop :is(.wp-block-query-pagination-previous-arrow, .wp-block-query-pagination-next-arrow) {
	margin: 0 !important;
	font-size: 1.25rem;
	line-height: 1;
}

.kw-shop .kw-shop__empty {
	padding: 2rem 1.5rem;
	border: 1px dashed var(--kw-line);
	border-radius: var(--kw-radius-md);
	font-size: 0.9375rem;
	text-align: center;
	color: var(--kw-text);
}

.kw-shop .kw-trust {
	margin-top: 0;
}

/* Beside the filter sidebar the results column decides: four products per row from about 1250px screens
   (1280px laptops included), three on smaller laptops, two on the narrowest, so cards never get
   squeezed. Up to about 1380px the four cards are narrower, so their padding, gaps and price are a
   little tighter; photo, title, price and button keep the same layout. */
@media (min-width: 1024px) {
	.kw-shop .kw-shop__results {
		container: kw-shop-results / inline-size;
	}

	.kw-shop .kw-shop__results .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	@container kw-shop-results (min-width: 40rem) {
		.kw-shop .kw-shop__results .wc-block-product-template {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}
	}

	@container kw-shop-results (min-width: 52rem) {
		.kw-shop .kw-shop__results .wc-block-product-template {
			grid-template-columns: repeat(4, minmax(0, 1fr));
		}
	}

	@container kw-shop-results (min-width: 52rem) and (max-width: 59.99rem) {
		.kw-shop .kw-shop__results .wc-block-product-template {
			gap: 1rem;
		}

		.kw-shop .kw-shop__results .wc-block-product {
			padding: 0.875rem 0.875rem 1rem;
		}

		.kw-shop .kw-shop__results .kw-product-card__media {
			margin-bottom: 0.6rem;
		}

		.kw-shop .kw-shop__results .kw-product-card__footer {
			gap: 0.5rem;
		}

		.kw-shop .kw-shop__results .wc-block-components-product-price {
			font-size: 1rem;
		}
	}

	/* The narrowest three- and four-card rows: phone icon and cart button a little smaller (both the
	   same), so price, phone and cart share one row. */
	@container kw-shop-results ((min-width: 40rem) and (max-width: 46.99rem)) or ((min-width: 52rem) and (max-width: 59.99rem)) {
		.kw-shop .kw-shop__results .wc-block-product {
			padding: 0.875rem 0.75rem 1rem;
		}

		.kw-shop .kw-shop__results .kw-product-card__footer {
			gap: 0.5rem;
		}

		.kw-shop .kw-shop__results .wc-block-components-product-price {
			font-size: 1rem;
		}

		.kw-shop .kw-shop__results .kw-product-card__cart :is(.kw-product-card__phone, .wp-block-button__link) {
			width: 2.25rem;
			height: 2.25rem;
		}

		.kw-shop .kw-shop__results .kw-product-card__cart.kw-product-card__cart--phone {
			column-gap: 0.375rem;
		}
	}

	/* Four cards on screens up to about 1500px: price and gap a little smaller for five-digit prices. */
	@container kw-shop-results (min-width: 60rem) and (max-width: 63.99rem) {
		.kw-shop .kw-shop__results .kw-product-card__footer {
			gap: 0.5rem;
		}

		.kw-shop .kw-shop__results .wc-block-components-product-price {
			font-size: 1rem;
		}
	}
}

/* Shop category navigation ([kw_category_strip], assets/js/catrow.js): one row under the page banner.
   The shop shows only the two departments, as large photo links. A category page shows a link back to
   them, then one row of categories that scrolls instead of wrapping (the current one in navy, its own
   sub-categories grouped right after it) and the arrows. */
.kw-shop .kw-shop__cats {
	padding-top: clamp(1.25rem, 2.4vw, 2rem);
}

.kw-shop .kw-shop__cats:not(:has(.kw-catrow)) {
	display: none;
}

.kw-catrow {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "back track arrows";
	align-items: center;
	column-gap: 0.75rem;
	padding: 0.5rem;
	border: 1px solid var(--kw-line);
	border-radius: 16px;
	background: var(--kw-surface);
}

.kw-catrow ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-catrow__start {
	grid-area: back;
	display: flex;
}

.kw-catrow__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	box-sizing: border-box;
	min-height: 2.75rem;
	padding: 0 1.1rem 0 0.9rem;
	border: 1px solid var(--kw-line);
	border-radius: 999px;
	background: var(--kw-white);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--kw-navy);
	text-decoration: none;
	transition: border-color 0.18s ease, color 0.18s ease;
}

.kw-catrow__back::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transform: scaleX(-1);
	transition: transform 0.18s ease;
}

.kw-catrow__back:hover {
	border-color: #a9bdd4;
	color: var(--kw-brand);
}

.kw-catrow__back:hover::before {
	transform: scaleX(-1) translateX(2px);
}

.kw-catrow__back-short {
	display: none;
}

/* The row: scrolls sideways (touch, trackpad, arrows), never wraps; the edges fade where more
   categories wait. */
.kw-catrow__track {
	grid-area: track;
	position: relative;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-padding-inline: 0.25rem; /* The list's own padding: the row rests at its true start. */
	scroll-snap-type: x proximity;
	scrollbar-width: none;
}

.kw-catrow__track::-webkit-scrollbar {
	display: none;
}

.kw-catrow.can-next .kw-catrow__track {
	-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent);
	mask-image: linear-gradient(90deg, #000 calc(100% - 3rem), transparent);
}

.kw-catrow.can-prev .kw-catrow__track {
	-webkit-mask-image: linear-gradient(270deg, #000 calc(100% - 3rem), transparent);
	mask-image: linear-gradient(270deg, #000 calc(100% - 3rem), transparent);
}

.kw-catrow.can-prev.can-next .kw-catrow__track {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 3rem, #000 calc(100% - 3rem), transparent);
}

.kw-catrow .kw-catrow__list {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: max-content;
	padding: 0.25rem;
}

.kw-catrow__item {
	flex: none;
	scroll-snap-align: start;
}

.kw-catrow__link {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	box-sizing: border-box;
	min-height: 2.75rem;
	padding: 0.25rem 0.45rem 0.25rem 0.3rem;
	border: 1px solid var(--kw-line);
	border-radius: 999px;
	background: var(--kw-white);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--kw-navy);
	text-decoration: none;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.kw-catrow__thumb {
	flex: none;
	width: 2.125rem;
	height: 2.125rem;
	overflow: hidden;
	isolation: isolate;
	border-radius: 50%;
	background: #edf2f8;
}

.kw-catrow .kw-catrow__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: multiply;
}

.kw-catrow__all {
	margin-right: 0.45em;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kw-brand);
}

.kw-catrow__count {
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	background: var(--kw-surface);
	font-size: 0.75rem;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	color: var(--kw-muted);
}

.kw-catrow__link:hover {
	border-color: #a9bdd4;
	box-shadow: 0 10px 20px -16px rgba(2, 44, 78, 0.6);
}

.kw-catrow__link.is-current {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
	color: var(--kw-white);
	box-shadow: 0 10px 20px -14px rgba(2, 44, 78, 0.75);
}

.kw-catrow__link.is-current .kw-catrow__count {
	background: rgba(255, 255, 255, 0.16);
	color: var(--kw-white);
}

.kw-catrow__link.is-current .kw-catrow__all {
	color: #bcd3ea;
}

.kw-catrow__link.is-current .kw-catrow__thumb {
	background: var(--kw-white);
}

/* The current category's own sub-categories, grouped with it. */
.kw-catrow__item.is-open {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.2rem 0.4rem 0.2rem 0.2rem;
	border-radius: 999px;
	background: #e2eaf4;
}

.kw-catrow__current {
	display: flex;
}

.kw-catrow .kw-catrow__sub {
	display: flex;
	gap: 0.35rem;
}

.kw-catrow__link--sub {
	min-height: 2.375rem;
	padding: 0.2rem 0.35rem 0.2rem 0.85rem;
	font-size: 0.875rem;
	font-weight: 500;
}

.kw-catrow__arrows {
	grid-area: arrows;
	display: flex;
	gap: 0.4rem;
}

.kw-catrow:not(.has-overflow) .kw-catrow__arrows {
	display: none;
}

.kw-catrow__arrow {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid var(--kw-line);
	border-radius: 50%;
	background: var(--kw-white);
	color: var(--kw-navy);
	cursor: pointer;
	transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

.kw-catrow__arrow::before {
	content: "";
	width: 1.125rem;
	height: 1.125rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
	mask: var(--kw-i-chevron) center / contain no-repeat;
	transform: rotate(90deg);
}

.kw-catrow__arrow--next::before {
	transform: rotate(-90deg);
}

.kw-catrow__arrow:hover:not(:disabled) {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-catrow__arrow:disabled {
	opacity: 0.38;
	cursor: default;
}

/* The shop: the two departments. */
.kw-catrow--depts {
	display: block;
	padding: 0.6rem;
}

.kw-catrow .kw-catrow__depts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.6rem;
}

.kw-catrow__dept-item {
	min-width: 0;
}

.kw-catrow__dept {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	box-sizing: border-box;
	height: 100%;
	padding: 0.75rem 1.25rem 0.75rem 0.75rem;
	border: 1px solid var(--kw-line);
	border-radius: 14px;
	background: var(--kw-white);
	color: var(--kw-navy);
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.kw-catrow__dept-media {
	flex: none;
	width: 5rem;
	height: 5rem;
	overflow: hidden;
	isolation: isolate;
	border-radius: 12px;
	background: #edf2f8;
}

.kw-catrow .kw-catrow__dept-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: multiply;
	transition: transform 0.3s ease;
}

.kw-catrow__dept-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.kw-catrow__dept-name {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.375rem, 1.6vw, 1.625rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.15;
}

.kw-catrow__dept-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.4em;
	font-size: 0.875rem;
	font-variant-numeric: tabular-nums;
	color: var(--kw-muted);
}

.kw-catrow__dept-meta span + span::before {
	content: "·";
	margin-right: 0.4em;
}

.kw-catrow__dept-cta {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1rem;
	border: 1px solid var(--kw-line);
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.kw-catrow__dept-cta::after {
	content: "";
	width: 1rem;
	height: 1rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
}

.kw-catrow__dept:hover {
	border-color: #a9bdd4;
	box-shadow: 0 18px 34px -22px rgba(2, 44, 78, 0.5);
	transform: translateY(-2px);
}

.kw-catrow__dept:hover .kw-catrow__dept-img {
	transform: scale(1.06);
}

.kw-catrow__dept:hover .kw-catrow__dept-cta {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
	color: var(--kw-white);
}

:is(.kw-catrow__back, .kw-catrow__link, .kw-catrow__arrow, .kw-catrow__dept):focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* Phones: the back link and the arrows above the row, so the row has the full width; the departments
   side by side. */
@media (max-width: 767.98px) {
	.kw-catrow {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "back arrows" "track track";
		row-gap: 0.45rem;
		padding: 0.45rem;
	}

	.kw-catrow__back {
		min-height: 2.5rem;
		padding: 0 0.95rem 0 0.8rem;
	}

	.kw-catrow__back-long {
		display: none;
	}

	/* Shorter fades, so the current category (scrolled to the start) stays crisp. */
	.kw-catrow.can-next .kw-catrow__track {
		-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 1.5rem), transparent);
		mask-image: linear-gradient(90deg, #000 calc(100% - 1.5rem), transparent);
	}

	.kw-catrow.can-prev .kw-catrow__track {
		-webkit-mask-image: linear-gradient(270deg, #000 calc(100% - 1rem), transparent);
		mask-image: linear-gradient(270deg, #000 calc(100% - 1rem), transparent);
	}

	.kw-catrow.can-prev.can-next .kw-catrow__track {
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 1rem, #000 calc(100% - 1.5rem), transparent);
		mask-image: linear-gradient(90deg, transparent, #000 1rem, #000 calc(100% - 1.5rem), transparent);
	}

	.kw-catrow__back-short {
		display: inline;
	}

	.kw-catrow__link {
		gap: 0.5rem;
		min-height: 2.5rem;
		font-size: 0.875rem;
	}

	.kw-catrow__thumb {
		width: 1.875rem;
		height: 1.875rem;
	}

	.kw-catrow--depts {
		padding: 0.45rem;
	}

	.kw-catrow .kw-catrow__depts {
		gap: 0.45rem;
	}

	.kw-catrow__dept {
		position: relative;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.6rem;
		padding: 0.65rem 0.75rem 0.8rem;
	}

	.kw-catrow__dept-media {
		width: 3.5rem;
		height: 3.5rem;
		border-radius: 10px;
	}

	.kw-catrow__dept-name {
		font-size: 1.25rem;
	}

	.kw-catrow__dept-meta {
		flex-direction: column;
		font-size: 0.8125rem;
	}

	.kw-catrow__dept-meta span + span::before {
		content: none;
	}

	.kw-catrow__dept-cta {
		position: absolute;
		top: 0.65rem;
		right: 0.65rem;
		justify-content: center;
		width: 2.25rem;
		height: 2.25rem;
		padding: 0;
	}

	.kw-catrow__dept-cta span {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kw-catrow__dept,
	.kw-catrow__dept:hover {
		transform: none;
	}
}

/* Product pages ([kw_product_explore]): further category tiles under "Περισσότερες κατηγορίες". */
.kw-discover__more > summary {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.2rem 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-brand);
	list-style: none;
	cursor: pointer;
}

.kw-discover__more > summary::-webkit-details-marker {
	display: none;
}

.kw-discover__more > summary::after {
	content: "";
	width: 1rem;
	height: 1rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
	mask: var(--kw-i-chevron) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-discover__more[open] > summary::after {
	transform: rotate(180deg);
}

.kw-discover__more > summary:hover {
	color: var(--kw-navy);
}

.kw-discover__more:not([open]) .kw-discover__more-close,
.kw-discover__more[open] .kw-discover__more-open {
	display: none;
}

.kw-discover__more[open] > .kw-cattiles {
	margin-top: 0.75rem;
}

.kw-discover__more > summary:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* Category tiles (product pages): the shop's category photo on a soft tint (its white background
   blends in; the photos are clean product shots, shown whole), the name and the count. */
.kw-cattiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.9rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-cattiles__item {
	min-width: 0;
	margin: 0;
}

.kw-cattile {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.1rem;
	box-sizing: border-box;
	height: 100%;
	min-height: 6.25rem;
	padding: 0.7rem 3rem 0.7rem 0.7rem;
	border: 1px solid var(--kw-line);
	border-radius: 14px;
	background: var(--kw-white);
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.kw-cattile__media {
	flex: none;
	width: 4.85rem;
	height: 4.85rem;
	overflow: hidden;
	isolation: isolate;
	border-radius: 10px;
	background: #edf2f8;
}

.kw-cattile .kw-cattile__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: multiply;
	transition: transform 0.3s ease;
}

.kw-cattile__body {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 0;
}

.kw-cattile__eyebrow {
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kw-brand);
}

.kw-cattile__name {
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-navy);
}

.kw-cattile__count {
	font-size: 0.8125rem;
	font-variant-numeric: tabular-nums;
	color: var(--kw-muted);
}

.kw-cattile__arrow {
	position: absolute;
	top: 50%;
	right: 1.15rem;
	width: 1rem;
	height: 1rem;
	margin-top: -0.5rem;
	background-color: var(--kw-navy);
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	opacity: 0.3;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.kw-cattile:hover {
	border-color: #a9bdd4;
	box-shadow: 0 16px 30px -20px rgba(2, 44, 78, 0.45);
	transform: translateY(-2px);
}

.kw-cattile:hover .kw-cattile__media .kw-cattile__img {
	transform: scale(1.06);
}

.kw-cattile:hover .kw-cattile__arrow {
	opacity: 1;
	transform: translateX(2px);
}

.kw-cattile.is-current {
	border-color: var(--kw-navy);
	background: var(--kw-surface);
	box-shadow: inset 0 0 0 1px var(--kw-navy);
}

.kw-cattile.is-current .kw-cattile__arrow {
	opacity: 0;
}

.kw-cattile:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

@media (max-width: 1023.98px) {
	.kw-cattiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Phones: the first tiles in one scrolling row; further categories listed. */
@media (max-width: 767.98px) {
	.kw-explore .kw-container > .kw-cattiles {
		grid-auto-columns: minmax(14.5rem, 78%);
		grid-auto-flow: column;
		grid-template-columns: none;
		padding-bottom: 0.4rem;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scrollbar-width: thin;
	}

	.kw-explore .kw-container > .kw-cattiles .kw-cattiles__item {
		scroll-snap-align: start;
	}

	.kw-discover__more .kw-cattiles {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-cattile {
		padding-right: 0.9rem;
	}

	.kw-cattile__arrow {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kw-cattile,
	.kw-cattile:hover {
		transform: none;
	}
}

@media (max-width: 1023.98px) {
	.kw-shop .kw-shop__body {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-catnav__group {
		gap: 0.25rem;
	}

	.kw-catnav__list {
		flex-direction: row;
		gap: 0.5rem;
		padding-bottom: 0.25rem;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scrollbar-width: thin;
	}

	.kw-catnav__item a {
		padding: 0.45rem 0.75rem;
		border: 1px solid var(--kw-line);
		border-radius: 999px;
		background: var(--kw-white);
		white-space: nowrap;
	}

	.kw-catnav__item.is-current a {
		border-color: var(--kw-navy);
	}

	.kw-catnav__more summary {
		display: inline-block;
		margin-top: 0.4rem;
	}
}

/* Phones and tablets: a "Φίλτρα" button (and the active chips) above the products; the panel opens as a
   drawer over the whole page, header and mini-cart included. Without JavaScript the panel stays in
   place above the products. */
@media (max-width: 1023.98px) {
	.kw-filters {
		--kw-filter-pad: 1.25rem;
	}

	.kw-js .kw-filters .kw-filters__bar {
		display: flex;
	}

	.kw-filters__toggle {
		display: inline-flex;
		align-items: center;
		gap: 0.55rem;
		min-height: 2.75rem;
		padding: 0.5rem 1.15rem;
		border: 1px solid var(--kw-navy);
		border-radius: var(--kw-radius-sm);
		background: var(--kw-white);
		font: inherit;
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--kw-navy);
		cursor: pointer;
	}

	.kw-filters__toggle:hover {
		background: var(--kw-surface);
	}

	.kw-filters__toggle-icon {
		width: 1.15rem;
		height: 1.15rem;
		background-color: currentColor;
		-webkit-mask: var(--kw-i-sliders) center / contain no-repeat;
		mask: var(--kw-i-sliders) center / contain no-repeat;
	}

	.kw-filters__active {
		margin: 0.75rem 0 0;
		padding: 0;
		border: 0;
		background: none;
	}

	.kw-filters__active-title {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}

	.kw-filters__clear-all {
		margin-top: 0.6rem;
	}

	html:not(.kw-js) .kw-filters .kw-filters__panel {
		margin-top: 1rem;
	}

	.kw-js .kw-filters .kw-filters__panel {
		position: fixed;
		inset: 0 auto 0 0;
		z-index: 100011;
		display: flex;
		flex-direction: column;
		width: min(100%, 26rem);
		border: 0;
		border-radius: 0;
		box-shadow: 0 0 40px rgba(11, 31, 69, 0.18);
		visibility: hidden;
		transform: translateX(-100%);
		transition: transform 0.25s ease, visibility 0s linear 0.25s;
	}

	.kw-js .kw-filters.is-open .kw-filters__panel {
		visibility: visible;
		transform: none;
		transition: transform 0.25s ease;
	}

	.kw-filters.is-open .kw-filters__backdrop {
		position: fixed;
		inset: 0;
		z-index: 100010;
		display: block;
		background: rgba(11, 31, 69, 0.45);
	}

	.kw-filters .kw-filters__backdrop[hidden] {
		display: none;
	}

	.kw-js .kw-filters .kw-filters__head {
		flex: none;
		padding: 0.75rem 0.75rem 0.75rem var(--kw-filter-pad);
	}

	.kw-js .kw-filters .kw-filters__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		border: 0;
		border-radius: var(--kw-radius-sm);
		background: none;
		color: var(--kw-ink);
		cursor: pointer;
	}

	.kw-filters__close::before {
		content: "";
		width: 1.4rem;
		height: 1.4rem;
		background-color: currentColor;
		-webkit-mask: var(--kw-i-close) center / contain no-repeat;
		mask: var(--kw-i-close) center / contain no-repeat;
	}

	.kw-filters__close:hover,
	.kw-filters__close:focus-visible {
		background: var(--kw-surface);
	}

	.kw-js .kw-filters .kw-filters__form {
		display: flex;
		flex: 1;
		flex-direction: column;
		min-height: 0;
	}

	.kw-js .kw-filters .kw-filters__sections {
		flex: 1;
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	.kw-js .kw-filters .kw-filters__actions {
		flex: none;
		padding-bottom: max(1rem, env(safe-area-inset-bottom));
		background: var(--kw-white);
	}

	.kw-js .kw-filters .kw-price__apply {
		display: none;
	}

	/* Larger touch targets. */
	.kw-filter__option label,
	.kw-filter__cat {
		padding: 0.6rem 0;
	}

	.kw-filter__option input[type="checkbox"] {
		width: 1.25rem;
		height: 1.25rem;
		margin-top: 0.05rem;
	}

	html.kw-filters-locked,
	html.kw-filters-locked body {
		overflow: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kw-filters .kw-filters__panel,
	.kw-filter__head::after {
		transition: none !important;
	}
}

@media (max-width: 767.98px) {
	.kw-shop-hero__media::after {
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.82) 60%, rgba(255, 255, 255, 0.45) 100%);
	}

	.kw-shop-promo__media::after {
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 65%, rgba(255, 255, 255, 0.5) 100%);
	}

	.kw-shop .woocommerce-ordering::before {
		content: none;
	}
}

/* ------------------------------------------------------------------ */
/* Single product (templates/single-product.html)                      */
/* ------------------------------------------------------------------ */

.kw-product .kw-product__top {
	padding-block: clamp(1rem, 2vw, 1.5rem) clamp(2rem, 4vw, 3.5rem);
}

/* Breadcrumbs: product, cart and company / service pages. */
:is(.kw-product, .kw-cart, .kw-landing) .woocommerce-breadcrumb {
	margin: 0 0 clamp(1rem, 2vw, 1.5rem);
	font-size: 0.8125rem;
	color: var(--kw-text);
}

:is(.kw-product, .kw-cart, .kw-landing) .woocommerce-breadcrumb a {
	color: var(--kw-ink);
	text-decoration: none;
}

:is(.kw-product, .kw-cart, .kw-landing) .woocommerce-breadcrumb a:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

:is(.kw-product, .kw-cart, .kw-landing) .kw-crumb-sep {
	margin-inline: 0.55em;
	color: var(--kw-muted);
}

/* Gallery and summary: the photos slightly wider, the summary a full column beside them. */
.kw-product .kw-product__main {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	align-items: start;
	gap: clamp(1.75rem, 3.8vw, 3.75rem);
}

/* Desktop: the shorter column stays in view beside the longer one (usually the photos beside the
   options), so no empty area opens up under it. */
@media (min-width: 1024px) {
	.kw-product .kw-product__gallery,
	.kw-product .kw-product__summary {
		position: sticky;
		top: calc(var(--kw-header-offset) + 1.5rem);
	}
}

/* Where the customer is: the breadcrumbs on a band with the way back to the category beside them. */
.kw-product .kw-product__band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem 1.5rem;
	margin-bottom: clamp(1.1rem, 2.2vw, 1.75rem);
	padding: 0.65rem 0.75rem 0.65rem 1.1rem;
	border: 1px solid var(--kw-line);
	border-radius: 12px;
	background: linear-gradient(180deg, #f6f9fc 0%, var(--kw-white) 100%);
}

.kw-product .kw-product__band > * {
	margin: 0;
}

.kw-product .kw-product__band .woocommerce-breadcrumb {
	margin: 0;
	line-height: 1.5;
}

.kw-product .kw-product__band .woocommerce-breadcrumb a:first-child::before {
	content: "";
	display: inline-block;
	width: 0.95em;
	height: 0.95em;
	margin-inline-end: 0.4em;
	vertical-align: -0.12em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V20h-5.5v-5.5h-5V20H4z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V20h-5.5v-5.5h-5V20H4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.kw-product .kw-product__route {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 0.45em;
	padding: 0.45rem 0.95rem;
	border: 1px solid #c9d6e6;
	border-radius: 999px;
	background: var(--kw-white);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-brand);
	text-decoration: none;
	transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.kw-product .kw-product__route::before {
	content: "";
	width: 0.95em;
	height: 0.95em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transform: scaleX(-1);
}

.kw-product .kw-product__route:hover {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-product .kw-product__route:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* The product's category as a card in the summary. */
.kw-pcat {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.6rem 2.8rem 0.6rem 0.6rem;
	border: 1px solid var(--kw-line);
	border-radius: 12px;
	background: linear-gradient(180deg, #f6f9fc 0%, var(--kw-white) 100%);
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.kw-pcat__media {
	flex: none;
	width: 3.75rem;
	height: 3.75rem;
	overflow: hidden;
	isolation: isolate;
	border-radius: 9px;
	background: #edf2f8;
}

.kw-pcat .kw-pcat__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: multiply;
	transition: transform 0.3s ease;
}

.kw-pcat__body {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.kw-pcat__label {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-pcat__name {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-navy);
}

.kw-pcat__meta {
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-pcat__arrow {
	position: absolute;
	top: 50%;
	right: 1rem;
	width: 1.05rem;
	height: 1.05rem;
	margin-top: -0.525rem;
	background-color: var(--kw-navy);
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	opacity: 0.45;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.kw-pcat:hover {
	border-color: #a9bdd4;
	box-shadow: 0 16px 30px -20px rgba(2, 44, 78, 0.45);
}

.kw-pcat:hover .kw-pcat__media .kw-pcat__img {
	transform: scale(1.06);
}

.kw-pcat:hover .kw-pcat__arrow {
	opacity: 1;
	transform: translateX(3px);
}

.kw-pcat:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* Price with the chosen add-ons (assets/js/product.js). */
.kw-product .kw-product__price.has-addons .kw-price-live {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.kw-product .kw-price-live__total {
	color: var(--kw-navy);
}

.kw-product .kw-price-live__note {
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--kw-muted);
}

/* Purchase panel: options, quantity, the cart button and the stock line together. */
.kw-product .kw-product__buy {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.1rem 1.25rem 1.2rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-product .kw-product__buy > * {
	margin-block: 0;
}

.kw-product .kw-product__buy:not(:has(form.cart, .stock)) {
	display: none;
}

/* Gallery (WooCommerce Product Gallery block): the whole product visible on white in a 4:3 frame,
   a row of thumbnails underneath at every width (WooCommerce puts them in a side column on desktop). */
.kw-product .wc-block-product-gallery {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.kw-product .wc-block-product-gallery-large-image {
	overflow: hidden;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
}

.kw-product .wc-block-product-gallery-large-image__wrapper {
	aspect-ratio: 4 / 3;
	padding: clamp(0.75rem, 2vw, 1.5rem);
}

.kw-product .wc-block-product-gallery-large-image__wrapper .wc-block-components-product-image {
	width: 100%;
	height: 100%;
	margin: 0;
}

.kw-product .wc-block-product-gallery-large-image__wrapper img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: var(--kw-white);
	cursor: zoom-in;
}

.kw-product .wc-block-product-gallery-thumbnails {
	order: 1;
	width: 100%;
	height: auto;
	aspect-ratio: auto !important;
	flex-basis: auto;
}

.kw-product .wc-block-product-gallery-thumbnails__scrollable {
	flex-direction: row !important; /* WooCommerce's desktop rule (a side column) is more specific. */
	gap: 0.75rem;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
}

.kw-product .wc-block-product-gallery-thumbnails__thumbnail {
	flex: 0 0 calc((100% - 3rem) / 5);
	min-width: 3.75rem;
	height: auto;
}

.kw-product .wc-block-product-gallery-thumbnails img {
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	padding: 0.3rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	object-fit: contain;
	cursor: pointer;
}

.kw-product .wc-block-product-gallery-thumbnails img.wc-block-product-gallery-thumbnails__thumbnail__image--is-active {
	filter: none;
	border-color: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy);
}

.kw-product .wc-block-product-gallery-large-image-next-previous button {
	border-radius: 50%;
	box-shadow: 0 2px 10px rgba(11, 31, 69, 0.12);
}

/* Photo viewer (WooCommerce's gallery dialog, inc/product-gallery.php): one photo at a time over the
   whole page, with the close button, the count and previous / next. The dialog sits in the gallery
   column, which is sticky on desktop (a stacking layer of its own, painted under the summary column
   and the header): while the viewer is open the column is lifted above everything on the page. */
body.wc-block-product-gallery-dialog-open .kw-product .kw-product__gallery {
	z-index: 100003;
}

@media (max-width: 1023.98px) {
	body.wc-block-product-gallery-dialog-open .kw-product .kw-product__gallery {
		position: relative;
	}
}

.kw-product .kw-lightbox.wc-block-product-gallery-dialog {
	z-index: 100003;
	margin: 0;
	border: 0; /* The browser's own dialog frame. */
	background: var(--kw-white);
	color: var(--kw-ink);
}

/* Open: the top row, then the photos in the rest of the visible screen (also under a phone's browser bars). */
.kw-product .kw-lightbox.wc-block-product-gallery-dialog[open] {
	display: flex;
	flex-direction: column;
	height: 100vh;
	height: 100dvh;
}

.admin-bar .kw-product .kw-lightbox.wc-block-product-gallery-dialog[open] {
	height: calc(100vh - 32px);
	height: calc(100dvh - 32px);
}

.kw-product .kw-lightbox .wc-block-product-gallery-dialog__header {
	flex: none;
	box-sizing: border-box;
	height: 4rem;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	padding: 0 clamp(0.75rem, 2vw, 1.5rem);
}

.kw-product .kw-lightbox__count {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	font-variant-numeric: tabular-nums;
	color: var(--kw-muted);
}

.kw-product .kw-lightbox .wc-block-product-gallery-dialog__close-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 2.75rem;
	height: 2.75rem;
	margin-inline-start: auto;
	padding: 0;
	border: 1px solid var(--kw-line);
	border-radius: 50%;
	background: var(--kw-white);
	fill: var(--kw-navy);
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.kw-product .kw-lightbox .wc-block-product-gallery-dialog__close-button:hover {
	border-color: var(--kw-navy);
	background: var(--kw-surface);
}

.kw-product .kw-lightbox :is(.wc-block-product-gallery-dialog__close-button, .kw-lightbox__nav):focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

/* The photos: whole and centred. Without the viewer's script WooCommerce's column of photos remains. */
.kw-product .kw-lightbox[open] .wc-block-product-gallery-dialog__content {
	flex: 1 1 auto;
	box-sizing: border-box;
	height: auto;
	min-height: 0;
	padding: 0 clamp(0.75rem, 2vw, 1.5rem) clamp(0.75rem, 2vw, 1.5rem);
	gap: 1rem;
}

.kw-product .kw-lightbox .wc-block-product-gallery-dialog__content :is(img, video) {
	width: auto;
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	object-fit: contain;
}

/* With the script: only the selected photo, beside room for the previous / next buttons. */
.kw-product .kw-lightbox[open] .kw-lightbox__photos.wc-block-product-gallery-dialog__content {
	flex-direction: row;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	padding-inline: clamp(4rem, 6vw, 5.5rem);
}

.kw-product .kw-lightbox__photos [data-image-id]:not(.is-current) {
	display: none;
}

.kw-product .kw-lightbox__nav {
	position: absolute;
	top: calc(50% + 2rem);
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 1px solid var(--kw-line);
	border-radius: 50%;
	background: var(--kw-white);
	box-shadow: 0 6px 18px rgba(2, 44, 78, 0.12);
	color: var(--kw-navy);
	cursor: pointer;
	transform: translateY(-50%);
	transition: border-color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}

.kw-product .kw-lightbox__nav::before {
	content: "";
	width: 1.375rem;
	height: 1.375rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
	mask: var(--kw-i-chevron) center / contain no-repeat;
}

.kw-product .kw-lightbox__nav--prev {
	left: clamp(0.75rem, 2vw, 1.5rem);
}

.kw-product .kw-lightbox__nav--prev::before {
	transform: rotate(90deg);
}

.kw-product .kw-lightbox__nav--next {
	right: clamp(0.75rem, 2vw, 1.5rem);
}

.kw-product .kw-lightbox__nav--next::before {
	transform: rotate(-90deg);
}

.kw-product .kw-lightbox__nav:hover:not(:disabled) {
	border-color: var(--kw-navy);
	background: var(--kw-surface);
}

.kw-product .kw-lightbox__nav:disabled {
	box-shadow: none;
	opacity: 0.35;
	cursor: default;
}

.kw-product .kw-lightbox__nav[hidden] {
	display: none;
}

@media (max-width: 782px) {
	.admin-bar .kw-product .kw-lightbox.wc-block-product-gallery-dialog[open] {
		top: 46px;
		height: calc(100vh - 46px);
		height: calc(100dvh - 46px);
	}
}

/* Phones: the photo across the width, smaller buttons over its edges. */
@media (max-width: 639.98px) {
	.kw-product .kw-lightbox[open] .kw-lightbox__photos.wc-block-product-gallery-dialog__content {
		padding-inline: 0.75rem;
	}

	.kw-product .kw-lightbox__nav {
		width: 2.5rem;
		height: 2.5rem;
	}

	.kw-product .kw-lightbox__nav--prev {
		left: 0.5rem;
	}

	.kw-product .kw-lightbox__nav--next {
		right: 0.5rem;
	}
}

.kw-product .wc-block-components-product-sale-badge {
	padding: 0.25rem 0.7rem;
	border: 0;
	border-radius: 999px;
	background: var(--kw-navy);
	color: var(--kw-white);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
}

/* Summary column. */
.kw-product .kw-product__summary {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

/* The flex gap sets the spacing; drop the block-gap margins of the flow layout. */
.kw-product .kw-product__summary > * {
	margin-block: 0;
}

.kw-product .kw-product__brand {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.kw-product .kw-product__brand a {
	color: var(--kw-brand);
	text-decoration: none;
}

.kw-shop .kw-product__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.75rem, 2.6vw, 2.5rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.15;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-product .kw-product__price,
.kw-product .woocommerce-variation-price .price {
	font-size: clamp(1.5rem, 2vw, 1.875rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--kw-ink);
}

.kw-product :is(.kw-product__price, .woocommerce-variation-price) del {
	margin-inline-end: 0.4em;
	font-size: 0.65em;
	font-weight: 400;
	color: var(--kw-muted);
}

.kw-product :is(.kw-product__price, .woocommerce-variation-price) ins {
	text-decoration: none;
}

.kw-product .kw-product__price .amount {
	white-space: nowrap;
}

.kw-product .kw-product__tax,
.kw-product .kw-product__unit-note {
	margin-top: -0.5rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-product .kw-product__unit-note {
	margin-top: 0;
	color: var(--kw-text);
}

.kw-product .kw-product__on-request {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
	font-size: 0.9375rem;
	color: var(--kw-ink);
}

.kw-product .kw-product__excerpt {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--kw-text);
}

.kw-product .kw-product__excerpt :is(p, ul, ol) {
	margin: 0 0 0.75em;
}

.kw-product .kw-product__excerpt > :last-child {
	margin-bottom: 0;
}

.kw-product .kw-product__excerpt ul {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 0;
	list-style: none;
}

.kw-product .kw-product__excerpt ul li {
	position: relative;
	padding-inline-start: 1.75rem;
}

.kw-product .kw-product__excerpt ul li::before {
	content: "";
	position: absolute;
	top: 0.2em;
	left: 0;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--kw-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 0.7rem no-repeat;
}

/* WooCommerce's add-to-cart form (simple and variable products). */
.kw-product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.75rem;
}

.kw-product .kw-product__summary .kw-product__cart form.cart {
	margin: 0; /* WooCommerce adds 2em below the form. */
}

.kw-product form.variations_form {
	flex-direction: column;
	flex-wrap: nowrap;
}

.kw-product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

/* Variation choices. WooCommerce styles these through ".woocommerce table.variations tr td select"
   and similar, hence the longer selectors. */
.kw-product .kw-product__cart table.variations {
	display: block;
	width: 100%;
	margin: 0 0 0.25rem;
	border: 0;
	border-collapse: collapse;
}

.kw-product .kw-product__cart table.variations :is(tbody, tr) {
	display: block;
}

.kw-product .kw-product__cart table.variations tr :is(th, td) {
	display: block;
	padding: 0;
	border: 0;
	line-height: 1.5;
	text-align: start;
}

.kw-product .kw-product__cart table.variations tr th.label {
	padding-bottom: 0.4rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-product .kw-product__cart table.variations tr + tr th.label {
	padding-top: 0.75rem;
}

.kw-product .kw-product__cart table.variations tr td select {
	width: 100%;
	height: 3rem;
	padding: 0 2.4rem 0 0.9rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1f45' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.85rem center / 1rem;
	font: inherit;
	font-size: 0.9375rem;
	color: var(--kw-ink);
	appearance: none;
	cursor: pointer;
}

.kw-product .kw-product__cart table.variations tr td.value {
	position: relative;
}

/* "Εκκαθάριση" sits on the label's line (WooCommerce shows it once a choice is made). */
.kw-product .kw-product__cart table.variations .reset_variations {
	position: absolute;
	right: 0;
	bottom: calc(100% + 0.4rem);
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--kw-brand);
}

.kw-product .kw-product__cart .single_variation_wrap .woocommerce-variation {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-bottom: 0.75rem;
}

/* Empty until a choice is made (WooCommerce then fills in the variation's price and stock). */
.kw-product .kw-product__cart .single_variation_wrap .woocommerce-variation:empty {
	display: none;
}

.kw-product .woocommerce-variation-description:empty {
	display: none;
}

.kw-product .quantity {
	display: flex;
	align-items: stretch;
}

.kw-product .quantity input.qty {
	width: 5rem;
	height: 3rem;
	padding: 0 0.5rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	font: inherit;
	font-size: 1rem;
	text-align: center;
	color: var(--kw-ink);
	-moz-appearance: textfield;
}

/* − / + buttons added by assets/js/product.js. */
.kw-product .kw-qty {
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
}

.kw-product .kw-qty input.qty {
	width: 3rem;
	padding: 0;
	border: 0;
	border-radius: 0;
}

.kw-product .kw-qty input.qty::-webkit-inner-spin-button,
.kw-product .kw-qty input.qty::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.kw-product .kw-qty__btn {
	width: 2.75rem;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--kw-ink);
	cursor: pointer;
}

.kw-product .kw-qty__btn:hover {
	color: var(--kw-brand);
	background: var(--kw-surface-alt);
}

.kw-product .single_add_to_cart_button {
	display: inline-flex;
	flex: 1 1 14rem;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	min-height: 3rem;
	padding: 0 1.5rem;
	border: 0;
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-navy);
	font-family: var(--kw-font-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--kw-white);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.kw-product .single_add_to_cart_button::before {
	content: "";
	width: 1.2rem;
	height: 1.2rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-cart) center / contain no-repeat;
	mask: var(--kw-i-cart) center / contain no-repeat;
}

.kw-product .single_add_to_cart_button:hover {
	background-color: var(--kw-brand);
}

.kw-product .single_add_to_cart_button:is(.disabled, :disabled) {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Stock line from WooCommerce ("Σε απόθεμα", "Εξαντλημένο", "Διαθέσιμο κατόπιν παραγγελίας"). */
.kw-product p.stock {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
}

.kw-product p.stock::before {
	content: "";
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: currentColor;
}

.kw-product p.stock.in-stock {
	color: #1f7a4d;
}

.kw-product p.stock.out-of-stock {
	color: #a23b2a;
}

.kw-product p.stock.available-on-backorder {
	color: var(--kw-muted);
}

/* Product code: one quiet line (the category has its own card below it). */
.kw-product .kw-product__meta {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-product .wp-block-woocommerce-product-meta:not(:has(.wc-block-components-product-sku)) {
	display: none;
}

.kw-product .kw-product__meta > * {
	margin-block: 0;
}

.kw-product .kw-product__meta a {
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-product .kw-product__meta a:hover {
	color: var(--kw-brand);
	text-decoration: underline;
}

/* Under the product: the description in a comfortable reading width, the specifications beside it
   only when the product has them ([kw_product_info]), then the reviews as one closed row
   ([kw_product_reviews]). */
.kw-product .kw-product__details {
	display: flex;
	flex-direction: column;
	gap: clamp(1.75rem, 3vw, 2.5rem);
	padding-block: clamp(2rem, 4vw, 3rem) 0;
}

.kw-product .kw-product__details > * {
	margin-block: 0;
}

.kw-product .kw-product__details:not(:has(.kw-product__info, .kw-reviews)) {
	display: none;
}

.kw-product .kw-product__info {
	display: grid;
	grid-template-columns: minmax(0, 48rem);
	align-items: start;
	gap: 2rem clamp(2.5rem, 5vw, 4.5rem);
}

@media (min-width: 1024px) {
	.kw-product .kw-product__info.has-specs {
		grid-template-columns: minmax(0, 48rem) minmax(18rem, 1fr);
	}
}

.kw-product .kw-product__info-title,
.kw-product .kw-product__specs-title {
	margin: 0 0 1.1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--kw-line);
	font-family: var(--kw-font-heading);
	font-size: clamp(1.375rem, 1.8vw, 1.625rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	color: var(--kw-ink);
}

.kw-product .kw-product__desc-body {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--kw-text);
}

.kw-product .kw-product__desc-body :is(p, ul, ol, table, h2, h3, h4) {
	margin: 0 0 1em;
}

.kw-product .kw-product__desc-body > :last-child {
	margin-bottom: 0;
}

/* Headings inside product descriptions: H2/H3 in the heading font, H4 in Commissioner SemiBold. */
.kw-product .kw-product__desc-body :is(h2, h3, h4) {
	font-family: var(--kw-font-heading);
	font-size: 1.1875rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.3;
	color: var(--kw-ink);
}

.kw-product .kw-product__desc-body h4 {
	font-family: var(--kw-font-body);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.35;
}

.kw-product .kw-product__desc-body :is(ul, ol) {
	padding-inline-start: 1.25rem;
}

.kw-product .kw-product__desc-body img {
	height: auto;
	max-width: 100%;
}

/* Specifications: WooCommerce's attributes table on a soft panel. */
.kw-product .kw-product__specs {
	padding: 1.25rem 1.35rem 1.4rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-product .kw-product__specs .kw-product__specs-title {
	margin-bottom: 1rem;
	font-size: 1.25rem;
}

/* Reviews: one full-width row, closed until opened; "Αξιολογήσεις (n)" and a chevron. */
.kw-product .kw-reviews {
	border: 1px solid var(--kw-line);
	border-radius: 12px;
	background: var(--kw-white);
}

.kw-product .kw-reviews__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.85rem 1rem 0.85rem 1.25rem;
	border-radius: 12px;
	list-style: none;
	cursor: pointer;
	transition: background-color 0.18s ease;
}

.kw-product .kw-reviews__toggle::-webkit-details-marker {
	display: none;
}

.kw-product .kw-reviews__toggle:hover {
	background: var(--kw-surface-alt);
}

.kw-product .kw-reviews__toggle:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

.kw-product .kw-reviews[open] > .kw-reviews__toggle {
	border-bottom: 1px solid var(--kw-line);
	border-radius: 12px 12px 0 0;
}

.kw-product .kw-reviews__heading {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.kw-product .kw-reviews__title {
	font-family: var(--kw-font-heading);
	font-size: 1.25rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	color: var(--kw-ink);
}

.kw-product .kw-reviews__sub {
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-product .kw-reviews__chevron {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 1px solid var(--kw-line);
	border-radius: 50%;
	color: var(--kw-navy);
	transition: border-color 0.18s ease, background-color 0.18s ease;
}

.kw-product .kw-reviews__chevron::before {
	content: "";
	width: 1.1rem;
	height: 1.1rem;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
	mask: var(--kw-i-chevron) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-product .kw-reviews__toggle:hover .kw-reviews__chevron {
	border-color: var(--kw-navy);
}

.kw-product .kw-reviews[open] .kw-reviews__chevron::before {
	transform: rotate(180deg);
}

.kw-product .kw-reviews__body {
	padding: 1.5rem 1.35rem 1.6rem;
}

.kw-product .kw-reviews[open] .kw-reviews__body {
	animation: kw-reveal 0.2s ease;
}

@keyframes kw-reveal {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
}

/* WooCommerce's reviews: the list (or its "no reviews yet" note) beside the form on desktop. The
   row's own title already names the section, so WooCommerce's heading is kept for screen readers. */
.kw-product .kw-reviews #reviews {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem clamp(2rem, 4vw, 3.5rem);
}

@media (min-width: 1024px) {
	.kw-product .kw-reviews #reviews:has(> #review_form_wrapper) {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	}
}

.kw-product .kw-reviews #reviews > .clear {
	display: none;
}

.kw-product .kw-reviews .woocommerce-Reviews-title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.kw-product .kw-reviews #reviews :is(#comments, #review_form_wrapper) {
	min-width: 0;
	margin: 0;
}

.kw-product .kw-reviews #reviews .woocommerce-noreviews {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 400;
	color: var(--kw-text);
}

.kw-product .kw-reviews #reviews #review_form_wrapper {
	padding: 1.25rem 1.35rem 1.4rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-product .kw-reviews #reviews .comment-form > p:last-child {
	margin-bottom: 0;
}

/* Contact card closing the summary: the question, the phone number and the contact form. */
.kw-product .kw-product__help {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem 1.25rem;
	padding: 0.85rem 1.1rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--kw-text);
}

.kw-product .kw-product__help > * {
	margin: 0;
}

.kw-product .kw-product__help-title {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-product .kw-product__help-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.15rem;
}

.kw-product .kw-product__help-links a {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 600;
	white-space: nowrap;
	color: var(--kw-brand);
	text-decoration: none;
}

.kw-product .kw-product__help-links a::before {
	content: "";
	width: 1.05em;
	height: 1.05em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-phone) center / contain no-repeat;
	mask: var(--kw-i-phone) center / contain no-repeat;
}

.kw-product .kw-product__help-links .kw-product__help-form::before {
	-webkit-mask-image: var(--kw-i-mail);
	mask-image: var(--kw-i-mail);
}

.kw-product .kw-product__help-links a:hover {
	color: var(--kw-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kw-product .kw-product__availability {
	margin-top: -0.25rem;
}

/* Product add-ons (plugin kourtesis-product-addons) inside the purchase panel: groups divided by a
   hairline, the chosen option marked, keyboard focus visible. Presentation only. */
.kw-product .kw-addons__group + .kw-addons__group {
	padding-top: 0.9rem;
	border-top: 1px solid var(--kw-line);
}

.kw-product .kw-addons__option {
	transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.kw-product .kw-addons__option:has(input:checked) {
	background: var(--kw-surface);
	box-shadow: inset 0 0 0 1px var(--kw-navy);
}

.kw-product .kw-addons__option:has(input:focus-visible) {
	outline: 2px solid var(--kw-brand);
	outline-offset: 2px;
}

.kw-product .kw-addons__summary {
	border: 1px solid var(--kw-line);
}

/* Specifications table (WooCommerce's shop_attributes styles are italic, zebra and stacked on
   phones; tr:nth-child(n) only lifts these rules above them). */
.kw-product .kw-product__specs table.woocommerce-product-attributes {
	width: 100%;
	margin: 0;
	border: 1px solid var(--kw-line);
	border-collapse: collapse;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--kw-text);
}

.kw-product .kw-product__specs table.woocommerce-product-attributes tr:nth-child(n) {
	display: table-row;
}

.kw-product .kw-product__specs table.woocommerce-product-attributes tr:nth-child(n) :is(th, td) {
	display: table-cell;
	width: auto;
	max-width: none;
	padding: 0.7rem 1rem;
	border: 0;
	border-bottom: 1px solid var(--kw-line);
	background: var(--kw-white);
	font-style: normal;
	line-height: 1.5;
	text-align: start;
	vertical-align: top;
}

.kw-product .kw-product__specs table.woocommerce-product-attributes tr:nth-child(n) th {
	width: 42%;
	background: var(--kw-surface-alt);
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-product .kw-product__specs table.woocommerce-product-attributes tr:nth-child(n) td p {
	margin: 0;
	padding: 0;
}

/* Reviews tab: WooCommerce's list (or its "no reviews yet" note) and its form. */
.kw-product #reviews :is(input[type="text"], input[type="email"], textarea, select) {
	box-sizing: border-box;
	width: 100%;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	font: inherit;
	font-size: 0.9375rem;
	color: var(--kw-ink);
}

.kw-product #reviews :is(label, .comment-notes) {
	font-size: 0.875rem;
	color: var(--kw-text);
}

.kw-product #reviews :is(#comments, #review_form_wrapper, .comment-form > p) {
	margin-bottom: 1rem;
}

.kw-product #reviews :is(.woocommerce-noreviews, .comment-reply-title) {
	display: block;
	margin-bottom: 0.75rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-product #reviews .form-submit input[type="submit"] {
	min-height: 2.75rem;
	padding: 0 1.4rem;
	border: 0;
	border-radius: var(--kw-radius-sm);
	background: var(--kw-navy);
	font: inherit;
	font-weight: 600;
	color: var(--kw-white);
	cursor: pointer;
}

.kw-product #reviews .stars a {
	color: var(--kw-star);
}

/* Old Flatsome content inside descriptions (see inc/legacy-flatsome.php). */
.kw-legacy-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.kw-legacy-col {
	flex: 1 1 18rem;
	min-width: 0;
}

.kw-video {
	position: relative;
	max-width: 48rem;
	margin: 1.25rem 0;
	aspect-ratio: 16 / 9;
}

.kw-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: var(--kw-radius-sm);
}

.kw-legacy-divider {
	margin: 1.5rem 0;
	border: 0;
	border-top: 1px solid var(--kw-line);
}

/* "Εξερευνήστε την κατηγορία" ([kw_product_explore]): the categories around the product as tiles, the
   product's own first and marked, on a soft band between the details and the related products. */
.kw-product .kw-explore {
	margin-top: clamp(2.25rem, 4vw, 3.25rem);
	padding-block: clamp(1.75rem, 3.5vw, 2.75rem);
	border-block: 1px solid var(--kw-line);
	background: linear-gradient(180deg, #f5f8fc 0%, var(--kw-surface-alt) 100%);
}

.kw-product .kw-explore__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

.kw-product .kw-explore__titles {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.kw-product .kw-explore__titles > * {
	margin: 0;
}

.kw-product .kw-explore__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.15;
	color: var(--kw-ink);
}

.kw-product .kw-explore .kw-more-link {
	margin: 0;
}

/* Related products: homepage cards, four per row. */
.kw-shop .kw-related {
	padding-block: clamp(2.25rem, 4vw, 3.5rem) var(--kw-section-space);
}

.kw-shop .kw-related .kw-section__head {
	align-items: baseline;
}

.kw-shop .kw-related__title {
	margin: 0;
}

@media (max-width: 1023.98px) {
	.kw-product .kw-product__main {
		grid-template-columns: minmax(0, 1fr);
	}


	.kw-product .kw-product__gallery {
		width: 100%;
		max-width: 40rem;
		margin-inline: auto;
	}
}

@media (max-width: 479.98px) {
	.kw-product .single_add_to_cart_button {
		flex-basis: 100%;
	}
}

/* ------------------------------------------------------------------ */
/* Cart (templates/page-cart.html; the page holds WooCommerce's Cart   */
/* block, which renders in the browser from the Store API).            */
/* ------------------------------------------------------------------ */

.kw-cart .kw-cart__head {
	padding-block: clamp(1rem, 2vw, 1.5rem) 0;
}

.kw-shop .kw-cart__title {
	margin: 0;
	font-family: var(--kw-font-heading);
	font-size: clamp(2rem, 3.2vw, 2.75rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-cart .kw-cart__body {
	padding-block: clamp(1.25rem, 2.5vw, 2rem) clamp(2.5rem, 5vw, 4rem);
}

.kw-cart :is(.kw-cart__body, .wp-block-post-content) > * {
	margin-block: 0;
}

.kw-cart .wc-block-cart {
	margin: 0;
	padding: 0;
}

/* Line items. */
.kw-cart .wc-block-cart .wc-block-cart-items__header {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--kw-muted);
}

.kw-cart .wc-block-cart .wc-block-cart-items :is(th, td) {
	border-color: var(--kw-line);
}

.kw-cart .wc-block-cart .wc-block-cart-item__image img {
	box-sizing: border-box;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	padding: 0.25rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	object-fit: contain;
}

.kw-cart .wc-block-cart .wc-block-components-product-name {
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-cart .wc-block-cart a.wc-block-components-product-name:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kw-cart .wc-block-cart .wc-block-cart-item__prices {
	font-size: 0.875rem;
	color: var(--kw-muted);
}

/* WooCommerce cuts the short description mid-word here; the product page has it in full. */
.kw-cart .wc-block-cart .wc-block-components-product-metadata__description {
	display: none;
}

.kw-cart .wc-block-cart .wc-block-components-product-details {
	font-size: 0.8125rem;
	color: var(--kw-text);
}

.kw-cart .wc-block-cart .wc-block-components-quantity-selector {
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
}

.kw-cart .wc-block-cart .wc-block-components-quantity-selector::after {
	border-color: var(--kw-line);
	border-radius: var(--kw-radius-sm);
	opacity: 1;
}

.kw-cart .wc-block-cart .wc-block-components-quantity-selector :is(input, button) {
	font-family: var(--kw-font-body);
	color: var(--kw-ink);
}

.kw-cart .wc-block-cart .wc-block-components-quantity-selector button:not(:disabled):hover {
	color: var(--kw-brand);
}

.kw-cart .wc-block-cart .wc-block-cart-item__remove-link {
	color: var(--kw-muted);
}

.kw-cart .wc-block-cart .wc-block-cart-item__remove-link:hover {
	color: #a23b2a;
}

.kw-cart .wc-block-cart .wc-block-cart-item__total {
	font-size: 1rem;
	font-weight: 600;
	color: var(--kw-ink);
}

/* Order summary card (as tall as its content, not the item list). */
.kw-cart .wc-block-cart .wc-block-cart__sidebar {
	align-self: flex-start;
}

.kw-cart .wc-block-cart .wp-block-woocommerce-cart-totals-block {
	padding: clamp(1.25rem, 2vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-cart .wc-block-cart .wc-block-cart__totals-title {
	margin: 0 0 0.5rem;
	padding: 0 0 0.85rem;
	border-bottom: 1px solid var(--kw-line);
	font-family: var(--kw-font-heading);
	font-size: 1.375rem;
	font-weight: var(--kw-subtitle-weight);
	letter-spacing: 0;
	text-transform: none;
	color: var(--kw-ink);
}

.kw-cart .wc-block-cart .wc-block-components-totals-wrapper {
	border-color: var(--kw-line);
}

.kw-cart .wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-cart .wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--kw-ink);
}

.kw-cart .wc-block-cart .wc-block-components-totals-footer-item-tax {
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-cart .wc-block-cart .wc-block-cart__submit-button {
	min-height: 3.25rem;
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-navy);
	font-family: var(--kw-font-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--kw-white);
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.kw-cart .wc-block-cart .wc-block-cart__submit-button:hover {
	background-color: var(--kw-brand);
	color: var(--kw-white);
}

.kw-cart .wc-block-cart .wc-block-cart__submit-button .wc-block-components-button__text::after {
	content: "";
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	margin-inline-start: 0.6em;
	vertical-align: -0.2em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
}

.kw-cart .wc-block-components-notice-banner {
	border-radius: var(--kw-radius-sm);
}

/* Cross-sells ("Μπορεί να σας ενδιαφέρουν"): the shop's product cards. */
.kw-cart .kw-cart__cross-sells {
	margin-top: clamp(2rem, 4vw, 3rem);
}

.kw-shop .kw-cart__section-title {
	margin: 0 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.375rem, 2vw, 1.75rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.2;
	color: var(--kw-ink);
}

@media (min-width: 1280px) {
	.kw-cart .kw-cart__cross-sells .wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Empty cart. */
.kw-cart .kw-cart-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	max-width: 34rem;
	margin: 0 auto;
	padding-block: clamp(1.5rem, 4vw, 3rem);
	text-align: center;
}

.kw-cart .kw-cart-empty > * {
	margin: 0;
}

/* A quiet cart icon in a light circle instead of WooCommerce's large sad face. */
.kw-cart .kw-cart-empty::before {
	content: "";
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: var(--kw-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23022c4e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5h2.2l2.1 10a1.4 1.4 0 0 0 1.4 1.1h8.4a1.4 1.4 0 0 0 1.4-1.1L20.3 8H6'/%3E%3Ccircle cx='9.5' cy='19.2' r='1.2'/%3E%3Ccircle cx='16.8' cy='19.2' r='1.2'/%3E%3C/svg%3E") center / 2rem no-repeat;
}

.kw-shop .kw-cart-empty__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.2;
	color: var(--kw-ink);
}

.kw-cart .kw-cart-empty__title.with-empty-cart-icon::before {
	display: none;
}

.kw-cart .kw-cart-empty__text {
	font-size: 1rem;
	color: var(--kw-text);
}

.kw-cart .kw-cart-empty__actions {
	margin-top: 0.5rem;
}

/* Staging-only note under a filled cart (see inc/cart-page.php). */
.kw-cart .kw-cart__staging-note {
	display: none;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem !important;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-cart:has(:is(.wc-block-cart-items, .woocommerce-cart-form)) .kw-cart__staging-note {
	display: flex;
}

.kw-cart .kw-cart__staging-note::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (min-width: 1024px) {
	.kw-cart:has(:is(.wc-block-cart-items, .woocommerce-cart-form)) .kw-cart__staging-note {
		justify-content: flex-end;
	}
}

/* Tablets keep items and summary side by side; a wider summary keeps the checkout button on one line. */
@media (max-width: 1023.98px) {
	.kw-cart .wc-block-components-sidebar-layout.is-large .wc-block-cart__main {
		width: 57%;
	}

	.kw-cart .wc-block-components-sidebar-layout.is-large .wc-block-cart__sidebar {
		width: 43%;
	}
}

/* Transport by arrangement ("Με μεταφορική (τιμή κατόπιν συνεννόησης)") is a 0 € rate only because its
   cost is agreed with the customer and paid on delivery, so the blocks' "Δωρεάν" is not shown beside it
   (its name says how it is priced), and a 0 € shipping total — which on this shop only that rate gives,
   free shipping being disabled — reads "Κατόπιν συνεννόησης" (--kw-shipping-zero, inc/cart-page.php). */
:is(.wc-block-checkout__shipping-option--free, .wc-block-components-shipping-rates-control__package__description--free) {
	display: none;
}

.wc-block-components-totals-shipping .wc-block-components-totals-item__value > strong {
	position: relative;
	visibility: hidden;
}

.wc-block-components-totals-shipping .wc-block-components-totals-item__value > strong::after {
	content: var(--kw-shipping-zero, "");
	position: absolute;
	top: 0;
	right: 0;
	font-weight: 600;
	white-space: nowrap;
	visibility: visible;
}

/* ------------------------------------------------------------------ */
/* Checkout (templates/page-checkout.html; WooCommerce Checkout block). */
/* The page reuses the cart page's head and body spacing (.kw-cart).    */
/* ------------------------------------------------------------------ */

/* Staging-only banner (see inc/cart-page.php and inc/contact.php). */
:is(.kw-checkout, .kw-landing) .kw-staging-banner {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--kw-line);
	border-inline-start: 3px solid var(--kw-navy);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-surface);
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--kw-ink);
}

:is(.kw-checkout, .kw-landing) .kw-staging-banner::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.1rem;
	background-color: var(--kw-navy);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

:is(.kw-checkout, .kw-landing) .kw-staging-banner p {
	margin: 0;
}

.kw-checkout .wc-block-checkout {
	margin: 0;
	padding: 0;
}

/* Form steps. */
.kw-checkout .wc-block-checkout .wc-block-components-checkout-step__title {
	font-family: var(--kw-font-heading);
	font-size: 1.375rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	color: var(--kw-ink);
}

.kw-checkout .wc-block-checkout .wc-block-components-checkout-step__description {
	font-size: 0.875rem;
	color: var(--kw-muted);
}

.kw-checkout .wc-block-checkout :is(.wc-block-components-text-input input, .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-combobox-control input) {
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-white);
	font-family: var(--kw-font-body);
	color: var(--kw-ink);
}

.kw-checkout .wc-block-checkout :is(.wc-block-components-text-input input, .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-combobox-control input):focus {
	border-color: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy);
	outline: none;
}

.kw-checkout .wc-block-checkout :is(.wc-block-components-text-input label, .wc-blocks-components-select__label) {
	color: var(--kw-muted);
}

.kw-checkout .wc-block-checkout .has-error :is(input, select, textarea) {
	border-color: #a23b2a;
	box-shadow: 0 0 0 1px #a23b2a;
}

.kw-checkout .wc-block-checkout :is(.has-error label, .wc-block-components-validation-error) {
	color: #a23b2a;
}

.kw-checkout .wc-block-checkout .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--kw-navy);
	background-color: var(--kw-navy);
}

.kw-checkout .wc-block-checkout .wc-block-components-checkbox__mark {
	fill: var(--kw-white);
}

.kw-checkout .wc-block-checkout :is(.wc-block-components-address-form__address_2-toggle, .wc-block-components-checkout-return-to-cart-button) {
	color: var(--kw-ink);
}

/* Required fields: WooCommerce marks the optional ones; a red asterisk marks the required ones too. */
.kw-checkout .kw-checkout__required-note {
	margin-bottom: 1rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-checkout .wc-block-checkout .wc-block-components-text-input:has(input:is([required], [aria-required="true"])) label::after,
.kw-checkout .wc-block-checkout .wc-blocks-components-select__container:has(select:is([required], [aria-required="true"])) .wc-blocks-components-select__label::after {
	content: " *";
	color: #a23b2a;
}

/* Order summary card (WooCommerce's own summary box, in the theme's colours). */
.kw-checkout .wc-block-checkout .wc-block-checkout__sidebar {
	align-self: flex-start;
}

.kw-checkout .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border-color: var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-checkout .wc-block-checkout .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--kw-font-heading);
	font-size: 1.375rem;
	font-weight: var(--kw-subtitle-weight);
	color: var(--kw-ink);
}

.kw-checkout .wc-block-checkout .wc-block-components-order-summary-item__image img {
	box-sizing: border-box;
	padding: 0.15rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	object-fit: contain;
}

.kw-checkout .wc-block-checkout .wc-block-components-order-summary-item__quantity {
	border-color: var(--kw-white);
	background: var(--kw-navy);
	color: var(--kw-white);
}

/* Item names are h3 elements in the mobile summary; keep them in the text face, not the heading face. */
.kw-checkout .wc-block-checkout .wc-block-components-product-name {
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--kw-ink);
}

/* WooCommerce cuts the short description mid-word here; the product page has it in full. */
.kw-checkout .wc-block-checkout .wc-block-components-product-metadata__description {
	display: none;
}

.kw-checkout .wc-block-checkout .wc-block-components-totals-wrapper {
	border-color: var(--kw-line);
}

.kw-checkout .wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-checkout .wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--kw-ink);
}

.kw-checkout .wc-block-checkout .wc-block-components-totals-footer-item-tax {
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

/* Terms and the place-order area. */
.kw-checkout .wc-block-checkout .wc-block-checkout__terms {
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--kw-text);
}

.kw-checkout .wc-block-checkout .wc-block-components-checkout-place-order-button {
	min-height: 3.25rem;
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-navy);
	font-family: var(--kw-font-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--kw-white);
	transition: background-color 0.2s ease;
}

.kw-checkout .wc-block-checkout .wc-block-components-checkout-place-order-button:not(:disabled):hover {
	background-color: var(--kw-brand);
}

/* Tablets: one column, the full-width order summary above the form (phones use WooCommerce's own
   layout: a collapsible summary on top and the full summary just before the order button). */
@media (max-width: 1023.98px) {
	.kw-checkout .wc-block-components-sidebar-layout.wc-block-checkout.is-large {
		flex-direction: column;
	}

	.kw-checkout .wc-block-checkout.is-large :is(.wc-block-checkout__main, .wc-block-checkout__sidebar) {
		width: 100%;
		padding-inline: 0;
	}

	.kw-checkout .wc-block-checkout.is-large .wc-block-checkout__sidebar {
		position: static;
		order: -1;
		margin-bottom: 2rem;
	}
}

/* ------------------------------------------------------------------ */
/* Classic cart and checkout: WooCommerce's [woocommerce_cart] and      */
/* [woocommerce_checkout] (as on the live site, for its card gateway     */
/* and checkout field manager), in the same look as the blocks above:   */
/* items or form on the left, the summary card on the right.            */
/* ------------------------------------------------------------------ */

/* WooCommerce's block-theme styles cap the shortcode at 1000px; the page container sets the width. */
main.kw-cart .wp-block-post-content > .woocommerce {
	max-width: none;
}

.kw-cart .woocommerce :is(p, ul, ol, h2, h3, table) {
	margin-top: 0;
}

.kw-cart .woocommerce .woocommerce-notices-wrapper:empty {
	display: none;
}

.kw-cart .woocommerce :is(.woocommerce-error, .woocommerce-info, .woocommerce-message, .wc-block-components-notice-banner) {
	margin: 0 0 1.25rem;
	border-radius: var(--kw-radius-sm);
}

/* Fields (cart shipping calculator, checkout, order pay). */
.kw-cart .woocommerce form .form-row {
	margin: 0 0 1rem;
	padding: 0;
}

.kw-cart .woocommerce form .form-row label:not(.checkbox, .woocommerce-form__label-for-checkbox) {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--kw-ink);
}

.kw-cart .woocommerce form :is(.required, abbr.required) {
	border: 0;
	font-weight: 600;
	color: #a23b2a;
	text-decoration: none;
}

.kw-cart .woocommerce form .optional {
	font-weight: 400;
	color: var(--kw-muted);
}

.kw-cart .woocommerce form :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: 3rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-white);
	font: inherit;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--kw-ink);
}

.kw-cart .woocommerce form textarea {
	min-height: 6.5rem;
	resize: vertical;
}

.kw-cart .woocommerce form :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], select, textarea):focus {
	border-color: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy);
	outline: none;
}

.kw-cart .woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select, .select2-selection) {
	border-color: #a23b2a;
	box-shadow: 0 0 0 1px #a23b2a;
}

.kw-cart .woocommerce form .form-row.woocommerce-invalid label {
	color: #a23b2a;
}

.kw-cart .woocommerce form .form-row .description {
	margin-top: 0.35rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

/* WooCommerce sets these labels inline at a higher specificity (.woocommerce form .form-row label.checkbox). */
.kw-cart .woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox),
.kw-cart .woocommerce form .form-row :is(label.checkbox, .woocommerce-form__label-for-checkbox) {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--kw-ink);
	cursor: pointer;
}

.kw-cart .woocommerce :is(input[type="checkbox"], input[type="radio"]),
.kw-cart .woocommerce form .form-row :is(.input-checkbox, input[type="checkbox"]) {
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	margin: 0.15rem 0 0;
	accent-color: var(--kw-navy);
}

/* Country / region (WooCommerce's searchable select). */
.kw-cart .woocommerce .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	height: 3rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
}

.kw-cart .woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	padding-inline: 0.9rem 2.25rem;
	line-height: 1.4;
	color: var(--kw-ink);
}

.kw-cart .woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 0.5rem;
	transform: translateY(-50%);
}

/* Buttons: primary navy, the secondary "update" actions as outline buttons. */
.kw-cart .woocommerce :is(button.button, a.button, input.button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: 0 1.5rem;
	border: 1px solid var(--kw-navy);
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-navy);
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--kw-white);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.kw-cart .woocommerce :is(button.button, a.button, input.button):not(:disabled):hover {
	border-color: var(--kw-brand);
	background-color: var(--kw-brand);
	color: var(--kw-white);
}

.kw-cart .woocommerce :is(button[name="update_cart"], button[name="calc_shipping"], button[name="woocommerce_checkout_update_totals"]) {
	background-color: var(--kw-white);
	color: var(--kw-navy);
}

.kw-cart .woocommerce :is(button.button, input.button):disabled {
	opacity: 0.45;
	cursor: default;
}

/* Tables: rows between fine rules, headings small and quiet. */
.kw-cart .woocommerce table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
	font-size: 0.9375rem;
}

.kw-cart .woocommerce table.shop_table :is(th, td) {
	padding: 1rem 0.75rem;
	border: 0;
	border-top: 1px solid var(--kw-line);
	text-align: start;
	vertical-align: middle;
	line-height: 1.5;
}

.kw-cart .woocommerce table.shop_table :is(th, td):first-child {
	padding-inline-start: 0;
}

.kw-cart .woocommerce table.shop_table :is(th, td):last-child {
	padding-inline-end: 0;
}

.kw-cart .woocommerce table.shop_table thead th {
	padding-block: 0 0.75rem;
	border-top: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-cart .woocommerce .woocommerce-Price-amount {
	white-space: nowrap;
}

/* Cart: items. */
.kw-cart .woocommerce table.cart {
	border-bottom: 1px solid var(--kw-line);
}

.kw-cart .woocommerce table.cart .product-remove {
	width: 2.25rem;
}

.kw-cart .woocommerce table.cart a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1;
	color: var(--kw-muted) !important;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.kw-cart .woocommerce table.cart a.remove:hover {
	background: #f7e9e6;
	color: #a23b2a !important;
}

.kw-cart .woocommerce table.cart .product-thumbnail {
	width: 6rem;
}

.kw-cart .woocommerce table.cart .product-thumbnail img {
	box-sizing: border-box;
	width: 5rem;
	height: 5rem;
	padding: 0.25rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	object-fit: contain;
	box-shadow: none;
}

.kw-cart .woocommerce table.cart .product-name a {
	font-weight: 600;
	line-height: 1.4;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-cart .woocommerce table.cart .product-name a:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kw-cart .woocommerce table.cart .product-name .variation {
	margin: 0.35rem 0 0;
	font-size: 0.8125rem;
	color: var(--kw-text);
}

.kw-cart .woocommerce table.cart .product-price {
	color: var(--kw-muted);
}

.kw-cart .woocommerce table.cart .product-subtotal {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-cart .woocommerce table.cart :is(.product-price, .product-quantity, .product-subtotal) {
	white-space: nowrap;
}

.kw-cart .woocommerce table.cart .quantity .qty {
	width: 5rem;
	min-height: 2.75rem;
	padding: 0.4rem 0.5rem;
	text-align: center;
}

.kw-cart .woocommerce table.cart td.actions {
	padding-block: 1rem;
	text-align: end;
}

.kw-cart .woocommerce table.cart td.actions .coupon {
	float: none;
	display: inline-flex;
	gap: 0.5rem;
	margin-inline-end: 0.5rem;
}

/* Cart: summary card. */
.kw-cart .woocommerce .cart-collaterals .cart_totals {
	float: none;
	box-sizing: border-box;
	width: auto;
	padding: clamp(1.25rem, 2vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-cart .woocommerce .cart-collaterals::before,
.kw-cart .woocommerce .cart-collaterals::after {
	content: none;
}

.kw-cart .woocommerce :is(.cart_totals > h2, #order_review_heading) {
	margin: 0 0 0.5rem;
	padding: 0 0 0.85rem;
	border-bottom: 1px solid var(--kw-line);
	font-family: var(--kw-font-heading);
	font-size: 1.375rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
	color: var(--kw-ink);
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) table.shop_table :is(th, td) {
	padding: 0.85rem 0;
	background: transparent;
	font-size: 0.9375rem;
}

.kw-cart .woocommerce .cart_totals table.shop_table tr:first-child :is(th, td) {
	border-top: 0;
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) table.shop_table th {
	font-weight: 400;
	color: var(--kw-text);
	vertical-align: top;
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) table.shop_table td {
	text-align: end;
	color: var(--kw-ink);
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) table.shop_table .order-total th {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) table.shop_table .order-total td strong {
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--kw-ink);
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) .order-total .includes_tax {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) .order-total .includes_tax .amount {
	font-weight: 400;
	color: inherit;
}

/* Shipping options: one per line, the chosen rate's name in full. */
.kw-cart .woocommerce ul.woocommerce-shipping-methods {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: start;
}

.kw-cart .woocommerce ul.woocommerce-shipping-methods li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	line-height: 1.45;
	text-indent: 0;
}

.kw-cart .woocommerce ul.woocommerce-shipping-methods li label {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-cart .woocommerce :is(.cart_totals, .woocommerce-checkout-review-order) tr.woocommerce-shipping-totals td {
	text-align: start;
}

.kw-cart .woocommerce .woocommerce-shipping-destination {
	margin: 0.6rem 0 0;
	text-align: start;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-cart .woocommerce .woocommerce-shipping-calculator {
	margin: 0.35rem 0 0;
}

.kw-cart .woocommerce .shipping-calculator-button {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-underline-offset: 3px;
}

.kw-cart .woocommerce .shipping-calculator-button::after {
	content: "";
	width: 0.9em;
	height: 0.9em;
	margin: 0;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-chevron) center / contain no-repeat;
	mask: var(--kw-i-chevron) center / contain no-repeat;
	font-family: inherit;
}

.kw-cart .woocommerce .shipping-calculator-form {
	margin-top: 1rem;
}

.kw-cart .woocommerce .wc-proceed-to-checkout {
	padding: 1.25rem 0 0;
}

.kw-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	width: 100%;
	min-height: 3.25rem;
	margin: 0;
	padding: 0 1.25rem;
	box-sizing: border-box;
	font-size: 1rem;
}

.kw-cart .woocommerce .wc-proceed-to-checkout a.checkout-button::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
}

/* Cart: the cross-sells (block cards, inc/cart-page.php) under items and summary. */
.kw-cart .woocommerce > .kw-cart__cross-sells {
	margin-top: clamp(2rem, 4vw, 3rem);
}

/* Cart: empty (inc/cart-page.php shows the Cart block's empty state). */
.kw-cart .woocommerce:has(.kw-cart-empty) > .return-to-shop {
	display: none;
}

@media (min-width: 1024px) {
	.kw-cart .woocommerce:has(> .woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
		gap: 0 clamp(2rem, 3.5vw, 3.5rem);
		align-items: start;
	}

	.kw-cart .woocommerce:has(> .woocommerce-cart-form) > * {
		grid-column: 1 / -1;
	}

	.kw-cart .woocommerce:has(> .woocommerce-cart-form) > .woocommerce-cart-form {
		grid-column: 1;
	}

	.kw-cart .woocommerce:has(> .woocommerce-cart-form) > .cart-collaterals {
		grid-column: 2;
		width: auto;
	}
}

/* Checkout: the customer's details on the left, the order and payment card on the right. */
.kw-checkout .woocommerce form.woocommerce-checkout > wc-order-attribution-inputs {
	display: none;
}

.kw-checkout .woocommerce form.woocommerce-checkout .col2-set {
	width: auto;
}

.kw-checkout .woocommerce form.woocommerce-checkout .col2-set :is(.col-1, .col-2) {
	float: none;
	width: auto;
	max-width: none;
	padding: 0;
}

.kw-checkout .woocommerce form.woocommerce-checkout .col2-set::before,
.kw-checkout .woocommerce form.woocommerce-checkout .col2-set::after {
	content: none;
}

.kw-checkout .woocommerce form.woocommerce-checkout :is(.woocommerce-billing-fields > h3, #ship-to-different-address, .woocommerce-additional-fields > h3) {
	margin: 0 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: 1.375rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	color: var(--kw-ink);
}

.kw-checkout .woocommerce form.woocommerce-checkout #ship-to-different-address {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--kw-line);
}

.kw-checkout .woocommerce form.woocommerce-checkout #ship-to-different-address label {
	align-items: center;
	font: inherit;
}

.kw-checkout .woocommerce form.woocommerce-checkout #ship-to-different-address input {
	margin: 0;
}

.kw-checkout .woocommerce form.woocommerce-checkout .shipping_address {
	margin-top: 1rem;
}

.kw-checkout .woocommerce form.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1rem;
}

.kw-checkout .woocommerce form.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > * {
	grid-column: 1 / -1;
	float: none;
	width: auto;
}

.kw-checkout .woocommerce form.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > .form-row-first {
	grid-column: 1;
}

.kw-checkout .woocommerce form.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > .form-row-last {
	grid-column: 2;
}

.kw-checkout .woocommerce form.woocommerce-checkout .woocommerce-account-fields {
	margin-top: 0.25rem;
}

.kw-checkout .woocommerce form.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--kw-line);
}

/* Order and payment card. */
.kw-checkout .woocommerce #order_review_heading {
	margin: 0;
	padding: clamp(1.25rem, 2vw, 1.75rem) clamp(1.25rem, 2vw, 1.75rem) 0.85rem;
	border: 1px solid var(--kw-line);
	border-bottom: 0;
	border-radius: var(--kw-radius-md) var(--kw-radius-md) 0 0;
	background: var(--kw-surface-alt);
}

.kw-checkout .woocommerce #order_review_heading + #order_review {
	padding: 0 clamp(1.25rem, 2vw, 1.75rem) clamp(1.25rem, 2vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-top: 0;
	border-radius: 0 0 var(--kw-radius-md) var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-checkout .woocommerce #order_review_heading + #order_review > table.shop_table {
	border-top: 1px solid var(--kw-line);
}

.kw-cart .woocommerce .woocommerce-checkout-review-order-table thead {
	display: none;
}

.kw-cart .woocommerce .woocommerce-checkout-review-order-table tbody tr:first-child td {
	border-top: 0;
}

.kw-cart .woocommerce .woocommerce-checkout-review-order-table .cart_item .product-name {
	padding-inline-end: 1rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-align: start;
}

.kw-cart .woocommerce .woocommerce-checkout-review-order-table .product-quantity {
	font-weight: 400;
	color: var(--kw-muted);
	white-space: nowrap;
}

.kw-cart .woocommerce .woocommerce-checkout-review-order-table .cart_item .variation {
	margin: 0.25rem 0 0;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--kw-text);
}

/* Payment methods: one card each, the chosen one outlined. */
.kw-cart .woocommerce #payment {
	margin-top: 0.5rem;
	border-radius: 0;
	background: transparent;
}

.kw-cart .woocommerce #payment ul.payment_methods {
	display: grid;
	gap: 0.6rem;
	margin: 0 0 1.25rem;
	padding: 1.25rem 0 0;
	border: 0;
	border-top: 1px solid var(--kw-line);
	list-style: none;
}

.kw-cart .woocommerce #payment ul.payment_methods::before,
.kw-cart .woocommerce #payment ul.payment_methods::after {
	content: none;
}

.kw-cart .woocommerce #payment ul.payment_methods li {
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	line-height: 1.5;
	text-align: start;
}

.kw-cart .woocommerce #payment ul.payment_methods li:has(> input:checked) {
	border-color: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy);
}

.kw-cart .woocommerce #payment ul.payment_methods li > input {
	margin: 0 0.5rem 0 0;
	vertical-align: -0.15rem;
}

.kw-cart .woocommerce #payment ul.payment_methods li > label {
	display: inline;
	font-weight: 600;
	color: var(--kw-ink);
	cursor: pointer;
}

.kw-cart .woocommerce #payment ul.payment_methods li img {
	display: inline-block;
	max-height: 1.5rem;
	margin: 0 0 0 0.5rem;
	vertical-align: middle;
}

.kw-cart .woocommerce #payment div.payment_box {
	margin: 0.75rem 0 0;
	padding: 0.75rem 0.9rem;
	border-radius: var(--kw-radius-sm);
	background: var(--kw-surface);
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--kw-text);
}

.kw-cart .woocommerce #payment div.payment_box::before {
	content: none;
}

.kw-cart .woocommerce #payment div.payment_box p:last-child {
	margin-bottom: 0;
}

.kw-cart .woocommerce #payment div.form-row {
	margin: 0;
	padding: 0;
}

.kw-cart .woocommerce #payment .woocommerce-terms-and-conditions-wrapper {
	margin: 0 0 1.25rem;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--kw-text);
}

.kw-cart .woocommerce #payment .woocommerce-privacy-policy-text p {
	margin: 0 0 0.85rem;
}

.kw-cart .woocommerce #payment .woocommerce-terms-and-conditions {
	margin: 0 0 1rem;
	padding: 1rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
}

.kw-cart .woocommerce #payment .woocommerce-terms-and-conditions-wrapper label.checkbox {
	font-size: 0.875rem;
}

.kw-cart .woocommerce #payment #place_order {
	float: none;
	width: 100%;
	min-height: 3.25rem;
	font-size: 1rem;
}

/* The required-fields line only where there is a checkout form. */
.kw-checkout:not(:has(:is(form.woocommerce-checkout, .wc-block-checkout))) .kw-checkout__required-note {
	display: none;
}

@media (min-width: 1024px) {
	.kw-checkout .woocommerce form.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(22rem, 30rem);
		grid-template-rows: auto auto 1fr;
		gap: 0 clamp(2rem, 3.5vw, 3.5rem);
		align-items: start;
	}

	.kw-checkout .woocommerce form.woocommerce-checkout > * {
		grid-column: 1 / -1;
	}

	.kw-checkout .woocommerce form.woocommerce-checkout > #customer_details {
		grid-column: 1;
		grid-row: 2 / span 2;
	}

	.kw-checkout .woocommerce form.woocommerce-checkout > #order_review_heading {
		grid-column: 2;
		grid-row: 2;
	}

	.kw-checkout .woocommerce form.woocommerce-checkout > #order_review {
		grid-column: 2;
		grid-row: 3;
	}
}

@media (max-width: 1023.98px) {
	.kw-checkout .woocommerce form.woocommerce-checkout > #order_review_heading {
		margin-top: 2rem;
	}
}

/* Order received (templates/order-confirmation.html): WooCommerce's confirmation blocks, then what the
   payment method and the checkout field manager add (bank details, receipt / invoice details). */
.kw-order-received .wc-block-order-confirmation-status {
	margin: 0;
}

.kw-order-received .wc-block-order-confirmation-status h1 {
	margin: 0 0 0.5rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(2rem, 3.2vw, 2.75rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.1;
	color: var(--kw-ink);
}

.kw-order-received .wc-block-order-confirmation-status p {
	margin: 0;
	font-size: 1rem;
	color: var(--kw-text);
}

.kw-order-received .kw-cart__body > * + * {
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.kw-order-received .wc-block-order-confirmation-summary ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 1rem 1.5rem;
	margin: 0;
	padding: 1.25rem clamp(1.25rem, 2vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
	list-style: none;
}

.kw-order-received .wc-block-order-confirmation-summary li {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--kw-ink);
}

.kw-order-received .wc-block-order-confirmation-summary-list-item__key {
	display: block;
	margin-bottom: 0.2rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-order-received :is(h2, h3).wp-block-heading,
.kw-order-received :is(.wc-bacs-bank-details-heading, .woocommerce-order-details__title, .woocommerce-column__title) {
	margin: 0 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.375rem, 2vw, 1.75rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.2;
	color: var(--kw-ink);
}

.kw-order-received .wc-bacs-bank-details-account-name {
	margin: 1.25rem 0 0.5rem;
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-order-received ul.wc-bacs-bank-details {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--kw-text);
}

.kw-order-received table {
	width: 100%;
	margin: 0;
	border: 1px solid var(--kw-line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--kw-radius-md);
	font-size: 0.9375rem;
}

.kw-order-received table :is(th, td) {
	padding: 0.85rem 1rem;
	border: 0;
	border-top: 1px solid var(--kw-line);
	text-align: start;
	vertical-align: top;
}

.kw-order-received table tr:first-child :is(th, td) {
	border-top: 0;
}

.kw-order-received table thead th,
.kw-order-received table tbody th {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-order-received table :is(td:last-child, th:last-child):not(:first-child) {
	text-align: end;
}

.kw-order-received table.order_details tbody th {
	width: 40%;
	text-align: start;
}

.kw-order-received table.order_details tbody td {
	text-align: start !important;
}

.kw-order-received table a {
	color: var(--kw-ink);
}

.kw-order-received .wc-block-order-confirmation-address-wrapper {
	gap: 1.5rem;
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.kw-order-received .wc-block-order-confirmation-address {
	padding: 1.25rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	line-height: 1.7;
	color: var(--kw-text);
}

.kw-order-received .wc-block-order-confirmation-address :is(address, p) {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
}

/* The checkout field manager's receipt / invoice table after the bank details. */
.kw-order-received .woocommerce-order-details__title {
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

/* Phones: WooCommerce stacks the cart rows (each value with its label); fields one per line. */
@media (max-width: 767.98px) {
	.kw-cart .woocommerce table.cart {
		border-bottom: 0;
	}

	.kw-cart .woocommerce table.shop_table_responsive tr {
		display: block;
	}

	.kw-cart .woocommerce table.cart tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 5rem minmax(0, 1fr);
		column-gap: 1rem;
		padding: 1rem 2.5rem 1rem 0;
		border-top: 1px solid var(--kw-line);
	}

	.kw-cart .woocommerce table.cart tr.cart_item td {
		display: block;
		padding: 0.15rem 0;
		border: 0;
		text-align: start !important;
		background: transparent !important;
	}

	.kw-cart .woocommerce table.cart tr.cart_item td::before {
		content: none !important;
	}

	.kw-cart .woocommerce table.cart tr.cart_item td.product-thumbnail {
		display: block !important;
		grid-row: 1 / span 4;
		grid-column: 1;
	}

	.kw-cart .woocommerce table.cart tr.cart_item td:not(.product-thumbnail, .product-remove) {
		grid-column: 2;
	}

	.kw-cart .woocommerce table.cart tr.cart_item td.product-remove {
		position: absolute;
		top: 0.85rem;
		right: 0;
		width: auto;
	}

	.kw-cart .woocommerce table.cart tr.cart_item td.product-price {
		font-size: 0.875rem;
	}

	.kw-cart .woocommerce table.cart tr.cart_item td.product-quantity {
		padding-top: 0.5rem;
	}

	.kw-cart .woocommerce table.cart td.actions {
		display: block;
		padding: 1rem 0;
		border-top: 1px solid var(--kw-line);
	}

	.kw-cart .woocommerce table.cart td.actions button {
		width: 100%;
	}

	.kw-cart .woocommerce .cart-collaterals {
		margin-top: 1.5rem;
	}

	.kw-cart .woocommerce .cart_totals table.shop_table_responsive tr {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		border-top: 1px solid var(--kw-line);
	}

	.kw-cart .woocommerce .cart_totals table.shop_table_responsive tr:first-child {
		border-top: 0;
	}

	.kw-cart .woocommerce .cart_totals table.shop_table_responsive tr :is(th, td) {
		display: block;
		border-top: 0;
	}

	.kw-cart .woocommerce .cart_totals table.shop_table_responsive tr th {
		display: block;
		flex: none;
	}

	.kw-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before {
		content: none;
	}

	.kw-cart .woocommerce .cart_totals tr.woocommerce-shipping-totals {
		flex-direction: column;
		gap: 0;
	}

	.kw-cart .woocommerce .cart_totals tr.woocommerce-shipping-totals th {
		padding-bottom: 0;
	}

	.kw-checkout .woocommerce form.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > :is(.form-row-first, .form-row-last) {
		grid-column: 1 / -1;
	}

	/* The shipping options under their label, full width. */
	.kw-cart .woocommerce .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals :is(th, td) {
		display: block;
		width: auto;
	}

	.kw-cart .woocommerce .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
		padding-bottom: 0.25rem;
	}

	.kw-cart .woocommerce .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
		padding-top: 0.25rem;
		border-top: 0;
	}
}

/* ------------------------------------------------------------------ */
/* My Account (templates/page-my-account.html; WooCommerce's account    */
/* shortcode). Page class .kw-myaccount (.kw-account is the header icon). */
/* ------------------------------------------------------------------ */

/* Logged out: login and lost-password forms as one centred card. */
.kw-myaccount .woocommerce:has(:is(form.woocommerce-form-login, form.lost_reset_password)) {
	box-sizing: border-box;
	max-width: 31rem;
	margin-inline: auto;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	box-shadow: var(--kw-shadow);
}

.kw-myaccount .woocommerce > h2,
.kw-myaccount .woocommerce .kw-account__heading,
.kw-myaccount .woocommerce .woocommerce-Address-title h2,
.kw-myaccount .woocommerce .woocommerce-MyAccount-content > form > h2,
.kw-myaccount .woocommerce .woocommerce-MyAccount-content > h2 {
	margin: 0 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2.2vw, 1.875rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.2;
	color: var(--kw-ink);
}

.kw-myaccount .woocommerce form:is(.login, .lost_reset_password) {
	margin: 0;
	padding: 0;
	border: 0;
}

.kw-myaccount .kw-login__intro,
.kw-myaccount .woocommerce form.lost_reset_password > p:first-child {
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--kw-text);
}

.kw-myaccount .kw-login__guest {
	margin: 1.5rem 0 0;
	padding-top: 1.25rem;
	border-top: 1px solid var(--kw-line);
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--kw-muted);
}

.kw-myaccount .woocommerce .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem;
	font-size: 0.9375rem;
	font-weight: 400;
	color: var(--kw-text);
}

.kw-myaccount .woocommerce input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
	accent-color: var(--kw-navy);
}

.kw-myaccount .woocommerce .woocommerce-LostPassword {
	margin: 1rem 0 0;
	font-size: 0.875rem;
}

/* Logged in: navigation sidebar and content panel (WooCommerce floats replaced by a grid). */
.kw-myaccount .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	max-width: none;
	grid-template-columns: 16rem minmax(0, 1fr);
	align-items: start;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.kw-myaccount .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
.kw-myaccount .woocommerce:has(> .woocommerce-MyAccount-navigation)::after {
	content: none;
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation,
.kw-myaccount .woocommerce .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	margin: 0;
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	margin: 0;
	padding: 0.5rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
	list-style: none;
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li a {
	--kw-nav-icon: var(--kw-i-arrow);
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.7rem 0.9rem;
	border-radius: var(--kw-radius-sm);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--kw-ink);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li a::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	background-color: var(--kw-muted);
	-webkit-mask: var(--kw-nav-icon) center / contain no-repeat;
	mask: var(--kw-nav-icon) center / contain no-repeat;
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a {
	--kw-nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='7' height='7' rx='1.2'/%3E%3Crect x='13.5' y='3.5' width='7' height='7' rx='1.2'/%3E%3Crect x='3.5' y='13.5' width='7' height='7' rx='1.2'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' rx='1.2'/%3E%3C/svg%3E");
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders a {
	--kw-nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7.5 12 3.5l8 4v9l-8 4-8-4z'/%3E%3Cpath d='M4 7.5l8 4 8-4M12 11.5v9'/%3E%3C/svg%3E");
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads a {
	--kw-nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7.5 10.5 12 15l4.5-4.5M4.5 19.5h15'/%3E%3C/svg%3E");
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address a {
	--kw-nav-icon: var(--kw-i-pin);
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account a {
	--kw-nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8.5' r='4'/%3E%3Cpath d='M4.5 20a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E");
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	--kw-nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4.5H6.5a1.5 1.5 0 0 0-1.5 1.5v12a1.5 1.5 0 0 0 1.5 1.5H14M10 12h10M16.5 8.5 20 12l-3.5 3.5'/%3E%3C/svg%3E");
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li a:hover {
	background: var(--kw-white);
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.is-active a::before {
	background-color: var(--kw-white);
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 0.35rem;
	padding-top: 0.35rem;
	border-top: 1px solid var(--kw-line);
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-content {
	box-sizing: border-box;
	min-width: 0;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--kw-text);
}

.kw-myaccount .woocommerce .woocommerce-MyAccount-content > :last-child {
	margin-bottom: 0;
}

.kw-myaccount .woocommerce :is(.woocommerce-MyAccount-content, form) a:not(.button) {
	color: var(--kw-brand);
	text-underline-offset: 3px;
}

/* Dashboard shortcuts (inc/account-page.php). */
.kw-myaccount .kw-account-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.875rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.kw-myaccount .woocommerce .kw-account-links a {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	height: 100%;
	box-sizing: border-box;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.kw-myaccount .woocommerce .kw-account-links a:hover {
	border-color: var(--kw-navy);
	background: var(--kw-white);
}

.kw-myaccount .kw-account-links__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-myaccount .kw-account-links__title::after {
	content: "";
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	background-color: var(--kw-navy);
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
}

.kw-myaccount .kw-account-links__text {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--kw-muted);
}

/* Forms: login, lost password, account details, addresses. */
.kw-myaccount .woocommerce form .form-row {
	margin: 0 0 1rem;
	padding: 0;
}

.kw-myaccount .woocommerce form .form-row label,
.kw-myaccount .woocommerce form > p > label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--kw-ink);
}

.kw-myaccount .woocommerce form .form-row label.woocommerce-form-login__rememberme {
	display: inline-flex;
	font-weight: 400;
}

.kw-myaccount .woocommerce form .required {
	border: 0;
	color: #a23b2a;
	text-decoration: none;
}

.kw-myaccount .woocommerce form :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: 3rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	font: inherit;
	font-size: 0.9375rem;
	color: var(--kw-ink);
}

.kw-myaccount .woocommerce form :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], select, textarea):focus {
	border-color: var(--kw-navy);
	box-shadow: 0 0 0 1px var(--kw-navy);
	outline: none;
}

.kw-myaccount .woocommerce form .form-row .description,
.kw-myaccount .woocommerce form .form-row em {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.8125rem;
	font-style: normal;
	color: var(--kw-muted);
}

/* Country / region selects (WooCommerce's searchable select). */
.kw-myaccount .woocommerce .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	height: 3rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-sm);
}

.kw-myaccount .woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	padding-inline: 0.9rem 2.25rem;
	line-height: 1.4;
	color: var(--kw-ink);
}

.kw-myaccount .woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 0.5rem;
	transform: translateY(-50%);
}

/* Show / hide password (WooCommerce adds the button). */
.kw-myaccount .woocommerce .password-input {
	position: relative;
	display: block;
}

.kw-myaccount .woocommerce .password-input input {
	padding-right: 3rem;
}

.kw-myaccount .woocommerce .show-password-input {
	top: 50%;
	right: 0.5rem;
	transform: translateY(-50%);
	color: var(--kw-muted);
}

.kw-myaccount .woocommerce fieldset {
	margin: 1.5rem 0 1.25rem;
	padding: 1.25rem 1.25rem 0.25rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
}

.kw-myaccount .woocommerce fieldset legend {
	padding: 0 0.5rem;
	font-family: var(--kw-font-heading);
	font-size: 1.25rem;
	font-weight: var(--kw-subtitle-weight);
	color: var(--kw-ink);
}

/* Buttons. */
.kw-myaccount .woocommerce :is(button.button, a.button, input.button, .woocommerce-Button.button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: 0 1.5rem;
	border: 0;
	border-radius: var(--kw-radius-sm);
	background-color: var(--kw-navy);
	font-family: var(--kw-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--kw-white);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.kw-myaccount .woocommerce :is(button.button, a.button, input.button, .woocommerce-Button.button):hover {
	background-color: var(--kw-brand);
	color: var(--kw-white);
}

.kw-myaccount .woocommerce form.login .woocommerce-form-login__submit {
	width: 100%;
	margin-top: 0.25rem;
}

/* Addresses: one card per address. */
.kw-myaccount .woocommerce .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.kw-myaccount .woocommerce .woocommerce-Addresses::before,
.kw-myaccount .woocommerce .woocommerce-Addresses::after {
	content: none;
}

.kw-myaccount .woocommerce .woocommerce-Addresses .woocommerce-Address {
	float: none;
	width: auto;
	padding: 1.25rem;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-myaccount .woocommerce .woocommerce-Address-title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	margin-bottom: 0.75rem;
}

.kw-myaccount .woocommerce .woocommerce-Address-title::before,
.kw-myaccount .woocommerce .woocommerce-Address-title::after {
	content: none;
}

.kw-myaccount .woocommerce .woocommerce-Address-title h2 {
	float: none;
	width: auto;
	margin: 0;
	font-size: 1.25rem;
	text-align: start;
}

.kw-myaccount .woocommerce .woocommerce-Address-title a.edit {
	float: none;
	font-size: 0.875rem;
	font-weight: 600;
}

.kw-myaccount .woocommerce .woocommerce-Address address {
	font-style: normal;
	line-height: 1.7;
	color: var(--kw-text);
}

/* Orders and downloads tables (shown once the customer has orders). */
.kw-myaccount .woocommerce table.shop_table {
	width: 100%;
	margin: 0 0 1rem;
	border: 1px solid var(--kw-line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--kw-radius-md);
	font-size: 0.875rem;
}

.kw-myaccount .woocommerce table.shop_table :is(th, td) {
	padding: 0.75rem 1rem;
	border-top: 1px solid var(--kw-line);
	text-align: start;
	vertical-align: middle;
}

.kw-myaccount .woocommerce table.shop_table thead th {
	border-top: 0;
	background: var(--kw-surface-alt);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-myaccount .woocommerce table.shop_table .button {
	min-height: 2.25rem;
	padding-inline: 0.9rem;
	font-size: 0.8125rem;
}

/* Notices and empty states inside the account. */
.kw-myaccount .woocommerce :is(.woocommerce-info, .woocommerce-message, .woocommerce-error, .wc-block-components-notice-banner) {
	border-radius: var(--kw-radius-sm);
}

@media (max-width: 1023.98px) {
	.kw-myaccount .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Tablet and phone: the sections as a wrapping row of buttons above the content. */
	.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 0.35rem;
		padding: 0.4rem;
	}

	.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li a {
		gap: 0.5rem;
		padding: 0.55rem 0.8rem;
		font-size: 0.875rem;
	}

	.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
		margin: 0 0 0 auto;
		padding: 0;
		border: 0;
	}
}

@media (max-width: 599.98px) {
	.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-myaccount .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
		margin: 0;
	}

	.kw-myaccount .kw-account-links,
	.kw-myaccount .woocommerce .woocommerce-Addresses {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-myaccount .woocommerce form :is(.form-row-first, .form-row-last) {
		float: none;
		width: 100%;
	}

	/* Notices with an action (e.g. "Επιβεβαίωση email"): the button under the text. */
	.kw-myaccount .wc-block-components-notice-banner__content {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.kw-myaccount .wc-block-components-notice-banner__content :is(.button, .wc-forward) {
		order: 2;
		float: none;
		margin: 0.5rem 0 0;
	}
}

/* ------------------------------------------------------------------ */
/* Company & service pages (templates/page-landing.html). The page     */
/* content is built from core blocks with the classes below.            */
/* ------------------------------------------------------------------ */

.kw-landing .kw-landing__crumbs {
	padding-block: clamp(1rem, 2vw, 1.25rem) 0;
}

.kw-landing .kw-landing__crumbs .woocommerce-breadcrumb {
	margin-bottom: clamp(0.75rem, 1.5vw, 1rem);
}

/* Declared before the components below, which set their own spacing at the same specificity. */
.kw-landing .kw-landing__content > *,
.kw-landing .kw-container > * {
	margin-block: 0;
}

/* Hero: a genuine photo behind the title (photo hero) or beside it (split hero). */
.kw-landing .kw-page-hero {
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	width: min(var(--kw-container), calc(100% - 2 * var(--kw-gutter)));
	margin-inline: auto !important;
	overflow: hidden;
	border-radius: var(--kw-radius-md);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-landing .kw-page-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	margin: 0;
}

.kw-landing .kw-page-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--kw-hero-focus, 50% 50%);
}

.kw-landing .kw-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(2, 44, 78, 0.9) 0%, rgba(2, 44, 78, 0.68) 42%, rgba(2, 44, 78, 0.12) 100%);
}

.kw-landing .kw-page-hero__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
	box-sizing: border-box;
	max-width: 40rem;
	min-height: clamp(22rem, 38vw, 32rem);
	padding: clamp(2rem, 5vw, 4rem);
}

.kw-landing .kw-page-hero__body > * {
	margin: 0;
}

.kw-landing .kw-page-hero__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(2.125rem, 4.2vw, 3.5rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--kw-white);
}

.kw-landing .kw-page-hero__lead {
	max-width: 34rem;
	font-size: clamp(1rem, 1.3vw, 1.125rem);
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.92);
}

.kw-landing .kw-page-hero .wp-block-buttons {
	margin-top: 0.5rem;
}

/* Keeps the shop sign of the storefront photo in view. */
.kw-landing .kw-page-hero--focus-right {
	--kw-hero-focus: 72% 50%;
}

/* A shorter photo hero, for pages whose own content (the offers, the articles) should start soon
   after it. */
.kw-landing .kw-page-hero--compact .kw-page-hero__body {
	min-height: clamp(17rem, 28vw, 23rem);
}

/* Split hero: navy panel with the title, photo beside it (no upscaling of smaller photos). */
.kw-landing .kw-page-hero--split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
}

.kw-landing .kw-page-hero--split::before {
	content: none;
}

.kw-landing .kw-page-hero--split .kw-page-hero__media {
	position: relative;
	inset: auto;
	z-index: 0;
	order: 2;
	min-height: 18rem;
}

.kw-landing .kw-page-hero--split .kw-page-hero__media img {
	position: absolute;
	inset: 0;
}

.kw-landing .kw-page-hero--split .kw-page-hero__body {
	max-width: none;
}

/* Light and outline buttons on navy. */
.kw-landing .kw-btn-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.65);
	background-color: transparent;
	color: var(--kw-white);
}

.kw-landing .kw-btn-outline .wp-block-button__link:hover {
	border-color: var(--kw-white);
	background-color: rgba(255, 255, 255, 0.1);
	color: var(--kw-white);
}

/* Bands (page sections). */
.kw-landing .kw-band {
	padding-block: var(--kw-section-space);
}

.kw-landing .kw-band--alt {
	background: var(--kw-surface);
}

/* Two white bands in a row share one gap. */
.kw-landing .kw-band:not(.kw-band--alt) + .kw-band:not(.kw-band--alt) {
	padding-top: 0;
}

.kw-landing :is(.kw-page-hero__title, .kw-band__title, .kw-intro__statement, .kw-cta__title) {
	text-wrap: balance;
}

.kw-landing .kw-band__title {
	margin: 0 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.15;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-landing .kw-band__lead {
	max-width: 48rem;
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--kw-text);
}

.kw-landing .kw-eyebrow {
	margin: 0 0 0.6rem;
}

.kw-landing .kw-landing__content :is(p, li) {
	line-height: 1.7;
}

.kw-landing .kw-landing__content p a:not(.wp-block-button__link),
.kw-landing .kw-landing__content li a {
	color: var(--kw-brand);
	text-underline-offset: 3px;
}

/* A phone number in running text stays on one line ("2610 438686"). */
.kw-landing .kw-landing__content :is(p, li) a[href^="tel:"] {
	white-space: nowrap;
}

/* Introduction: a short statement beside the text. */
.kw-landing .kw-intro {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: start;
	gap: clamp(1.5rem, 4vw, 4.5rem);
}

.kw-landing .kw-intro__statement {
	margin: 0;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2.4vw, 2.125rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.25;
	color: var(--kw-ink);
}

.kw-landing .kw-intro__text > * {
	margin: 0 0 1rem;
	font-size: 1.0625rem;
	color: var(--kw-text);
}

.kw-landing .kw-intro__text > :last-child {
	margin-bottom: 0;
}

/* Text beside a photo; .kw-split--flip puts the photo first. */
.kw-landing .kw-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(1.5rem, 4vw, 4rem);
}

.kw-landing .kw-split--flip > .kw-split__media {
	order: -1;
}

.kw-landing .kw-split__media {
	margin: 0;
}

.kw-landing .kw-split__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	border-radius: var(--kw-radius-md);
	object-fit: cover;
}

/* Drawings and diagrams: shown whole, never cropped or enlarged. */
.kw-landing .kw-split__media--natural {
	padding: clamp(0.75rem, 1.5vw, 1.25rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
}

.kw-landing .kw-split__media--natural img {
	width: auto;
	max-width: 100%;
	margin-inline: auto;
	aspect-ratio: auto;
	border-radius: 0;
	object-fit: contain;
}

.kw-landing .kw-split > .kw-gallery.wp-block-gallery {
	margin: 0;
}

.kw-landing .kw-split__text > * {
	margin: 0 0 1rem;
}

.kw-landing .kw-split__text > :last-child {
	margin-bottom: 0;
}

.kw-landing .kw-split__text h3 {
	font-family: var(--kw-font-body);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--kw-ink);
}

/* Check lists. */
.kw-landing ul.kw-checks {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-landing ul.kw-checks li {
	position: relative;
	padding-inline-start: 2rem;
	color: var(--kw-text);
}

.kw-landing ul.kw-checks li::before {
	content: "";
	position: absolute;
	top: 0.25em;
	left: 0;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--kw-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 0.75rem no-repeat;
}

/* In-page links (pool types and similar). */
.kw-landing .kw-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-landing .kw-chips a {
	display: inline-flex;
	padding: 0.55rem 1rem;
	border: 1px solid var(--kw-line);
	border-radius: 999px;
	background: var(--kw-white);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.kw-landing .kw-chips a:hover {
	border-color: var(--kw-navy);
	background: var(--kw-surface);
}

.kw-landing :is(.kw-band, .kw-split)[id] {
	scroll-margin-top: 0; /* Below the sticky header: html scroll-padding-top. */
}

/* Cards: services, advantages, plans, related links. */
.kw-landing .kw-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: clamp(0.875rem, 1.5vw, 1.25rem);
}

.kw-landing .kw-cards--2 {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}

.kw-landing .kw-cards--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kw-landing .kw-cards--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kw-landing .kw-band__title + .kw-cards,
.kw-landing .kw-band__lead + .kw-cards {
	margin-top: 0;
}

.kw-landing .kw-cards + .kw-gallery,
.kw-landing .kw-split + .kw-cards,
.kw-landing .kw-split + .kw-band__subtitle {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.kw-landing .kw-band__subtitle {
	margin-bottom: 1rem;
	font-family: var(--kw-font-heading);
	font-size: 1.25rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	color: var(--kw-ink);
}

.kw-landing .kw-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	box-sizing: border-box;
	padding: clamp(1.25rem, 2vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
}

.kw-landing .kw-card > * {
	margin: 0;
}

.kw-landing .kw-card__num {
	font-family: var(--kw-font-heading);
	font-weight: var(--kw-title-weight);
	font-size: 2rem;
	line-height: 1;
	color: var(--kw-brand);
}

.kw-landing .kw-card__title {
	font-family: var(--kw-font-heading);
	font-size: 1.1875rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.3;
	color: var(--kw-ink);
}

.kw-landing .kw-card__text {
	font-size: 0.9375rem;
	color: var(--kw-text);
}

.kw-landing .kw-card__meta {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kw-brand);
}

.kw-landing .kw-card .kw-checks {
	margin-top: 0.5rem;
}

.kw-landing .kw-card .wp-block-buttons {
	margin-top: auto;
	padding-top: 0.75rem;
}

/* Link cards: the whole card is the link. */
.kw-landing .kw-card--link {
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.kw-landing .kw-card--link:hover {
	border-color: var(--kw-navy);
	box-shadow: var(--kw-shadow);
}

.kw-landing .kw-card--link .kw-card__title a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-landing .kw-card--link .kw-card__title a::after {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	background-color: var(--kw-navy);
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
}

.kw-landing .kw-card--link .kw-card__title a::before {
	content: "";
	position: absolute;
	inset: 0;
}

/* Photo galleries (WordPress gallery block, with its "expand on click"). */
.kw-landing .kw-gallery.wp-block-gallery {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(0.5rem, 1vw, 0.875rem);
	margin: clamp(1.25rem, 2.5vw, 2rem) 0 0;
}

.kw-landing .kw-gallery.wp-block-gallery > figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
}

.kw-landing .kw-gallery.wp-block-gallery figure.wp-block-image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	border-radius: var(--kw-radius-sm);
	object-fit: cover;
}

.kw-landing .kw-gallery--4.wp-block-gallery {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Captioned photos (completed projects). */
.kw-landing .kw-figures {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(0.875rem, 1.5vw, 1.25rem);
}

.kw-landing .kw-figures--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kw-landing .kw-figures figure {
	margin: 0;
}

.kw-landing .kw-figures img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	border-radius: var(--kw-radius-md);
	object-fit: cover;
}

.kw-landing .kw-figures figcaption {
	margin-top: 0.75rem;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	text-align: start;
	color: var(--kw-ink);
}

/* Customer words. */
.kw-landing .kw-quotes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.875rem, 1.5vw, 1.25rem);
}

.kw-landing .kw-quotes .wp-block-quote {
	margin: 0;
	padding: clamp(1.25rem, 2vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
}

.kw-landing .kw-quotes .wp-block-quote p {
	margin: 0 0 0.75rem;
	font-family: var(--kw-font-heading);
	font-size: 1.1875rem;
	line-height: 1.45;
	color: var(--kw-ink);
}

.kw-landing .kw-quotes .wp-block-quote cite {
	font-size: 0.875rem;
	font-style: normal;
	font-weight: 600;
	color: var(--kw-muted);
}

/* Contact details card. */
.kw-landing .kw-contact-card {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: var(--kw-radius-md);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-landing .kw-contact-card > * {
	margin: 0 0 1rem;
}

.kw-landing .kw-contact-card > :last-child {
	margin-bottom: 0;
}

.kw-landing .kw-contact-card h3 {
	font-family: var(--kw-font-heading);
	font-size: 1.5rem;
	font-weight: var(--kw-subtitle-weight);
	color: var(--kw-white);
}

.kw-landing .kw-contact-card ul {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 0;
	list-style: none;
}

.kw-landing .kw-contact-card li {
	align-items: flex-start;
	color: rgba(255, 255, 255, 0.92);
}

.kw-landing .kw-contact-card li::before {
	margin-top: 0.3em;
}

.kw-landing .kw-contact-card a {
	color: var(--kw-white) !important;
}

/* Closing call to action. */
.kw-landing .kw-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem 2rem;
	padding: clamp(1.75rem, 4vw, 3rem);
	border-radius: var(--kw-radius-md);
	background: var(--kw-navy);
	color: var(--kw-white);
}

.kw-landing .kw-cta__text {
	max-width: 40rem;
}

.kw-landing .kw-cta__text > * {
	margin: 0;
}

.kw-landing .kw-cta__title {
	margin-bottom: 0.5rem !important;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.5rem, 2.6vw, 2.125rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.2;
	color: var(--kw-white);
}

.kw-landing .kw-cta__text p {
	color: rgba(255, 255, 255, 0.88);
}

.kw-landing .kw-note {
	font-size: 0.875rem;
	color: var(--kw-muted);
}

.kw-landing .kw-chips + .kw-note {
	margin-top: 0.875rem;
}

.kw-landing .kw-landing__content .kw-note a {
	color: inherit;
}

@media (max-width: 1023.98px) {
	.kw-landing .kw-intro,
	.kw-landing .kw-split {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-split--flip > .kw-split__media,
	.kw-landing .kw-split > .kw-split__media {
		order: -1;
	}

	.kw-landing .kw-gallery--4.wp-block-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-landing .kw-cards--3,
	.kw-landing .kw-cards--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.kw-landing .kw-page-hero--split {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-page-hero--split .kw-page-hero__media {
		order: -1;
		min-height: 0;
		aspect-ratio: 3 / 2;
	}

	.kw-landing .kw-page-hero::before {
		background: linear-gradient(180deg, rgba(2, 44, 78, 0.55) 0%, rgba(2, 44, 78, 0.88) 60%);
	}

	.kw-landing .kw-page-hero__body {
		min-height: 0;
		padding: 1.75rem 1.25rem;
	}

	.kw-landing .kw-page-hero:not(.kw-page-hero--split) .kw-page-hero__body {
		min-height: 24rem;
		justify-content: flex-end;
	}

	.kw-landing .kw-page-hero--compact:not(.kw-page-hero--split) .kw-page-hero__body {
		min-height: 19rem;
	}

	.kw-landing .kw-gallery.wp-block-gallery,
	.kw-landing .kw-gallery--4.wp-block-gallery,
	.kw-landing .kw-figures {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Two per row: with an odd number of photos the first one takes the whole row. */
	.kw-landing .kw-gallery.wp-block-gallery:not(.kw-gallery--centered) > figure.wp-block-image:first-child:nth-last-child(odd) {
		grid-column: 1 / -1;
	}

	.kw-landing .kw-gallery.wp-block-gallery:not(.kw-gallery--centered) > figure.wp-block-image:first-child:nth-last-child(odd) img {
		aspect-ratio: 16 / 9;
	}

	.kw-landing .kw-quotes {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-cta .wp-block-buttons,
	.kw-landing .kw-page-hero .wp-block-buttons {
		width: 100%;
	}

	.kw-landing .kw-cta .wp-block-button,
	.kw-landing .kw-cta .wp-block-button__link,
	.kw-landing .kw-page-hero .wp-block-button,
	.kw-landing .kw-page-hero .wp-block-button__link {
		width: 100%;
		justify-content: space-between;
	}
}

@media (max-width: 479.98px) {
	.kw-landing .kw-figures,
	.kw-landing .kw-cards--3,
	.kw-landing .kw-cards--4 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ------------------------------------------------------------------ */
/* Area pages: pool construction in a town (templates/page-area.html). */
/* Their stored text is laid out with the landing pages' hero, bands,  */
/* splits, cards, chips and closing call to action (inc/areas.php);    */
/* only what differs from those is set here, once for every town.      */
/* ------------------------------------------------------------------ */

/* Hero: the page's own title, the line under it, the introduction and the phone line. */
.kw-landing .kw-area__hero .kw-page-hero__body {
	max-width: 60rem;
	gap: 0.875rem;
}

.kw-landing .kw-area__hero .kw-page-hero__title {
	font-size: clamp(1.875rem, 3.3vw, 2.875rem);
	line-height: 1.12;
}

.kw-landing .kw-area__hero .kw-page-hero__lead {
	max-width: 46rem;
}

/* The text was set in italics for the previous theme; headings and the introduction stand upright. */
.kw-landing .kw-area :is(h1, h2, h4, .kw-area__tagline, .kw-page-hero__lead, .kw-area__places-title) em {
	font-style: normal;
}

.kw-landing .kw-area__hero .kw-area__tagline {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.kw-landing .kw-area__hero .kw-area__phone {
	align-self: flex-start;
	margin-top: 0.375rem;
	padding: 0.6rem 1.15rem;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 999px;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--kw-white);
}

/* Section headings: the stored headings are in capitals, so a size below the landing pages' own. */
.kw-landing .kw-area .kw-band__title {
	font-size: clamp(1.5rem, 2.4vw, 2.125rem);
	line-height: 1.18;
}

.kw-landing .kw-area .kw-intro__statement {
	font-size: clamp(1.375rem, 2.2vw, 1.875rem);
}

.kw-landing .kw-area__text {
	max-width: 48rem;
}

/* The town line inside a section ("Εξυπηρετούμε … και τις γύρω περιοχές"). */
.kw-landing .kw-split__text > .kw-area__callout {
	margin: 0.25rem 0 1rem;
	padding: 1rem 1.25rem;
	border-inline-start: 3px solid var(--kw-brand);
	border-radius: 0 var(--kw-radius-sm) var(--kw-radius-sm) 0;
	background: var(--kw-surface);
}

.kw-landing .kw-split__text > .kw-area__callout:last-child {
	margin-bottom: 0;
}

.kw-landing .kw-band--alt .kw-split__text > .kw-area__callout {
	background: var(--kw-white);
}

.kw-landing .kw-area__callout p {
	margin: 0;
	font-family: var(--kw-font-heading);
	font-size: 1.1875rem;
	line-height: 1.4;
	color: var(--kw-ink);
}

.kw-landing .kw-area__callout strong {
	font-weight: var(--kw-subtitle-weight);
}

/* A section with numbered advantages: text and photo, then the heading and the cards across the
   width (the photo follows the cards in the text, so it is placed by grid area). */
.kw-landing .kw-area__split--cards {
	grid-template-areas:
		"text media"
		"sub sub"
		"cards cards";
	row-gap: 0;
}

.kw-landing .kw-area__split--cards.kw-split--flip {
	grid-template-areas:
		"media text"
		"sub sub"
		"cards cards";
}

.kw-landing .kw-area__split--cards > .kw-split__text {
	grid-area: text;
}

.kw-landing .kw-area__split--cards > .kw-split__media {
	grid-area: media;
}

.kw-landing .kw-area__split--cards > .kw-band__subtitle {
	grid-area: sub;
	margin: clamp(1.75rem, 3vw, 2.5rem) 0 1rem;
}

.kw-landing .kw-area__split--cards > .kw-cards {
	grid-area: cards;
}

/* The other towns: the line as a heading, the towns as chips. */
.kw-landing .kw-area__places .kw-band__subtitle {
	margin: 0 0 1rem;
}

/* The e-shop link closing the page, as the light button of the call to action. */
.kw-landing .kw-area .kw-area__shop-link {
	margin: 0;
}

@media (max-width: 1023.98px) {
	.kw-landing .kw-area__split--cards,
	.kw-landing .kw-area__split--cards.kw-split--flip {
		grid-template-areas:
			"media"
			"text"
			"sub"
			"cards";
		row-gap: clamp(1.5rem, 4vw, 2rem);
	}

	.kw-landing .kw-area__split--cards > .kw-band__subtitle {
		margin: 0.5rem 0 -0.5rem;
	}
}

/* ------------------------------------------------------------------ */
/* Projects: overview page, project cards and the project page          */
/* (templates/single-kw_project.html).                                 */
/* ------------------------------------------------------------------ */

/* Band heading with a link at the end of the row. */
.kw-landing .kw-band__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
}

.kw-landing .kw-band__head .kw-band__title {
	margin-bottom: 0;
}

/* Project cards, from a Query Loop: three per row, an incomplete last row is centred. */
.kw-landing .kw-project-grid {
	--kw-tile-gap: clamp(1rem, 2vw, 1.75rem);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.75rem, 3vw, 2.5rem) var(--kw-tile-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-landing .kw-project-grid > li {
	flex: 0 1 calc((100% - 2 * var(--kw-tile-gap)) / 3);
	min-width: 0;
	margin: 0;
}

.kw-landing .kw-project-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	height: 100%;
}

.kw-landing .kw-project-tile > * {
	margin: 0;
}

.kw-landing .kw-project-tile__media {
	margin-bottom: 0.6rem !important;
	overflow: hidden;
	border-radius: var(--kw-radius-md);
	aspect-ratio: 3 / 2;
}

.kw-landing .kw-project-tile__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.kw-landing .kw-project-tile:hover .kw-project-tile__media img {
	transform: scale(1.04);
}

.kw-landing .kw-project-tile__type {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--kw-brand);
}

.kw-landing .kw-project-tile__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.1875rem, 1.5vw, 1.375rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-landing .kw-project-tile__title a {
	color: inherit;
	text-decoration: none;
}

/* The whole card is the title's link. */
.kw-landing .kw-project-tile__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.kw-landing .kw-project-tile__title a:focus-visible {
	outline: none;
}

.kw-landing .kw-project-tile:has(.kw-project-tile__title a:focus-visible) {
	outline: 2px solid var(--kw-brand);
	outline-offset: 6px;
	border-radius: var(--kw-radius-md);
}

.kw-landing .kw-project-tile__location {
	align-items: flex-start;
	font-size: 0.875rem;
	color: var(--kw-muted);
}

.kw-landing .kw-project-tile__location::before {
	margin-top: 0.1em;
}

.kw-landing :is(.kw-project-tile__type, .kw-project-tile__location, .kw-project-hero__location):empty {
	display: none;
}

/* Project page hero: long project titles, location line. */
.kw-landing .kw-project-hero .kw-page-hero__title {
	font-size: clamp(1.875rem, 3.1vw, 2.75rem);
	line-height: 1.12;
	text-wrap: balance;
}

.kw-landing .kw-project-hero__location {
	font-size: 1rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.92);
}

/* Text beside a details card: both start at the top. */
.kw-landing .kw-split--top {
	align-items: start;
}

/* Project details. */
.kw-landing .kw-spec-card {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface);
}

.kw-landing .kw-spec-card > * {
	margin: 0;
}

.kw-landing .kw-spec-card h3 {
	margin-bottom: 0.75rem;
	font-family: var(--kw-font-heading);
	font-size: 1.5rem;
	font-weight: var(--kw-subtitle-weight);
	color: var(--kw-ink);
}

.kw-landing ul.kw-specs {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-landing ul.kw-specs li {
	padding-block: 0.8rem;
	border-top: 1px solid var(--kw-line);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--kw-ink);
}

.kw-landing ul.kw-specs li:first-child {
	border-top: 0;
}

.kw-landing ul.kw-specs li:last-child {
	padding-bottom: 0;
}

.kw-landing ul.kw-specs strong {
	display: block;
	margin-bottom: 0.15rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-muted);
}

/* Project photos: three per row, an incomplete last row is centred. */
.kw-landing .kw-gallery--centered.wp-block-gallery {
	--kw-gal-gap: clamp(0.5rem, 1vw, 0.875rem);
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--kw-gal-gap);
}

.kw-landing .kw-gallery--centered.wp-block-gallery > figure.wp-block-image {
	flex: 0 0 calc((100% - 2 * var(--kw-gal-gap)) / 3);
}

/* Captioned project photos that link to the project: the whole photo is the link. */
.kw-landing .kw-figures figure:has(figcaption a) {
	position: relative;
	overflow: hidden;
}

.kw-landing .kw-figures figure:has(figcaption a) img {
	transition: transform 0.6s ease;
}

.kw-landing .kw-figures figure:has(figcaption a):hover img {
	transform: scale(1.03);
}

.kw-landing .kw-landing__content .kw-figures figcaption a {
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-landing .kw-figures figcaption a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.kw-landing .kw-figures + .kw-more-link {
	margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (max-width: 1023.98px) {
	.kw-landing .kw-project-grid > li {
		flex-basis: calc((100% - var(--kw-tile-gap)) / 2);
	}
}

@media (max-width: 767.98px) {
	.kw-landing .kw-gallery--centered.wp-block-gallery > figure.wp-block-image {
		flex-basis: calc((100% - var(--kw-gal-gap)) / 2);
	}
}

@media (max-width: 559.98px) {
	.kw-landing .kw-project-grid > li {
		flex-basis: 100%;
	}
}

/* ------------------------------------------------------------------ */
/* Blog: article cards (Blog page and "more articles") and the article  */
/* page (templates/single.html).                                       */
/* ------------------------------------------------------------------ */

/* Hero without a photo (Blog page). */
.kw-landing .kw-page-hero--text {
	background: linear-gradient(120deg, var(--kw-navy) 0%, var(--kw-navy-light) 100%);
}

.kw-landing .kw-page-hero--text::before {
	content: none;
}

.kw-landing .kw-page-hero--text .kw-page-hero__body {
	max-width: 46rem;
	min-height: 0;
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
}

/* Article cards: three per row, an incomplete last row is centred. */
.kw-landing .kw-article-grid {
	--kw-tile-gap: clamp(1rem, 2vw, 1.75rem);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.75rem, 3vw, 2.5rem) var(--kw-tile-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-landing .kw-article-grid > li {
	flex: 0 1 calc((100% - 2 * var(--kw-tile-gap)) / 3);
	min-width: 0;
	margin: 0;
}

.kw-landing .kw-article-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	height: 100%;
}

.kw-landing .kw-article-tile > * {
	margin: 0;
}

.kw-landing .kw-article-tile__media {
	margin-bottom: 0.6rem !important;
	overflow: hidden;
	border-radius: var(--kw-radius-md);
	aspect-ratio: 3 / 2;
	background: var(--kw-white);
}

.kw-landing .kw-article-tile__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.kw-landing .kw-article-tile:hover .kw-article-tile__media img {
	transform: scale(1.04);
}

.kw-landing .kw-article-tile__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.75rem;
	font-size: 0.8125rem;
}

.kw-landing .kw-article-tile__meta > * {
	margin: 0;
}

.kw-landing .kw-article-tile__category {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--kw-brand);
}

.kw-landing .kw-article-tile__date {
	color: var(--kw-muted);
}

.kw-landing .kw-article-tile__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.25rem, 1.6vw, 1.5rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-landing .kw-article-tile__title a {
	color: inherit;
	text-decoration: none;
}

/* The whole card is the title's link. */
.kw-landing .kw-article-tile__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.kw-landing .kw-article-tile__title a:focus-visible {
	outline: none;
}

.kw-landing .kw-article-tile:has(.kw-article-tile__title a:focus-visible) {
	outline: 2px solid var(--kw-brand);
	outline-offset: 6px;
	border-radius: var(--kw-radius-md);
}

.kw-landing .kw-article-tile__excerpt p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--kw-text);
}

.kw-landing :is(.kw-article-tile__category, .kw-article__category, .kw-article__reading):empty {
	display: none;
}

/* Pagination under the article list (shown once there are more articles than fit a page). */
.kw-landing .kw-pagination {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
	font-size: 0.9375rem;
}

/* Article page. */
.kw-landing .kw-article__head {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: calc(48rem + 2 * var(--kw-gutter));
	padding-block: clamp(0.5rem, 2vw, 1.5rem) clamp(1.5rem, 3vw, 2.25rem);
	text-align: center;
	align-items: center;
}

.kw-landing .kw-article__head > * {
	margin: 0;
}

.kw-landing .kw-article__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(2rem, 4vw, 3.25rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.12;
	letter-spacing: 0;
	color: var(--kw-ink);
	text-wrap: balance;
}

.kw-landing .kw-article__lead p {
	margin: 0;
	font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
	line-height: 1.65;
	color: var(--kw-text);
}

.kw-landing .kw-article__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.25rem 1.25rem;
	font-size: 0.875rem;
	color: var(--kw-muted);
}

.kw-landing .kw-article__meta > * {
	margin: 0;
}

.kw-landing .kw-article__figure {
	max-width: calc(50rem + 2 * var(--kw-gutter));
	margin-bottom: clamp(1.75rem, 4vw, 3rem) !important;
}

.kw-landing .kw-article__media {
	margin: 0;
	overflow: hidden;
	border-radius: var(--kw-radius-md);
	aspect-ratio: 3 / 2;
	background: var(--kw-white);
}

.kw-landing .kw-article__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Article text: one comfortable reading column. */
.kw-landing .kw-article__content {
	max-width: 46rem;
	margin-inline: auto !important;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--kw-text);
}

.kw-landing .kw-article__content > * {
	margin: 0 0 1.25rem;
}

.kw-landing .kw-article__content > h2 {
	margin: clamp(2rem, 4vw, 2.75rem) 0 1rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.625rem, 2.6vw, 2.125rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.2;
	color: var(--kw-ink);
}

.kw-landing .kw-article__content > h3 {
	margin: 1.75rem 0 0.75rem;
	font-family: var(--kw-font-heading);
	font-size: 1.3125rem;
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.3;
	color: var(--kw-ink);
}

.kw-landing .kw-article__content > :is(ul, ol) {
	padding-inline-start: 1.25rem;
}

.kw-landing .kw-article__content li {
	margin-bottom: 0.6rem;
	padding-inline-start: 0.25rem;
}

.kw-landing .kw-article__content li::marker {
	color: var(--kw-brand);
}

.kw-landing .kw-article__content strong {
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-landing .kw-article__content a {
	color: var(--kw-brand);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.kw-landing .kw-article__content a:hover {
	color: var(--kw-navy);
}

.kw-landing .kw-article__content > figure.wp-block-image {
	margin-block: 1.75rem 2rem;
}

.kw-landing .kw-article__content > figure.wp-block-image img {
	width: 100%;
	height: auto;
	border-radius: var(--kw-radius-md);
}

/* Short summary box at the top of an article. */
.kw-landing .kw-article__content > .kw-keypoints {
	margin-bottom: 2rem;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border-left: 3px solid var(--kw-brand);
	border-radius: 0 var(--kw-radius-md) var(--kw-radius-md) 0;
	background: var(--kw-surface);
}

.kw-landing .kw-keypoints > * {
	margin: 0 0 0.5rem;
}

.kw-landing .kw-keypoints > :last-child {
	margin-bottom: 0;
}

.kw-landing .kw-keypoints .kw-keypoints__title {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--kw-brand);
}

.kw-landing .kw-keypoints ul {
	padding-inline-start: 1.25rem;
	font-size: 1rem;
}

.kw-landing .kw-keypoints li {
	margin-bottom: 0.35rem;
}

/* Help box at the end of an article. */
.kw-landing .kw-article__help {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-width: 46rem;
	margin: clamp(2rem, 4vw, 3rem) auto clamp(2.5rem, 5vw, 4rem) !important;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: var(--kw-radius-md);
	background: var(--kw-navy);
	color: rgba(255, 255, 255, 0.9);
}

.kw-landing .kw-article__help > * {
	margin: 0;
}

.kw-landing .kw-article__help .kw-article__help-title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.375rem, 2.2vw, 1.75rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	color: var(--kw-white);
}

.kw-landing .kw-article__help .wp-block-buttons {
	margin-top: 0.5rem;
}

@media (max-width: 1023.98px) {
	.kw-landing .kw-article-grid > li {
		flex-basis: calc((100% - var(--kw-tile-gap)) / 2);
	}
}

@media (max-width: 767.98px) {
	.kw-landing .kw-article__head {
		text-align: start;
		align-items: flex-start;
	}

	.kw-landing .kw-article__meta {
		justify-content: flex-start;
	}

	.kw-landing .kw-article__help .wp-block-buttons,
	.kw-landing .kw-article__help .wp-block-button,
	.kw-landing .kw-article__help .wp-block-button__link {
		width: 100%;
	}

	.kw-landing .kw-article__help .wp-block-button__link {
		justify-content: space-between;
	}
}

@media (max-width: 559.98px) {
	.kw-landing .kw-article-grid > li {
		flex-basis: 100%;
	}
}

/* ------------------------------------------------------------------ */
/* Contact page (/contact-us/): split hero with the showroom photo,    */
/* three contact cards, the form (Contact Form 7, see inc/contact.php) */
/* and the showroom's address and opening hours.                       */
/* ------------------------------------------------------------------ */

/* Large screens: the contact page's own area (breadcrumbs, sections, trust strip) is a little wider
   than the site's 1480px; the header, the footer and other pages keep the site width. */
.kw-landing:has(.kw-contact-hero) {
	--kw-container: calc(var(--wp--custom--container, 1480px) + 7.5rem);
}

/* Buttons on a light background: navy outline; "kw-btn-call" adds the phone icon. */
.kw-landing .kw-btn-line .wp-block-button__link {
	border-color: rgba(2, 44, 78, 0.3);
	background-color: transparent;
	color: var(--kw-navy);
}

.kw-landing .kw-btn-line .wp-block-button__link:hover {
	border-color: var(--kw-navy);
	background-color: var(--kw-navy);
	color: var(--kw-white);
}

.kw-landing .kw-btn-call .wp-block-button__link::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-phone) center / contain no-repeat;
	mask: var(--kw-i-phone) center / contain no-repeat;
}

/* A — Hero: the text on an off-white panel, the storefront photo beside it. */
.kw-landing .kw-contact-hero__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: clamp(26rem, 32vw, 29.5rem);
	overflow: hidden;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface-alt);
}

.kw-landing .kw-contact-hero__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
	padding: clamp(2rem, 3vw, 3rem) clamp(2rem, 3.4vw, 3.5rem);
}

.kw-landing .kw-contact-hero__text > * {
	margin: 0;
}

/* The eyebrow opens with a short fine rule. */
.kw-landing .kw-contact-hero .kw-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	color: var(--kw-brand);
}

.kw-landing .kw-contact-hero .kw-eyebrow::before {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 1px;
	background: currentColor;
	opacity: 0.55;
}

.kw-landing .kw-contact-hero__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(2.75rem, 4.2vw, 3.75rem);
	font-weight: var(--kw-title-weight);
	line-height: 1;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-landing .kw-contact-hero__lead {
	max-width: 38rem;
	font-family: var(--kw-font-heading);
	font-size: clamp(1.25rem, 1.6vw, 1.4375rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.35;
	color: var(--kw-ink);
	text-wrap: pretty;
}

.kw-landing .kw-landing__content p.kw-contact-hero__note {
	max-width: 36rem;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--kw-text);
}

.kw-landing .kw-contact-hero__actions {
	margin-top: 0.6rem !important;
}

.kw-landing .kw-contact-hero .wp-block-button__link {
	padding: 1em 1.55em;
	font-size: 0.9375rem;
}

.kw-landing .kw-contact-hero__media {
	position: relative;
	min-height: 18rem;
	margin: 0;
}

/* The banner is far wider than the column: frame the whole "KOURTESIS WATER SPA CENTER" sign
   and the glass showroom under it. */
.kw-landing .kw-contact-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 52% 50%;
}

/* B — Contact cards: an icon in a fine circle, the label, the value, one line, the action. The
   action link covers the whole card. */
.kw-landing .kw-contact-info {
	--kw-ccard-pad: clamp(1.5rem, 2.2vw, 2rem);
	--kw-ccard-icon: 2.75rem;
	padding-block: clamp(1.75rem, 3.5vw, 3rem) clamp(3rem, 6vw, 5rem);
}

.kw-landing .kw-ccards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 1.6vw, 1.5rem);
}

.kw-landing .kw-ccard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: calc(var(--kw-ccard-pad) + var(--kw-ccard-icon) + 1.25rem) var(--kw-ccard-pad) var(--kw-ccard-pad);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.kw-landing .kw-ccard > * {
	margin: 0;
}

.kw-landing .kw-ccard--phone { --kw-icon-src: var(--kw-i-phone); }
.kw-landing .kw-ccard--mail { --kw-icon-src: var(--kw-i-mail); }
.kw-landing .kw-ccard--pin { --kw-icon-src: var(--kw-i-pin); }

.kw-landing .kw-ccard__label {
	font-family: var(--kw-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-landing .kw-ccard__label::before,
.kw-landing .kw-ccard__label::after {
	content: "";
	position: absolute;
	top: var(--kw-ccard-pad);
	left: var(--kw-ccard-pad);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.kw-landing .kw-ccard__label::before {
	box-sizing: border-box;
	width: var(--kw-ccard-icon);
	height: var(--kw-ccard-icon);
	border: 1px solid var(--kw-line);
	border-radius: 50%;
	background: var(--kw-surface);
}

.kw-landing .kw-ccard__label::after {
	width: 1.2rem;
	height: 1.2rem;
	margin: calc((var(--kw-ccard-icon) - 1.2rem) / 2);
	background-color: var(--kw-navy);
	-webkit-mask: var(--kw-icon-src) center / contain no-repeat;
	mask: var(--kw-icon-src) center / contain no-repeat;
}

.kw-landing .kw-ccard__value {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.3125rem, 1.6vw, 1.5625rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.25;
	color: var(--kw-ink);
	overflow-wrap: anywhere;
}

.kw-landing .kw-landing__content p.kw-ccard__text {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--kw-text);
}

.kw-landing .kw-ccard__action {
	margin-top: auto !important;
	padding-top: 1.1rem;
}

.kw-landing .kw-landing__content p.kw-ccard__action a {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--kw-navy);
	text-decoration: none;
}

.kw-landing .kw-landing__content p.kw-ccard__action a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: var(--kw-radius-md);
}

.kw-landing .kw-landing__content p.kw-ccard__action a::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.kw-landing .kw-ccard:hover {
	border-color: #b7c6d8;
	box-shadow: 0 22px 40px -28px rgba(2, 44, 78, 0.45);
	transform: translateY(-2px);
}

.kw-landing .kw-ccard:hover .kw-ccard__label::before {
	border-color: var(--kw-navy);
	background: var(--kw-navy);
}

.kw-landing .kw-ccard:hover .kw-ccard__label::after {
	background-color: var(--kw-white);
}

.kw-landing .kw-ccard:hover p.kw-ccard__action a::after {
	transform: translateX(3px);
}

/* Keyboard focus: the whole card is outlined. */
.kw-landing .kw-landing__content p.kw-ccard__action a:focus-visible {
	outline: none;
}

.kw-landing .kw-landing__content p.kw-ccard__action a:focus-visible::before {
	outline: 2px solid var(--kw-brand);
	outline-offset: 3px;
}

/* C — The form: introduction on the left, the form card on the right, on a light blue band. */
.kw-landing .kw-contact-form {
	padding-block: clamp(3rem, 6vw, 5.5rem);
	border-block: 1px solid #e6edf5;
	background: var(--kw-surface);
}

.kw-landing .kw-contact-form__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
	align-items: start;
	gap: clamp(2rem, 5.5vw, 6rem);
}

.kw-landing .kw-contact-form__intro > * {
	margin: 0 0 1.1rem;
}

.kw-landing .kw-contact-form__intro > :last-child {
	margin-bottom: 0;
}

.kw-landing .kw-contact-form__title,
.kw-landing .kw-contact-visit__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(2rem, 3.3vw, 2.875rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--kw-ink);
	text-wrap: balance;
}

.kw-landing .kw-landing__content p.kw-contact-form__lead {
	font-size: 1.0625rem;
	color: var(--kw-text);
}

/* Kinds of enquiry, between fine rules. */
.kw-landing .kw-contact-topics {
	margin-block: 0.25rem 1.5rem !important;
	padding: 0;
	border-top: 1px solid #d9e3ee;
	list-style: none;
}

.kw-landing .kw-landing__content .kw-contact-topics li {
	position: relative;
	padding: 0.8rem 0 0.8rem 1.75rem;
	border-bottom: 1px solid #d9e3ee;
	font-weight: 500;
	line-height: 1.45;
	color: var(--kw-ink);
}

.kw-landing .kw-contact-topics li::before {
	content: "";
	position: absolute;
	top: 1.5rem;
	left: 0;
	width: 0.85rem;
	height: 1px;
	background: var(--kw-brand);
}

.kw-landing .kw-landing__content p.kw-contact-form__tip {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--kw-muted);
}

.kw-landing .kw-landing__content p.kw-contact-form__call {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.75rem;
	padding-top: 0.4rem;
	font-size: 0.9375rem;
	color: var(--kw-text);
}

.kw-landing .kw-landing__content p.kw-contact-form__call a {
	font-family: var(--kw-font-heading);
	font-size: 1.5rem;
	font-weight: var(--kw-title-weight);
	color: var(--kw-ink);
	text-decoration: none;
}

.kw-landing .kw-landing__content p.kw-contact-form__call a:hover {
	color: var(--kw-brand);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* The form card. */
.kw-landing .kw-form-card {
	padding: clamp(1.75rem, 4vw, 3.5rem);
	border: 1px solid #dde6f0;
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	box-shadow: 0 34px 64px -44px rgba(2, 44, 78, 0.4), 0 2px 6px rgba(2, 44, 78, 0.04);
}

.kw-landing .kw-form-card > * {
	margin: 0;
}

/* Staging only: a discreet line above the form (it sends nothing there). */
.kw-landing .kw-form-card .kw-staging-banner {
	gap: 0.6rem;
	margin: 0 0 1.5rem;
	padding: 0 0 1.1rem;
	border: 0;
	border-bottom: 1px solid var(--kw-line);
	border-radius: 0;
	background: none;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--kw-muted);
}

.kw-landing .kw-form-card .kw-staging-banner::before {
	width: 1rem;
	height: 1rem;
	margin-top: 0.1rem;
	background-color: var(--kw-muted);
}

.kw-landing .kw-form-card .kw-staging-banner strong {
	font-weight: 600;
	color: var(--kw-text);
}

.kw-landing .wpcf7 form {
	margin: 0;
}

.kw-landing .kw-form__hint {
	margin: 0 0 1.75rem;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

.kw-landing .kw-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.6rem 1.5rem;
}

.kw-landing .kw-field {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	min-width: 0;
}

.kw-landing .kw-field--full {
	grid-column: 1 / -1;
}

.kw-landing .kw-field > label {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--kw-ink);
}

.kw-landing .kw-field__req {
	color: var(--kw-brand);
}

.kw-landing .kw-field__opt {
	font-weight: 400;
	color: var(--kw-muted);
}

.kw-landing .wpcf7-form-control-wrap {
	display: block;
}

.kw-landing .kw-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea) {
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0.95rem 1.1rem;
	border: 1px solid #cdd7e3;
	border-radius: var(--kw-radius-sm);
	background: #fbfcfe;
	font-family: var(--kw-font-body);
	font-size: 1rem;
	line-height: 1.4;
	color: var(--kw-ink);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.kw-landing .kw-form :is(input, textarea):hover {
	border-color: #9fb1c6;
}

.kw-landing .kw-form textarea {
	min-height: 10rem;
	resize: vertical;
}

.kw-landing .kw-form :is(input, textarea):focus {
	border-color: var(--kw-navy);
	outline: none;
	background: var(--kw-white);
	box-shadow: 0 0 0 3px rgba(2, 44, 78, 0.14);
}

.kw-landing .kw-form :is(input, textarea).wpcf7-not-valid {
	border-color: #b42318;
}

.kw-landing .kw-form .wpcf7-not-valid-tip {
	margin-top: 0.4rem;
	font-size: 0.8125rem;
	color: #b42318;
}

/* The send button, set apart from the fields by a fine rule. */
.kw-landing .kw-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	margin-top: 2rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--kw-line);
}

.kw-landing .kw-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 17rem;
	min-height: 3.5rem;
	padding: 1.1rem 2.75rem;
	border: 1px solid transparent;
	border-radius: 3px;
	background-color: var(--kw-navy);
	box-shadow: 0 16px 30px -22px rgba(2, 44, 78, 0.75);
	font-family: var(--kw-font-body);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--kw-white);
	cursor: pointer;
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.kw-landing .kw-form .wpcf7-submit:hover {
	background-color: var(--kw-brand);
	box-shadow: 0 20px 34px -20px rgba(2, 44, 78, 0.8);
	transform: translateY(-1px);
}

.kw-landing .kw-form .wpcf7-submit:focus-visible {
	outline: 2px solid var(--kw-brand);
	outline-offset: 3px;
}

.kw-landing .kw-form .wpcf7-submit:disabled {
	opacity: 0.6;
	cursor: default;
}

.kw-landing .kw-form .wpcf7-spinner {
	margin: 0;
}

/* The response message under the form. */
.kw-landing .wpcf7 form .wpcf7-response-output {
	margin: 1.25rem 0 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--kw-line);
	border-inline-start: 3px solid var(--kw-navy);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-surface);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--kw-ink);
}

.kw-landing .wpcf7 form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output {
	border-inline-start-color: #b42318;
}

.kw-landing .wpcf7 form.sent .wpcf7-response-output {
	border-inline-start-color: #1a7f4b;
}

/* The anti-spam field: invisible for everyone, and hidden from assistive technology. */
.kw-landing .kw-hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* D — Showroom: the invitation, the address and social profiles, the opening hours, in three
   columns between fine rules. */
.kw-landing .kw-contact-visit {
	padding-block: clamp(3rem, 6vw, 5rem);
}

.kw-landing .kw-contact-visit__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr) minmax(0, 1fr);
	border-block: 1px solid var(--kw-line);
}

.kw-landing .kw-contact-visit__grid > * {
	margin: 0;
	padding: clamp(1.75rem, 3vw, 2.75rem) clamp(1.5rem, 3vw, 3rem);
}

.kw-landing .kw-contact-visit__grid > * + * {
	border-inline-start: 1px solid var(--kw-line);
}

.kw-landing .kw-contact-visit__intro {
	padding-inline-start: 0 !important;
}

.kw-landing .kw-contact-visit__hours {
	padding-inline-end: 0 !important;
}

.kw-landing .kw-contact-visit__grid > * > * {
	margin: 0 0 1rem;
}

.kw-landing .kw-contact-visit__grid > * > :last-child {
	margin-bottom: 0;
}

.kw-landing .kw-contact-visit__intro p:not(.kw-eyebrow, .kw-more-link) {
	max-width: 30rem;
	font-size: 1.0625rem;
	color: var(--kw-text);
}

.kw-landing .kw-contact-visit__actions {
	margin-top: 1.5rem !important;
}

.kw-landing .kw-contact-visit__label {
	font-family: var(--kw-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--kw-muted);
}

.kw-landing .kw-contact-visit__label:not(:first-child) {
	margin-top: 2rem;
}

.kw-landing .kw-landing__content p.kw-contact-visit__address {
	font-family: var(--kw-font-heading);
	font-size: 1.375rem;
	font-weight: var(--kw-title-weight);
	line-height: 1.35;
	color: var(--kw-ink);
}

/* Social profiles: the mark and the name, one per line. */
.kw-landing .kw-contact-visit__social.wp-block-social-links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
	padding: 0;
	font-size: 1rem;
	list-style: none;
}

.kw-landing .kw-contact-visit__social .wp-social-link {
	margin: 0;
	background: none;
	color: var(--kw-navy);
}

.kw-landing .kw-landing__content .kw-contact-visit__social li a {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--kw-ink);
	text-decoration: underline transparent;
	text-underline-offset: 4px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.kw-landing .kw-landing__content .kw-contact-visit__social li a:hover {
	color: var(--kw-brand);
	text-decoration-color: currentColor;
}

.kw-landing .kw-contact-visit__social .wp-social-link svg {
	width: 1.15rem;
	height: 1.15rem;
	fill: var(--kw-navy);
}

/* Core draws the label at 0.65em of the link: keep it at the link's size. */
.kw-landing .kw-contact-visit__social .wp-social-link .wp-block-social-link-label {
	margin: 0;
	font-size: 1em;
	line-height: 1.4;
}

/* Opening hours: one row per day. */
.kw-landing .kw-hours {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--kw-line);
	list-style: none;
}

.kw-landing .kw-landing__content .kw-hours li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--kw-line);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.kw-landing .kw-hours__day {
	font-weight: 500;
	color: var(--kw-ink);
}

.kw-landing .kw-hours__time {
	font-variant-numeric: tabular-nums;
	color: var(--kw-text);
}

.kw-landing .kw-hours__closed .kw-hours__time {
	color: var(--kw-muted);
}

/* Tablet: the hero stacks (photo first), the cards become rows, the form and the showroom take
   the full width. */
@media (max-width: 1023.98px) {
	.kw-landing .kw-contact-hero__inner {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.kw-landing .kw-contact-hero__media {
		order: -1;
		min-height: 0;
		height: clamp(13rem, 42vw, 20rem);
	}

	.kw-landing .kw-contact-hero__text {
		padding: clamp(1.75rem, 5vw, 2.75rem);
	}

	.kw-landing .kw-ccards {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-ccard {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		column-gap: 1.5rem;
		row-gap: 0.3rem;
		padding: var(--kw-ccard-pad) var(--kw-ccard-pad) var(--kw-ccard-pad) calc(var(--kw-ccard-pad) + var(--kw-ccard-icon) + 1.25rem);
	}

	.kw-landing .kw-ccard > :not(.kw-ccard__action) {
		grid-column: 1;
	}

	.kw-landing .kw-ccard__action {
		grid-column: 2;
		grid-row: 1 / span 3;
		margin-top: 0 !important;
		padding-top: 0;
	}

	.kw-landing .kw-contact-form__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-contact-form__intro {
		max-width: 42rem;
	}

	.kw-landing .kw-contact-visit__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-landing .kw-contact-visit__intro {
		grid-column: 1 / -1;
		padding-inline-end: 0 !important;
	}

	.kw-landing .kw-contact-visit__grid > * + * {
		border-top: 1px solid var(--kw-line);
	}

	.kw-landing .kw-contact-visit__details {
		padding-inline-start: 0 !important;
		border-inline-start: 0 !important;
	}
}

/* Phones: one column throughout; full-width fields and buttons. */
@media (max-width: 639.98px) {
	.kw-landing .kw-contact-hero__actions,
	.kw-landing .kw-contact-hero__actions .wp-block-button,
	.kw-landing .kw-contact-hero__actions .wp-block-button__link,
	.kw-landing .kw-contact-visit__actions,
	.kw-landing .kw-contact-visit__actions .wp-block-button,
	.kw-landing .kw-contact-visit__actions .wp-block-button__link {
		width: 100%;
	}

	.kw-landing .kw-contact-hero__actions .wp-block-button__link,
	.kw-landing .kw-contact-visit__actions .wp-block-button__link {
		justify-content: center;
	}

	.kw-landing .kw-ccard {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-ccard__action {
		grid-column: 1;
		grid-row: auto;
		padding-top: 0.6rem;
	}

	.kw-landing .kw-form__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-form .wpcf7-submit {
		width: 100%;
		min-width: 0;
	}

	.kw-landing .kw-contact-visit__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-contact-visit__grid > * {
		padding-inline: 0 !important;
		border-inline-start: 0 !important;
	}
}

/* ------------------------------------------------------------------ */
/* Terms and policy pages (templates/page-legal.html). The text uses    */
/* the article column styles (.kw-article__content).                   */
/* ------------------------------------------------------------------ */

.kw-landing .kw-legal__head {
	padding-block: clamp(0.5rem, 2vw, 1.25rem) clamp(1.5rem, 3vw, 2.25rem);
}

.kw-landing .kw-legal__head > * {
	margin: 0 0 0.75rem;
}

.kw-landing .kw-legal__head > :last-child {
	margin-bottom: 0;
}

.kw-landing .kw-legal__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: var(--kw-title-weight);
	line-height: 1.12;
	letter-spacing: 0;
	color: var(--kw-ink);
	text-wrap: balance;
}

.kw-landing .kw-legal__company {
	font-size: 0.9375rem;
	color: var(--kw-muted);
}

.kw-landing .kw-legal__layout {
	display: grid;
	grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
	align-items: start;
	gap: clamp(1.5rem, 4vw, 4rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.kw-landing .kw-legal__nav {
	position: sticky;
	top: calc(var(--kw-header-offset) + 1.5rem);
}

.kw-landing .kw-legal__body > * {
	margin: 0;
}

.kw-landing .kw-legal__body .kw-legal__content,
.kw-landing .kw-legal__body .kw-legal__help {
	margin-inline: 0 !important;
}

.kw-landing .kw-legal__body .kw-legal__help {
	margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
	margin-bottom: 0 !important;
}

/* Navigation between the policy pages. */
.kw-landing .kw-policy-nav__title {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--kw-brand);
}

.kw-landing .kw-policy-nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-inline-start: 1px solid var(--kw-line);
}

.kw-landing .kw-policy-nav a {
	display: block;
	margin-inline-start: -1px;
	padding: 0.5rem 0 0.5rem 1rem;
	border-inline-start: 2px solid transparent;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--kw-text);
	text-decoration: none;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.kw-landing .kw-policy-nav a:hover {
	color: var(--kw-navy);
	border-inline-start-color: var(--kw-line);
}

.kw-landing .kw-policy-nav a[aria-current="page"] {
	border-inline-start-color: var(--kw-navy);
	font-weight: 600;
	color: var(--kw-ink);
}

/* Inside the text: contents, company details, tables, review notes. */
.kw-landing .kw-legal__content > h2 {
	scroll-margin-top: 0; /* Below the sticky header: html scroll-padding-top. */
}

.kw-landing .kw-legal__content > :first-child {
	margin-top: 0;
}

.kw-landing .kw-legal-toc {
	padding: clamp(1.1rem, 2.5vw, 1.5rem);
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface);
}

.kw-landing .kw-legal-toc > * {
	margin: 0;
}

.kw-landing .kw-legal-toc__title {
	margin-bottom: 0.6rem !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--kw-brand);
}

.kw-landing .kw-legal-toc ol {
	columns: 2;
	column-gap: 2rem;
	padding-inline-start: 1.25rem;
	font-size: 0.9375rem;
}

.kw-landing .kw-legal-toc li {
	margin-bottom: 0.35rem;
	break-inside: avoid;
}

.kw-landing .kw-legal__content ul.kw-legal-facts {
	padding: 0;
	list-style: none;
}

/* Label and value in two columns, so a long value (e.g. the account holder) wraps within its column. */
.kw-landing .kw-legal-facts li {
	display: grid;
	grid-template-columns: 12.5rem minmax(0, 1fr);
	column-gap: 1rem;
	margin: 0;
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--kw-line);
}

.kw-landing .kw-legal-facts strong {
	color: var(--kw-ink);
}

.kw-landing .kw-legal__content > figure.wp-block-table {
	margin-block: 0.5rem 1.75rem;
	overflow-x: auto;
}

.kw-landing .kw-legal__content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
	line-height: 1.5;
}

.kw-landing .kw-legal__content :is(th, td) {
	padding: 0.65rem 0.75rem;
	border: 0;
	border-bottom: 1px solid var(--kw-line);
	text-align: start;
	vertical-align: top;
}

.kw-landing .kw-legal__content th {
	background: var(--kw-surface);
	font-weight: 600;
	color: var(--kw-ink);
}

.kw-landing .kw-legal__content td code {
	font-size: 0.8125rem;
	overflow-wrap: anywhere;
}

/* Cookie tables: the same columns in every table, the names column wide enough for whole names. */
@media (min-width: 560px) {
	.kw-landing .kw-legal__content .kw-cookie-table :is(th, td):nth-child(1) {
		width: 34%;
	}

	.kw-landing .kw-legal__content .kw-cookie-table :is(th, td):nth-child(2) {
		width: 17%;
	}

	.kw-landing .kw-legal__content .kw-cookie-table :is(th, td):nth-child(3) {
		width: 30%;
	}
}

/* The model withdrawal form (Επιστροφές): a framed sheet with one line per field. */
.kw-landing .kw-legal-form {
	padding: clamp(1.1rem, 2.5vw, 1.5rem) clamp(1.1rem, 2.5vw, 1.75rem);
	border: 1px solid var(--kw-line);
	border-inline-start: 3px solid var(--kw-navy);
	border-radius: var(--kw-radius-md);
	background: var(--kw-surface);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.kw-landing .kw-legal-form > * {
	margin: 0;
	padding-block: 0.55rem;
	border-bottom: 1px dashed var(--kw-line);
}

.kw-landing .kw-legal-form > :first-child {
	padding-top: 0;
}

.kw-landing .kw-legal-form > :last-child {
	padding-bottom: 0;
	border-bottom: 0;
	font-size: 0.8125rem;
	color: var(--kw-muted);
}

@media (max-width: 1023.98px) {
	.kw-landing .kw-legal__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.kw-landing .kw-legal__nav {
		position: static;
		order: 2;
	}
}

@media (max-width: 559.98px) {
	.kw-landing .kw-legal-toc ol {
		columns: 1;
	}

	.kw-landing .kw-legal-facts li {
		display: block;
	}

	.kw-landing .kw-legal-facts strong {
		display: block;
	}

	/* Cookie tables as one card per cookie: name, purpose, then source and duration. */
	.kw-landing .kw-legal__content .kw-cookie-table :is(table, tbody, td) {
		display: block;
	}

	.kw-landing .kw-legal__content .kw-cookie-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.kw-landing .kw-legal__content .kw-cookie-table tr {
		display: flex;
		flex-wrap: wrap;
		gap: 0.3rem 1.25rem;
		padding: 0.875rem 0;
		border-bottom: 1px solid var(--kw-line);
	}

	.kw-landing .kw-legal__content .kw-cookie-table tbody tr:first-child {
		border-top: 2px solid var(--kw-navy);
	}

	.kw-landing .kw-legal__content .kw-cookie-table td {
		padding: 0;
		border: 0;
	}

	.kw-landing .kw-legal__content .kw-cookie-table td:first-child,
	.kw-landing .kw-legal__content .kw-cookie-table td:nth-child(3) {
		flex-basis: 100%;
	}

	.kw-landing .kw-legal__content .kw-cookie-table td:nth-child(3) {
		order: 1;
	}

	.kw-landing .kw-legal__content .kw-cookie-table :is(td:nth-child(2), td:nth-child(4)) {
		order: 2;
		font-size: 0.8125rem;
		color: var(--kw-muted);
	}

	.kw-landing .kw-legal__content .kw-cookie-table td:nth-child(2)::before {
		content: "Από: ";
		font-weight: 600;
		color: var(--kw-ink);
	}

	.kw-landing .kw-legal__content .kw-cookie-table td:nth-child(4)::before {
		content: "Διάρκεια: ";
		font-weight: 600;
		color: var(--kw-ink);
	}
}

/* ------------------------------------------------------------------ */
/* Services overview, industrial projects, offers and the 404 page     */
/* (templates/404.html, patterns/page-404.php).                        */
/* ------------------------------------------------------------------ */

/* Service cards: photo, title (the whole card is its link), text and links into the page. */
.kw-landing .kw-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.75rem);
}

.kw-landing .kw-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--kw-line);
	border-radius: var(--kw-radius-md);
	background: var(--kw-white);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.kw-landing .kw-service-card:hover {
	border-color: var(--kw-navy);
	box-shadow: var(--kw-shadow);
}

.kw-landing .kw-service-card > *,
.kw-landing .kw-service-card__body > * {
	margin: 0;
}

.kw-landing .kw-service-card__media {
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.kw-landing .kw-service-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.kw-landing .kw-service-card:hover .kw-service-card__media img {
	transform: scale(1.04);
}

.kw-landing .kw-service-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.65rem;
	padding: clamp(1.25rem, 2vw, 1.75rem);
}

.kw-landing .kw-service-card__title {
	font-family: var(--kw-font-heading);
	font-size: clamp(1.25rem, 1.6vw, 1.5rem);
	font-weight: var(--kw-subtitle-weight);
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--kw-ink);
}

.kw-landing .kw-service-card__title a {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	color: inherit;
	text-decoration: none;
}

.kw-landing .kw-service-card__title a::after {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.25em;
	background-color: var(--kw-navy);
	-webkit-mask: var(--kw-i-arrow) center / contain no-repeat;
	mask: var(--kw-i-arrow) center / contain no-repeat;
}

.kw-landing .kw-service-card__title a::before {
	content: "";
	position: absolute;
	inset: 0;
}

.kw-landing .kw-service-card__title a:focus-visible {
	outline: none;
}

.kw-landing .kw-service-card:has(.kw-service-card__title a:focus-visible) {
	outline: 2px solid var(--kw-brand);
	outline-offset: 3px;
}

.kw-landing .kw-service-card__text {
	font-size: 0.9375rem;
	color: var(--kw-text);
}

/* Links into the service page, above the card's own link. */
.kw-landing ul.kw-service-card__links {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: auto;
	padding: 0.35rem 0 0;
	list-style: none;
}

.kw-landing ul.kw-service-card__links li {
	margin: 0;
	line-height: 1.2;
}

.kw-landing .kw-landing__content .kw-service-card__links a {
	display: inline-flex;
	padding: 0.4rem 0.75rem;
	border: 1px solid var(--kw-line);
	border-radius: 999px;
	background: var(--kw-white);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--kw-ink);
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.kw-landing .kw-landing__content .kw-service-card__links a:hover {
	border-color: var(--kw-navy);
	background: var(--kw-surface);
}

/* "Όλες οι υπηρεσίες" under the company page's service cards. */
.kw-landing .kw-cards + .kw-more-link {
	margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* A line under the project cards, linking the industrial projects. */
.kw-landing .kw-services-industrial {
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
	text-align: center;
	color: var(--kw-text);
}

/* Reference list (industrial projects): the name and, below it, the place, as published. */
.kw-landing ul.kw-refs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.625rem, 1.2vw, 1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.kw-landing ul.kw-refs li {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.3rem;
	box-sizing: border-box;
	min-height: 5.5rem;
	margin: 0;
	padding: 0.95rem 1.1rem;
	border: 1px solid var(--kw-line);
	border-left: 3px solid var(--kw-navy);
	border-radius: var(--kw-radius-sm);
	background: var(--kw-white);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.45;
	color: var(--kw-muted);
}

.kw-landing ul.kw-refs strong {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--kw-ink);
}

/* Offers: the price note under the products. */
.kw-landing .kw-offers__note {
	margin-top: clamp(1.25rem, 2.5vw, 2rem);
	font-size: 0.875rem;
	color: var(--kw-muted);
}

/* 404: the navy panel with the search, then the categories. */
.kw-landing.kw-404 .kw-404__hero {
	margin-top: clamp(1rem, 2.5vw, 2rem) !important;
}

.kw-landing.kw-404 .kw-404__hero .kw-page-hero__body {
	max-width: 44rem;
}

.kw-landing.kw-404 .kw-404__search {
	width: 100%;
	max-width: 34rem;
	margin: 0.25rem 0 0 !important;
}

.kw-landing.kw-404 .kw-404__search .wp-block-search__inside-wrapper {
	height: 3rem;
	border-color: transparent;
	background: var(--kw-white);
}

.kw-landing.kw-404 .kw-404__pages {
	margin-top: clamp(1.5rem, 3vw, 2rem);
}

.kw-landing.kw-404 .kw-404__help {
	margin-top: 1.25rem;
	color: var(--kw-text);
}

.kw-landing.kw-404 .kw-404__help a {
	color: var(--kw-brand);
	text-underline-offset: 3px;
}

/* Site search and post archives (templates/search.html, templates/archive.html). */
.kw-landing .kw-results-hero .kw-page-hero__body {
	max-width: 52rem;
}

/* "Αποτελέσματα αναζήτησης για: …" is long: a smaller title keeps it to two lines. */
.kw-landing .kw-results-hero .kw-page-hero__title {
	font-size: clamp(1.875rem, 3.2vw, 2.75rem);
	line-height: 1.15;
}

.kw-landing .kw-results__search {
	width: 100%;
	max-width: 34rem;
	margin: 0.25rem 0 0 !important;
}

.kw-landing .kw-results__search .wp-block-search__inside-wrapper {
	height: 3rem;
	border-color: transparent;
	background: var(--kw-white);
}

.kw-landing .kw-results__shop {
	font-size: 0.9375rem;
	color: rgba(255, 255, 255, 0.88);
}

.kw-landing .kw-results__shop a {
	color: var(--kw-white);
	text-underline-offset: 3px;
}

.kw-landing .kw-results__empty {
	font-size: 1.0625rem;
	color: var(--kw-text);
}

.kw-landing .kw-results__empty a {
	color: var(--kw-brand);
	text-underline-offset: 3px;
}

@media (max-width: 1023.98px) {
	.kw-landing .kw-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kw-landing ul.kw-refs {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.kw-landing ul.kw-refs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639.98px) {
	.kw-landing .kw-service-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 374.98px) {
	.kw-landing ul.kw-refs {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	:is(.kw-header, .kw-home, .kw-shop, .kw-footer) *,
	:is(.kw-header, .kw-home, .kw-shop, .kw-footer) *::before,
	:is(.kw-header, .kw-home, .kw-shop, .kw-footer) *::after {
		transition: none !important;
	}

	.kw-product .kw-reviews[open] .kw-reviews__body {
		animation: none;
	}
}
