/**
 * KG Cosmetics — "premium" layer (warm nude palette, 2026-09-23).
 * ---------------------------------------------------------------------------
 * Moves the site from stark black/white to the warm ivory / blush / dusty
 * rose palette of the reference mood board, without touching Elementor data:
 * every rule here is an override on top of kg-design-system.css and
 * home-fluid.css, so deleting this file (and its enqueue in functions.php)
 * restores the previous look exactly.
 *
 *   1. tokens            5. product cards + cart icons
 *   2. page + header     6. benefits / support icon rows
 *   3. hero slider       7. testimonials
 *   4. section headings  8. footer
 *      + category tiles
 *
 * Elementor writes per-widget rules keyed by element ID at (0,3,0)+, so
 * several overrides below need !important — same pattern as home-fluid.css.
 * The "Radiant Skin / Perfect Lips / Blush & Glow" photo row (section
 * 86c52f5) is deliberately left untouched.
 */

/* 1 — Tokens ------------------------------------------------------------- */

:root {
	--kg-ivory: #FBF7F3;       /* page ground                                 */
	--kg-blush: #F4E9E3;       /* bands, image fields                         */
	--kg-blush-deep: #E9D6CC;  /* hairlines on blush, icon rings              */
	--kg-rose: #B98272;        /* decorative accent (icons, rules, bubbles)   */
	--kg-rose-ink: #8A5747;    /* accent *text* — 5.9:1 on ivory              */
	--kg-gold: #C9A27E;        /* star ratings                                */
	--kg-shadow: 0 22px 44px -28px rgba(110, 70, 55, 0.38);
	--kg-radius: 16px;
}

/* 2 — Page ground + header ---------------------------------------------- */

body {
	background-color: var(--kg-ivory);
}

.elementor-240 .elementor-element.elementor-element-a476a8b {
	background-color: rgba(251, 247, 243, 0.96) !important;
	border-bottom: 1px solid var(--kg-blush-deep);
}

/* Cart: a single fine-line bag with a rose count bubble, instead of the
   solid FontAwesome trolley + "Cart 0$0.00" text run. */
.jet-blocks-cart__heading-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	transition: background-color 200ms ease-out;
}

.jet-blocks-cart__heading-link:hover {
	background-color: var(--kg-blush);
}

.jet-blocks-cart__heading-link .jet-blocks-cart__label,
.jet-blocks-cart__heading-link .jet-blocks-cart__total,
.jet-blocks-cart__heading-link .jet-blocks-cart__icon i {
	display: none !important;
}

.jet-blocks-cart__heading-link .jet-blocks-cart__icon {
	margin: 0 !important;
	line-height: 0;
}

.jet-blocks-cart__heading-link .jet-blocks-cart__icon::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	background-color: var(--kg-ink);
	-webkit-mask: var(--kg-icon-bag) center / contain no-repeat;
	mask: var(--kg-icon-bag) center / contain no-repeat;
}

.jet-blocks-cart__heading-link .jet-blocks-cart__count {
	position: absolute;
	top: 3px;
	right: 1px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	margin: 0 !important;
	border-radius: 999px;
	background-color: var(--kg-rose) !important;
	color: #FFFFFF !important;
	font-family: "Montserrat", sans-serif;
	font-size: 10px !important;
	font-weight: 600;
	line-height: 17px !important;
	text-align: center;
}

:root {
	--kg-icon-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 12.2a1 1 0 0 1-1 .8H7.2a1 1 0 0 1-1-.8Z'/%3E%3Cpath d='M9 10V6.5a3 3 0 0 1 6 0V10'/%3E%3C/svg%3E");
}

/* 3 — Hero slider -------------------------------------------------------- */

/**
 * The headline sat in a dark 80% ink box glued to the left edge (it even
 * overlapped the "previous" arrow). On pale product photography a frosted
 * ivory card with ink type reads lighter and more editorial, and it works
 * on the busy eyeshadow-pan slide too, where type straight on the photo
 * would not. The old ink scrim from home-fluid.css is dropped: the card now
 * carries legibility on its own.
 */
#n2-ss-2 .n2-ss-slide-background::after {
	background: linear-gradient(90deg, rgba(251, 247, 243, 0.35) 0%, rgba(251, 247, 243, 0) 55%);
}

#n2-ss-2 .n2-style-812f74040a34863206db8d07020a7e26-heading {
	background: rgba(251, 247, 243, 0.86) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-radius: 14px !important;
	padding: 0.45em 0.8em !important;
	box-shadow: var(--kg-shadow) !important;
	margin-left: clamp(40px, 5vw, 90px);
}

#n2-ss-2 .n2-font-ed1355ec3da2422a1ed0e3e62c6fdc2e-hover {
	color: var(--kg-ink) !important;
	text-shadow: none !important;
}

#n2-ss-2 [class*="n-uc-cta-"] {
	margin-left: clamp(40px, 5vw, 90px);
}

/* Arrows: small frosted circles instead of dark squares. */
#n2-ss-2 .n2-style-613353ca98f252376d62b8e0fc1f1060-heading {
	background: rgba(251, 247, 243, 0.8) !important;
	border-radius: 50% !important;
	padding: 12px !important;
	box-shadow: var(--kg-shadow) !important;
}

#n2-ss-2 .n2-style-613353ca98f252376d62b8e0fc1f1060-heading img {
	filter: invert(1);
	opacity: 0.8;
}

#n2-ss-2 .n2-style-613353ca98f252376d62b8e0fc1f1060-heading:hover {
	background: #FFFFFF !important;
}

/* 4 — Section headings + category tiles ---------------------------------- */

/* A short rose rule under each content-section title — the one ornament.
   Two titles already have an Elementor divider (a pale 180px line): restyle
   it. The testimonials title never had one, so it gets the same mark drawn
   as a pseudo-element. */
.elementor-153 .elementor-widget-divider .elementor-divider-separator {
	--divider-color: var(--kg-rose);
	--divider-border-width: 1px;
	width: 44px !important;
}

.elementor-element-bfc2055 .elementor-widget-heading h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 44px;
	height: 1px;
	margin: 18px auto 0;
	background-color: var(--kg-rose);
}

.elementor-153 .elementor-widget-text-editor {
	color: var(--kg-muted);
}

/* Category tiles: soft blush card, the line icon sitting in a white disc. */
.elementor-element-063a8da .elementor-widget-jet-banner .jet-banner.jet-effect-lily {
	background: linear-gradient(180deg, #FFFFFF 0%, var(--kg-blush) 100%);
	border: 1px solid var(--kg-blush-deep);
	border-radius: var(--kg-radius);
	transition: transform 350ms var(--kg-ease), box-shadow 350ms var(--kg-ease), border-color 350ms var(--kg-ease);
}

.elementor-element-063a8da .elementor-widget-jet-banner .jet-banner.jet-effect-lily:hover {
	transform: translateY(-4px);
	box-shadow: var(--kg-shadow);
	border-color: var(--kg-rose);
}

.elementor-element-063a8da .jet-banner__link::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 38%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: clamp(64px, 6.5vw, 92px);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	transition: border-color 350ms var(--kg-ease);
	pointer-events: none;
}

.elementor-element-063a8da .jet-banner:hover .jet-banner__link::before {
	border-color: var(--kg-rose);
}

.elementor-element-063a8da .jet-banner__link::after {
	width: 13%;
	max-width: 40px;
	min-width: 28px;
}

.elementor-element-063a8da .jet-banner__title {
	font-size: 17px !important;
	letter-spacing: 0.12em !important;
}

/**
 * Titles on one line across the row. Jet's "lily" effect hides each tile's
 * subtitle until hover but still pushes the title up by translate3d(0,40px)
 * inside a bottom-anchored box — so a tile whose subtitle wraps to two lines
 * ("Foundation, concealer & highlighter") sat higher than one whose subtitle
 * fits on one ("Matte, gloss, in your shade"), and LIPS dropped below the
 * rest. Anchor the caption from the top instead and show the subtitle
 * permanently as a small muted line under the title (as in the reference).
 */
