:root {
	--kouruset-red: #d71920;
	--kouruset-red-dark: #b7141b;
	--kouruset-ink: #20242c;
	--kouruset-slate: #3b424d;
	--kouruset-line: #d8dbe0;
	--kouruset-muted: #68707c;
	--kouruset-surface: #ffffff;
	--kouruset-soft: #f4f5f7;
	--kouruset-radius: 4px;
	--kouruset-content: 1180px;
}

body.kouruset,
body.kouruset * {
	box-sizing: border-box;
}

body.kouruset img,
body.kouruset iframe,
body.kouruset video {
	max-width: 100%;
}

body.kouruset button,
body.kouruset input,
body.kouruset select,
body.kouruset textarea {
	font: inherit;
}

body.kouruset :focus-visible {
	outline: 3px solid rgba(215, 25, 32, .35);
	outline-offset: 2px;
}

.kouruset-dialog {
	width: min(680px, calc(100% - 32px));
	max-height: calc(100dvh - 48px);
	padding: 28px;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 18px 60px rgba(0,0,0,.25);
	color: var(--kouruset-ink);
}
.kouruset-dialog::backdrop { background: rgba(20,24,30,.58); }
.kouruset-dialog__close {
	float: right;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: var(--kouruset-soft);
	color: var(--kouruset-ink);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}
.kouruset-dialog__content { clear: both; }

.kouruset-video {
	position: relative;
	aspect-ratio: 16 / 9;
	width: 100%;
	max-width: 920px;
	margin: 20px 0;
	background: #111;
}
.kouruset-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.kouruset-sticky-cart-slot { display: contents; }
.kouruset-sticky-cart {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9990;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 54px;
	padding: 10px 14px;
	border-radius: 999px;
	background: var(--kouruset-red);
	color: #fff;
	box-shadow: 0 8px 24px rgba(0,0,0,.22);
	text-decoration: none;
}
.kouruset-sticky-cart svg { flex: 0 0 24px; width: 24px; height: 24px; }
.kouruset-sticky-cart__label { font-weight: 700; }
.kouruset-sticky-cart__count { display: inline-grid; place-items: center; min-width: 25px; height: 25px; padding: 0 5px; border-radius: 50%; background: #fff; color: var(--kouruset-red); font-size: 12px; font-weight: 800; }

/* the floating cart is a non-empty-cart affordance, not a permanent
 * content overlay. Keep the full pill in the physical viewport gutter only
 * when the 1120px storefront rail leaves enough room. Use a compact icon in
 * the narrower desktop gutter and rely on the persistent header cart below
 * 1280px, where any fixed cart would necessarily cover page content. */
@media (max-width: 1279px) {
	.kouruset-sticky-cart { display: none !important; }
}
@media (min-width: 1280px) and (max-width: 1479px) {
	.kouruset-sticky-cart {
		right: 16px;
		width: 58px;
		height: 58px;
		min-height: 58px;
		padding: 0;
		justify-content: center;
		border-radius: 50%;
	}
	.kouruset-sticky-cart__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
	.kouruset-sticky-cart__count { position: absolute; top: -7px; right: -5px; box-shadow: 0 1px 4px rgba(0,0,0,.25); }
}
@media (min-width: 1480px) {
	.kouruset-sticky-cart { right: 24px; }
}

/* sticky cart is rendered on non-cart/non-checkout pages, so its hover
 * contract belongs in the globally loaded base stylesheet rather than cart.css. */
body.kouruset a.kouruset-sticky-cart:hover,
body.kouruset a.kouruset-sticky-cart:focus-visible {
	background: var(--kouruset-red-dark) !important;
	color: #fff !important;
	text-decoration: none !important;
	outline: none;
}
body.kouruset a.kouruset-sticky-cart:hover svg,
body.kouruset a.kouruset-sticky-cart:hover svg *,
body.kouruset a.kouruset-sticky-cart:hover .kouruset-sticky-cart__label,
body.kouruset a.kouruset-sticky-cart:focus-visible svg,
body.kouruset a.kouruset-sticky-cart:focus-visible svg *,
body.kouruset a.kouruset-sticky-cart:focus-visible .kouruset-sticky-cart__label {
	color: #fff !important;
	stroke: currentColor !important;
	-webkit-text-fill-color: #fff !important;
}
body.kouruset a.kouruset-sticky-cart:hover .kouruset-sticky-cart__count,
body.kouruset a.kouruset-sticky-cart:focus-visible .kouruset-sticky-cart__count {
	background: #fff !important;
	color: var(--kouruset-red) !important;
	-webkit-text-fill-color: var(--kouruset-red) !important;
}

/* the sticky cart is intentionally absent below 1280px, so Bridge's
 * back-to-top control can return to the lower viewport corner without a dead
 * reserved lane. */
@media (max-width: 700px) {
	body.kouruset:not(.woocommerce-cart):not(.woocommerce-checkout) #back_to_top {
		right: 19px !important;
		bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important;
	}
}


