/* ==========================================================================
   kasovaparat.eu – redesign (mobile first)
   00 tokens · 01 base · 02 layout · 03 buttons · 04 header · 05 hero/cards
   06 sections · 07 product page · 08 FAQ · 09 contact/forms · 10 pages
   11 footer · 12 callbar · 13 flatsome compat
   ========================================================================== */

/* 00 — tokens ------------------------------------------------------------ */
:root {
	--kp-green: #21c257;          /* brand green (logo) */
	--kp-primary: #12873f;        /* buttons – AA contrast with white */
	--kp-primary-hover: #0e6f33;
	--kp-dark: #0c2a1a;           /* bands, footer */
	--kp-dark-2: #123823;
	--kp-ink: #18212b;
	--kp-muted: #5a6573;
	--kp-line: #e3e9e5;
	--kp-soft: #f1f8f3;
	--kp-soft-2: #f7f9f8;
	--kp-red: #e03131;
	--kp-white: #fff;
	--kp-radius: 18px;
	--kp-radius-sm: 12px;
	--kp-shadow: 0 1px 2px rgba(16, 40, 26, .06), 0 8px 24px rgba(16, 40, 26, .07);
	--kp-shadow-lg: 0 2px 4px rgba(16, 40, 26, .06), 0 18px 40px rgba(16, 40, 26, .12);
	--kp-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--kp-header-h: 64px;
}