.elementor-element-063a8da .elementor-widget-jet-banner .jet-banner.jet-effect-lily {
	height: clamp(220px, 19vw, 270px);
}

.elementor-element-063a8da .jet-banner__link::before,
.elementor-element-063a8da .jet-banner__link::after {
	top: 34%;
}

.elementor-element-063a8da .jet-banner.jet-effect-lily .jet-banner__content-wrap {
	top: 58%;
	bottom: auto;
	height: auto;
	padding: 0 1.2em;
	justify-content: flex-start;
}

.elementor-element-063a8da .jet-banner.jet-effect-lily .jet-banner__title,
.elementor-element-063a8da .jet-banner.jet-effect-lily .jet-banner__text,
.elementor-element-063a8da .jet-banner.jet-effect-lily:hover .jet-banner__title,
.elementor-element-063a8da .jet-banner.jet-effect-lily:hover .jet-banner__text {
	transform: none;
}

.elementor-element-063a8da .jet-banner.jet-effect-lily .jet-banner__title {
	margin: 0 0 6px;
}

.elementor-element-063a8da .jet-banner.jet-effect-lily .jet-banner__text {
	opacity: 1 !important;
	font-family: "Montserrat", sans-serif !important;
	font-size: 13px !important;
	line-height: 1.45;
	color: var(--kg-muted) !important;
}

/* Hover: the banner's Elementor overlay is a dark ink wash at 40% — right
   for the photo tiles further down, far too heavy on these light cards (it
   greyed out the whole tile). Here it becomes a faint blush warmth instead;
   the lift, shadow and rose border already carry the hover. */
.elementor-element-063a8da .jet-banner .jet-banner__overlay {
	background: var(--kg-rose) !important;
	opacity: 0 !important;
	transition: opacity 350ms var(--kg-ease) !important;
}

.elementor-element-063a8da .jet-banner:hover .jet-banner__overlay {
	opacity: 0.08 !important;
}

@media (prefers-reduced-motion: reduce) {
	.elementor-element-063a8da .elementor-widget-jet-banner .jet-banner.jet-effect-lily:hover {
		transform: none;
	}
}

/* 5 — Product cards + add-to-cart icons --------------------------------- */

.jet-woo-products .jet-woo-products__inner-box,
.woocommerce ul.products li.product .product-content {
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	border-radius: var(--kg-radius) !important; /* Elementor sets 6px per widget */
	padding: 14px 14px 20px;
	transition: border-color 250ms var(--kg-ease), box-shadow 350ms var(--kg-ease);
}

.jet-woo-products .jet-woo-products__item:hover .jet-woo-products__inner-box,
.woocommerce ul.products li.product:hover .product-content {
	border-color: var(--kg-rose);
	box-shadow: var(--kg-shadow);
}

/* Image field: product shots are on white/grey, so multiply melts their
   background into the blush field instead of showing a pasted-in square. */
.jet-woo-products .jet-woo-product-thumbnail {
	background: var(--kg-blush);
	border-radius: 12px;
	overflow: hidden;
	padding: 10px;
	margin-bottom: 16px;
}

.jet-woo-products .jet-woo-product-thumbnail img,
.woocommerce ul.products li.product img {
	mix-blend-mode: multiply;
	border-radius: 8px;
}

/* Shop archive: the link wraps image *and* title, so the blush field is a
   square ::before behind the image only (the product thumbnails are 1:1);
   multiply on the <img> then blends into it, same as the home grid. */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
	position: relative;
	display: block;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	background: var(--kg-blush);
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link img {
	position: relative;
	padding: 10px;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link .woocommerce-loop-product__title {
	position: relative;
}

.jet-woo-products .jet-woo-product-price .price,
.woocommerce ul.products li.product .price {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 17px;
	color: var(--kg-ink);
}

/* Buttons: outline pill that fills on hover, with a fine-line bag. */
.jet-woo-products .jet-woo-product-button .button,
.woocommerce ul.products li.product .product-content > .button {
	display: flex !important; /* Elementor sets inline-block per widget */
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: transparent !important;
	color: var(--kg-ink) !important;
	border: 1px solid var(--kg-ink) !important;
	border-radius: 999px !important;
	padding: 12px 8px !important;
	white-space: nowrap;
	letter-spacing: 0.07em !important;
}

.jet-woo-products .jet-woo-product-button .button::before,
.woocommerce ul.products li.product .button::before {
	margin-right: -2px !important;
}

.jet-woo-products .jet-woo-product-button .button:hover,
.woocommerce ul.products li.product .product-content > .button:hover {
	background: var(--kg-ink) !important;
	color: #FFFFFF !important;
}

/* Kava draws a FontAwesome glyph on these buttons — a trolley for "Add to
   cart" and a wrench for "Select options", which read as a tool, not a
   shop. Swap both for the same bag used in the header. */
.jet-woo-products .jet-woo-product-button .button::before,
.woocommerce ul.products li.product .button::before,
.woocommerce .button.single_add_to_cart_button::before {
	content: "" !important;
	display: inline-block;
	width: 15px;
	height: 15px;
	margin: 0 !important;
	flex: none;
	background-color: currentColor;
	-webkit-mask: var(--kg-icon-bag) center / contain no-repeat;
	mask: var(--kg-icon-bag) center / contain no-repeat;
	font-size: 0 !important;
}

/* 6 — Benefits + support icon rows --------------------------------------- */

.elementor-153 .elementor-element.elementor-element-e8e1b00 {
	background-color: var(--kg-blush) !important;
	/* The section is boxed; bleed the band to the viewport edges without
	   changing its layout width. */
	box-shadow: 0 0 0 100vmax var(--kg-blush);
	clip-path: inset(0 -100vmax);
	margin-top: clamp(40px, 5vw, 72px);
}

.elementor-element-e8e1b00 .elementor-icon,
.elementor-element-ef2dc2c .elementor-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #FFFFFF !important;
	border: 1px solid var(--kg-blush-deep) !important; /* widget draws an ink "framed" ring */
}

.elementor-element-ef2dc2c .elementor-icon {
	width: 52px;
	height: 52px;
}

.elementor-element-e8e1b00 .elementor-icon i,
.elementor-element-ef2dc2c .elementor-icon i {
	display: none !important;
}

.elementor-element-e8e1b00 .elementor-icon::before,
.elementor-element-ef2dc2c .elementor-icon::before {
	content: "";
	width: 46%;
	height: 46%;
	background-color: var(--kg-rose-ink);
	-webkit-mask: var(--kg-icon) center / contain no-repeat;
	mask: var(--kg-icon) center / contain no-repeat;
}

.elementor-icon:has(.fa-shipping-fast) {
	--kg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.5h11v10h-11z'/%3E%3Cpath d='M13.5 9.5h4l3.5 3.5v3.5h-7.5'/%3E%3Ccircle cx='7' cy='17.5' r='1.8' fill='white'/%3E%3Ccircle cx='17' cy='17.5' r='1.8' fill='white'/%3E%3C/svg%3E");
}

.elementor-icon:has(.fa-lock) {
	--kg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3Cpath d='M12 14.5v2.5'/%3E%3C/svg%3E");
}

.elementor-icon:has(.fa-flag-usa) {
	--kg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V3.5'/%3E%3Cpath d='M5 4.5h13l-2.5 4 2.5 4H5'/%3E%3C/svg%3E");
}

.elementor-icon:has(.fa-leaf) {
	--kg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 18.5C4 10 9 4.5 19.5 4.5c0 10.5-5.5 15.5-14 14Z'/%3E%3Cpath d='M5.5 18.5 14 10'/%3E%3C/svg%3E");
}

