/*
 * Anka Smart brand layer (from the "anka brand identity" catalog).
 *
 * Palette
 *   lime       #A4CC39  backgrounds, lines, accents; text only on dark (8.3:1)
 *   dark green #5E7326  headings/links on light backgrounds (5.3:1 on white)
 *   ink        #222523  body text and dark sections
 *   red        #ED4A24  decoration; #D43611 for small text/badges (4.8:1)
 *   sage       #92BFB3, light #F2F3F4
 */

@font-face {
	font-family: "New Frank";
	src: url("../fonts/new-frank-regular.woff2") format("woff2");
	font-weight: 300 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "New Frank";
	src: url("../fonts/new-frank-bold.woff2") format("woff2");
	font-weight: 600 800;
	font-style: normal;
	font-display: swap;
}

:root:root {
	--ak-lime: #a4cc39;
	--ak-lime-soft: #e8f2cf;
	--ak-green: #5e7326;
	--ak-ink: #222523;
	--ak-muted: #5f6461;
	--ak-red: #ed4a24;
	--ak-red-text: #d43611;
	--ak-sage: #92bfb3;
	--ak-light: #f2f3f4;
	--ak-line: 1px solid var(--ak-lime);
	--ak-font: "New Frank", system-ui, -apple-system, "Segoe UI", sans-serif;
	/* The catalog's interlocking chevron field (cover page), one 400x294 tile. */
	--ak-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 294'%3E%3Cpath d='M-378 -197 -281 -294 -200 -294 -322 -173 -200 -51 -281 -51 -378 -149zM-400 -197h22v48h-22zM-378 97 -281 0 -200 0 -322 121 -200 243 -281 243 -378 145zM-400 97h22v48h-22zM-378 391 -281 294 -200 294 -322 415 -200 537 -281 537 -378 439zM-400 391h22v48h-22zM22 -197 119 -294 200 -294 78 -173 200 -51 119 -51 22 -149zM0 -197h22v48h-22zM22 97 119 0 200 0 78 121 200 243 119 243 22 145zM0 97h22v48h-22zM22 391 119 294 200 294 78 415 200 537 119 537 22 439zM0 391h22v48h-22zM422 -197 519 -294 600 -294 478 -173 600 -51 519 -51 422 -149zM400 -197h22v48h-22zM422 97 519 0 600 0 478 121 600 243 519 243 422 145zM400 97h22v48h-22zM422 391 519 294 600 294 478 415 600 537 519 537 422 439zM400 391h22v48h-22zM-178 -50 -81 -147 0 -147 -122 -26 0 96 -81 96 -178 -2zM-200 -50h22v48h-22zM-178 244 -81 147 0 147 -122 268 0 390 -81 390 -178 292zM-200 244h22v48h-22zM-178 538 -81 441 0 441 -122 562 0 684 -81 684 -178 586zM-200 538h22v48h-22zM222 -50 319 -147 400 -147 278 -26 400 96 319 96 222 -2zM200 -50h22v48h-22zM222 244 319 147 400 147 278 268 400 390 319 390 222 292zM200 244h22v48h-22zM222 538 319 441 400 441 278 562 400 684 319 684 222 586zM200 538h22v48h-22zM622 -50 719 -147 800 -147 678 -26 800 96 719 96 622 -2zM600 -50h22v48h-22zM622 244 719 147 800 147 678 268 800 390 719 390 622 292zM600 244h22v48h-22zM622 538 719 441 800 441 678 562 800 684 719 684 622 586zM600 538h22v48h-22z' fill='%23a4cc39'/%3E%3C/svg%3E");

	--theme-font-family: var(--ak-font);
	--theme-text-color: var(--ak-ink);
	--theme-headings-color: var(--ak-green);
	--theme-link-initial-color: var(--ak-green);
	--theme-link-hover-color: var(--ak-ink);
	--theme-border-color: #dfe3d6;
	--theme-button-background-initial-color: var(--ak-ink);
	--theme-button-background-hover-color: var(--ak-green);
	--theme-button-text-initial-color: #fff;
	--theme-button-text-hover-color: #fff;
	--theme-palette-color-1: var(--ak-green);
	--theme-palette-color-2: var(--ak-ink);
	--theme-palette-color-3: var(--ak-muted);
	--theme-palette-color-4: var(--ak-ink);
	--theme-palette-color-5: #dfe3d6;
	--theme-palette-color-6: var(--ak-light);
	--theme-palette-color-7: #fafbf7;
	--theme-palette-color-8: #fff;
}