/* benefit dialogs may contain WPBakery-authored rows whose inherited
 * negative margins or intrinsic widths make the native <dialog> horizontally
 * scrollable. The dialog owns vertical overflow only; its editorial children
 * are constrained to the dialog content box instead of clipping a wide row. */
.kouruset-benefit-dialog {
	overflow-x: hidden !important;
	overflow-y: auto !important;
	overscroll-behavior-x: none;
}
.kouruset-benefit-dialog .kouruset-dialog__content {
	min-width: 0;
	max-width: 100%;
}
.kouruset-benefit-dialog .kouruset-dialog__content .vc_row,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_row-fluid {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.kouruset-benefit-dialog .kouruset-dialog__content .vc_column_container,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_column-inner,
.kouruset-benefit-dialog .kouruset-dialog__content .wpb_wrapper,
.kouruset-benefit-dialog .kouruset-dialog__content .wpb_text_column,
.kouruset-benefit-dialog .kouruset-dialog__content img,
.kouruset-benefit-dialog .kouruset-dialog__content iframe,
.kouruset-benefit-dialog .kouruset-dialog__content video,
.kouruset-benefit-dialog .kouruset-dialog__content table {
	min-width: 0 !important;
	max-width: 100% !important;
}
.kouruset-benefit-dialog .kouruset-dialog__content table {
	width: 100% !important;
	table-layout: fixed;
}
.kouruset-benefit-dialog .kouruset-dialog__content p,
.kouruset-benefit-dialog .kouruset-dialog__content li,
.kouruset-benefit-dialog .kouruset-dialog__content a,
.kouruset-benefit-dialog .kouruset-dialog__content th,
.kouruset-benefit-dialog .kouruset-dialog__content td {
	overflow-wrap: anywhere;
}
.kouruset-benefit-dialog .kouruset-dialog__content pre,
.kouruset-benefit-dialog .kouruset-dialog__content code {
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

/* Bridge/WPBakery section wrappers can retain desktop widths inside dialogs.
 * Own the nested row geometry so editorial text reflows instead of clipping. */
.kouruset-benefit-dialog .kouruset-dialog__content .wpb-content-wrapper,
.kouruset-benefit-dialog .kouruset-dialog__content .section_inner,
.kouruset-benefit-dialog .kouruset-dialog__content .section_inner_margin,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_row,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_row-fluid,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_column_container,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_column-inner,
.kouruset-benefit-dialog .kouruset-dialog__content .wpb_wrapper,
.kouruset-benefit-dialog .kouruset-dialog__content .wpb_text_column {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}
.kouruset-benefit-dialog .kouruset-dialog__content .section_inner,
.kouruset-benefit-dialog .kouruset-dialog__content .section_inner_margin {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.kouruset-benefit-dialog .kouruset-dialog__content .vc_column-inner {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.kouruset-benefit-dialog .kouruset-dialog__content .vc_empty_space,
.kouruset-benefit-dialog .kouruset-dialog__content .vc_empty_space_inner,
.kouruset-benefit-dialog .kouruset-dialog__content .empty_space_image {
	max-width: 100% !important;
	box-sizing: border-box !important;
}
.kouruset-benefit-dialog .kouruset-dialog__content h1,
.kouruset-benefit-dialog .kouruset-dialog__content h2,
.kouruset-benefit-dialog .kouruset-dialog__content h3,
.kouruset-benefit-dialog .kouruset-dialog__content h4,
.kouruset-benefit-dialog .kouruset-dialog__content h5,
.kouruset-benefit-dialog .kouruset-dialog__content h6,
.kouruset-benefit-dialog .kouruset-dialog__content p,
.kouruset-benefit-dialog .kouruset-dialog__content li,
.kouruset-benefit-dialog .kouruset-dialog__content a {
	max-width: 100% !important;
	white-space: normal !important;
	word-break: normal;
	overflow-wrap: break-word;
}