/* 01 — base -------------------------------------------------------------- */
html { font-size: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--kp-header-h) + 12px); }
body.kp,
body.kp p,
body.kp li,
body.kp input,
body.kp select,
body.kp textarea,
body.kp button {
	font-family: var(--kp-font);
}
body.kp {
	background: var(--kp-white);
	color: var(--kp-ink);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
body.kp #outer-wrap,
body.kp #wrap,
body.kp #main { background: transparent; }
body.kp #main { overflow: visible; }
body.kp #content-wrap { padding: 0; }
body.kp h1, body.kp h2, body.kp h3, body.kp h4 {
	font-family: var(--kp-font);
	color: var(--kp-ink);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.2;
	margin: 0 0 .5em;
}
body.kp a { color: var(--kp-primary); text-decoration: none; transition: color .15s, background-color .15s, border-color .15s, box-shadow .15s, transform .15s; }
body.kp a:hover { color: var(--kp-primary-hover); }
body.kp img { max-width: 100%; height: auto; }
body.kp :focus-visible { outline: 3px solid rgba(33, 194, 87, .5); outline-offset: 2px; }
.kp-icon { width: 20px; height: 20px; flex: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
html.kp-drawer-open { overflow: hidden; }

/* 02 — layout ------------------------------------------------------------ */
.kp-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
.kp-container--narrow { max-width: 880px; }
.kp-section { padding: 56px 0; }
.kp-section--tight { padding: 36px 0; }
.kp-section--soft { background: var(--kp-soft-2); }
.kp-head { text-align: center; max-width: 680px; margin: 0 auto 28px; }
.kp-head h2 { font-size: clamp(1.6rem, 4.6vw, 2.3rem); margin: 0; }
.kp-eyebrow {
	display: inline-block;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--kp-primary);
	margin-bottom: 10px;
}
.kp-eyebrow--light { color: var(--kp-green); }

@media (min-width: 768px) {
	.kp-container { padding: 0 24px; }
	.kp-section { padding: 80px 0; }
	.kp-section--tight { padding: 48px 0; }
	.kp-head { margin-bottom: 40px; }
}

/* 03 — buttons ----------------------------------------------------------- */
.kp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 10px 20px;
	border-radius: 999px;
	border: 2px solid transparent;
	font-weight: 700;
	font-size: .95rem;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	box-sizing: border-box;
	white-space: normal;
}
.kp-btn .kp-icon { width: 18px; height: 18px; }
body.kp .kp-btn--primary { background: var(--kp-primary); color: #fff; box-shadow: 0 6px 16px rgba(18, 135, 63, .25); }
body.kp .kp-btn--primary:hover { background: var(--kp-primary-hover); color: #fff; transform: translateY(-1px); }
body.kp .kp-btn--ghost { background: #fff; color: var(--kp-ink); border-color: var(--kp-line); }
body.kp .kp-btn--ghost:hover { border-color: var(--kp-primary); color: var(--kp-primary); }
body.kp .kp-btn--light { background: #fff; color: var(--kp-dark); }
body.kp .kp-btn--light:hover { background: var(--kp-soft); color: var(--kp-dark); transform: translateY(-1px); }
body.kp .kp-btn--outline-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); }
body.kp .kp-btn--outline-light:hover { border-color: #fff; color: #fff; }
.kp-btn--sm { min-height: 40px; padding: 8px 16px; font-size: .9rem; }
.kp-btn--lg { min-height: 54px; padding: 14px 26px; font-size: 1rem; }
.kp-btn--block { width: 100%; }
.kp-nowrap { white-space: nowrap; }
.kp-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.kp-link .kp-icon { width: 18px; height: 18px; }
.kp-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; margin: 0;
	border-radius: 999px; border: 1px solid var(--kp-line);
	background: #fff; color: var(--kp-ink); cursor: pointer;
}
body.kp .kp-icon-btn:hover { border-color: var(--kp-primary); color: var(--kp-primary); background: #fff; }

/* 04 — header ------------------------------------------------------------ */
.kp-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff; /* no backdrop-filter: it would trap the fixed drawer */
	border-bottom: 1px solid transparent;
	transition: box-shadow .2s, border-color .2s;
}
body.admin-bar .kp-header { top: 46px; }
@media (min-width: 783px) { body.admin-bar .kp-header { top: 32px; } }
@media (max-width: 600px) { body.admin-bar .kp-header { top: 0; } }
.kp-header.is-scrolled { border-color: var(--kp-line); box-shadow: 0 6px 20px rgba(16, 40, 26, .06); }
.kp-header__in { display: flex; align-items: center; gap: 16px; height: var(--kp-header-h); }
.kp-logo { display: flex; align-items: center; flex: none; margin-right: auto; }
.kp-logo img { width: 172px; height: auto; display: block; }
.kp-nav { display: none; }
.kp-header__actions { display: flex; align-items: center; gap: 8px; }
.kp-header__call { display: none; }
body.kp .kp-header__call-mobile { background: var(--kp-primary); color: #fff; border-color: var(--kp-primary); }
body.kp .kp-header__call-mobile:hover { background: var(--kp-primary-hover); color: #fff; }
.kp-burger__close { display: none; }
.kp-burger[aria-expanded="true"] .kp-burger__open { display: none; }
.kp-burger[aria-expanded="true"] .kp-burger__close { display: block; }

.kp-drawer {
	position: fixed;
	left: 0; right: 0;
	top: var(--kp-header-h);
	bottom: 0;
	background: #fff;
	overflow-y: auto;
	padding: 8px 0 32px;
	border-top: 1px solid var(--kp-line);
}
body.admin-bar .kp-drawer { top: calc(var(--kp-header-h) + 46px); }
.kp-drawer[hidden] { display: none; }
.kp-drawer__menu { list-style: none; margin: 0; padding: 0; }
.kp-drawer__menu li { border-bottom: 1px solid var(--kp-line); }
body.kp .kp-drawer__menu a { display: block; padding: 16px 4px; font-size: 1.05rem; font-weight: 600; color: var(--kp-ink); }
body.kp .kp-drawer__menu .current-menu-item > a { color: var(--kp-primary); }
.kp-drawer__contact { display: grid; gap: 10px; margin-top: 24px; }

@media (min-width: 768px) {
	.kp-header__call { display: inline-flex; }
	.kp-header__call-mobile { display: none; }
	.kp-logo img { width: 200px; }
	:root { --kp-header-h: 72px; }
}
@media (min-width: 1200px) {
	.kp-header .kp-container { max-width: 1400px; }
	.kp-burger { display: none; }
	.kp-logo { margin-right: 0; }
	.kp-logo img { width: 190px; }
	.kp-nav { display: block; flex: 1; min-width: 0; }
	.kp-menu { display: flex; justify-content: center; flex-wrap: nowrap; gap: 0; list-style: none; margin: 0; padding: 0; }
	body.kp .kp-menu a {
		display: block;
		padding: 9px 12px;
		border-radius: 999px;
		color: var(--kp-ink);
		font-weight: 600;
		font-size: .92rem;
		white-space: nowrap;
	}
	.kp-menu { gap: 2px; }
	body.kp .kp-menu a:hover { background: var(--kp-soft); color: var(--kp-primary); }
	body.kp .kp-menu .current-menu-item > a { background: var(--kp-soft); color: var(--kp-primary); }
}

/* 05 — hero + product cards ---------------------------------------------- */
.kp-hero {
	position: relative;
	padding: 28px 0 40px;
	background:
		radial-gradient(900px 400px at 85% -10%, rgba(33, 194, 87, .16), transparent 60%),
		radial-gradient(700px 360px at -10% 10%, rgba(33, 194, 87, .10), transparent 60%),
		linear-gradient(180deg, var(--kp-soft) 0%, #fff 100%);
	overflow: hidden;
}
.kp-hero__head { text-align: center; max-width: 820px; margin: 0 auto 24px; }
.kp-pill {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 6px 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid rgba(18, 135, 63, .25);
	color: var(--kp-primary);
	font-size: .8rem;
	font-weight: 700;
	margin-bottom: 14px;
}
.kp-pill__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--kp-green); box-shadow: 0 0 0 4px rgba(33, 194, 87, .18); }
body.kp .kp-hero h1 { font-size: clamp(1.85rem, 7vw, 3.4rem); line-height: 1.1; margin-bottom: 12px; }
.kp-hero h1 em { font-style: normal; color: var(--kp-primary); }
.kp-hero__lead { color: var(--kp-muted); font-size: 1.02rem; margin: 0 auto; max-width: 620px; }

.kp-hero__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.kp-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-radius);
	box-shadow: var(--kp-shadow);
	overflow: hidden;
	color: var(--kp-ink);
	height: 100%;
}
body.kp .kp-card { color: var(--kp-ink); }
body.kp .kp-card:hover { color: var(--kp-ink); transform: translateY(-3px); box-shadow: var(--kp-shadow-lg); border-color: rgba(18, 135, 63, .35); }
.kp-card__media { position: relative; display: block; background: #fff; aspect-ratio: 4 / 3; }
.kp-card__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.kp-badge {
	position: absolute; top: 10px; left: 10px; z-index: 1;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--kp-primary);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
}
.kp-badge--sale { background: var(--kp-red); }
.kp-card__body { display: flex; flex-direction: column; flex: 1; padding: 12px 12px 14px; border-top: 1px solid var(--kp-line); }
.kp-card__kicker { font-size: .7rem; font-weight: 700; color: var(--kp-primary); text-transform: uppercase; letter-spacing: .06em; }
.kp-card__title { font-size: 1rem; font-weight: 800; letter-spacing: -.01em; margin: 2px 0 4px; line-height: 1.25; }
.kp-card__text { display: none; font-size: .88rem; color: var(--kp-muted); line-height: 1.45; }
.kp-card__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; }
.kp-card__go {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 30px; height: 30px; flex: none;
	border-radius: 50%;
	background: var(--kp-soft);
	color: var(--kp-primary);
}
.kp-card__go .kp-icon { width: 16px; height: 16px; }
.kp-card:hover .kp-card__go { background: var(--kp-primary); color: #fff; }

.kp-price { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; row-gap: 0; }
.kp-price__from { font-size: .85rem; color: var(--kp-muted); font-weight: 600; }
.kp-price__now { font-size: 1.15rem; font-weight: 800; color: var(--kp-ink); letter-spacing: -.01em; }
.kp-price__old { font-size: .85rem; color: var(--kp-muted); }
.kp-price__vat { font-size: .75rem; color: var(--kp-muted); width: 100%; }
.kp-price--lg .kp-price__now { font-size: 2.1rem; color: var(--kp-primary); }
.kp-price--lg .kp-price__old { font-size: 1.05rem; }
.kp-price--lg .kp-price__vat { width: auto; font-size: .9rem; }

.kp-hero__cta { display: grid; gap: 10px; margin: 24px auto 0; max-width: 520px; }
.kp-trust {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 12px;
	list-style: none;
	margin: 24px auto 0;
	padding: 0;
	max-width: 900px;
}
.kp-trust li { display: flex; align-items: center; gap: 8px; font-size: .86rem; font-weight: 600; color: var(--kp-ink); line-height: 1.3; }
.kp-trust .kp-icon { width: 18px; height: 18px; color: var(--kp-primary); }

@media (min-width: 600px) {
	.kp-card__text { display: block; }
	.kp-card__go { width: 36px; height: 36px; }
	.kp-card__go .kp-icon { width: 18px; height: 18px; }
	.kp-card__body { padding: 16px 16px 18px; }
	.kp-card__title { font-size: 1.12rem; }
	.kp-hero__cta { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 768px) {
	.kp-hero { padding: 56px 0 64px; }
	.kp-hero__head { margin-bottom: 40px; }
	.kp-hero__grid { gap: 20px; }
	.kp-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 28px; }
	.kp-trust li { font-size: .92rem; }
}
@media (min-width: 1024px) {
	.kp-hero__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 06 — sections ---------------------------------------------------------- */
.kp-band { background: var(--kp-dark); color: #fff; padding: 32px 0; }
.kp-band__in { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.kp-band__text { margin: 0; font-size: 1.05rem; color: rgba(255, 255, 255, .88); max-width: 620px; }
@media (min-width: 900px) {
	.kp-band__in { flex-direction: row; justify-content: space-between; text-align: left; }
}

.kp-features { display: grid; gap: 14px; }
.kp-feature {
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-radius);
	padding: 22px;
}
.kp-feature__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px;
	border-radius: 14px;
	background: var(--kp-soft);
	color: var(--kp-primary);
	margin-bottom: 14px;
}
.kp-feature__icon .kp-icon { width: 24px; height: 24px; }
body.kp .kp-feature h3 { font-size: 1.12rem; margin-bottom: 6px; }
.kp-feature p { margin: 0; color: var(--kp-muted); font-size: .95rem; }
@media (min-width: 600px) { .kp-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; } }
@media (min-width: 1024px) { .kp-features { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.kp-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: none; }
.kp-step { position: relative; background: #fff; border-radius: var(--kp-radius); padding: 22px 22px 22px 76px; box-shadow: var(--kp-shadow); margin: 0; }
.kp-step__num {
	position: absolute; left: 20px; top: 20px;
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--kp-primary); color: #fff; font-weight: 800;
}
body.kp .kp-step h3 { font-size: 1.12rem; margin-bottom: 4px; }
.kp-step p { margin: 0; color: var(--kp-muted); font-size: .95rem; }
@media (min-width: 900px) {
	.kp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.kp-step { padding: 28px; }
	.kp-step__num { position: static; margin-bottom: 14px; }
}

.kp-promo {
	display: grid;
	background: linear-gradient(135deg, var(--kp-dark) 0%, var(--kp-dark-2) 100%);
	border-radius: 24px;
	overflow: hidden;
	color: #fff;
}
.kp-promo__text { padding: 28px 22px; }
body.kp .kp-promo h2 { color: #fff; font-size: clamp(1.5rem, 4.4vw, 2.1rem); }
.kp-promo p { color: rgba(255, 255, 255, .82); }
.kp-promo__opts { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kp-promo__opts li { display: flex; flex-direction: column; padding: 12px 14px; border-radius: var(--kp-radius-sm); background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); }
.kp-promo__opts span { font-size: .85rem; color: rgba(255, 255, 255, .75); }
.kp-promo__opts strong { font-size: 1.35rem; font-weight: 800; }
.kp-promo__media { background: #f7fcf8; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.kp-promo__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
	.kp-promo { grid-template-columns: 1.1fr .9fr; }
	.kp-promo__text { padding: 48px; align-self: center; }
}

/* 07 — product page ------------------------------------------------------ */
.kp-product__top { padding: 16px 0 32px; background: linear-gradient(180deg, var(--kp-soft) 0%, #fff 70%); }
.kp-product__grid { display: grid; gap: 22px; }
.kp-gallery { min-width: 0; }
.kp-gallery__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	border-radius: var(--kp-radius);
	background: #fff;
	border: 1px solid var(--kp-line);
}
.kp-gallery__track::-webkit-scrollbar { display: none; }
.kp-gallery__slide { flex: 0 0 100%; scroll-snap-align: center; margin: 0; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; }
.kp-gallery__slide img { width: 100%; height: 100%; object-fit: contain; display: block; }
.kp-gallery__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.kp-gallery__thumb {
	flex: 0 0 64px; height: 64px; padding: 0;
	border-radius: 10px; border: 2px solid var(--kp-line);
	background: #fff; overflow: hidden; cursor: pointer;
}
.kp-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kp-gallery__thumb.is-active { border-color: var(--kp-primary); }

.kp-buybox h1 { font-size: clamp(1.8rem, 6vw, 2.6rem); margin-bottom: 8px; }
.kp-buybox__lead { color: var(--kp-muted); font-size: 1.02rem; margin: 0 0 16px; }
.kp-facts { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 8px; }
.kp-facts li { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; font-size: .95rem; line-height: 1.4; }
.kp-facts .kp-icon {
	width: 22px; height: 22px; padding: 4px; box-sizing: border-box;
	border-radius: 50%; background: var(--kp-soft); color: var(--kp-primary); flex: none; margin-top: -1px;
}
.kp-buybox__price { padding: 16px 0; border-top: 1px solid var(--kp-line); border-bottom: 1px solid var(--kp-line); margin-bottom: 16px; }
.kp-options { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kp-options li { display: flex; flex-direction: column; padding: 12px 14px; border-radius: var(--kp-radius-sm); border: 1px solid var(--kp-line); background: #fff; }
.kp-options span { font-size: .85rem; color: var(--kp-muted); }
.kp-options strong { font-size: 1.5rem; font-weight: 800; color: var(--kp-primary); }
.kp-buybox__btns { display: grid; gap: 10px; }
.kp-buybox__call {
	display: flex; align-items: center; gap: 10px;
	margin-top: 14px; padding: 12px 14px;
	border-radius: var(--kp-radius-sm);
	background: var(--kp-soft);
	color: var(--kp-ink) !important;
	font-size: .95rem;
}
.kp-buybox__call .kp-icon { color: var(--kp-primary); }
.kp-mini-trust { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.kp-mini-trust li { display: flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--kp-muted); font-weight: 600; }
.kp-mini-trust .kp-icon { width: 16px; height: 16px; color: var(--kp-primary); }
@media (min-width: 600px) { .kp-buybox__btns { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) {
	.kp-product__top { padding: 40px 0 56px; }
	.kp-product__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
	.kp-gallery { position: sticky; top: calc(var(--kp-header-h) + 20px); }
}

.kp-points { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); padding: 22px; box-shadow: var(--kp-shadow); }
body.kp .kp-points h2 { font-size: 1.35rem; }
.kp-points__body ul { list-style: none; margin: 0; padding: 0; }
.kp-points__body li { margin: 0; padding: 0; }
.kp-points__body li::before { content: none; }
.kp-points__body p { margin: 0 0 10px; font-size: 1rem; }
.kp-points__body p:last-child { margin-bottom: 0; }
body.kp .kp-points__body h3 { font-size: 1.1rem; color: var(--kp-red); margin: 0 0 6px; }
.kp-points__body strong, .kp-points__body b { color: var(--kp-ink); }

/* Empty Flatsome wrappers left in the original content. */
.kp-points__body .row:not(:has(img, p, h1, h2, h3, h4, li, table)),
.kp-prose .row:not(:has(img, p, h1, h2, h3, h4, li, table)) { display: none; }
.kp-points__body img.emoji, .kp-prose img.emoji { border-radius: 0; }

.kp-hero__grid--others { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1024px) { .kp-hero__grid--others { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* prose: original page content, tables */
.kp-prose { font-size: 1rem; }
.kp-prose p, .kp-prose li, .kp-prose td, .kp-prose th { font-size: 1rem; }
.kp-prose span[style*="font-size"] { font-size: inherit !important; }
.kp-prose td p, .kp-prose th p { margin: 0; }
.kp-prose .lead { font-size: 1.2rem; margin-top: 0; }
.kp-prose > *:first-child { margin-top: 0; }
body.kp .kp-prose h2, body.kp .kp-prose h3, body.kp .kp-prose h4 { margin-top: 1.4em; }
.kp-prose h2 { font-size: 1.5rem; }
.kp-prose h3 { font-size: 1.25rem; }
.kp-prose ul { padding-left: 0; list-style: none; }
.kp-prose ul li { position: relative; padding-left: 26px; margin-bottom: 6px; }
.kp-prose ul li::before {
	content: ""; position: absolute; left: 4px; top: .55em;
	width: 8px; height: 8px; border-radius: 50%; background: var(--kp-green);
}
.kp-prose table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin: 16px 0 28px;
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-radius-sm);
	overflow: hidden;
	font-size: .93rem;
}
.kp-prose th, .kp-prose td { padding: 11px 14px; border: 0; border-bottom: 1px solid var(--kp-line); text-align: left; vertical-align: top; }
.kp-prose tr:last-child td { border-bottom: 0; }
.kp-prose thead th, .kp-prose tr:first-child th { background: var(--kp-soft); font-weight: 700; }
.kp-prose td:first-child { color: var(--kp-muted); width: 55%; }
.kp-prose td:last-child { font-weight: 600; }
.kp-prose img { border-radius: var(--kp-radius-sm); }

/* 08 — FAQ --------------------------------------------------------------- */
.kp-faq { display: grid; gap: 10px; }
.kp-faq__item { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); transition: border-color .15s, box-shadow .15s; }
.kp-faq__item[open] { border-color: rgba(18, 135, 63, .35); box-shadow: var(--kp-shadow); }
.kp-faq__item summary {
	display: flex; align-items: center; justify-content: space-between; gap: 14px;
	padding: 16px 18px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
	line-height: 1.4;
}
.kp-faq__item summary::-webkit-details-marker { display: none; }
.kp-faq__chev { width: 20px; height: 20px; color: var(--kp-primary); transition: transform .2s; }
.kp-faq__item[open] .kp-faq__chev { transform: rotate(180deg); }
.kp-faq__a { padding: 0 18px 16px; color: var(--kp-muted); }
.kp-faq__a p { margin: 0; }
.kp-faq-section { background: var(--kp-soft-2); }
.kp-head__sub { color: var(--kp-muted); margin: 8px 0 0; }

/* FAQ option buttons (homepage) */
.kp-faq-tabs__list {
	display: flex;
	gap: 8px;
	margin: 0 -16px 18px;
	padding: 2px 16px 6px;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.kp-faq-tabs__list::-webkit-scrollbar { display: none; }
body.kp .kp-faq-tabs__tab {
	flex: none;
	min-height: 42px;
	padding: 9px 16px;
	border-radius: 999px;
	border: 1px solid var(--kp-line);
	background: #fff;
	color: var(--kp-ink);
	font-family: var(--kp-font);
	font-size: .9rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: none;
	text-transform: none;
	letter-spacing: 0;
	transition: background-color .15s, border-color .15s, color .15s;
}
body.kp .kp-faq-tabs__tab:hover { border-color: var(--kp-primary); color: var(--kp-primary); background: #fff; }
body.kp .kp-faq-tabs__tab[aria-selected="true"] { background: var(--kp-primary); border-color: var(--kp-primary); color: #fff; }
.kp-faq-tabs__panel { animation: kp-fade .2s ease; }
.kp-faq-tabs__go { margin-top: 14px; }
@keyframes kp-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (min-width: 768px) {
	.kp-faq-tabs__list { flex-wrap: wrap; justify-content: center; margin: 0 0 22px; padding: 0; overflow: visible; }
}
@media (prefers-reduced-motion: reduce) { .kp-faq-tabs__panel { animation: none; } }
.kp-faq-more { text-align: center; margin-top: 24px; }
.kp-faq-more p { margin: 0 0 10px; color: var(--kp-muted); font-weight: 600; }
.kp-faq-more__btns { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; }
.kp-faq-group { margin-bottom: 32px; }
body.kp .kp-faq-group__title { font-size: 1.15rem; display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--kp-soft); color: var(--kp-primary); margin-bottom: 14px; }
.kp-faq-cta { text-align: center; background: var(--kp-dark); color: #fff; border-radius: 24px; padding: 32px 22px; margin-top: 16px; }
body.kp .kp-faq-cta h2 { color: #fff; font-size: 1.5rem; }
.kp-faq-cta p { color: rgba(255, 255, 255, .82); }

/* 09 — contact + forms --------------------------------------------------- */
.kp-contact__grid { display: grid; gap: 28px; }
.kp-contact__info h2 { font-size: clamp(1.6rem, 4.6vw, 2.3rem); }
.kp-contact__info > p { color: var(--kp-muted); }
.kp-contact__list { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 12px; }
.kp-contact__list li { display: flex; align-items: center; gap: 14px; }
.kp-contact__list small { display: block; font-size: .78rem; color: var(--kp-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
body.kp .kp-contact__list a { color: var(--kp-ink); font-weight: 700; font-size: 1.05rem; word-break: break-word; }
body.kp .kp-contact__list a:hover { color: var(--kp-primary); }
.kp-contact__icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: var(--kp-soft); color: var(--kp-primary); flex: none; }
.kp-contact__form { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); padding: 22px 18px; box-shadow: var(--kp-shadow-lg); }
body.kp .kp-contact__form h3 { font-size: 1.3rem; }
@media (min-width: 900px) {
	.kp-contact__grid { grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
	.kp-contact__form { padding: 32px; }
}

/* Formidable */
body.kp .frm_forms.with_frm_style { max-width: none; }
body.kp .with_frm_style .frm_form_title,
body.kp .with_frm_style legend { display: none; }
body.kp .with_frm_style .frm_primary_label { font-family: var(--kp-font); font-weight: 600; font-size: .9rem; color: var(--kp-ink); margin-bottom: 6px; }
body.kp .with_frm_style input[type=text],
body.kp .with_frm_style input[type=email],
body.kp .with_frm_style input[type=tel],
body.kp .with_frm_style select,
body.kp .with_frm_style textarea {
	font-family: var(--kp-font);
	font-size: 16px;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid #cfd8d2;
	border-radius: var(--kp-radius-sm);
	background: #fff;
	color: var(--kp-ink);
	box-shadow: none;
	width: 100%;
	box-sizing: border-box;
}
body.kp .with_frm_style input:focus,
body.kp .with_frm_style select:focus,
body.kp .with_frm_style textarea:focus { border-color: var(--kp-primary); box-shadow: 0 0 0 4px rgba(33, 194, 87, .15); outline: none; }
body.kp .with_frm_style .frm_submit { text-align: left; }
body.kp .with_frm_style .frm_submit button,
body.kp .with_frm_style .frm_button_submit {
	width: 100%;
	min-height: 52px;
	margin: 8px 0 0;
	border: 0;
	border-radius: 999px;
	background: var(--kp-primary);
	color: #fff;
	font-family: var(--kp-font);
	font-size: 1rem;
	font-weight: 700;
	box-shadow: 0 6px 16px rgba(18, 135, 63, .25);
	cursor: pointer;
}
body.kp .with_frm_style .frm_submit button:hover,
body.kp .with_frm_style .frm_submit button:focus,
body.kp .with_frm_style .frm_submit button:active,
body.kp .with_frm_style .frm_button_submit:hover,
body.kp .with_frm_style .frm_button_submit:focus,
body.kp .with_frm_style .frm_button_submit:active {
	background: var(--kp-primary-hover) !important;
	border-color: var(--kp-primary-hover) !important;
	color: #fff !important; /* Formidable turns it grey (#444) */
}
body.kp .with_frm_style .frm_error,
body.kp .with_frm_style .frm_error_style { font-family: var(--kp-font); }
@media (max-width: 599px) {
	body.kp .with_frm_style .frm6 { grid-column: span 12 / span 12; width: 100%; margin-left: 0; }
}

/* 10 — generic pages ----------------------------------------------------- */
.kp-page__head { background: linear-gradient(180deg, var(--kp-soft) 0%, #fff 100%); padding: 36px 0 8px; text-align: center; }
body.kp .kp-page__head h1 { font-size: clamp(1.8rem, 6vw, 2.6rem); margin-bottom: 8px; }
.kp-page__head p { color: var(--kp-muted); margin: 0 auto; max-width: 620px; }
@media (min-width: 768px) { .kp-page__head { padding: 56px 0 8px; } }

/* contact page */
.kp-container--form { max-width: 760px; }
body.kp .kp-contact-page .kp-contact__form h2 { font-size: 1.4rem; margin-bottom: 6px; }
.kp-form-note { color: var(--kp-muted); margin: 0 0 18px; font-size: .95rem; }
.kp-form-privacy { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; font-size: .85rem; color: var(--kp-muted); }
.kp-form-privacy .kp-icon { width: 16px; height: 16px; color: var(--kp-primary); }
.kp-reach { display: grid; gap: 14px; }
.kp-reach__card {
	display: flex; flex-direction: column; gap: 4px;
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-radius);
	padding: 22px;
	box-shadow: var(--kp-shadow);
}
body.kp .kp-reach__card { color: var(--kp-ink); }
body.kp .kp-reach__card:hover { color: var(--kp-ink); border-color: rgba(18, 135, 63, .35); transform: translateY(-2px); box-shadow: var(--kp-shadow-lg); }
.kp-reach__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px; background: var(--kp-soft); color: var(--kp-primary); margin-bottom: 10px; }
.kp-reach__icon .kp-icon { width: 24px; height: 24px; }
.kp-reach__title { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--kp-primary); }
.kp-reach__value { font-size: 1.15rem; font-weight: 800; word-break: break-word; }
.kp-reach__text { font-size: .92rem; color: var(--kp-muted); }
.kp-reach__faq { text-align: center; margin: 28px 0 0; color: var(--kp-muted); font-weight: 600; }
@media (min-width: 900px) { .kp-reach { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }

/* HubSpot form (styled inside its iframe by kp.js) – white card around it */
.kp-page__content:has(.hs-form-iframe),
.kp-page__content:has(.hbspt-form) {
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-radius);
	padding: 22px 18px;
	box-shadow: var(--kp-shadow-lg);
}
.kp-page__content .hs-form-iframe { width: 100% !important; display: block; }
@media (min-width: 768px) {
	.kp-page__content:has(.hs-form-iframe),
	.kp-page__content:has(.hbspt-form) { padding: 32px; }
}

/* myPOS chooser */
.kp-choice { display: grid; gap: 18px; }
.kp-choice__card {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: 24px;
	padding: 22px;
	box-shadow: var(--kp-shadow);
}
.kp-choice__q {
	align-self: flex-start;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--kp-soft);
	color: var(--kp-primary);
	font-size: .82rem;
	font-weight: 700;
	margin-bottom: 10px;
}
body.kp .kp-choice__card h2 { font-size: clamp(1.4rem, 4vw, 1.75rem); margin-bottom: 14px; }
.kp-choice__media { border-radius: var(--kp-radius); border: 1px solid var(--kp-line); overflow: hidden; margin-bottom: 16px; aspect-ratio: 4 / 3; }
.kp-choice__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
body.kp .kp-choice__name { font-size: 1.15rem; margin-bottom: 6px; color: var(--kp-primary); }
.kp-choice__text { color: var(--kp-muted); margin: 0 0 14px; }
.kp-choice__for { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 18px; padding: 12px 14px; border-radius: var(--kp-radius-sm); background: var(--kp-soft-2); font-size: .92rem; font-weight: 600; }
.kp-choice__for .kp-icon { color: var(--kp-primary); margin-top: 1px; }
.kp-choice__foot { margin-top: auto; display: grid; gap: 14px; padding-top: 16px; border-top: 1px solid var(--kp-line); }
@media (min-width: 900px) {
	.kp-choice { grid-template-columns: 1fr 1fr; gap: 28px; }
	.kp-choice__card { padding: 32px; }
}

.kp-compare { overflow-x: auto; border-radius: var(--kp-radius); border: 1px solid var(--kp-line); background: #fff; box-shadow: var(--kp-shadow); }
.kp-compare table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .85rem; margin: 0; border: 0; }
.kp-compare th, .kp-compare td { padding: 12px 8px; border: 0; border-bottom: 1px solid var(--kp-line); text-align: center; vertical-align: middle; overflow-wrap: anywhere; line-height: 1.35; }
.kp-compare thead th:first-child, .kp-compare tbody th { width: 40%; }
body.kp .kp-compare th { text-transform: none; letter-spacing: 0; font-size: .85rem; }
@media (min-width: 600px) {
	.kp-compare table { font-size: .95rem; }
	.kp-compare th, .kp-compare td { padding: 14px 16px; }
	body.kp .kp-compare th { font-size: .95rem; }
}
.kp-compare tbody th { text-align: left; font-weight: 600; color: var(--kp-ink); }
.kp-compare thead th { background: var(--kp-soft); font-weight: 800; color: var(--kp-ink); }
.kp-compare thead small { display: block; font-size: .75rem; font-weight: 700; color: var(--kp-primary); text-transform: uppercase; letter-spacing: .05em; }
.kp-compare tr:last-child th, .kp-compare tr:last-child td { border-bottom: 0; }
.kp-compare__price td { font-weight: 800; color: var(--kp-primary); font-size: 1rem; }
.kp-yes, .kp-no { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; }
.kp-yes { background: var(--kp-soft); color: var(--kp-primary); }
.kp-no { background: #fbeaea; color: var(--kp-red); }
.kp-yes .kp-icon, .kp-no .kp-icon { width: 16px; height: 16px; }

/* Cash registers chooser (3 options) */
@media (min-width: 900px) {
	.kp-choice--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
	.kp-choice--3 .kp-choice__card { padding: 22px; }
	body.kp .kp-choice--3 .kp-choice__card h2 { font-size: 1.3rem; }
}
@media (min-width: 1200px) {
	.kp-choice--3 { gap: 24px; }
	.kp-choice--3 .kp-choice__card { padding: 28px; }
	body.kp .kp-choice--3 .kp-choice__card h2 { font-size: 1.5rem; }
}
.kp-compare--3 thead th:first-child, .kp-compare--3 tbody th { width: 31%; }

/* Cash registers chooser (4 options) */
@media (min-width: 700px) {
	.kp-choice--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
	.kp-choice--4 .kp-choice__card { padding: 22px; }
	body.kp .kp-choice--4 .kp-choice__card h2 { font-size: 1.3rem; }
}
@media (min-width: 1200px) {
	.kp-choice--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
	.kp-choice--4 .kp-choice__card { padding: 20px; }
	body.kp .kp-choice--4 .kp-choice__card h2 { font-size: 1.2rem; }
	body.kp .kp-choice--4 .kp-facts { font-size: .9rem; }
}
.kp-compare--4 table { min-width: 620px; }
.kp-compare--4 thead th:first-child, .kp-compare--4 tbody th { width: 24%; }

/* WooCommerce: product page buttons, period picker, header cart, notices */
body.kp .kp-btn--soft { background: var(--kp-soft); color: var(--kp-primary); border-color: rgba(18, 135, 63, .25); }
body.kp .kp-btn--soft:hover { background: #e2f1e7; color: var(--kp-primary-hover); border-color: var(--kp-primary); transform: translateY(-1px); }
body.kp .kp-buybox__btns--shop .kp-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin: 0;
	min-height: 54px;
	padding: 14px 26px;
	border-radius: 999px;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
}
.kp-buybox__btns--shop .kp-buybox__ask { grid-column: 1 / -1; }
/* OceanWP colours focused submit buttons – keep ours (hover still wins). */
body.kp .kp-buybox__btns--shop .kp-btn--soft:focus { background: var(--kp-soft); color: var(--kp-primary); border-color: rgba(18, 135, 63, .25); }
body.kp .kp-buybox__btns--shop .kp-btn--soft:hover { background: #e2f1e7; color: var(--kp-primary-hover); border-color: var(--kp-primary); }
body.kp .kp-buybox__btns--shop .kp-btn--primary:focus { background: var(--kp-primary); color: #fff; border-color: transparent; }
body.kp .kp-buybox__btns--shop .kp-btn--primary:hover { background: var(--kp-primary-hover); color: #fff; }
body.kp .kp-buybox__btns--shop .kp-btn:focus-visible { outline: 2px solid var(--kp-primary); outline-offset: 3px; }
.kp-menu .woo-menu-icon, .kp-drawer__menu .woo-menu-icon { display: none !important; }

.kp-options--pick li { position: relative; padding: 0; cursor: pointer; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.kp-options--pick label { display: flex; flex-direction: column; margin: 0; padding: 12px 14px; cursor: pointer; }
.kp-options--pick input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.kp-options--pick li:hover { border-color: rgba(18, 135, 63, .45); }
.kp-options--pick li:has(input:checked) { border-color: var(--kp-primary); background: var(--kp-soft); box-shadow: 0 0 0 3px rgba(18, 135, 63, .15); }
.kp-options--pick li:has(input:focus-visible) { outline: 2px solid var(--kp-primary); outline-offset: 2px; }

.kp-header__cart { position: relative; }
/* Narrow phones: logo + cart + phone + menu must fit in one row (from 320px). */
@media (max-width: 420px) {
	.kp-header__in { gap: 10px; }
	.kp-logo img { width: 140px; }
	.kp-header__actions { gap: 6px; }
	body.kp .kp-header .kp-icon-btn { width: 40px; height: 40px; }
}
.kp-header__cart .kp-icon { width: 20px; height: 20px; }
.kp-cart-count {
	position: absolute; top: -5px; right: -5px;
	min-width: 19px; height: 19px; padding: 0 5px;
	border-radius: 999px; background: var(--kp-red); color: #fff;
	font-size: .7rem; font-weight: 800; line-height: 19px; text-align: center;
}
.kp-cart-count[hidden] { display: none; }

body.kp .kp-buybox .woocommerce-message,
body.kp .kp-buybox .woocommerce-info,
body.kp .kp-buybox .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px;
	margin: 0 0 12px; padding: 12px 16px; list-style: none;
	border: 1px solid rgba(18, 135, 63, .25); border-top-width: 1px; border-radius: var(--kp-radius-sm);
	background: var(--kp-soft); color: var(--kp-ink); font-size: .92rem; font-weight: 600;
}
body.kp .kp-buybox .woocommerce-error { border-color: rgba(200, 40, 40, .3); background: #fbeaea; }
body.kp .kp-buybox .woocommerce-message::before,
body.kp .kp-buybox .woocommerce-info::before,
body.kp .kp-buybox .woocommerce-error::before { content: none; }
body.kp .kp-buybox .woocommerce-message .button,
body.kp .kp-buybox .woocommerce-info .button {
	order: 2; float: none; margin: 0; padding: 0; border: 0; background: none; box-shadow: none;
	color: var(--kp-primary); font-size: .92rem; font-weight: 800; text-transform: none; letter-spacing: 0;
}
body.kp .kp-buybox .woocommerce-message .button:hover { color: var(--kp-primary-hover); background: none; }

.kp-container--shop { max-width: 1120px; }

/* AJAX add to cart: loading spinner, notice fade-in, cart badge bump */
body.kp .kp-btn.is-loading { cursor: progress; opacity: .8; }
.kp-btn.is-loading .kp-icon { display: none; }
.kp-btn.is-loading::before {
	content: ""; width: 18px; height: 18px; flex: none; box-sizing: border-box;
	border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
	animation: kp-spin .7s linear infinite;
}
.kp-cart-note { animation: kp-fade .25s ease-out; }
.kp-cart-count.is-bump { animation: kp-bump .45s ease-out; }
@keyframes kp-spin { to { transform: rotate(360deg); } }
/* WooCommerce loading overlay (cart / checkout updates). OceanWP draws a
   Font Awesome glyph here, but Font Awesome isn't loaded – use our ring. */
body.kp .blockUI.blockOverlay { border-radius: var(--kp-radius); }
body.kp .blockUI.blockOverlay::before {
	content: "" !important;
	position: absolute; top: 50%; left: 50%;
	width: 34px; height: 34px; margin: -17px 0 0 -17px; box-sizing: border-box;
	border: 3px solid var(--kp-primary); border-right-color: transparent; border-radius: 50%;
	background: none !important; font-family: inherit; line-height: 0;
	animation: kp-spin .7s linear infinite !important;
}
@keyframes kp-bump { 0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .kp-btn.is-loading::before, .kp-cart-note, .kp-cart-count.is-bump { animation: none; } }

/* Product pages: tighter vertical rhythm. Sections that share the same
   background (description, FAQ, other products) join without double padding. */
.kp-product .kp-section { padding: 36px 0; }
.kp-product .kp-section--soft + .kp-section--soft,
.kp-product .kp-section--soft + .kp-faq-section,
.kp-product .kp-faq-section + .kp-section--soft { padding-top: 0; }
.kp-product .kp-head { margin-bottom: 24px; }
.kp-product .kp-section--tight { padding: 8px 0 32px; }
.kp-product .kp-section--tight + .kp-section--soft { padding-top: 32px; }
.kp-product .kp-prose p:empty { display: none; }
.kp-product .kp-prose > :last-child,
.kp-product .kp-points__body > :last-child { margin-bottom: 0; }
@media (min-width: 768px) {
	.kp-product .kp-section { padding: 48px 0; }
	.kp-product .kp-section--soft + .kp-section--soft,
	.kp-product .kp-section--soft + .kp-faq-section,
	.kp-product .kp-faq-section + .kp-section--soft { padding-top: 8px; }
	.kp-product .kp-head { margin-bottom: 28px; }
	.kp-product .kp-section--tight { padding: 8px 0 40px; }
	.kp-product .kp-section--tight + .kp-section--soft { padding-top: 40px; }
}

/* Cart page --------------------------------------------------------------- */
.kp-cart { display: grid; gap: 24px; align-items: start; }
@media (min-width: 960px) {
	.kp-cart { grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; }
	.kp-cart__aside { position: sticky; top: calc(var(--kp-header-h) + 20px); }
}

.kp-cart__gift-note { display: flex; gap: 10px; align-items: center; margin: 0 0 12px; padding: 12px 16px; border-radius: var(--kp-radius-sm); background: var(--kp-soft); border: 1px solid rgba(18, 135, 63, .2); color: var(--kp-ink); font-size: .95rem; }
.kp-cart__gift-note .kp-icon { width: 20px; height: 20px; flex: none; color: var(--kp-primary); }

.kp-cart__items { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); box-shadow: var(--kp-shadow); overflow: hidden; }
.kp-cart-item {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) auto;
	grid-template-areas: "media info remove" "media qty total";
	gap: 10px 14px; align-items: center;
	padding: 16px; border-bottom: 1px solid var(--kp-line);
}
.kp-cart-item:last-child { border-bottom: 0; }
.kp-cart-item.is-gift { background: linear-gradient(90deg, var(--kp-soft) 0%, #fff 75%); }
.kp-cart-item__media { grid-area: media; align-self: start; display: block; width: 76px; aspect-ratio: 1; border-radius: var(--kp-radius-sm); border: 1px solid var(--kp-line); overflow: hidden; background: #fff; }
.kp-cart-item__media img { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; }
.kp-cart-item__info { grid-area: info; min-width: 0; }
.kp-cart-item__qty { grid-area: qty; justify-self: start; }
.kp-cart-item__total { grid-area: total; justify-self: end; font-weight: 800; font-size: 1.05rem; color: var(--kp-ink); white-space: nowrap; }
.kp-cart-item__remove { grid-area: remove; justify-self: end; align-self: start; }
@media (min-width: 640px) {
	.kp-cart-item { grid-template-columns: 96px minmax(0, 1fr) auto 104px 34px; grid-template-areas: "media info qty total remove"; gap: 18px; padding: 18px 20px; }
	.kp-cart-item__media { width: 96px; align-self: center; }
	.kp-cart-item__remove { align-self: center; }
}
body.kp .kp-cart-item__name { display: block; font-weight: 700; font-size: 1.05rem; line-height: 1.3; color: var(--kp-ink); }
body.kp .kp-cart-item__name:hover { color: var(--kp-primary); }
.kp-cart-item__badge { display: inline-block; margin-bottom: 4px; padding: 2px 10px; border-radius: 999px; background: var(--kp-primary); color: #fff; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
body.kp .kp-cart-item dl.variation { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 6px; margin: 4px 0 0; padding: 0; border: 0; font-size: .85rem; color: var(--kp-muted); }
body.kp .kp-cart-item dl.variation dt, body.kp .kp-cart-item dl.variation dd { float: none; margin: 0; padding: 0; }
body.kp .kp-cart-item dl.variation dt { font-weight: 600; }
body.kp .kp-cart-item dl.variation dd p { margin: 0; }
.kp-cart-item__unit { margin-top: 6px; font-size: .9rem; color: var(--kp-muted); }
.kp-cart-item__unit del { color: var(--kp-muted); }
.kp-cart-item__each { font-size: .8rem; }
.kp-cart-item__free { color: var(--kp-primary); font-weight: 800; }
.kp-cart-item__period { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 4px 12px; border-radius: 999px; background: #fff; border: 1px solid rgba(18, 135, 63, .35); color: var(--kp-ink); font-size: .85rem; }
.kp-cart-item__period strong { color: var(--kp-primary); font-weight: 800; white-space: nowrap; }
.kp-cart-item__period { white-space: nowrap; }
.kp-cart-item__period .kp-icon { width: 14px; height: 14px; color: var(--kp-primary); }
.kp-cart-periods { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: var(--kp-radius); background: #fff; border: 1px solid var(--kp-line); box-shadow: var(--kp-shadow); }
.kp-cart-periods__title { margin: 0; font-weight: 800; color: var(--kp-ink); }
.kp-cart-period { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: var(--kp-radius-sm); border: 1px solid var(--kp-line); background: var(--kp-soft-2); }
.kp-cart-period__name { display: block; font-size: .85rem; color: var(--kp-muted); }
.kp-cart-period__price { display: block; font-size: 1.35rem; font-weight: 800; color: var(--kp-primary); }
body.kp .kp-cart-period__price .amount { color: inherit; }
.kp-cart-periods__note { margin: 2px 0 0; font-size: .85rem; color: var(--kp-muted); }
@media (max-width: 899px) { .kp-cart-periods { grid-column: span 1; } }
.kp-cart-item__note { margin: 2px 0 0; font-size: .85rem; color: var(--kp-muted); }
.kp-cart-item__fixed { font-weight: 600; font-size: .95rem; color: var(--kp-muted); }

.kp-qty { display: inline-flex; align-items: center; border: 1px solid var(--kp-line); border-radius: 999px; background: #fff; overflow: hidden; }
body.kp .kp-qty__btn { width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--kp-ink); font-size: 1.15rem; font-weight: 700; line-height: 1; cursor: pointer; }
body.kp .kp-qty__btn:hover, body.kp .kp-qty__btn:focus { background: var(--kp-soft); color: var(--kp-primary); }
body.kp .kp-qty .qty { width: 42px; height: 38px; min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; text-align: center; font-weight: 700; font-size: 1rem; color: var(--kp-ink); -moz-appearance: textfield; appearance: textfield; }
.kp-qty .qty::-webkit-outer-spin-button, .kp-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

body.kp .kp-cart a.remove { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: transparent; color: var(--kp-muted) !important; font-size: 0; line-height: 1; }
body.kp .kp-cart a.remove:hover { background: #fbeaea; color: var(--kp-red) !important; }
.kp-cart a.remove .kp-icon { width: 18px; height: 18px; }

.kp-cart__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.kp-js .kp-cart__update { display: none; }
.kp-coupon summary { display: inline-block; cursor: pointer; list-style: none; font-weight: 700; font-size: .95rem; color: var(--kp-primary); }
.kp-coupon summary::-webkit-details-marker { display: none; }
.kp-coupon__row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
body.kp .kp-coupon #coupon_code { width: 220px; max-width: 100%; height: 46px; margin: 0; padding: 0 16px; border: 1px solid var(--kp-line); border-radius: 999px; font-size: .95rem; }
body.kp .kp-coupon #coupon_code:focus { border-color: var(--kp-primary); outline: none; box-shadow: 0 0 0 4px rgba(33, 194, 87, .15); }
body.kp .kp-cart__actions button.kp-btn { font-family: inherit; text-transform: none; letter-spacing: 0; }

.kp-upsell { display: grid; gap: 16px; margin-top: 20px; padding: 18px; background: #fff; border: 1px solid rgba(18, 135, 63, .3); border-radius: var(--kp-radius); box-shadow: var(--kp-shadow); }
@media (min-width: 640px) { .kp-upsell { grid-template-columns: 170px minmax(0, 1fr); align-items: center; padding: 20px 24px; gap: 24px; } }
.kp-upsell__media { aspect-ratio: 4 / 3; border-radius: var(--kp-radius-sm); border: 1px solid var(--kp-line); overflow: hidden; background: #fff; }
.kp-upsell__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
body.kp .kp-upsell h3 { font-size: 1.2rem; margin: 4px 0 6px; }
.kp-upsell p { margin: 0 0 12px; color: var(--kp-muted); font-size: .95rem; }
.kp-upsell__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.kp-upsell__price { font-weight: 800; font-size: 1.3rem; color: var(--kp-primary); }
.kp-upsell__price small { font-size: .8rem; font-weight: 600; color: var(--kp-muted); }
body.kp .kp-upsell__more { font-weight: 700; font-size: .92rem; }

.kp-summary { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); box-shadow: var(--kp-shadow-lg); padding: 22px; }
body.kp .kp-summary h2 { font-size: 1.25rem; margin: 0 0 8px; }
body.kp .kp-summary__table { width: 100%; margin: 0 0 18px; border: 0; border-collapse: collapse; }
body.kp .kp-summary__table th, body.kp .kp-summary__table td { padding: 11px 0; border: 0; border-bottom: 1px solid var(--kp-line); background: none; font-size: .95rem; vertical-align: top; }
body.kp .kp-summary__table th { text-align: left; font-weight: 600; color: var(--kp-muted); text-transform: none; letter-spacing: 0; }
body.kp .kp-summary__table td { text-align: right; font-weight: 700; color: var(--kp-ink); }
body.kp .kp-summary__table .order-total th, body.kp .kp-summary__table .order-total td { border-bottom: 0; padding-top: 14px; font-size: 1.1rem; font-weight: 800; color: var(--kp-ink); }
body.kp .kp-summary__table .order-total td .amount { font-size: 1.5rem; color: var(--kp-primary); }
body.kp .kp-summary #shipping_method { list-style: none; margin: 0; padding: 0; }
body.kp .kp-summary #shipping_method li { margin: 0; padding: 0; text-indent: 0; }
body.kp .kp-summary #shipping_method label { display: inline; font-weight: 700; }
body.kp .kp-summary .woocommerce-shipping-destination { margin: 4px 0 0; font-size: .8rem; font-weight: 400; color: var(--kp-muted); }
body.kp .kp-summary .wc-proceed-to-checkout { padding: 0 0 6px; margin-bottom: 18px; }
body.kp .kp-summary .wc-proceed-to-checkout a.checkout-button { display: flex; margin: 0; padding: 14px 26px; font-size: 1rem; }
.kp-summary__trust { list-style: none; margin: 20px 0 0; padding: 22px 0 0; border-top: 1px solid var(--kp-line); display: grid; gap: 10px; }
.kp-summary__trust li { display: flex; align-items: center; gap: 9px; margin: 0; font-size: .88rem; color: var(--kp-ink); }
.kp-summary__trust .kp-icon { width: 18px; height: 18px; flex: none; color: var(--kp-primary); }

/* OceanWP styles .cart_totals (float, 48% width, grey uppercase title, table
   paddings) – reset them for our summary card. */
body.kp .kp-cart .cart-collaterals { width: auto; float: none; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary { width: 100%; float: none; margin: 0; padding: 22px; border: 1px solid var(--kp-line); background: #fff; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary h2 { margin: 0 0 8px; padding: 0; background: none; border: 0; font-size: 1.25rem; text-transform: none; letter-spacing: 0; color: var(--kp-ink); }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table { width: 100%; margin: 0 0 18px; border: 0; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table th,
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table td { width: auto; padding: 11px 0; border: 0; border-bottom: 1px solid var(--kp-line); text-transform: none; font-size: .95rem; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table td { text-align: right; padding-left: 12px; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table tr.order-total th,
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table tr.order-total td { border-bottom: 0; padding-top: 14px; font-size: 1.1rem; }
body.kp .kp-cart .cart_totals #shipping_method label { padding: 0; text-transform: none; font-size: .95rem; color: var(--kp-ink); }
body.kp .kp-cart .cart_totals .woocommerce-shipping-destination { display: none; }
/* Keep the summary a two-column table on phones too (the theme hides the
   labels and stacks the cells on small screens). */
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table { display: table; table-layout: auto; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table tbody { display: table-row-group; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table tr { display: table-row; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table th,
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table td { display: table-cell; float: none; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table th { width: 40%; white-space: nowrap; padding-right: 12px; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary table td::before { content: none; display: none; }
body.kp .kp-cart .cart-collaterals .cart_totals.kp-summary h2 { text-align: left; }
body.kp .kp-cart .amount { color: inherit; }
body.kp .kp-cart .kp-cart-item__unit .amount { color: var(--kp-ink); font-weight: 600; }
body.kp .kp-cart .kp-cart-item__unit del .amount { color: var(--kp-muted); font-weight: 400; }
body.kp .kp-cart .order-total .amount { color: var(--kp-primary); font-size: 1.5rem; }
body.kp .kp-cart .cart_totals .wc-proceed-to-checkout a.checkout-button { width: 100%; padding-left: 16px; padding-right: 16px; border-radius: 999px; line-height: 1.2; text-transform: none; letter-spacing: 0; white-space: nowrap; }

/* empty cart: products by category */
.kp-cart-empty__head { text-align: center; max-width: 560px; margin: 0 auto 28px; }
.kp-cart-empty__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 12px; border-radius: 50%; background: var(--kp-soft); color: var(--kp-primary); }
.kp-cart-empty__icon .kp-icon { width: 28px; height: 28px; }
body.kp .kp-cart-empty__head h2 { font-size: clamp(1.5rem, 4vw, 2rem); margin-bottom: 6px; }
.kp-cart-empty__head p { margin: 0; color: var(--kp-muted); }
.kp-cart-group { margin-bottom: 18px; padding: 20px 16px; border-radius: 24px; background: var(--kp-soft-2); }
.kp-cart-group__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 20px; margin-bottom: 16px; }
body.kp .kp-cart-group__head h3 { font-size: 1.35rem; margin: 0 0 4px; }
.kp-cart-group__head p { margin: 0; max-width: 640px; font-size: .95rem; color: var(--kp-muted); }
body.kp .kp-cart-group__more { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; white-space: nowrap; }
.kp-cart-group__more .kp-icon { width: 18px; height: 18px; }
.kp-cart-group__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 900px) {
	.kp-cart-group { padding: 28px; }
	.kp-cart-group__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
}
.kp-renew-steps { list-style: none; display: grid; gap: 10px; margin: 0 0 16px; padding: 0; counter-reset: none; }
@media (min-width: 768px) { .kp-renew-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kp-renew-steps li { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 12px 14px; border-radius: var(--kp-radius-sm); background: #fff; border: 1px solid var(--kp-line); font-size: .9rem; line-height: 1.4; color: var(--kp-muted); }
.kp-renew-steps li::before { content: none; }
.kp-renew-steps strong { display: block; color: var(--kp-ink); }
.kp-renew-steps__n { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex: none; border-radius: 50%; background: var(--kp-primary); color: #fff; font-size: .8rem; font-weight: 800; }
/* Phones: badge short text; renewal card + period box on their own rows */
.kp-badge__short { display: none; }
@media (max-width: 599px) {
	.kp-badge--bonus .kp-badge__long { display: none; }
	.kp-badge--bonus .kp-badge__short { display: inline; }
	.kp-badge--bonus { max-width: calc(100% - 16px); font-size: .68rem; }
	.kp-cart-group { padding: 18px 14px; }
	body.kp .kp-cart-group__head h3 { font-size: 1.2rem; }
}
.kp-cart-group__grid--renew { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .kp-cart-group__grid--renew { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .kp-cart-group__grid--renew { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kp-cart-period { flex-wrap: wrap; }
.kp-cart-period > div { min-width: 0; }
body.kp .kp-cart-period .kp-btn { flex: none; }
.kp-cart-empty__help { margin: 24px 0 0; text-align: center; font-weight: 600; color: var(--kp-muted); }

/* Checkout page ----------------------------------------------------------- */
body.kp form.checkout.kp-checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; width: 100%; }
.kp-checkout__main, .kp-checkout__aside { min-width: 0; }
body.kp .kp-checkout h3, body.kp .kp-checkout #order_review_heading { text-transform: none !important; letter-spacing: 0 !important; font-weight: 800; }
body.kp .kp-checkout h3, body.kp .kp-checkout #order_review_heading { font-size: 1.25rem !important; line-height: 1.3; }
body.kp .kp-checkout .woocommerce-additional-fields h3 { font-size: 1.05rem !important; }
body.kp .kp-checkout #order_review table.shop_table,
body.kp .kp-checkout #order_review table.shop_table tbody,
body.kp .kp-checkout #order_review table.shop_table tfoot,
body.kp .kp-checkout #order_review table.shop_table tr,
body.kp .kp-checkout #order_review table.shop_table th,
body.kp .kp-checkout #order_review table.shop_table td { background: none; }
body.kp .kp-checkout #order_review table.shop_table { padding: 0; border: 0; border-radius: 0; }
body.kp .kp-checkout .kp-review td.product-name { width: 100%; }
body.kp .kp-checkout .kp-review td.product-total { white-space: nowrap; }
body.kp .kp-checkout h3 .kp-checkout-step { width: 28px; height: 28px; padding: 0; margin: 0; font-size: .85rem; line-height: 1; }
body.kp .kp-shop-page .woocommerce-form-coupon-toggle .woocommerce-info { text-transform: none; letter-spacing: 0; }
body.kp .kp-shop-page .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--kp-primary); font-weight: 800; text-transform: none; letter-spacing: 0; }
@media (min-width: 960px) {
	body.kp form.checkout.kp-checkout { grid-template-columns: minmax(0, 1fr) 420px; gap: 32px; }
	.kp-checkout__aside { position: sticky; top: calc(var(--kp-header-h) + 20px); }
}
body.kp .kp-checkout #customer_details,
body.kp .kp-checkout #order_review,
body.kp .kp-checkout #order_review_heading,
body.kp .kp-checkout .col2-set { float: none; width: auto; margin: 0; padding: 0; }
.kp-checkout__details { display: grid; gap: 18px; }
.kp-checkout__card { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); box-shadow: var(--kp-shadow); padding: 22px 18px; }
@media (min-width: 640px) { .kp-checkout__card { padding: 26px 28px; } }
.kp-checkout__review { box-shadow: var(--kp-shadow-lg); }
body.kp .kp-checkout h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; padding: 0; border: 0; font-size: 1.25rem; text-transform: none; letter-spacing: 0; color: var(--kp-ink); }
.kp-checkout-step { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: none; border-radius: 50%; background: var(--kp-primary); color: #fff; font-size: .85rem; font-weight: 800; }

/* fields */
body.kp .kp-checkout .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr; gap: 14px 16px; }
@media (min-width: 600px) {
	body.kp .kp-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; }
	body.kp .kp-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
}
body.kp .kp-checkout .form-row { float: none; width: auto; margin: 0; padding: 0; }
body.kp .kp-checkout .form-row.kp-field-heading { margin-top: 8px; padding-top: 16px; border-top: 1px dashed var(--kp-line); font-weight: 800; color: var(--kp-ink); }
.kp-field-heading span { font-weight: 500; font-size: .88rem; color: var(--kp-muted); }
body.kp .kp-checkout .form-row label { display: block; margin: 0 0 6px; font-size: .9rem; font-weight: 600; line-height: 1.3; color: var(--kp-ink); text-transform: none; letter-spacing: 0; }
body.kp .kp-checkout .form-row .optional { display: none; } /* 21.10.2026: hide "(по избор)" in labels */
body.kp .kp-checkout .form-row .required { color: var(--kp-red); text-decoration: none; border: 0; }
body.kp .kp-checkout .form-row input.input-text,
body.kp .kp-checkout .form-row textarea,
body.kp .kp-checkout .form-row select,
body.kp .kp-checkout .select2-container .select2-selection--single {
	width: 100%; min-height: 48px; margin: 0; padding: 10px 14px; box-sizing: border-box;
	border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: #fff;
	font-family: inherit; font-size: 1rem; line-height: 1.4; color: var(--kp-ink); box-shadow: none;
}
body.kp .kp-checkout .form-row textarea { min-height: 96px; resize: vertical; }
body.kp .kp-checkout .form-row input.input-text:focus,
body.kp .kp-checkout .form-row textarea:focus,
body.kp .kp-checkout .select2-container--focus .select2-selection--single,
body.kp .kp-checkout .select2-container--open .select2-selection--single { border-color: var(--kp-primary); outline: none; box-shadow: 0 0 0 4px rgba(33, 194, 87, .15); }
body.kp .kp-checkout .select2-container .select2-selection--single { display: flex; align-items: center; padding: 0 36px 0 14px; }
body.kp .kp-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--kp-ink); }
body.kp .kp-checkout .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 10px; height: 20px; transform: translateY(-50%); }
body.kp .kp-checkout .woocommerce-invalid input.input-text,
body.kp .kp-checkout .woocommerce-invalid .select2-selection { border-color: var(--kp-red); }
body.kp .kp-checkout #billing_country_field strong { display: flex; align-items: center; min-height: 48px; padding: 0 14px; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: var(--kp-soft-2); font-weight: 600; }
body.kp .kp-checkout .woocommerce-additional-fields h3 { font-size: 1.05rem; margin-bottom: 12px; }
body.kp .kp-checkout .woocommerce-additional-fields__field-wrapper .form-row { margin: 0; }

/* order review */
body.kp .kp-checkout .kp-review { width: 100%; margin: 0 0 18px; border: 0; border-collapse: collapse; table-layout: auto; }
body.kp .kp-checkout .kp-review tr { display: table-row; }
body.kp .kp-checkout .kp-review th,
body.kp .kp-checkout .kp-review td { display: table-cell; float: none; width: auto; padding: 12px 0; border: 0; border-bottom: 1px solid var(--kp-line); background: none; font-size: .95rem; text-transform: none; letter-spacing: 0; vertical-align: middle; color: var(--kp-ink); }
body.kp .kp-checkout .kp-review td::before { content: none; display: none; }
body.kp .kp-checkout .kp-review th { text-align: left; font-weight: 600; color: var(--kp-muted); }
body.kp .kp-checkout .kp-review td { text-align: right; font-weight: 700; padding-left: 12px; }
body.kp .kp-checkout .kp-review td.product-name { text-align: left; padding-left: 0; font-weight: 600; }
body.kp .kp-checkout .kp-review tbody tr:first-child td { padding-top: 0; }
body.kp .kp-checkout .kp-review tr.is-gift td { background: none; }
.kp-review__item { display: flex; align-items: center; gap: 12px; }
.kp-review__media { position: relative; flex: none; width: 56px; height: 56px; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: #fff; }
.kp-review__media img { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; border-radius: inherit; }
.kp-review__qty { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--kp-ink); color: #fff; font-size: .72rem; font-weight: 800; line-height: 20px; text-align: center; }
.kp-review__info { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.kp-review__name { font-weight: 700; line-height: 1.3; }
.kp-review__period { font-size: .82rem; font-weight: 500; color: var(--kp-muted); }
.kp-review__period strong { color: var(--kp-primary); }
body.kp .kp-checkout .kp-review td.product-total del { display: block; font-weight: 400; font-size: .85rem; color: var(--kp-muted); }
body.kp .kp-checkout .kp-review .amount { color: inherit; }
body.kp .kp-checkout .kp-review tr.order-total th,
body.kp .kp-checkout .kp-review tr.order-total td { border-bottom: 0; padding-top: 14px; font-size: 1.1rem; font-weight: 800; color: var(--kp-ink); }
body.kp .kp-checkout .kp-review tr.order-total .amount { font-size: 1.5rem; color: var(--kp-primary); }
body.kp .kp-checkout .kp-review #shipping_method { list-style: none; margin: 0; padding: 0; }
body.kp .kp-checkout .kp-review #shipping_method li { margin: 0 0 6px; padding: 0; text-align: right; }
body.kp .kp-checkout .kp-review #shipping_method label { display: inline; padding: 0; font-weight: 700; text-transform: none; }
body.kp .kp-checkout .kp-review .woocommerce-shipping-destination { display: none; }

/* payment */
body.kp .kp-checkout #payment { margin: 0; padding: 0; border-radius: 0; background: none; }
body.kp .kp-checkout #payment ul.payment_methods { margin: 0 0 16px; padding: 0; border: 0; list-style: none; }
body.kp .kp-checkout #payment ul.payment_methods li { position: relative; margin: 0 0 10px; padding: 14px 16px; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: #fff; line-height: 1.4; cursor: pointer; transition: border-color .15s, background-color .15s, box-shadow .15s; }
body.kp .kp-checkout #payment ul.payment_methods li:hover { border-color: rgba(18, 135, 63, .45); }
/* Selected method (or the only one, when WooCommerce hides the radio) */
body.kp .kp-checkout #payment ul.payment_methods li:has(> input.input-radio:checked),
body.kp .kp-checkout #payment ul.payment_methods li:has(> input.input-radio[style*="display: none"]) { border-color: var(--kp-primary); background: var(--kp-soft); box-shadow: 0 0 0 3px rgba(18, 135, 63, .12); }
body.kp .kp-checkout #payment ul.payment_methods li > label { display: flex !important; align-items: center; flex-wrap: wrap; gap: 6px 10px; cursor: pointer; }
body.kp .kp-checkout #payment ul.payment_methods li > label img { max-height: 22px; width: auto; margin: 0; }
body.kp .kp-checkout #payment ul.payment_methods li .payment_box { cursor: auto; }
body.kp .kp-checkout #payment ul.payment_methods li label { display: inline; margin: 0; font-weight: 700; color: var(--kp-ink); }
/* The real radio stays for keyboard / screen readers; our dot shows the state. */
body.kp .kp-checkout #payment ul.payment_methods li > input.input-radio { position: absolute; left: 16px; top: 17px; width: 20px; height: 20px; margin: 0; opacity: 0; }
body.kp .kp-checkout #payment ul.payment_methods li > input.input-radio:focus-visible + label::before { box-shadow: 0 0 0 3px rgba(18, 135, 63, .35); }
/* OceanWP draws the payment radio with a Font Awesome glyph (not loaded) – draw our own. */
body.kp .kp-checkout #payment ul.payment_methods li label { position: relative; padding-left: 30px; }
body.kp .kp-checkout #payment ul.payment_methods li label::before {
	content: "" !important; position: absolute; left: 0; top: 50%; width: 20px; height: 20px; margin: -10px 0 0;
	box-sizing: border-box; border: 2px solid var(--kp-line); border-radius: 50%; background: #fff; font-family: inherit;
}
body.kp .kp-checkout #payment ul.payment_methods li input:checked + label::before,
body.kp .kp-checkout #payment ul.payment_methods li input[style*="display: none"] + label::before {
	border: 6px solid var(--kp-primary);
}
body.kp .kp-checkout #payment div.payment_box { margin: 8px 0 0; padding: 0; background: none; color: var(--kp-muted); font-size: .9rem; }
body.kp .kp-checkout #payment div.payment_box::before { content: none; }
body.kp .kp-checkout #payment div.payment_box p { margin: 0; }
body.kp .kp-checkout #payment div.form-row { margin: 0; padding: 0; }
body.kp .kp-checkout .woocommerce-privacy-policy-text,
body.kp .kp-checkout .woocommerce-terms-and-conditions-wrapper { margin: 0 0 14px; font-size: .82rem; color: var(--kp-muted); }
body.kp .kp-checkout .woocommerce-privacy-policy-text p { margin: 0; }
body.kp .kp-checkout #place_order {
	display: flex; align-items: center; justify-content: center; float: none; width: 100%;
	min-height: 56px; margin: 0; padding: 14px 20px; border: 0; border-radius: 999px;
	background: var(--kp-primary); color: #fff; box-shadow: 0 6px 16px rgba(18, 135, 63, .25);
	font-family: inherit; font-size: 1.05rem; font-weight: 800; line-height: 1.2; text-transform: none; letter-spacing: 0; cursor: pointer;
}
body.kp .kp-checkout #place_order:hover,
body.kp .kp-checkout #place_order:focus { background: var(--kp-primary-hover); color: #fff; }
body.kp .kp-checkout #place_order:focus-visible { outline: 2px solid var(--kp-primary); outline-offset: 3px; }

/* "Доставка с Еконт" card */
.kp-econt { position: relative; }
.kp-econt__lead { margin: -8px 0 18px; font-size: .92rem; color: var(--kp-muted); }
body.kp .kp-checkout .kp-econt__fields { display: grid; grid-template-columns: 1fr; gap: 14px 16px; margin-bottom: 20px; }
@media (min-width: 600px) {
	body.kp .kp-checkout .kp-econt__fields { grid-template-columns: 1fr 1fr; }
	body.kp .kp-checkout .kp-econt__fields .kp-country { grid-column: 1 / -1; }
	body.kp .kp-checkout .kp-econt__fields #billing_state_field { grid-column: 1 / -1; }
}
body.kp .kp-checkout .kp-econt__fields .form-row { width: auto !important; float: none !important; margin: 0 !important; }
.kp-country { position: relative; }
body.kp .kp-checkout #billing_country_field .select2-container,
body.kp .kp-checkout #billing_country_field .woocommerce-input-wrapper { display: none !important; }
/* Bulgarisation's CSS uses ul#shipping_method li:not(... #shipping_method li) { padding: 0 !important } – the id inside :not() makes it very specific, so anchor on our ids. */
#kp-econt #kp-econt-methods ul#shipping_method > li { padding: 14px 16px 14px 48px !important; margin: 0 !important; }
body.kp .kp-checkout #billing_country_field .kp-country__label strong { display: inline; min-height: 0; padding: 0; border: 0; background: none; }
body.kp .kp-econt__methods ul#shipping_method > li > input.shipping_method { top: 16px !important; left: 16px !important; }
body.kp .kp-econt__methods ul#shipping_method > li > label { line-height: 1.4; }
body.kp .kp-checkout .kp-review tr.kp-review__ship th small { text-transform: none; }
.kp-country__label { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: var(--kp-soft-2); }
.kp-country__flag { font-size: 1.25rem; line-height: 1; }
.kp-econt__methods { padding-top: 18px; border-top: 1px solid var(--kp-line); min-height: 60px; }
body.kp .kp-econt__methods ul#shipping_method { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.kp .kp-econt__methods ul#shipping_method > li {
	position: relative; margin: 0; padding: 14px 16px 14px 48px; text-align: left; text-indent: 0;
	border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: #fff;
	transition: border-color .15s, background-color .15s, box-shadow .15s;
}
body.kp .kp-econt__methods ul#shipping_method > li:has(input.shipping_method:checked),
body.kp .kp-econt__methods ul#shipping_method > li:has(input[type="hidden"].shipping_method) { border-color: var(--kp-primary); background: var(--kp-soft); box-shadow: 0 0 0 3px rgba(18, 135, 63, .12); }
body.kp .kp-econt__methods ul#shipping_method > li > input.shipping_method { position: absolute; left: 16px; top: 17px; width: 20px; height: 20px; margin: 0; accent-color: var(--kp-primary); cursor: pointer; }
body.kp .kp-econt__methods ul#shipping_method > li > label { display: block; margin: 0; padding: 0; font-weight: 700; font-size: 1rem; text-transform: none; color: var(--kp-ink); cursor: pointer; }
body.kp .kp-econt__methods ul#shipping_method > li > label .amount { color: var(--kp-primary); }
body.kp .kp-econt__methods .woo-bg-additional-fields { margin: 12px 0 0; }
body.kp .kp-econt__methods .woo-bg--econt-delivery { display: grid; gap: 10px; }
body.kp .kp-econt__methods .multiselect { width: 100%; min-height: 48px; }
body.kp .kp-econt__methods .multiselect__tags { min-height: 48px; padding: 12px 40px 0 14px; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); }
body.kp .kp-econt__methods .multiselect__select { height: 46px; }
body.kp .kp-econt__methods .multiselect__single, body.kp .kp-econt__methods .multiselect__placeholder, body.kp .kp-econt__methods .multiselect__input { font-size: .95rem; }
body.kp .kp-econt__methods .multiselect__option--highlight { background: var(--kp-primary); }
body.kp .kp-econt__methods .multiselect__option--highlight::after { background: var(--kp-primary); }
body.kp #woo-bg--econt-office-locator { display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 10px 16px; border-radius: 999px; background: var(--kp-dark); color: #fff !important; font-weight: 700; font-size: .9rem; text-decoration: none; }
body.kp #woo-bg--econt-office-locator:hover { background: var(--kp-primary); color: #fff !important; }
body.kp .kp-checkout .kp-review tr.woocommerce-shipping-totals { display: none; }
body.kp .kp-checkout .kp-review tr.kp-review__ship th small { display: block; font-size: .8rem; font-weight: 500; color: var(--kp-muted); }
.kp-review__ship-note { font-weight: 500; font-size: .85rem; color: var(--kp-muted); }
/* "Фирмени данни" card */
.kp-optional { margin-left: 4px; padding: 3px 10px; border-radius: 999px; background: var(--kp-soft-2); border: 1px solid var(--kp-line); font-size: .75rem; font-weight: 600; color: var(--kp-muted); }
body.kp .kp-checkout .kp-company__fields { display: grid; grid-template-columns: 1fr; gap: 14px 16px; }
@media (min-width: 600px) {
	body.kp .kp-checkout .kp-company__fields { grid-template-columns: 1fr 1fr; }
	body.kp .kp-checkout .kp-company__fields #billing_company_field { grid-column: 1 / -1; }
}
body.kp .kp-checkout .kp-company__fields .form-row { width: auto !important; float: none !important; margin: 0 !important; }

/* Single Econt option (no radio): centre it in its card */
#kp-econt #kp-econt-methods ul#shipping_method > li:has(> input[type="hidden"]) { padding: 18px 20px !important; text-align: center; }
#kp-econt #kp-econt-methods ul#shipping_method > li:has(> input[type="hidden"]) > label { text-align: center; }
#kp-econt #kp-econt-methods .woo-bg--econt-delivery { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: left; }
#kp-econt #kp-econt-methods .woo-bg--econt-delivery > div,
#kp-econt #kp-econt-methods .woo-bg--econt-delivery .multiselect { width: 100%; }

/* Office locator: our green button with a location pin */
body.kp #kp-econt #woo-bg--econt-office-locator {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; align-self: center;
	padding: 12px 20px; border-radius: 999px; background: var(--kp-primary); color: #fff !important;
	font-weight: 700; font-size: .95rem; text-decoration: none; box-shadow: 0 6px 16px rgba(18, 135, 63, .25);
	transition: background-color .2s, transform .2s, box-shadow .2s;
}
body.kp #kp-econt #woo-bg--econt-office-locator:hover { background: var(--kp-primary-hover); color: #fff !important; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(18, 135, 63, .3); }
body.kp #kp-econt #woo-bg--econt-office-locator::before {
	content: ""; width: 18px; height: 18px; flex: 0 0 18px;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}
/* Econt office locator popup above our sticky header */
.mfp-bg, .mfp-wrap { z-index: 999999 !important; }
.mfp-wrap, .mfp-container { position: fixed !important; top: 0 !important; left: 0 !important; }

/* loading veil while WooCommerce / Econt refresh */
.kp-econt.is-loading .kp-econt__methods { position: relative; pointer-events: none; }
.kp-econt.is-loading .kp-econt__methods::before { content: ""; position: absolute; inset: 0; z-index: 2; background: rgba(255, 255, 255, .75); border-radius: var(--kp-radius-sm); }
/* "Моля, изчакайте..." under the spinner (as on hempfarms.bg) */
.kp-econt.is-loading .kp-econt__methods { min-height: 120px; }
.kp-econt__methods::before { content: none; }
.kp-econt.is-loading .kp-econt__methods::before {
	content: "Моля, изчакайте..."; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 18px;
	font-size: .9rem; font-weight: 700; color: var(--kp-primary);
}
.kp-econt.is-loading .kp-econt__methods::after {
	content: ""; position: absolute; z-index: 3; top: 50%; left: 50%; width: 30px; height: 30px; margin: -28px 0 0 -15px; box-sizing: border-box;
	border: 3px solid var(--kp-primary); border-right-color: transparent; border-radius: 50%; animation: kp-spin .7s linear infinite;
}

/* coupon / login toggles above the form */
body.kp .kp-shop-page .woocommerce-form-coupon-toggle .woocommerce-info { justify-content: flex-start; }
body.kp .kp-shop-page form.checkout_coupon { margin: 0 0 18px; padding: 16px; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); }

/* WooCommerce notices on cart / checkout */
body.kp .kp-shop-page .woocommerce-message,
body.kp .kp-shop-page .woocommerce-info,
body.kp .kp-shop-page .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px;
	margin: 0 0 16px; padding: 12px 16px; list-style: none;
	border: 1px solid rgba(18, 135, 63, .25); border-radius: var(--kp-radius-sm);
	background: var(--kp-soft); color: var(--kp-ink); font-size: .95rem; font-weight: 600;
}
body.kp .kp-shop-page .woocommerce-error { border-color: rgba(200, 40, 40, .3); background: #fbeaea; }
body.kp .kp-shop-page .woocommerce-message::before,
body.kp .kp-shop-page .woocommerce-info::before,
body.kp .kp-shop-page .woocommerce-error::before { content: none; }
body.kp .kp-shop-page .woocommerce-message .button,
body.kp .kp-shop-page .woocommerce-message a.restore-item { order: 2; float: none; margin: 0; padding: 0; border: 0; background: none; color: var(--kp-primary); font-weight: 800; text-transform: none; letter-spacing: 0; }

/* Thumbnails: centre the picture inside its box (the theme forces height:auto on images) */
.kp-cart-item__media, .kp-review__media { display: flex; align-items: center; justify-content: center; }
body.kp .kp-cart-item__media img, body.kp .kp-review__media img { width: 100%; height: auto; max-height: 100%; }

/* Cash-register bonus: "+12 месеца договор" badge, notes and banner */
.kp-badge--bonus { white-space: nowrap; }
.kp-bonus { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 14px; padding: 12px 14px; border-radius: var(--kp-radius-sm); background: #fdecec; border: 1px solid rgba(214, 51, 51, .25); font-size: .92rem; line-height: 1.4; color: var(--kp-ink); }
.kp-bonus .kp-icon { width: 18px; height: 18px; flex: none; margin-top: 1px; color: var(--kp-red); }
.kp-bonus strong { color: var(--kp-red); }
.kp-bonus-banner { display: inline-flex; align-items: center; gap: 12px; margin: 18px auto 0; padding: 10px 18px 10px 10px; border-radius: 999px; background: #fff; border: 2px solid var(--kp-red); box-shadow: 0 6px 18px rgba(214, 51, 51, .12); text-align: left; }
.kp-bonus-banner p { margin: 0; font-size: .95rem; color: var(--kp-ink); max-width: none; }
.kp-bonus-banner strong { color: var(--kp-red); }
.kp-bonus-banner__tag { flex: none; padding: 6px 12px; border-radius: 999px; background: var(--kp-red); color: #fff; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 599px) { .kp-bonus-banner { border-radius: var(--kp-radius); align-items: flex-start; } }

/* Phones: sticky cart bar */
.kp-cartbar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
	display: flex; align-items: center; gap: 12px;
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .98); border-top: 1px solid var(--kp-line);
	box-shadow: 0 -8px 24px rgba(16, 40, 26, .12);
}
.kp-cartbar[hidden] { display: none; }
/* Never on the cart / checkout pages (WooCommerce's cart-fragments script can re-insert it after load). */
body.woocommerce-cart .kp-cartbar, body.woocommerce-checkout .kp-cartbar { display: none !important; }
.kp-cartbar.is-in { animation: kp-cartbar-in .3s ease-out; }
@keyframes kp-cartbar-in { from { transform: translateY(100%); } to { transform: none; } }
body.kp .kp-cartbar__cart { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; color: var(--kp-ink); }
.kp-cartbar__icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: none; border-radius: 50%; background: var(--kp-soft); color: var(--kp-primary); }
.kp-cartbar__icon .kp-icon { width: 20px; height: 20px; }
.kp-cartbar__n { position: absolute; top: -3px; right: -3px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--kp-red); color: #fff; font-size: .7rem; font-weight: 800; line-height: 19px; text-align: center; }
.kp-cartbar__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.kp-cartbar__text strong { font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-cartbar__text small { font-size: .85rem; font-weight: 700; color: var(--kp-primary); }
body.kp .kp-cartbar__go { flex: none; min-height: 46px; padding: 10px 18px; }
/* Desktop: floating card in the bottom-right corner */
@media (min-width: 1024px) {
	.kp-cartbar {
		left: auto; right: 24px; bottom: 24px; width: 380px; gap: 14px;
		padding: 14px 14px 14px 16px; border: 1px solid var(--kp-line); border-radius: 20px;
		box-shadow: 0 18px 48px rgba(16, 40, 26, .18);
	}
	.kp-cartbar.is-in { animation-name: kp-cartcard-in; }
	.kp-cartbar__text strong { font-size: .95rem; }
}
@keyframes kp-cartcard-in { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .kp-cartbar.is-in { animation: none; } }

/* 11 — footer ------------------------------------------------------------ */
.kp-footer { background: var(--kp-dark); color: rgba(255, 255, 255, .78); padding: 48px 0 0; font-size: .95rem; }
.kp-footer__grid { display: grid; gap: 28px; padding-bottom: 32px; }
.kp-footer__logo { display: inline-flex; background: #fff; border-radius: 12px; padding: 10px 14px; margin-bottom: 14px; }
.kp-footer__logo img { width: 180px; display: block; }
.kp-footer__brand p { margin: 0; max-width: 340px; }
body.kp .kp-footer h3 { color: #fff; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; }
.kp-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
body.kp .kp-footer a { color: rgba(255, 255, 255, .82); }
body.kp .kp-footer a:hover { color: var(--kp-green); }
.kp-footer__contact a { display: inline-flex; align-items: flex-start; gap: 10px; }
.kp-footer__contact .kp-icon { width: 18px; height: 18px; color: var(--kp-green); margin-top: 3px; }
.kp-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding: 18px 0 20px; font-size: .85rem; }
body.kp-has-cartbar .kp-footer__bottom { padding-bottom: 96px; }
@media (min-width: 1024px) { body.kp-has-cartbar .kp-footer__bottom { padding-bottom: 20px; } }
.kp-footer__bottom p { margin: 0; }
@media (min-width: 600px) { .kp-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
	.kp-footer { padding-top: 64px; }
	.kp-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; }
	.kp-footer__bottom { padding-bottom: 20px; }
}

/* 12 — mobile call bar --------------------------------------------------- */
.kp-callbar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
	display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
	padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .97);
	border-top: 1px solid var(--kp-line);
	box-shadow: 0 -6px 20px rgba(16, 40, 26, .08);
}
.kp-callbar__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; border-radius: 999px;
	font-weight: 700; font-size: .95rem;
	border: 2px solid var(--kp-line);
}
body.kp .kp-callbar__btn { color: var(--kp-ink); background: #fff; }
body.kp .kp-callbar__btn--call { background: var(--kp-primary); border-color: var(--kp-primary); color: #fff; }
.kp-callbar .kp-icon { width: 18px; height: 18px; }
@media (min-width: 1024px) { .kp-callbar { display: none; } }

/* 13 — Flatsome shortcode compatibility (original page content) ---------- */
.kp-row { display: grid; gap: 16px; margin: 0 0 16px; }
.kp-row.is-center { justify-items: stretch; }
.kp-col { min-width: 0; }
.kp-col.text-center { text-align: center; }
.kp-col.has-bg { padding: 24px; border-radius: var(--kp-radius); }
@media (min-width: 768px) {
	.kp-row { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
	.kp-span-1 { grid-column: span 1; } .kp-span-2 { grid-column: span 2; } .kp-span-3 { grid-column: span 3; }
	.kp-span-4 { grid-column: span 4; } .kp-span-5 { grid-column: span 5; } .kp-span-6 { grid-column: span 6; }
	.kp-span-7 { grid-column: span 7; } .kp-span-8 { grid-column: span 8; } .kp-span-9 { grid-column: span 9; }
	.kp-span-10 { grid-column: span 10; } .kp-span-11 { grid-column: span 11; } .kp-span-12 { grid-column: span 12; }
	.kp-row.is-center > .kp-span-8 { grid-column: 3 / span 8; }
	.kp-row.is-center > .kp-span-10 { grid-column: 2 / span 10; }
}
.kp-slider { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.kp-slider > * { flex: 0 0 100%; scroll-snap-align: center; }
.kp-sc-image { margin: 0; }
.kp-sc-featured { text-align: center; }
.kp-divider { border: 0; border-top: 1px solid var(--kp-line); margin: 28px 0; }
.kp-sc-section .kp-btn, .kp-page__content .kp-btn { margin: 6px 0; }
.kp-page__content .kp-btn { width: 100%; }
@media (min-width: 600px) { .kp-page__content .kp-btn { width: auto; } }
.kp-sc-faq .kp-faq-section { background: transparent; padding: 0; }

/* Checkout: "Какво ще продавате?" – sales groups picker (kp-departments.js) */
body.kp .kp-checkout .kp-tags-ready > .woocommerce-input-wrapper > input.input-text { display: none; }
.kp-tags__area { position: relative; }
body.kp .kp-checkout .kp-company__fields { align-items: start; }
body.kp .kp-checkout .kp-company__fields #billing_departments_field { grid-column: 1 / -1; padding-top: 18px !important; margin-top: 4px !important; border-top: 1px solid var(--kp-line); }
body.kp .kp-checkout #billing_departments_field > label { display: flex !important; width: 100%; align-items: center; gap: 6px; font-size: 1.05rem; font-weight: 700; }
.kp-tags__help { margin: 4px 0 12px; font-size: .9rem; line-height: 1.5; color: var(--kp-muted); }
.kp-tags__help strong { color: var(--kp-ink); }
.kp-tags__help em { font-style: normal; font-weight: 600; color: var(--kp-ink); }
.kp-tags__example {
	display: block; margin-top: 10px; padding: 10px 14px;
	border-radius: var(--kp-radius-sm); background: var(--kp-soft); border: 1px solid rgba(18, 135, 63, .14);
	font-size: .88rem; line-height: 1.5; color: var(--kp-muted);
}
.kp-tags__example b, .kp-tags__example > span { display: block; }
.kp-tags__example b { margin-bottom: 2px; color: var(--kp-primary); font-weight: 700; }
.kp-tags__egs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.kp-tags__eg { display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--kp-soft); font-size: .82rem; color: var(--kp-muted); }
.kp-tags__eg b { color: var(--kp-ink); font-weight: 600; }
.kp-tags__box {
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
	min-height: 96px; align-content: flex-start; padding: 10px; box-sizing: border-box; cursor: text;
	border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: #fff;
}
.kp-tags.is-focus .kp-tags__box { border-color: var(--kp-primary); box-shadow: 0 0 0 4px rgba(33, 194, 87, .15); }
body.kp .kp-checkout .woocommerce-invalid .kp-tags__box { border-color: var(--kp-red); }
.kp-tags__tag {
	display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
	padding: 5px 6px 5px 12px; border-radius: 999px;
	background: var(--kp-soft); border: 1px solid rgba(18, 135, 63, .25);
	color: var(--kp-primary); font-size: .9rem; font-weight: 600; line-height: 1.2;
}
.kp-tags__tag > span { overflow-wrap: anywhere; }
body.kp .kp-tags__x {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 22px; height: 22px; min-height: 0; padding: 0; margin: 0; border: 0; border-radius: 50%;
	background: transparent; color: var(--kp-primary); font-size: 1.1rem; line-height: 1; cursor: pointer; box-shadow: none;
}
body.kp .kp-tags__x:hover, body.kp .kp-tags__x:focus { background: rgba(18, 135, 63, .14); color: var(--kp-primary-hover); }
body.kp .kp-checkout .kp-tags__box input.kp-tags__input {
	flex: 1 1 180px; min-width: 140px; min-height: 34px; width: auto; padding: 4px 6px; margin: 0;
	border: 0; outline: 0; box-shadow: none; background: transparent; font: inherit; font-size: 1rem; color: var(--kp-ink);
}
.kp-tags__list {
	position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px);
	max-height: 340px; overflow-y: auto; padding: 12px; box-sizing: border-box;
	background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); box-shadow: var(--kp-shadow-lg);
}
.kp-tags__list[hidden] { display: none; }
.kp-tags__opt--free + .kp-tags__group, .kp-tags__group + .kp-tags__group { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--kp-line); }
.kp-tags__ghead { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--kp-muted); }
.kp-tags__opts { display: flex; flex-wrap: wrap; gap: 6px; }
body.kp .kp-tags__opt {
	display: inline-flex; align-items: center; min-height: 34px; margin: 0; padding: 6px 12px;
	border: 1px solid var(--kp-line); border-radius: 999px; background: #fff; box-shadow: none;
	color: var(--kp-ink); font-family: inherit; font-size: .9rem; font-weight: 500; line-height: 1.2; text-transform: none; letter-spacing: 0; cursor: pointer;
}
body.kp .kp-tags__opt:hover, body.kp .kp-tags__opt:focus { border-color: var(--kp-primary); background: var(--kp-soft); color: var(--kp-primary); }
body.kp .kp-tags__opt--type { font-weight: 600; }
body.kp .kp-tags__opt--free { margin: 12px 0 0; border-style: dashed; border-color: var(--kp-primary); color: var(--kp-primary); font-weight: 700; }
body.kp .kp-tags__all { min-height: 28px; padding: 4px 10px; border-color: var(--kp-primary); color: var(--kp-primary); font-size: .78rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
.kp-tags__count {
	flex: none; margin-left: auto; padding: 4px 12px; border-radius: 999px; white-space: nowrap;
	background: #eef1ef; color: var(--kp-muted); font-size: .85rem; font-weight: 700; font-variant-numeric: tabular-nums;
	transition: background-color .2s, color .2s;
}
.kp-tags__count.is-some { background: #fff4e0; color: #9a5b00; }
.kp-tags__count.is-ok { background: var(--kp-primary); color: #fff; }

/* Stripe: no express buttons above the form – card payment lives in "Плащане". */
body.kp #wc-stripe-express-checkout-element,
body.kp #wc-stripe-express-checkout-button-separator { display: none !important; }

/* Product choosers (/kasovi-aparati/, /mypos/): the whole card opens the product. */
.kp-choice__card { position: relative; transition: transform .2s, box-shadow .2s, border-color .2s; }
.kp-choice__card:hover { border-color: rgba(18, 135, 63, .35); box-shadow: var(--kp-shadow-lg); transform: translateY(-3px); }
body.kp .kp-choice__card .kp-choice__foot .kp-btn { position: static; transform: none; }
.kp-choice__card .kp-choice__foot .kp-btn::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 24px; }
@media (prefers-reduced-motion: reduce) { .kp-choice__card, .kp-choice__card:hover { transition: none; transform: none; } }

/* Contract renewal (/podnovyavane/) and its card payment (order-pay). */
.kp-renew__form, .kp-pay { display: grid; gap: 18px; }
body.kp form#order_review.kp-pay { float: none; width: 100%; max-width: 640px; margin: 0 auto; padding: 0; }
body.kp .kp-shop-page > .woocommerce > .woocommerce-error, body.kp .kp-shop-page > .woocommerce > .woocommerce-notices-wrapper { max-width: 640px; margin-left: auto; margin-right: auto; }
.kp-renew__card { background: #fff; border: 1px solid var(--kp-line); border-radius: var(--kp-radius); box-shadow: var(--kp-shadow); padding: 22px 18px; }
@media (min-width: 640px) {
	.kp-renew__card { padding: 26px 28px; }
}
body.kp .kp-renew__h { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 1.25rem; font-weight: 800; text-transform: none; letter-spacing: 0; color: var(--kp-ink); }
.kp-renew__periods { display: grid; gap: 14px; }
@media (min-width: 560px) {
	.kp-renew__periods { grid-template-columns: 1fr 1fr; }
}
.kp-renew__period { position: relative; display: block; margin: 0; cursor: pointer; }
.kp-renew__period input { position: absolute; top: 22px; left: 18px; width: 20px; height: 20px; margin: 0; opacity: 0; }
.kp-renew__period-box {
	position: relative; display: flex; flex-direction: column; gap: 2px; height: 100%; box-sizing: border-box;
	padding: 18px 18px 16px 50px; border: 2px solid var(--kp-line); border-radius: var(--kp-radius); background: #fff;
	transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.kp-renew__period-box::before { content: ""; position: absolute; top: 21px; left: 18px; width: 20px; height: 20px; box-sizing: border-box; border: 2px solid #c5d1c9; border-radius: 50%; background: #fff; }
.kp-renew__period:hover .kp-renew__period-box { border-color: rgba(18, 135, 63, .4); }
.kp-renew__period input:checked + .kp-renew__period-box { border-color: var(--kp-primary); background: var(--kp-soft); box-shadow: 0 0 0 3px rgba(18, 135, 63, .12); }
.kp-renew__period input:checked + .kp-renew__period-box::before { border: 6px solid var(--kp-primary); }
.kp-renew__period input:focus-visible + .kp-renew__period-box { outline: 3px solid rgba(18, 135, 63, .35); outline-offset: 2px; }
.kp-renew__period-name { font-size: 1.05rem; font-weight: 700; color: var(--kp-ink); }
.kp-renew__period-price { font-size: 1.6rem; font-weight: 800; line-height: 1.2; color: var(--kp-primary); }
.kp-renew__period-month { font-size: .85rem; color: var(--kp-muted); }
.kp-renew__tag { position: absolute; top: -11px; right: 14px; padding: 3px 10px; border-radius: 999px; background: var(--kp-primary); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .03em; }
.kp-renew__fields { display: grid; gap: 14px 16px; align-items: start; }
@media (min-width: 560px) {
	.kp-renew__fields { grid-template-columns: 1fr 1fr; }
	.kp-renew__field--wide { grid-column: 1 / -1; }
}
body.kp .kp-renew__field { margin: 0; }
body.kp .kp-renew__field label { display: block; margin: 0 0 6px; font-size: .95rem; font-weight: 600; color: var(--kp-ink); }
body.kp .kp-renew__field abbr.required { color: var(--kp-red); text-decoration: none; border: 0; }
body.kp .kp-renew__field input {
	width: 100%; min-height: 48px; margin: 0; padding: 10px 14px; box-sizing: border-box;
	border: 1px solid var(--kp-line); border-radius: var(--kp-radius-sm); background: #fff; box-shadow: none;
	font-family: inherit; font-size: 1rem; line-height: 1.4; color: var(--kp-ink);
}
body.kp .kp-renew__field input:focus { border-color: var(--kp-primary); outline: none; box-shadow: 0 0 0 4px rgba(33, 194, 87, .15); }
body.kp .kp-renew__field.is-error input { border-color: var(--kp-red); }
#kp-renew-device { text-transform: uppercase; letter-spacing: .04em; }
#kp-renew-device::placeholder { text-transform: none; letter-spacing: 0; }
.kp-renew__err { display: block; margin-top: 6px; font-size: .85rem; font-weight: 600; color: var(--kp-red); }
.kp-renew__help { display: block; margin-top: 8px; padding: 10px 14px; border-radius: var(--kp-radius-sm); background: var(--kp-soft); border: 1px solid rgba(18, 135, 63, .14); font-size: .86rem; line-height: 1.5; color: var(--kp-muted); }
.kp-renew__alert { margin: 0; padding: 12px 16px; border-radius: var(--kp-radius-sm); background: #fbeaea; color: var(--kp-red); font-weight: 600; }
.kp-renew__sum { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 14px; padding: 0 0 14px; border-bottom: 1px solid var(--kp-line); }
.kp-renew__sum span { font-weight: 600; color: var(--kp-ink); }
.kp-renew__sum strong { flex: none; font-size: 1.5rem; font-weight: 800; color: var(--kp-primary); }
.kp-renew__note { margin: 0 0 18px; font-size: .9rem; line-height: 1.5; color: var(--kp-muted); }
body.kp .kp-renew__form button.kp-btn { display: flex; align-items: center; justify-content: center; gap: 10px; font-family: inherit; font-size: 1.05rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
body.kp-no-cartbar .kp-cartbar { display: none !important; }
.kp-renew__secure { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 12px 0 0; font-size: .82rem; color: var(--kp-muted); text-align: center; }
.kp-renew__secure .kp-icon { width: 16px; height: 16px; flex: none; color: var(--kp-primary); }
body.kp .kp-pay .kp-review th { font-weight: 600; }
.kp-pay__edit { display: inline-block; margin-top: 4px; font-size: .88rem; font-weight: 600; color: var(--kp-primary); }

/* Product page of the contract: one button straight to the renewal form. */
body.kp .kp-buybox__btns--renew { display: block; }
body.kp .kp-buybox__btns--renew .kp-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; font-family: inherit; font-size: 1.05rem; font-weight: 700; text-transform: none; letter-spacing: 0; }

/* Empty cart – contract renewal: the card + a "how it works" panel next to it (21.10.2026). */
.kp-cart-renew {
	display: flex; flex-direction: column; gap: 16px;
	padding: 22px 20px;
	background: #fff;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-radius);
	box-shadow: var(--kp-shadow);
}
@media (min-width: 900px) { .kp-cart-renew { grid-column: span 2; padding: 26px 28px; } }
.kp-cart-renew__title { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--kp-ink); }
.kp-cart-renew .kp-renew-steps--stack { grid-template-columns: minmax(0, 1fr); margin: 0; }
.kp-cart-renew .kp-renew-steps--stack li { background: var(--kp-soft-2); }
.kp-cart-renew__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: auto; }
.kp-cart-renew__meta { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; color: var(--kp-muted); }
.kp-cart-renew__meta .kp-icon { width: 16px; height: 16px; color: var(--kp-primary); }
.kp-cart-renew__note { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding-top: 14px; border-top: 1px solid var(--kp-line); font-size: .88rem; line-height: 1.45; color: var(--kp-muted); }
.kp-cart-renew__note .kp-icon { width: 18px; height: 18px; flex: none; color: var(--kp-primary); }

/* Renewal options (21.10.2026): "Само реактивация на SIM" alone on the first row,
   then 6 месеца | 6 месеца + SIM and 12 месеца | 12 месеца + SIM.
   Homepage promo, /podnovyavane/ and /dogovor/. */
.kp-promo__opts > li:first-child { grid-column: 1 / -1; }
.kp-renew__periods > .kp-renew__period:first-child { grid-column: 1 / -1; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) > li:first-child { grid-column: 1 / -1; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) { gap: 10px !important; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) > li { display: flex; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) > li label { flex: 1; flex-direction: column !important; align-items: flex-start !important; justify-content: space-between !important; gap: 6px !important; padding: 14px 16px !important; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) > li label span { flex: 0 0 auto !important; font-size: .95rem; font-weight: 600; color: var(--kp-ink); line-height: 1.3; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) .kp-options__note { margin-top: 2px; font-size: .8rem; font-weight: 400; color: var(--kp-muted); opacity: 1; }
body.kp .kp-buybox .kp-options:has(input[name="period"]) > li label strong { font-size: 1.35rem !important; line-height: 1.1; }

/* Homepage contract promo: main button to the renewal form + "Вижте повече" link under it (21.10.2026). */
.kp-promo__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
body.kp a.kp-promo__more { display: inline-flex; align-items: center; gap: 6px; font-size: .95rem; font-weight: 600; color: rgba(255, 255, 255, .85); text-decoration: none; }
body.kp a.kp-promo__more:hover { color: #fff; }
.kp-promo__more .kp-icon { width: 16px; height: 16px; }