body,
button,
input,
select,
textarea {
	font-family: var(--ak-font);
}

/* Catalog headings are lowercase; the source text keeps normal casing for SEO. */
h1,
h2,
h3,
.ak-lower {
	text-transform: lowercase;
	letter-spacing: -0.01em;
	font-weight: 700;
}

.ak-keep {
	text-transform: none;
}

h1 {
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
	line-height: 1.1;
}

h2 {
	font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.4rem);
	line-height: 1.15;
}

/* Header navigation: readable size, no all-caps. */
.ct-header .ct-menu-link {
	font-size: 15px !important;
	text-transform: none !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
}

/* Account link: person icon before the label. */
.ak-menu-account > a::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-right: 0.4em;
	vertical-align: -0.12em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5c0-3-4-5.5-9-5.5z'/%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'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5c0-3-4-5.5-9-5.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/*
 * Menu colours per surface. Blocksy colours hover/current links with
 * --theme-link-hover-color, which is near-black site-wide; on the dark
 * dropdowns and mobile panel that made them black on black.
 */
.ct-header [data-id="menu"] > ul > li > .ct-menu-link {
	--theme-link-initial-color: var(--ak-ink);
	--theme-link-hover-color: var(--ak-green);
	--theme-link-active-color: var(--ak-green);
	--menu-indicator-hover-color: var(--ak-lime);
	--menu-indicator-active-color: var(--ak-lime);
}

.ct-header [data-id="menu"] > ul > li:is(:hover, :focus-within, [class*="current-menu-"]) > .ct-menu-link {
	color: var(--ak-green) !important;
}

.ct-header [data-id="menu"] .sub-menu {
	--dropdown-background-color: var(--ak-ink);
	--theme-link-initial-color: var(--ak-light);
	--theme-link-hover-color: var(--ak-lime);
	--theme-link-active-color: var(--ak-lime);
}

.ct-header [data-id="menu"] .sub-menu .ct-menu-link {
	color: var(--ak-light) !important;
}

.ct-header [data-id="menu"] .sub-menu li:is(:hover, :focus-within, [class*="current-menu-"]) > .ct-menu-link {
	color: var(--ak-lime) !important;
}

/* Mobile off-canvas menu (dark panel). */
#offcanvas .ct-panel-inner,
#offcanvas {
	--theme-link-initial-color: var(--ak-light);
	--theme-link-hover-color: var(--ak-lime);
	--theme-link-active-color: var(--ak-lime);
}

#offcanvas [data-id="mobile-menu"] .ct-menu-link {
	color: var(--ak-light) !important;
}

#offcanvas [data-id="mobile-menu"] li:is(:hover, :focus-within, [class*="current-menu-"]) > .ct-menu-link,
#offcanvas [data-id="mobile-menu"] li:is(:hover, :focus-within, [class*="current-menu-"]) > .ct-sub-menu-parent > .ct-menu-link {
	color: var(--ak-lime) !important;
}