.elementor-icon:has(.fa-life-ring) {
	--kg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2'/%3E%3Crect x='3' y='13.5' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='13.5' width='4' height='6' rx='1.5'/%3E%3Cpath d='M19 19.5c0 1.2-1.5 2-4 2h-2'/%3E%3C/svg%3E");
}

.elementor-icon:has(.fa-redo-alt) {
	--kg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12a7.5 7.5 0 1 0 2.2-5.3'/%3E%3Cpath d='M4.5 3.5v4h4'/%3E%3C/svg%3E");
}

/* 7 — Testimonials -------------------------------------------------------- */

/* The quotes were white-on-black slabs inside white cards; turn them into a
   single ivory card with an italic serif quote and a rose quote mark. */
.elementor-element-bfc2055 .jet-testimonials__item-inner {
	background: #FFFFFF !important;
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: var(--kg-radius) !important;
	padding: 36px 30px 30px !important;
	margin: 0 10px;
	overflow: hidden;
}

.elementor-element-bfc2055 .jet-testimonials__comment {
	position: relative;
	background: transparent !important;
	color: var(--kg-ink-soft) !important;
	padding: 26px 22px 0 !important;
	font-family: "Playfair Display", Georgia, serif !important;
	font-style: italic;
	font-size: 17px !important;
	line-height: 1.6 !important;
}

.elementor-element-bfc2055 .jet-testimonials__comment::before {
	content: "\201C";
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	font-family: "Playfair Display", Georgia, serif;
	font-style: normal;
	font-size: 54px;
	line-height: 1;
	color: var(--kg-rose);
}

.elementor-element-bfc2055 .jet-testimonials__name {
	font-family: "Montserrat", sans-serif !important;
	font-size: 12px !important;
	letter-spacing: var(--kg-track-wide);
	text-transform: uppercase;
}

.elementor-element-bfc2055 .jet-testimonials__position {
	font-family: "Montserrat", sans-serif !important;
	font-size: 12px !important;
	color: var(--kg-muted) !important;
}

/* Jet colours filled stars with `color: inherit !important`, so the gold
   has to go on the container, not the <i>. */
.elementor-element-bfc2055 .jet-testimonials__rating {
	color: var(--kg-gold) !important;
	font-size: 14px !important;
	letter-spacing: 2px;
}

/* 8 — Footer ------------------------------------------------------------- */

.elementor-251 .elementor-element.elementor-element-ef2dc2c {
	background-color: var(--kg-ivory) !important;
	border-top: 1px solid var(--kg-blush-deep);
}

.elementor-251 .elementor-element.elementor-element-7b54d56:not(.elementor-motion-effects-element-type-background),
.elementor-251 .elementor-element.elementor-element-fede19f:not(.elementor-motion-effects-element-type-background) {
	background-color: var(--kg-blush) !important;
}

.elementor-251 .elementor-element.elementor-element-fede19f {
	border-top: 1px solid var(--kg-blush-deep);
}

.elementor-251 .jet-subscribe-form__input {
	background: #FFFFFF;
	border-color: var(--kg-blush-deep) !important;
	border-radius: 999px !important;
	padding-inline: 22px !important;
}

.elementor-251 .jet-subscribe-form__submit {
	border-radius: 999px !important;
}

.elementor-251 .elementor-social-icon {
	background-color: transparent !important;
	transition: transform 200ms var(--kg-ease);
}

.elementor-251 .elementor-social-icon i,
.elementor-251 .elementor-social-icon svg {
	color: var(--kg-rose-ink) !important;
	fill: var(--kg-rose-ink) !important;
}

/* Shop archive cards are ~150px wide at five across: tighten the pill so
   "SELECT OPTIONS" + bag fit on one line without touching the border. */
.woocommerce ul.products li.product .product-content > .button {
	font-size: 9.5px !important;
	gap: 6px;
	padding-inline: 6px !important;
}

/* 9 — Inner page banners (Face / Eyes / Lips / Tools / About / Contact) -- */

/**
 * Face 631, Eyes 647, Lips 652 and Tools 660 (and All Products 803, cloned
 * from Face on 2026-09-24) titled their dark photo banner
 * in "Reenie Beanie", a handwritten script left over from the old theme; About
 * 130 and Contact 133 used Nunito. All in the global ink colour — near-
 * invisible on the dark overlay and out of step with the Playfair headings.
 * Set them like the shop banner title instead: Playfair in ivory.
 */
.elementor-631 .elementor-element.elementor-element-4d7e0b1 .elementor-heading-title,
.elementor-647 .elementor-element.elementor-element-4d7e0b1 .elementor-heading-title,
.elementor-652 .elementor-element.elementor-element-4d7e0b1 .elementor-heading-title,
.elementor-660 .elementor-element.elementor-element-4d7e0b1 .elementor-heading-title,
.elementor-803 .elementor-element.elementor-element-4d7e0b1 .elementor-heading-title,
.elementor-130 .elementor-element.elementor-element-0b7cbe3 .elementor-heading-title,
.elementor-133 .elementor-element.elementor-element-9b9db6d .elementor-heading-title {
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: clamp(32px, 4vw, 48px) !important;
	font-weight: 400 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase; /* was inherited from the h3 style before these became H1s (2026-09-24) */
	line-height: 1.15;
	margin: 0;
	color: var(--kg-ivory) !important;
	text-shadow: 0 2px 18px rgba(28, 28, 28, 0.35);
}

/* 10 — WooCommerce notices ------------------------------------------------ */

/* Kava's notices are a saturated blue slab — the one off-palette colour
   left on the shopping path. Blush card, rose rule, ink text. */
.woocommerce-message,
.woocommerce-info {
	background: #FFFFFF !important;
	border: 1px solid var(--kg-blush-deep) !important;
	border-left: 3px solid var(--kg-rose) !important;
	border-radius: 12px !important;
	color: var(--kg-ink) !important;
	box-shadow: none !important;
}

/* WooCommerce moves focus onto a fresh notice so screen readers announce
   it; that's programmatic focus on a non-interactive box, and Chrome paints
   its blue ring round the whole card. The announcement still happens. */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus {
	outline: none;
}

.woocommerce-message::before,
.woocommerce-info::before {
	background: transparent !important;
	color: var(--kg-rose) !important;
}

/* 11 — Cart page ---------------------------------------------------------- */

/**
 * Two columns on desktop: the bag on the left, a sticky order summary on
 * the right (it used to sit *under* the table, left-aligned, half the page
 * empty beside it). Children of .woocommerce here are, in order: notices,
 * the header from kava_child_cart_header(), the cart form, the totals.
 */
.woocommerce-cart .page-content > .woocommerce {
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(32px, 5vw, 64px) 20px clamp(48px, 6vw, 88px);
}

@media (min-width: 992px) {
	.woocommerce-cart .page-content > .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 380px;
		column-gap: 48px;
		align-items: start;
	}

	.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
	.woocommerce-cart .woocommerce > .kg-cart-header {
		grid-column: 1 / -1;
	}

	.woocommerce-cart .woocommerce > .woocommerce-cart-form {
		grid-column: 1;
	}

	.woocommerce-cart .woocommerce > .cart-collaterals {
		grid-column: 2;
		position: sticky;
		top: 130px;
	}
}

/* Header */
.kg-cart-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	padding-bottom: 20px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--kg-blush-deep);
}

.kg-cart-header__title {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(30px, 3.2vw, 40px);
	font-weight: 400;
	color: var(--kg-ink);
}

.kg-cart-header__count {
	font-family: "Montserrat", sans-serif;
	font-size: 13px;
	letter-spacing: var(--kg-track-wide);
	text-transform: uppercase;
	color: var(--kg-muted);
	margin-left: 10px;
	vertical-align: middle;
}