/* The logo image already says "ankasmart"; keep the site title for screen readers only. */
.ct-header .site-title-container {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

:focus-visible {
	outline: 3px solid var(--ak-lime);
	outline-offset: 2px;
}

/* ---------- Buttons ---------- */

.wp-block-button__link,
.button,
.ct-button {
	border-radius: 2px;
	font-weight: 700;
}

.wp-block-button.is-style-ak-lime .wp-block-button__link {
	background: var(--ak-lime);
	color: var(--ak-ink);
}

.wp-block-button.is-style-ak-lime .wp-block-button__link:hover {
	background: #b6d95a;
	color: var(--ak-ink);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid var(--ak-ink);
	background: transparent;
	color: var(--ak-ink);
}

.ak-dark .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: var(--ak-lime);
	color: var(--ak-light);
}

.ak-dark .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--ak-lime);
	color: var(--ak-ink);
}

/* ---------- Dark sections (hero, CTA) ---------- */

.ak-dark {
	background: var(--ak-ink);
	color: var(--ak-light);
	--theme-headings-color: var(--ak-lime);
	--theme-link-initial-color: var(--ak-lime);
	--theme-link-hover-color: #fff;
}

.ak-dark :is(h1, h2, h3, h4) {
	color: var(--ak-lime);
}

.ak-dark p,
.ak-dark li {
	color: #d9dcd6;
}

.ak-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* Chevron field faded in from the right edge of the hero. */
.ak-hero::after {
	content: "";
	position: absolute;
	inset: 0 0 0 50%;
	z-index: -1;
	background-image: var(--ak-pattern);
	background-size: 200px 147px;
	opacity: 0.22;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 45%);
	mask-image: linear-gradient(to right, transparent, #000 45%);
}

.ak-pattern {
	background-image: var(--ak-pattern);
	background-size: 160px 118px;
}

.ak-eyebrow {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: lowercase;
	color: var(--ak-green);
}

.ak-dark .ak-eyebrow {
	color: var(--ak-lime);
}

/* ---------- Page sections ---------- */

.ak-section {
	padding-block: clamp(3rem, 2rem + 4vw, 6rem);
}

.ak-section > * {
	max-width: var(--theme-normal-container-max-width, 1290px);
	margin-inline: auto;
	padding-inline: 1.25rem;
}

.ak-section.has-background-light,
.ak-light {
	background: var(--ak-light);
}

/* Sections centre their children; keep lead paragraphs left-aligned but short. */
.ak-lead {
	font-size: 1.15rem;
	line-height: 1.7;
}

/* Percent padding resolves against the full-width section, not this box's
   1290px max-width, so clamp against the box width explicitly. */
.ak-section > .ak-lead {
	padding-inline-end: max(1.25rem, calc(min(100%, var(--theme-normal-container-max-width, 1290px)) - 46rem));
}

/* The hero photo is a cut-out (transparent background): shadow follows its outline. */
.ak-hero .wp-block-image img {
	filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.45));
}

/* Two thin ellipses of different shapes slowly orbiting the hero device in
   opposite directions; being oval, their outline sweeps unevenly as they turn. */
.ak-orbit {
	position: relative;
	isolation: isolate;
	width: 80%;
	margin-inline: auto;
}

.ak-orbit::before,
.ak-orbit::after {
	content: "";
	position: absolute;
	z-index: -1;
	/* Centre of the device body, not of the photo (the antenna adds space
	   above and to the left): measured on anka-sense-s-ekran.webp. */
	top: 66.9%;
	left: 55.6%;
	width: 124%;
	height: 78%;
	border-radius: 50%;
	border: 1px solid rgba(164, 204, 57, 0.55);
	box-shadow: 0 0 24px rgba(164, 204, 57, 0.18), inset 0 0 24px rgba(164, 204, 57, 0.08);
	transform: translate(-50%, -50%);
	animation: ak-orbit 18s linear infinite;
	pointer-events: none;
}

.ak-orbit::after {
	width: 72%;
	height: 112%;
	border-color: rgba(146, 191, 179, 0.5);
	box-shadow: 0 0 24px rgba(146, 191, 179, 0.16), inset 0 0 24px rgba(146, 191, 179, 0.06);
	animation-duration: 12s;
	animation-direction: reverse;
}

/* Stacked columns on phones: keep the orbits clear of the buttons above. */
@media (max-width: 781px) {
	.ak-orbit {
		margin-block: 2rem 4rem;
	}

	.ak-orbit::before {
		width: 96%;
		height: 66%;
	}

	.ak-orbit::after {
		width: 62%;
		height: 92%;
	}
}

@keyframes ak-orbit {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ak-orbit::before,
	.ak-orbit::after {
		animation: none;
	}
}

/* Auto-fitting card grid: sectors, services, trust points. */
.ak-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: 1.25rem;
}

.ak-cards > * {
	margin: 0 !important;
}

a.ak-card,
.ak-card a.ak-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.ak-card__more {
	font-weight: 700;
	color: var(--ak-green);
}

.ak-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	gap: 0;
	border-left: var(--ak-line);
}

.ak-stats > * {
	margin: 0 !important;
	padding: 1.25rem 1.5rem;
	border-right: var(--ak-line);
}

.ak-stats p {
	margin: 0.4rem 0 0;
	font-size: 0.95rem;
}

/* Small cross-link note under a section. */
.ak-note {
	margin-top: 1.5rem;
	font-size: 0.95rem;
	color: var(--ak-muted);
}

.ak-note a {
	font-weight: 700;
}

/* ---------- Numbered grid (catalog feature tables) ---------- */

.ak-grid {
	/* Columns follow the item count so rows stay even (6 -> 3x2, 8 -> 4x2,
	   10 -> 5x2); phones get one column, tablets two or three. */
	--ak-cols: 4;
	--ak-cols-md: 2;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	border-top: var(--ak-line);
	border-left: var(--ak-line);
	counter-reset: ak-item;
}

.ak-grid > * {
	margin: 0 !important;
	padding: 1.5rem;
	border-right: var(--ak-line);
	border-bottom: var(--ak-line);
	counter-increment: ak-item;
}

.ak-grid > *::before {
	content: counter(ak-item);
	display: block;
	margin-bottom: 0.75rem;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1;
	color: var(--ak-green);
}

.ak-grid :is(h3, h4) {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
	text-transform: none;
	color: var(--ak-ink);
}

.ak-grid p,
.ak-grid ul {
	margin: 0;
	font-size: 0.95rem;
	color: var(--ak-muted);
}

.ak-grid ul {
	padding-left: 1.1rem;
}