.kg-cart-header__back {
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--kg-track-wide);
	text-transform: uppercase;
	color: var(--kg-rose-ink);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

.kg-cart-header__back::before {
	content: "\2190\00a0";
}

.kg-cart-header__back:hover {
	color: var(--kg-ink);
}

/* Item table: no boxed frame, just hairline rows. */
.woocommerce-cart table.shop_table.cart {
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	border-collapse: collapse;
	margin: 0;
}

.woocommerce-cart table.shop_table.cart thead th {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--kg-blush-deep) !important;
	padding: 18px 12px !important;
	font-family: "Montserrat", sans-serif;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: var(--kg-track-wide);
	text-transform: uppercase;
	color: var(--kg-muted) !important;
}

.woocommerce-cart table.shop_table.cart td {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--kg-blush-deep) !important;
	padding: 24px 12px !important;
	vertical-align: middle;
}

.woocommerce-cart table.cart td.product-thumbnail a {
	display: block;
	width: 96px;
	border-radius: 12px;
	background: var(--kg-blush);
	padding: 8px;
}

.woocommerce-cart table.cart td.product-thumbnail img {
	width: 100% !important;
	height: auto;
	mix-blend-mode: multiply;
	border-radius: 8px;
}

.woocommerce-cart table.cart td.product-name a {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 19px;
	color: var(--kg-ink) !important;
	text-decoration: none;
}

.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
	font-family: "Montserrat", sans-serif;
	font-size: 15px !important;
	color: var(--kg-ink-soft);
}

.woocommerce-cart table.cart td.product-subtotal {
	font-weight: 600;
	color: var(--kg-ink);
}

/* Remove: a small ringed ×, rose on hover. */
.woocommerce-cart table.cart td.product-remove a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid var(--kg-blush-deep);
	color: var(--kg-muted) !important;
	background: #FFFFFF !important;
	font-size: 16px !important;
	line-height: 1;
	transition: color 200ms ease-out, border-color 200ms ease-out;
}

.woocommerce-cart table.cart td.product-remove a.remove::before {
	display: none !important; /* Kava adds a FontAwesome glyph on top of the × */
}

.woocommerce-cart table.cart td.product-remove a.remove:hover {
	color: var(--kg-rose-ink) !important;
	border-color: var(--kg-rose);
}

/* Quantity: a soft pill field. */
.woocommerce-cart table.cart .quantity .qty {
	width: 72px;
	height: 42px;
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: 999px !important;
	background: #FFFFFF !important;
	text-align: center;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
}

/* Actions row: coupon on the left, a quiet "Update cart" on the right. */
.woocommerce-cart table.cart td.actions {
	background: transparent !important;
	border-bottom: 0 !important;
	padding: 24px 0 0 !important;
}

.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	gap: 10px;
	align-items: center;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	height: 46px;
	min-width: 200px;
	padding: 0 20px !important;
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: 999px !important;
	background: #FFFFFF !important;
	font-family: "Montserrat", sans-serif;
}

.woocommerce-cart table.cart td.actions .button {
	height: 46px;
	padding: 0 26px !important;
	border-radius: 999px !important;
	font-size: 11px !important;
}

.woocommerce-cart table.cart td.actions .coupon .button {
	background: transparent !important;
	color: var(--kg-ink) !important;
	border: 1px solid var(--kg-ink) !important;
}

.woocommerce-cart table.cart td.actions .coupon .button:hover {
	background: var(--kg-ink) !important;
	color: #FFFFFF !important;
}

.woocommerce-cart table.cart td.actions > .button[name="update_cart"] {
	background: transparent !important;
	border: 0 !important;
	color: var(--kg-rose-ink) !important;
	text-decoration: underline;
	text-underline-offset: 4px;
	padding: 0 4px !important;
}

.woocommerce-cart table.cart td.actions > .button[name="update_cart"]::before {
	display: none !important;
}

.woocommerce-cart table.cart td.actions > .button[name="update_cart"]:disabled {
	opacity: 0.45;
}

/* Kava sizes these as 65% / 35% floats with their own hairline boxes —
   the grid above does the layout now, and the card below is the only frame. */
.woocommerce-cart .woocommerce .woocommerce-cart-form {
	width: auto !important;
	float: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	overflow: visible !important;
}

/* Order summary card. */
.woocommerce-cart .woocommerce .cart-collaterals {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	float: none !important;
	width: 100% !important;
	background: #FFFFFF !important;
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: 20px;
	padding: 30px 28px 26px !important;
	box-shadow: var(--kg-shadow);
}

.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: 24px !important;
	font-weight: 400 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: 0 0 18px !important;
	color: var(--kg-ink);
}

.woocommerce-cart .cart-collaterals .cart_totals table {
	border: 0 !important;
	margin: 0 0 22px !important;
	width: 100%;
}

.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--kg-blush) !important;
	padding: 14px 0 !important;
	font-family: "Montserrat", sans-serif;
	font-size: 14px !important;
	vertical-align: top;
}

.woocommerce-cart .cart-collaterals .cart_totals table th {
	font-weight: 500 !important;
	color: var(--kg-muted) !important;
	width: 38%;
}

.woocommerce-cart .cart-collaterals .cart_totals table td {
	text-align: right;
	color: var(--kg-ink);
}

.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-destination {
	margin: 4px 0;
	font-size: 12px;
	color: var(--kg-muted);
}

.woocommerce-cart .cart-collaterals .cart_totals .shipping-calculator-button {
	font-size: 12px;
	color: var(--kg-rose-ink) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce-cart .cart-collaterals .cart_totals .shipping-calculator-button::before {
	display: none !important;
}

.woocommerce-cart .cart-collaterals .cart_totals tr.order-total th,
.woocommerce-cart .cart-collaterals .cart_totals tr.order-total td {
	border-bottom: 0 !important;
	padding-top: 20px !important;
	color: var(--kg-ink) !important;
	font-weight: 600 !important;
}

.woocommerce-cart .cart-collaterals .cart_totals tr.order-total td .amount {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 28px;
	font-weight: 400;
}

/* Checkout button: the one filled, high-contrast action on the page. */
.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0 !important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin: 0 !important;
	padding: 0 24px !important;
	border: 1px solid var(--kg-ink) !important;
	border-radius: 999px !important;
	background: var(--kg-ink) !important;
	color: var(--kg-ivory) !important;
	font-family: "Montserrat", sans-serif;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1 !important;
	white-space: nowrap;
	text-transform: uppercase;
	transition: background-color 200ms ease-out, border-color 200ms ease-out, transform 100ms ease-out;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button:focus-visible {
	background: var(--kg-rose-ink) !important;
	border-color: var(--kg-rose-ink) !important;
	color: #FFFFFF !important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button:active {
	transform: scale(0.98);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button::before {
	content: "" !important;
	display: inline-block;
	width: 16px;
	height: 16px;
	margin: 0 !important;
	background-color: currentColor;
	-webkit-mask: var(--kg-icon-lock) center / contain no-repeat;
	mask: var(--kg-icon-lock) center / contain no-repeat;
	font-size: 0 !important;
}

:root {
	--kg-icon-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
}

/* Reassurance list under the button (kava_child_cart_reassurance()). */
.kg-cart-trust {
	list-style: none;
	margin: 20px 0 0;
	padding: 18px 0 0;
	border-top: 1px solid var(--kg-blush);
	display: grid;
	gap: 10px;
}

.kg-cart-trust__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	color: var(--kg-muted);
}

.kg-cart-trust__item::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background-color: var(--kg-rose-ink);
	-webkit-mask: var(--kg-trust-icon) center / contain no-repeat;
	mask: var(--kg-trust-icon) center / contain no-repeat;
}

.kg-cart-trust__item--secure { --kg-trust-icon: var(--kg-icon-lock); }