@media (min-width: 700px) {
	.ak-grid {
		grid-template-columns: repeat(var(--ak-cols-md), minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.ak-grid {
		grid-template-columns: repeat(var(--ak-cols), minmax(0, 1fr));
	}
}

.ak-grid:has(> :last-child:nth-child(2)) {
	--ak-cols: 2;
}

.ak-grid:has(> :last-child:nth-child(3)),
.ak-grid:has(> :last-child:nth-child(6)),
.ak-grid:has(> :last-child:nth-child(9)) {
	--ak-cols: 3;
	--ak-cols-md: 3;
}

.ak-grid:has(> :last-child:nth-child(5)),
.ak-grid:has(> :last-child:nth-child(10)) {
	--ak-cols: 5;
}

/* Bordered rows sit flush with the section's text instead of carrying its
   side padding inside their borders. */
.ak-section > :is(.ak-grid, .ak-stats) {
	width: calc(100% - 2.5rem);
	max-width: calc(var(--theme-normal-container-max-width, 1290px) - 2.5rem);
	padding-inline: 0;
}

/* Oversized section number: "01 anka sense s". Decorative. */
.ak-num {
	font-size: clamp(3.5rem, 2.5rem + 4vw, 6rem);
	font-weight: 700;
	line-height: 0.9;
	color: var(--ak-lime-soft);
	margin: 0;
}

.ak-dark .ak-num {
	color: rgba(164, 204, 57, 0.25);
}

/* ---------- Cards ---------- */

.ak-card {
	height: 100%;
	padding: 1.75rem;
	background: #fff;
	border: var(--ak-line);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ak-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 30px -12px rgba(34, 37, 35, 0.25);
}

.ak-card :is(h3, h4) {
	margin-top: 0;
}

.ak-card ul {
	padding-left: 1.1rem;
	color: var(--ak-muted);
}

.entry-content .ak-stat,
.ak-stat {
	margin: 0;
	font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
	font-weight: 700;
	line-height: 1;
	color: var(--ak-green);
}

.ak-dark .ak-stat {
	color: var(--ak-lime);
}

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

.wpforms-container .wpforms-submit,
.wpforms-container button[type="submit"] {
	background: var(--ak-ink) !important;
	border-color: var(--ak-ink) !important;
	border-radius: 2px !important;
	font-weight: 700 !important;
}

.wpforms-container .wpforms-submit:hover {
	background: var(--ak-green) !important;
}

/* ---------- WooCommerce ---------- */

.woocommerce-loop-product__title,
.wc-block-grid__product-title {
	font-size: 1.15rem !important;
	line-height: 1.3;
}

.woocommerce span.onsale,
.ct-woo-badge-sale {
	background: var(--ak-red-text) !important;
	color: #fff !important;
	border-radius: 2px;
}

.woocommerce .price,
.woocommerce-Price-amount {
	color: var(--ak-ink);
	font-weight: 700;
}

.woocommerce .price del,
.woocommerce .price del .woocommerce-Price-amount {
	color: var(--ak-muted);
	font-weight: 400;
}

.ak-quote-cta {
	margin-top: 1.25rem;
	padding: 1.25rem;
	background: var(--ak-light);
	border-left: 4px solid var(--ak-lime);
}

.ak-quote-cta p {
	margin: 0 0 0.75rem;
}

.ak-spec-table {
	width: 100%;
	border-collapse: collapse;
}

.ak-spec-table th,
.ak-spec-table td {
	padding: 0.6rem 0.75rem;
	border-bottom: 1px solid #dfe3d6;
	text-align: left;
	vertical-align: top;
}

.ak-spec-table th {
	width: 40%;
	font-weight: 700;
	color: var(--ak-ink);
}

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

.ct-footer {
	--theme-text-color: #d9dcd6;
	--theme-link-initial-color: #d9dcd6;
	--theme-link-hover-color: var(--ak-lime);
	--theme-headings-color: var(--ak-lime);
	background: var(--ak-ink);
}

.ak-footer {
	padding: 3.5rem 0 1.5rem;
	background: var(--ak-ink);
	color: #d9dcd6;
	border-top: 4px solid var(--ak-lime);
}

.ak-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: 2rem 3rem;
}

.ak-footer h2 {
	margin: 0 0 1rem;
	font-size: 1rem;
	color: var(--ak-lime);
}

.ak-footer a {
	color: #d9dcd6;
	text-decoration: none;
}

.ak-footer a:hover,
.ak-footer a:focus-visible {
	color: var(--ak-lime);
	text-decoration: underline;
}

.ak-footer p,
.ak-footer address {
	margin: 0 0 0.75rem;
	font-style: normal;
	line-height: 1.8;
	color: #d9dcd6;
}

.ak-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 2;
}

.ak-footer__tagline {
	font-weight: 700;
	color: var(--ak-lime) !important;
	text-transform: lowercase;
}