.kg-cart-trust__item--returns {
	--kg-trust-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12a7.5 7.5 0 1 0 2.2-5.3'/%3E%3Cpath d='M4.5 3.5v4h4'/%3E%3C/svg%3E");
}

.kg-cart-trust__item--usa {
	--kg-trust-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 18.5C4 10 9 4.5 19.5 4.5c0 10.5-5.5 15.5-14 14Z'/%3E%3Cpath d='M5.5 18.5 14 10'/%3E%3C/svg%3E");
}

/* Phones: WooCommerce's responsive table stacks each cell with its
   data-title label; give the stacked item a card instead of bare rows. */
@media (max-width: 767px) {
	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item {
		display: block;
		background: #FFFFFF;
		border: 1px solid var(--kg-blush-deep);
		border-radius: 16px;
		padding: 8px 16px;
		margin-bottom: 16px;
	}

	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td {
		padding: 12px 0 !important;
	}

	.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td:last-child {
		border-bottom: 0 !important;
	}

	.woocommerce-cart table.cart td.actions .coupon {
		flex-direction: column;
		align-items: stretch;
	}

	/* Kava's mobile rules collapse these fields' height; pin it. */
	.woocommerce-cart table.cart td.actions .coupon .input-text,
	.woocommerce-cart table.cart td.actions .coupon .button {
		height: 48px !important;
		min-height: 48px;
		width: 100% !important;
		line-height: 46px !important;
	}

	.woocommerce-cart table.cart td.product-thumbnail a {
		margin: 0 auto;
	}

	.woocommerce-cart table.cart td.actions > .button[name="update_cart"] {
		display: block;
		margin: 16px auto 0;
	}

	.woocommerce-cart .cart-collaterals {
		margin-top: 32px !important;
	}
}

/* 12 — Checkout ----------------------------------------------------------- */

/**
 * Same frame as the cart: a page header ("Checkout", back to bag — from
 * kava_child_checkout_header()), then the form on the left and a sticky
 * "Your order" card on the right. The grid lives on form.checkout because
 * the coupon toggle and notices sit outside it and stay full width.
 */
.woocommerce-checkout .page-content > .woocommerce {
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(32px, 5vw, 64px) 20px clamp(48px, 6vw, 88px);
}

.woocommerce-checkout .kg-cart-header {
	margin-bottom: 24px;
}

/* "Have a coupon?" — Kava sets this notice's lead-in at ~20px. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	font-family: "Montserrat", sans-serif;
	font-size: 14px !important;
	padding: 16px 20px !important;
	margin-bottom: 24px;
}

/* Kava's icon slot renders empty inside these two notices; drop the gap. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-checkout #payment ul.payment_methods .woocommerce-info::before {
	display: none !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon {
	color: var(--kg-rose-ink) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce-checkout form.checkout_coupon {
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: var(--kg-radius);
	background: #FFFFFF;
	padding: 20px !important;
	margin-bottom: 24px;
}

@media (min-width: 992px) {
	.woocommerce-checkout form.checkout.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 420px;
		/* The customer column spans all three rows; the trailing 1fr row
		   absorbs its extra height so the summary's heading and card rows
		   stay tight against each other. */
		grid-template-rows: auto auto 1fr;
		column-gap: 48px;
		align-items: start;
	}

	.woocommerce-checkout form.checkout > #customer_details {
		grid-column: 1;
		grid-row: 1 / span 3;
	}

	.woocommerce-checkout form.checkout > #order_review_heading {
		grid-column: 2;
		grid-row: 1;
	}

	.woocommerce-checkout form.checkout > #order_review {
		grid-column: 2;
		grid-row: 2;
	}
}

/* Kava floats the two customer columns side by side at 50%; stack them. */
.woocommerce-checkout #customer_details.col2-set,
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.woocommerce-checkout #customer_details.col2-set,
.woocommerce-checkout #customer_details .col-1 {
	padding: 0 !important;
}

/* Section headings: Playfair, sentence case, like the rest of the site. */
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout #order_review_heading {
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: 24px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--kg-ink);
	margin: 0 0 20px !important;
}

/* Customer column: one white card for billing, one for shipping + notes. */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .col-2 {
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	border-radius: 20px;
	padding: clamp(22px, 3vw, 34px);
}

.woocommerce-checkout #customer_details .col-2 {
	margin-top: 24px !important;
	padding: clamp(22px, 3vw, 34px) !important;
}

/* Fields: a two-column grid; paired fields share a row. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 16px;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row {
	grid-column: 1 / -1;
	float: none !important;
	width: auto !important;
	margin: 0 0 18px !important;
	padding: 0 !important;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last,
.woocommerce-checkout #billing_state_field,
.woocommerce-checkout #billing_postcode_field,
.woocommerce-checkout #billing_phone_field,
.woocommerce-checkout #billing_email_field,
.woocommerce-checkout #shipping_state_field,
.woocommerce-checkout #shipping_postcode_field {
	grid-column: auto !important;
}

@media (max-width: 600px) {
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
	.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
	.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row {
		grid-column: 1 / -1 !important;
	}
}

.woocommerce-checkout form .form-row label {
	font-family: "Montserrat", sans-serif;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kg-ink-soft);
	margin-bottom: 8px;
	line-height: 1.4;
}

.woocommerce-checkout form .form-row .required {
	color: var(--kg-rose-ink) !important;
	text-decoration: none;
}

.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row textarea,
.woocommerce-checkout form .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	min-height: 50px;
	padding: 12px 16px !important;
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: 12px !important;
	background: var(--kg-ivory) !important;
	font-family: "Montserrat", sans-serif;
	font-size: 15px !important;
	color: var(--kg-ink);
	box-shadow: none !important;
	transition: border-color 200ms ease-out, box-shadow 200ms ease-out, background-color 200ms ease-out;
}

.woocommerce-checkout form .form-row textarea {
	min-height: 110px;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 !important;
	line-height: 24px !important;
	color: var(--kg-ink);
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 48px !important;
	right: 10px !important;
}

.woocommerce-checkout form .form-row input.input-text:focus,
.woocommerce-checkout form .form-row textarea:focus,
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single {
	outline: none;
	background: #FFFFFF !important;
	border-color: var(--kg-rose) !important;
	box-shadow: 0 0 0 3px rgba(185, 130, 114, 0.18) !important;
}

.woocommerce-checkout form .form-row.woocommerce-invalid input.input-text {
	border-color: #B3261E !important;
}

/* "Ship to a different address?" — a checkbox row, not a shouting heading. */
.woocommerce-checkout #ship-to-different-address {
	margin: 0 0 16px !important;
	font-size: 14px !important;
}

.woocommerce-checkout #ship-to-different-address label {
	display: flex !important;
	align-items: center;
	gap: 12px;
	font-family: "Montserrat", sans-serif;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kg-ink) !important;
	cursor: pointer;
}

.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 8px;
}

/* Order summary card (heading is the card's top edge). */
.woocommerce-checkout #order_review_heading {
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	border-bottom: 0;
	border-radius: 20px 20px 0 0;
	padding: 28px 28px 8px;
	margin: 0 !important;
}

.woocommerce-checkout #order_review {
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	border-top: 0;
	border-radius: 0 0 20px 20px;
	padding: 8px 28px 28px;
	box-shadow: var(--kg-shadow);
}

@media (max-width: 991px) {
	.woocommerce-checkout #order_review_heading {
		margin-top: 32px !important;
	}
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	margin: 0 0 20px !important;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr {
	background: transparent !important;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--kg-blush) !important;
	padding: 14px 0 !important;
	font-family: "Montserrat", sans-serif;
	font-size: 14px !important;
	vertical-align: top;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: var(--kg-track-wide);
	text-transform: uppercase;
	color: var(--kg-muted) !important;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
	font-weight: 500 !important;
	color: var(--kg-muted) !important;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	color: var(--kg-ink);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 16px !important;
	color: var(--kg-ink);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity {
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: var(--kg-muted);
}