.ak-footer__social {
	display: flex;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ak-footer__payments {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(164, 204, 57, 0.3);
	font-size: 0.9rem;
}

/* ---------- Consent banner ---------- */

.ak-consent {
	position: fixed;
	inset: auto 1rem 1rem 1rem;
	z-index: 99999;
	max-width: 42rem;
	margin-inline: auto;
	padding: 1.25rem 1.5rem;
	background: var(--ak-ink);
	color: var(--ak-light);
	border-top: 4px solid var(--ak-lime);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
	font-size: 0.95rem;
}

.ak-consent[hidden] {
	display: none;
}

.ak-consent p {
	margin: 0 0 1rem;
	color: #d9dcd6;
}

.ak-consent a {
	color: var(--ak-lime);
}

.ak-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ak-consent button {
	padding: 0.6rem 1.1rem;
	border: 2px solid var(--ak-lime);
	border-radius: 2px;
	background: transparent;
	color: var(--ak-light);
	font-weight: 700;
	cursor: pointer;
}

.ak-consent button.ak-consent__accept {
	background: var(--ak-lime);
	color: var(--ak-ink);
}

.ak-consent fieldset {
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
}

.ak-consent label {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	margin-bottom: 0.5rem;
}

@media (prefers-reduced-motion: reduce) {
	.ak-card {
		transition: none;
	}
}

/* Blocksy's default "WordPress Theme by" row; the brand footer carries the copyright. */
.ct-footer [data-row="bottom"] {
	display: none;
}

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

.ak-menu-cart > a {
	display: inline-flex !important;
	align-items: center;
	gap: 0.4rem;
}

.ak-menu-cart > a::before {
	content: "";
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h2.2l2.4 11h10.6l2-8H7.1' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='9' cy='19' r='1.6'/%3E%3Ccircle cx='17' cy='19' r='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h2.2l2.4 11h10.6l2-8H7.1' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='9' cy='19' r='1.6'/%3E%3Ccircle cx='17' cy='19' r='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ak-cart-count {
	display: inline-grid;
	place-items: center;
	min-width: 1.35rem;
	height: 1.35rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: var(--ak-lime);
	color: var(--ak-ink);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
}

.ak-cart-count[data-count="0"] {
	background: #e4e7df;
	color: var(--ak-muted);
}

/* ---------- Portal button (menu) ---------- */

.ct-header [data-id="menu"] > ul > li.ak-menu-portal {
	margin-left: 0.5rem;
}

.ak-menu-portal > a {
	display: inline-flex !important;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1rem !important;
	border: 2px solid var(--ak-lime);
	border-radius: 2px;
	font-weight: 700 !important;
	line-height: 1 !important;
}

.ct-header [data-id="menu"] > ul > li.ak-menu-portal > .ct-menu-link {
	height: auto !important;
	color: var(--ak-ink) !important;
}

.ct-header [data-id="menu"] > ul > li.ak-menu-portal > .ct-menu-link:hover,
.ct-header [data-id="menu"] > ul > li.ak-menu-portal > .ct-menu-link:focus-visible {
	background: var(--ak-lime);
	color: var(--ak-ink) !important;
}

/* No hover underline indicator on the button. */
.ak-menu-portal > a::before,
.ak-menu-portal > a::after {
	display: none !important;
}

/* Mobile panel (dark): lime button. */
#offcanvas .ak-menu-portal > a {
	margin-top: 1rem;
	background: var(--ak-lime);
	color: var(--ak-ink) !important;
}

/* ---------- Product photos: always whole, never cropped ----------
   Site-wide, because product grids also appear on normal pages (home,
   sector pages) and in search results. Photos are fitted inside their frame
   on white in both directions; cards use a square frame so grids stay even. */

:is(.products .product, .type-product, .woocommerce-product-gallery, .flexy-pills) .ct-media-container {
	background: #fff;
}

:is(.products .product, .type-product, .woocommerce-product-gallery, .flexy-pills, .cross-sells, .upsells, .related) .ct-media-container img,
.woocommerce-product-gallery img,
.flexy-pills img {
	object-fit: contain !important;
	object-position: center !important;
}

:is(.products .product, .type-product:not(.product)) .ct-media-container,
.entries .type-product .ct-media-container {
	aspect-ratio: 1 / 1 !important;
}

@media (max-width: 999px) {
	.woocommerce-product-gallery .ct-media-container {
		aspect-ratio: 4 / 3 !important;
	}
}