.woocommerce-checkout .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table .amount {
	font-size: 14px !important;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total td {
	border-bottom: 0 !important;
	padding-top: 18px !important;
	color: var(--kg-ink) !important;
	font-weight: 600 !important;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tr.order-total .amount {
	font-family: "Playfair Display", Georgia, serif;
	font-size: 28px !important;
	font-weight: 400;
}

/* Payment block. */
.woocommerce-checkout #payment {
	background: transparent !important;
	border-radius: 0 !important;
}

.woocommerce-checkout #payment ul.payment_methods {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 0 16px !important;
}

.woocommerce-checkout #payment ul.payment_methods > li {
	list-style: none;
	margin: 0 0 10px;
	padding: 14px 16px !important;
	border: 1px solid var(--kg-blush-deep);
	border-radius: 12px;
	background: var(--kg-ivory);
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
}

.woocommerce-checkout #payment ul.payment_methods > li:has(> .woocommerce-info) {
	padding: 0 !important;
	border: 0;
	background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods .woocommerce-info {
	font-size: 13px !important;
	line-height: 1.55;
	padding: 14px 16px !important;
	margin: 0;
}

.woocommerce-checkout #payment div.payment_box {
	background: #FFFFFF !important;
	border-radius: 10px;
	font-size: 13px;
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	font-family: "Montserrat", sans-serif;
	font-size: 12px;
	line-height: 1.6;
	color: var(--kg-muted);
}

.woocommerce-checkout .woocommerce-privacy-policy-text a {
	color: var(--kg-rose-ink);
}

.woocommerce-checkout #payment .place-order {
	padding: 0 !important;
	margin: 0 !important;
}

/* Place order — same filled pill as "Proceed to checkout", with the lock
   instead of Kava's FontAwesome check. */
.woocommerce-checkout .place-order button#place_order.button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin: 16px 0 0 !important;
	padding: 0 24px !important;
	border: 1px solid var(--kg-ink) !important;
	border-radius: 999px !important;
	background: var(--kg-ink) !important;
	color: var(--kg-ivory) !important;
	font-family: "Montserrat", sans-serif;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1 !important;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color 200ms ease-out, border-color 200ms ease-out, transform 100ms ease-out;
}

.woocommerce-checkout .place-order button#place_order.button:hover,
.woocommerce-checkout .place-order button#place_order.button:focus-visible {
	background: var(--kg-rose-ink) !important;
	border-color: var(--kg-rose-ink) !important;
	color: #FFFFFF !important;
}

.woocommerce-checkout .place-order button#place_order.button:active {
	transform: scale(0.98);
}

.woocommerce-checkout .place-order button#place_order.button::before {
	content: "" !important;
	display: inline-block;
	width: 16px;
	height: 16px;
	padding: 0 !important;
	background-color: currentColor;
	-webkit-mask: var(--kg-icon-lock) center / contain no-repeat;
	mask: var(--kg-icon-lock) center / contain no-repeat;
	font-size: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button:active,
	.woocommerce-checkout .place-order button#place_order.button:active {
		transform: none;
	}
}

/* 13 — Policy & help pages ------------------------------------------------ */

/**
 * Terms & Conditions, Frequent Questions and Shipping & Returns are plain
 * block-editor pages whose content is wrapped in a .kg-policy group (written
 * 2026-09-23). The theme gives such pages no title and full-width text, so
 * the group supplies its own header and a readable measure. The FAQ answers
 * use core/details blocks — native <details>, no JS — styled as an accordion.
 */
.kg-policy {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(40px, 6vw, 80px) 20px clamp(56px, 7vw, 96px);
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	line-height: 1.75;
	color: var(--kg-ink-soft);
}

.kg-policy .kg-policy__eyebrow {
	margin: 0 0 10px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--kg-track-wide);
	text-transform: uppercase;
	color: var(--kg-rose-ink);
}

.kg-policy .kg-policy__title {
	margin: 0 0 18px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(34px, 4.4vw, 48px);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 0;
	text-transform: none;
	color: var(--kg-ink);
}

.kg-policy .kg-policy__lede {
	max-width: none;
	margin: 0 0 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--kg-blush-deep);
	font-size: 17px;
	color: var(--kg-muted);
}

.kg-policy h2 {
	margin: 40px 0 12px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--kg-ink);
}

.kg-policy h3 {
	margin: 28px 0 10px;
	font-family: "Montserrat", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kg-ink);
}

.kg-policy p,
.kg-policy li {
	max-width: none;
	margin-inline: 0;
}

.kg-policy ul,
.kg-policy ol {
	padding-left: 1.3em;
	margin: 0 0 18px;
}

.kg-policy li {
	margin-bottom: 8px;
}

.kg-policy ul li::marker {
	color: var(--kg-rose);
}

.kg-policy ol li::marker {
	font-weight: 600;
	color: var(--kg-rose-ink);
}

.kg-policy a {
	color: var(--kg-rose-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kg-policy a:hover {
	color: var(--kg-ink);
}

.kg-policy strong {
	color: var(--kg-ink);
	font-weight: 600;
}

/* FAQ accordion */
.kg-policy--faq h2 {
	margin-top: 44px;
	margin-bottom: 16px;
}

.kg-policy .wp-block-details {
	margin: 0 0 10px;
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	border-radius: 14px;
	transition: border-color 200ms ease-out;
}

.kg-policy .wp-block-details[open] {
	border-color: var(--kg-rose);
}

.kg-policy .wp-block-details summary {
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: 18px 56px 18px 22px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 18px;
	line-height: 1.4;
	color: var(--kg-ink);
}

.kg-policy .wp-block-details summary::-webkit-details-marker {
	display: none;
}

/* A thin plus that turns into a minus. */
.kg-policy .wp-block-details summary::before,
.kg-policy .wp-block-details summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 14px;
	height: 1.5px;
	background: var(--kg-rose-ink);
	transition: transform 200ms var(--kg-ease), opacity 200ms ease-out;
}

.kg-policy .wp-block-details summary::after {
	transform: rotate(90deg);
}

.kg-policy .wp-block-details[open] summary::after {
	transform: rotate(0deg);
	opacity: 0;
}

.kg-policy .wp-block-details summary:focus-visible {
	outline: 2px solid var(--kg-rose);
	outline-offset: 2px;
	border-radius: 14px;
}

.kg-policy .wp-block-details > p {
	margin: 0;
	padding: 0 22px 20px;
	color: var(--kg-ink-soft);
}

@media (prefers-reduced-motion: reduce) {
	.kg-policy .wp-block-details summary::before,
	.kg-policy .wp-block-details summary::after {
		transition: none;
	}
}


/* 14 — About page body copy ----------------------------------------------- */

/* The About text (page 130, widget a549e3d) was justified, which opened
   uneven gaps between words — worst on phones. Ragged-right reads better. */
.elementor-130 .elementor-element.elementor-element-a549e3d {
	text-align: left !important;
}

/* The founder's signature is a JPG on a white field; multiply drops the white
   so the ink sits directly on the ivory page. */
.elementor-130 .elementor-element-a549e3d img.wp-image-459 {
	mix-blend-mode: multiply;
}

/* 15 — Menu + subscribe hovers ------------------------------------------- */

/**
 * Header (template 240) and footer "Information" (template 251) menus: on
 * hover the label warms to rose and a hairline rose rule draws out from the
 * centre beneath it. The current page keeps the rule, so visitors can see
 * where they are. Desktop menu only — the mobile overlay menu (white on
 * ink) is left as Jet renders it.
 */
.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top .jet-nav-link-text,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top .jet-nav-link-text {
	position: relative;
	transition: color 250ms var(--kg-ease);
}

.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top .jet-nav-link-text::after,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top .jet-nav-link-text::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0.14em; /* the tracking adds trailing space after the last letter */
	bottom: -6px;
	height: 1px;
	background-color: var(--kg-rose);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 300ms var(--kg-ease);
}

.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:hover .jet-nav-link-text,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:hover .jet-nav-link-text,
.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:focus-visible .jet-nav-link-text,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:focus-visible .jet-nav-link-text {
	color: var(--kg-rose-ink) !important;
}

.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:hover .jet-nav-link-text::after,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:hover .jet-nav-link-text::after,
.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:focus-visible .jet-nav-link-text::after,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top:focus-visible .jet-nav-link-text::after,
.elementor-240 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .current-menu-item > .menu-item-link-top .jet-nav-link-text::after,
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .current-menu-item > .menu-item-link-top .jet-nav-link-text::after {
	transform: scaleX(1);
}

/* Footer items are stacked, so the rule sits a little closer. */
.elementor-251 .jet-nav-wrap:not(.jet-mobile-menu-active) .jet-nav > .menu-item > .menu-item-link-top .jet-nav-link-text::after {
	bottom: -4px;
}

/* Subscribe: its Elementor hover went ink → ink (no visible change). Now it
   warms to rose-ink and lifts a hair, like the checkout buttons. */
.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__submit {
	transition: background-color 250ms var(--kg-ease), transform 250ms var(--kg-ease), box-shadow 250ms var(--kg-ease) !important;
}

.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__submit:hover,
.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__submit:focus-visible {
	background-color: var(--kg-rose-ink) !important;
	color: #FFFFFF !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px -12px rgba(138, 87, 71, 0.6);
}

.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__submit:active {
	transform: translateY(0) scale(0.98);
	transition-duration: 100ms !important;
}

/* The e-mail field: a softer placeholder (it was bold ink, shouting louder
   than the button) and a rose focus ring matching the checkout fields. */
.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__input::placeholder {
	color: var(--kg-muted) !important;
	font-weight: 400;
	letter-spacing: 0.08em;
}

.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__input {
	transition: border-color 200ms ease-out, box-shadow 200ms ease-out;
}

.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__input:focus {
	outline: none;
	border-color: var(--kg-rose) !important;
	box-shadow: 0 0 0 3px rgba(185, 130, 114, 0.18);
}

@media (prefers-reduced-motion: reduce) {
	.elementor-240 .jet-nav-link-text::after,
	.elementor-251 .jet-nav-link-text::after {
		transition: none !important;
	}

	.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__submit:hover,
	.elementor-251 .elementor-element-b780a61 .jet-subscribe-form__submit:active {
		transform: none;
	}
}

/* 16 — Mini-cart panel + mobile fixes (2026-09-24) ----------------------- */

/**
 * The header cart's drop-down (Jet Blocks cart, template 240) opened from the
 * cart icon's left edge towards the right — on a phone that is off-screen,
 * so only "My C…" and half the buttons showed. Anchor it to the right edge
 * of the icon on every screen, restyle it as a card in the site's palette,
 * and on phones pin it to the viewport with a 12px gutter either side.
 */
.jet-blocks-cart .jet-blocks-cart__list {
	left: auto !important;
	right: 0 !important;
	width: 330px;
	padding: 22px 20px 20px !important;
	background: #FFFFFF !important;
	border: 1px solid var(--kg-blush-deep) !important;
	border-radius: var(--kg-radius) !important;
	box-shadow: var(--kg-shadow) !important;
}

.jet-blocks-cart .jet-blocks-cart__list-title {
	margin: 0 0 14px !important;
	font-family: "Playfair Display", Georgia, serif !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	color: var(--kg-ink) !important;
}

.jet-blocks-cart .woocommerce-mini-cart {
	margin: 0 0 14px !important;
	padding: 0 !important;
	max-height: 46vh;
	overflow-y: auto;
}

.jet-blocks-cart .woocommerce-mini-cart-item {
	position: relative;
	padding: 12px 28px 12px 0 !important;
	border-bottom: 1px solid var(--kg-blush) !important;
	font-family: "Montserrat", sans-serif;
	font-size: 13px;
	line-height: 1.45;
}

.jet-blocks-cart .woocommerce-mini-cart-item img {
	float: left;
	width: 56px !important;
	height: 56px !important;
	margin: 0 12px 0 0 !important;
	padding: 4px;
	border-radius: 10px;
	background: var(--kg-blush);
	object-fit: contain;
	mix-blend-mode: multiply;
}

.jet-blocks-cart .woocommerce-mini-cart-item > a:not(.remove) {
	display: block;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 15px;
	color: var(--kg-ink) !important;
}

.jet-blocks-cart .woocommerce-mini-cart-item .quantity {
	color: var(--kg-muted);
	font-size: 12px;
}

.jet-blocks-cart .woocommerce-mini-cart-item a.remove {
	position: absolute !important;
	top: 12px !important;
	right: 0 !important;
	left: auto !important;
	width: 22px;
	height: 22px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--kg-blush-deep);
	border-radius: 50%;
	color: var(--kg-muted) !important;
	font-size: 14px !important;
	line-height: 1;
}

.jet-blocks-cart .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	margin: 0 0 14px !important;
	padding: 0 !important;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	color: var(--kg-ink);
}

.jet-blocks-cart .woocommerce-mini-cart__buttons {
	display: grid !important;
	gap: 8px;
	margin: 0 !important;
}

.jet-blocks-cart .woocommerce-mini-cart__buttons .button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 46px;
	margin: 0 !important;
	padding: 0 16px !important;
	border-radius: 999px !important;
	font-family: "Montserrat", sans-serif;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
}

.jet-blocks-cart .woocommerce-mini-cart__buttons .button::before {
	display: none !important;
}

.jet-blocks-cart .woocommerce-mini-cart__buttons .button.checkout {
	order: -1;
	background: var(--kg-ink) !important;
	border: 1px solid var(--kg-ink) !important;
	color: var(--kg-ivory) !important;
}

.jet-blocks-cart .woocommerce-mini-cart__buttons .button.checkout:hover {
	background: var(--kg-rose-ink) !important;
	border-color: var(--kg-rose-ink) !important;
}

@media (max-width: 767px) {
	.jet-blocks-cart .jet-blocks-cart__list {
		position: fixed !important;
		top: 88px !important;
		left: 12px !important;
		right: 12px !important;
		width: auto !important;
		max-width: none !important;
		z-index: 9999;
	}
}

/**
 * Product grids on phones.
 * - WooCommerce loops (Related products and upsells on the product page)
 *   stayed at their desktop 4 columns: ~70px cards, a letter or two per line.
 *   Two across, and the pill button fits its card.
 * - Category pages (Face / Eyes / Lips / Tools / Shop All, widget f1dc9ea):
 *   one card per row is set in each page's Elementor settings; the wrapper
 *   column was 300px wide there, which pushed the cards off-centre.
 */
@media (max-width: 767px) {
	.woocommerce ul.products[class*="columns-"] li.product {
		flex: 0 0 50% !important;
		max-width: 50% !important;
		width: 50% !important;
	}

	.woocommerce ul.products {
		margin-left: -6px !important;
		margin-right: -6px !important;
		row-gap: 16px;
	}

	.woocommerce ul.products li.product {
		padding-left: 6px !important;
		padding-right: 6px !important;
	}

	.woocommerce ul.products li.product .product-content {
		padding: 10px 10px 14px !important;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 11px !important;
		letter-spacing: 0.08em !important;
		word-break: normal;
		overflow-wrap: normal;
		hyphens: none;
	}

	.woocommerce ul.products li.product .price {
		font-size: 15px !important;
	}

	.woocommerce ul.products li.product .product-content > .button {
		font-size: 9px !important;
		letter-spacing: 0.06em !important;
		padding: 10px 4px !important;
		gap: 4px;
	}

	.elementor-631 .elementor-element-acf5314,
	.elementor-647 .elementor-element-acf5314,
	.elementor-652 .elementor-element-acf5314,
	.elementor-660 .elementor-element-acf5314,
	.elementor-803 .elementor-element-acf5314 {
		--width: 100% !important;
		width: 100% !important;
	}

	.elementor-631 .elementor-element-f1dc9ea .jet-woo-products__inner-box,
	.elementor-647 .elementor-element-f1dc9ea .jet-woo-products__inner-box,
	.elementor-652 .elementor-element-f1dc9ea .jet-woo-products__inner-box,
	.elementor-660 .elementor-element-f1dc9ea .jet-woo-products__inner-box,
	.elementor-803 .elementor-element-f1dc9ea .jet-woo-products__inner-box {
		max-width: 340px;
		margin-inline: auto;
	}
}

/* 17 — Cookie consent banner (2026-09-24) -------------------------------- */

/**
 * A small card in the bottom-left corner on desktop, a bottom sheet with
 * 12px gutters on phones. Accept and Decline are the same size and weight
 * of treatment (filled vs outline pill) so declining is as easy as accepting.
 * Sits above the "Contact us" chat button while it is open.
 */
.kg-consent {
	position: fixed;
	left: 24px;
	bottom: 24px;
	z-index: 2147483000;
	width: min(380px, calc(100vw - 48px));
	padding: 22px 22px 20px;
	background: #FFFFFF;
	border: 1px solid var(--kg-blush-deep);
	border-radius: var(--kg-radius);
	box-shadow: 0 24px 48px -24px rgba(110, 70, 55, 0.45);
	font-family: "Montserrat", sans-serif;
	color: var(--kg-ink-soft);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 250ms var(--kg-ease), transform 250ms var(--kg-ease);
}

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

.kg-consent.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.kg-consent__title {
	margin: 0 0 6px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 19px;
	line-height: 1.3;
	color: var(--kg-ink);
}

.kg-consent__text {
	max-width: none;
	margin: 0 0 16px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--kg-muted);
}

.kg-consent__text a {
	color: var(--kg-rose-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kg-consent__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.kg-consent .kg-consent__btn {
	min-height: 44px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--kg-ink);
	border-radius: 999px;
	background: var(--kg-ink);
	color: var(--kg-ivory);
	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 200ms ease-out, color 200ms ease-out, border-color 200ms ease-out;
}

.kg-consent .kg-consent__btn:hover,
.kg-consent .kg-consent__btn:focus-visible {
	background: var(--kg-rose-ink);
	border-color: var(--kg-rose-ink);
	color: #FFFFFF;
}

.kg-consent .kg-consent__btn--ghost {
	background: transparent;
	color: var(--kg-ink);
}

@media (max-width: 767px) {
	.kg-consent {
		left: 12px;
		right: 12px;
		bottom: 12px;
		width: auto;
		padding: 18px 18px 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kg-consent,
	.kg-consent.is-visible {
		transition: none;
		transform: none;
	}
}

/* 18 — Bigger product photos (2026-09-24) -------------------------------- */

/**
 * The product photo was only ~62% of its column: 20px column padding, 14px
 * card padding and a 10px blush mat around the image. Following the
 * reference, the photo now fills the top of the card edge to edge (the blush
 * field becomes the card's top), and the gap between cards drops from 40px
 * to 16px — about 50% more photo. The grids load the 600px image
 * (thumb_size woocommerce_single, set per widget) so it stays sharp; a
 * square frame with object-fit: contain keeps every row even without
 * cropping the product.
 */
.jet-woo-products.jet-woo-products {
	margin-left: -8px !important;
	margin-right: -8px !important;
}

.jet-woo-products .jet-woo-products__item.jet-woo-products__item {
	padding: 8px !important;
}

.jet-woo-products .jet-woo-products__inner-box {
	padding: 0 0 20px !important;
	overflow: hidden;
}

.jet-woo-products .jet-woo-product-thumbnail {
	margin: 0 0 16px !important;
	padding: 0 !important;
	border-radius: 0 !important;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.jet-woo-products .jet-woo-product-thumbnail > a {
	display: block;
	width: 100%;
	height: 100%;
}

.jet-woo-products .jet-woo-product-thumbnail img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	border-radius: 0 !important;
	transition: transform 450ms var(--kg-ease);
}

.jet-woo-products .jet-woo-products__item:hover .jet-woo-product-thumbnail img {
	transform: scale(1.03);
}

.jet-woo-products .jet-woo-products__inner-box > *:not(.jet-woo-product-thumbnail) {
	padding-left: 14px;
	padding-right: 14px;
}

/* Shop archive + related products (WooCommerce loop): same treatment. */
.woocommerce ul.products li.product .product-content {
	padding: 0 0 18px !important;
	overflow: hidden;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link::before {
	border-radius: 0;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link img {
	padding: 0 !important;
	margin-bottom: 14px !important;
	border-radius: 0 !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .product-content > .button,
.woocommerce ul.products li.product .product-content > .added_to_cart {
	margin-left: 12px !important;
	margin-right: 12px !important;
	width: auto !important;
}

@media (prefers-reduced-motion: reduce) {
	.jet-woo-products .jet-woo-products__item:hover .jet-woo-product-thumbnail img {
		transform: none;
	}
}

/* 19 — Footer copyright line (2026-09-24) -------------------------------- */

/* Quieter than the menu above it: small, muted, lightly tracked. The
   "Dixara.co" credit links to the developer's site (set in the copyright
   widget 46204eb) and only reveals itself on hover. */
.elementor-251 .hfe-copyright-wrapper,
.elementor-251 .hfe-copyright-wrapper span {
	font-family: "Montserrat", sans-serif !important;
	font-size: 11px !important;
	letter-spacing: 0.04em;
	line-height: 1.6 !important;
	color: var(--kg-muted) !important;
}

.elementor-251 .hfe-copyright-wrapper a {
	color: inherit !important;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 200ms ease-out, border-color 200ms ease-out;
}

.elementor-251 .hfe-copyright-wrapper a:hover,
.elementor-251 .hfe-copyright-wrapper a:focus-visible {
	color: var(--kg-rose-ink) !important;
	border-bottom-color: currentColor;
}

/* 20 — Centred name and price in WooCommerce loops (2026-09-24) ---------- */

/* Related products, upsells and the /shop/ archive left-aligned the product
   name and price, while the home and category grids centre them. Match. */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price {
	text-align: center !important;
	justify-content: center;
}

.woocommerce ul.products li.product .price {
	display: block;
}

/* 21 — Product-page carousel (Jet preset with hover button) (2026-09-24) -- */

/**
 * The "you may also like" carousel on single products (template 329, widget
 * 89e651a) uses Jet's other card layout: the photo sits inside
 * .jet-woo-products__thumb-wrap and the button lives in .hovered-content,
 * absolutely positioned over the name/price on hover. §18's side padding hit
 * the thumb wrapper (photo no longer edge to edge) and the hover block kept
 * 100% width from a 14px inset — the button stuck 14px out of the card.
 */
.jet-woo-products .jet-woo-products__inner-box > .jet-woo-products__thumb-wrap {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-bottom: 16px;
}

.jet-woo-products .jet-woo-products__thumb-wrap .jet-woo-product-thumbnail {
	margin-bottom: 0 !important;
}

.jet-woo-products .jet-woo-products__item-content {
	position: relative;
}

.jet-woo-products .jet-woo-products__item-content .hovered-content {
	left: 14px !important;
	right: 14px !important;
	width: auto !important;
	background: #FFFFFF;
}

.jet-woo-products .hovered-content .jet-woo-product-button,
.jet-woo-products .hovered-content .jet-woo-product-button .button {
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}
