html,
body {
	width: 100vw;
	min-height: 100dvh;
	margin: 0;
	overflow: hidden;
	background: #101214;
	color: #ffffff;
	letter-spacing: 0;
}

.dkc-mobile-body {
	touch-action: pan-y;
	overscroll-behavior-y: contain;
}

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

.dkc-menu-button {
	position: fixed;
	z-index: 1040;
	top: max(14px, env(safe-area-inset-top));
	left: max(14px, env(safe-area-inset-left));
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 24px;
	background: rgba(16, 18, 20, 0.72);
	color: #ffffff;
	font-size: 24px;
	line-height: 1;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
	-webkit-tap-highlight-color: transparent;
}

.dkc-club-mobile-header {
	position: fixed;
	z-index: 1040;
	top: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 70px;
	padding: max(10px, env(safe-area-inset-top)) max(112px, env(safe-area-inset-right)) 10px max(14px, env(safe-area-inset-left));
	background: rgba(16, 18, 20, 0.36);
	color: #ffffff;
	pointer-events: none;
}

.dkc-club-mobile-header .dkc-menu-button {
	position: static;
	flex: 0 0 auto;
	pointer-events: auto;
}

.dkc-club-mobile-logo {
	display: flex;
	align-items: center;
	min-width: 0;
	max-width: 42vw;
	overflow: hidden;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.15;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dkc-club-mobile-logo-image {
	display: block;
	width: auto;
	max-width: 132px;
	max-height: 40px;
	object-fit: contain;
}

.dkc-club-mobile-title {
	min-width: 0;
	overflow: hidden;
	font-size: 16px;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dkc-basket-button {
	position: fixed;
	z-index: 1040;
	top: max(14px, env(safe-area-inset-top));
	right: max(14px, env(safe-area-inset-right));
	min-width: 82px;
	height: 48px;
	border: 0;
	border-radius: 24px;
	background: rgba(16, 18, 20, 0.72);
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
}

.dkc-feed {
	width: 100vw;
	height: 100dvh;
	overflow-x: hidden;
	overflow-y: auto;
	scroll-snap-type: y mandatory;
	scroll-behavior: smooth;
	background: #101214;
}

.dkc-x-prototype {
	position: absolute;
	z-index: 1;
	inset: 0;
	width: 100vw;
	height: 100dvh;
	overflow: hidden;
	touch-action: pan-y;
}

.dkc-x-page[data-x-state="left"] .dkc-x-prototype,
.dkc-x-page[data-x-state="right"] .dkc-x-prototype {
	z-index: 1050;
}

.dkc-x-track {
	display: flex;
	width: 300vw;
	height: 100%;
	transform: translate3d(-100vw, 0, 0);
	will-change: transform;
}

.dkc-x-page.is-x-animating .dkc-x-track {
	transition: transform 180ms ease-out;
}

.dkc-x-page.is-x-dragging .dkc-x-track {
	transition: none;
}

.dkc-product-view,
.dkc-function-page {
	position: relative;
	flex: 0 0 100vw;
	width: 100vw;
	height: 100dvh;
	min-height: 100dvh;
	overflow: hidden;
}

.dkc-product-view {
	display: grid;
	place-items: center;
	background: #101214;
}

.dkc-function-page {
	display: grid;
	place-items: center;
	padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
	background: #ffffff;
	color: #17191c;
	font-size: 20px;
	font-weight: 800;
	text-align: center;
}

.dkc-function-return {
	position: absolute;
	z-index: 1050;
	top: max(14px, env(safe-area-inset-top));
	left: max(14px, env(safe-area-inset-left));
	min-height: 44px;
	border: 0;
	border-radius: 8px;
	padding: 8px 12px;
	background: #17191c;
	color: #ffffff;
	font-weight: 800;
}

.dkc-product-page {
	position: relative;
	display: grid;
	place-items: center;
	width: 100vw;
	height: 100dvh;
	min-height: 100dvh;
	overflow: hidden;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	background: #101214;
}

.dkc-image-frame {
	width: min(100vw, 80dvh);
	height: auto;
	max-width: 100vw;
	max-height: 100dvh;
	aspect-ratio: 4 / 5;
	background: #f6f4f0;
	overflow: hidden;
}

.dkc-product-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #f6f4f0;
}

.dkc-product-panel {
	position: absolute;
	right: max(16px, env(safe-area-inset-right));
	bottom: max(18px, env(safe-area-inset-bottom));
	left: max(16px, env(safe-area-inset-left));
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	pointer-events: none;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.58);
}

.dkc-product-panel.is-full-dm {
	justify-content: flex-end;
}

.dkc-product-panel h1 {
	margin: 0 0 6px;
	display: -webkit-box;
	max-width: min(68vw, 520px);
	overflow: hidden;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.18;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.dkc-product-panel p {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
}

.dkc-action-placeholder {
	flex: 0 0 auto;
	min-width: 88px;
	min-height: 48px;
	border: 0;
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.9);
	color: #16181a;
	font-weight: 700;
	pointer-events: auto;
}

.dkc-menu {
	--bs-offcanvas-width: min(86vw, 360px);
	background: #ffffff;
	color: #16181a;
}

.dkc-basket {
	--bs-offcanvas-width: min(92vw, 420px);
	color: #17191c;
}

.dkc-menu .offcanvas-title {
	font-size: 20px;
	font-weight: 700;
}

.dkc-category-list {
	display: grid;
	gap: 8px;
	margin-bottom: 18px;
}

.dkc-menu-section {
	margin: 14px 0 8px;
	font-size: 13px;
	font-weight: 800;
	color: #5a626b;
}

.dkc-category-link,
.dkc-menu-placeholder {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	padding: 10px 12px;
	border-radius: 8px;
	color: #17191c;
	text-decoration: none;
	background: #f3f5f7;
}

.dkc-category-link.active {
	background: #1f6f68;
	color: #ffffff;
}

.dkc-menu-placeholder {
	margin-top: 8px;
	color: #606a73;
}

.dkc-empty {
	padding: 24px;
	font-size: 18px;
	text-align: center;
}

.dkc-content-link {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.dkc-label {
	display: inline-block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0;
}

.dkc-basket-item {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid #e3e7ea;
}

.dkc-basket-item img {
	width: 54px;
	height: 96px;
	object-fit: cover;
	background: #f6f4f0;
}

.dkc-basket-main h3 {
	margin: 0 0 6px;
	font-size: 15px;
	line-height: 1.25;
}

.dkc-basket-option {
	font-size: 13px;
	color: #5d6670;
}

.dkc-basket-controls {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}

.dkc-basket-controls button,
.dkc-proceed-button,
.dkc-continue-button {
	min-height: 42px;
	border: 0;
	border-radius: 8px;
	padding: 8px 12px;
	font-weight: 800;
}

.dkc-basket-controls button {
	min-width: 42px;
	background: #eef1f3;
}

.dkc-basket-total {
	display: flex;
	justify-content: space-between;
	margin: 18px 0 12px;
	font-size: 18px;
}

.dkc-proceed-button {
	width: 100%;
	background: #1f6f68;
	color: #ffffff;
}

.dkc-continue-button {
	width: 100%;
	margin-top: 8px;
	background: #eceff2;
	color: #17191c;
}

.dkc-option-modal {
	color: #17191c;
}

.dkc-option-product h3 {
	margin: 0 0 6px;
	font-size: 20px;
}

.dkc-option-group {
	margin: 16px 0;
	padding: 0;
	border: 0;
}

.dkc-option-group legend {
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 800;
}

.dkc-option-choice {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 48px;
	margin-bottom: 8px;
	padding: 10px 12px;
	border-radius: 8px;
	background: #f3f5f7;
}

.dkc-option-choice input {
	width: 20px;
	height: 20px;
}

.dkc-qty-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 12px 0;
	font-weight: 800;
}

.dkc-qty-label input {
	width: 92px;
	min-height: 42px;
	border: 1px solid #cfd6dd;
	border-radius: 8px;
	padding: 6px 10px;
}

.dkc-preview-total {
	display: flex;
	justify-content: space-between;
	margin: 12px 0;
	font-size: 18px;
}

.dkc-readable {
	min-height: 100dvh;
	overflow-x: hidden;
	overflow-y: auto;
	touch-action: pan-y;
	background: #ffffff;
	color: #17191c;
}

html.dkc-checkout-html,
html.dkc-checkout-html body.dkc-checkout-body {
	width: auto !important;
	height: auto !important;
	max-height: none !important;
	min-height: 100dvh !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	position: static !important;
	touch-action: pan-y !important;
	overscroll-behavior: auto !important;
	scroll-snap-type: none !important;
	background: #ffffff;
	color: #17191c;
}

html.dkc-checkout-html body.dkc-checkout-body .dkc-readable,
html.dkc-checkout-html body.dkc-checkout-body .dkc-checkout {
	height: auto !important;
	max-height: none !important;
	min-height: 100dvh !important;
	overflow: visible !important;
	position: static !important;
	touch-action: pan-y !important;
	overscroll-behavior: auto !important;
	scroll-snap-type: none !important;
	scroll-snap-align: none !important;
}

html.dkc-checkout-html body.dkc-checkout-body .dkc-step {
	scroll-snap-align: none !important;
	scroll-snap-stop: normal !important;
}

.dkc-readable main {
	max-width: 760px;
	margin: 0 auto;
	padding: 22px 18px 48px;
}

.dkc-readable h1 {
	margin: 18px 0;
	font-size: 28px;
	line-height: 1.2;
}

.dkc-readable-content {
	font-size: 17px;
	line-height: 1.75;
}

.dkc-readable-content img {
	max-width: 100%;
	height: auto;
}

.dkc-back-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #1f6f68;
	font-weight: 800;
	text-decoration: none;
}

.dkc-checkout {
	max-width: 720px;
	height: auto;
	min-height: 100dvh;
	overflow: visible;
	scroll-snap-type: none;
	touch-action: pan-y;
}

.dkc-checkout h2 {
	margin: 0 0 12px;
	font-size: 18px;
	line-height: 1.25;
}

.dkc-step {
	margin: 18px 0;
	padding: 16px 0;
	border-top: 1px solid #e1e6ea;
}

.dkc-step label {
	display: grid;
	gap: 6px;
	margin: 12px 0;
	font-weight: 800;
}

.dkc-step input {
	min-height: 46px;
	width: 100%;
	border: 1px solid #cfd6dd;
	border-radius: 8px;
	padding: 8px 10px;
	font: inherit;
}

.dkc-risk-box {
	max-height: min(28dvh, 220px);
	overflow: auto;
	padding: 14px;
	border: 1px solid #cfd6dd;
	border-radius: 8px;
	background: #f8fafb;
	color: #17191c;
	line-height: 1.7;
	white-space: normal;
}

.dkc-order-summary {
	overflow-x: auto;
	border: 1px solid #e1e6ea;
	border-radius: 8px;
}

.dkc-order-summary table {
	width: 100%;
	border-collapse: collapse;
	background: #ffffff;
}

.dkc-order-summary th,
.dkc-order-summary td {
	padding: 10px;
	border-bottom: 1px solid #e8edf0;
	text-align: left;
	vertical-align: top;
}

.dkc-reward-card-book {
	display: grid;
	gap: 10px;
	margin: 14px 0;
	padding: 12px;
	border: 1px solid #e1e6ea;
	border-radius: 8px;
	background: #fbfcfd;
}

.dkc-card-status {
	min-height: 22px;
	color: #4b5963;
	font-size: 14px;
	font-weight: 800;
}

.dkc-card-status[data-status="VALID"] {
	color: #1f6f68;
}

.dkc-card-status[data-status="INVALID"],
.dkc-card-status[data-status="USED"],
.dkc-card-status[data-status="DUPLICATE"],
.dkc-card-status[data-status="NOT APPLICABLE"] {
	color: #a33d2f;
}

.dkc-final-summary,
.dkc-reward-applied {
	display: grid;
	gap: 8px;
	margin: 14px 0;
	padding: 14px;
	border: 1px solid #e1e6ea;
	border-radius: 8px;
	background: #fbfcfd;
}

.dkc-total-row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
	border-bottom: 1px solid #e8edf0;
}

.dkc-total-row:last-child {
	border-bottom: 0;
}

.dkc-total-row-discount strong {
	color: #a33d2f;
}

.dkc-total-row-final {
	margin-top: 4px;
	padding-top: 12px;
	border-top: 2px solid #cfd6dd;
	font-size: 18px;
}

.dkc-order-summary th:nth-child(2),
.dkc-order-summary td:nth-child(2),
.dkc-order-summary th:nth-child(3),
.dkc-order-summary td:nth-child(3) {
	text-align: right;
	white-space: nowrap;
}

.dkc-radio {
	display: flex !important;
	grid-template-columns: 24px 1fr;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 10px 12px;
	border-radius: 8px;
	background: #f3f5f7;
}

.dkc-radio input {
	width: 22px;
	min-height: 22px;
}

.dkc-reward-redeem {
	margin: 12px 0 16px;
	padding: 14px;
	border: 1px solid #e1e6ea;
	border-radius: 8px;
	background: #f8fafb;
}

.dkc-checkout-status {
	min-height: 32px;
	margin: 16px 0;
	font-weight: 800;
	color: #1f6f68;
}

.dkc-result-list {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 10px;
	margin: 18px 0;
}

.dkc-result-list dt {
	font-weight: 800;
}

.dkc-result-list dd {
	margin: 0;
}

.dkc-atm-box {
	margin: 18px 0;
	padding: 14px;
	border-radius: 8px;
	background: #f3f5f7;
}

.dkc-royal-fast,
.dkc-guest-contact,
.dkc-address-card {
	margin: 14px 0;
	padding: 14px;
	border-radius: 8px;
	background: #f8fafb;
}

.dkc-royal-fast h3,
.dkc-guest-contact h3 {
	margin: 0 0 10px;
	font-size: 16px;
}

.dkc-address-card {
	border: 1px solid #e1e6ea;
}

.dkc-address-card p {
	margin: 6px 0;
	color: #43505a;
}

.dkc-result-button {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

@media (hover: hover) and (pointer: fine) {
	.dkc-product-page {
		background: #191b1f;
	}

	.dkc-product-view {
		background: #191b1f;
	}

	.dkc-image-frame {
		box-shadow: 0 18px 60px rgba(0, 0, 0, 0.42);
	}

	.dkc-product-panel {
		right: calc((100vw - min(100vw, 80dvh)) / 2 + 18px);
		left: calc((100vw - min(100vw, 80dvh)) / 2 + 18px);
	}
}

@media (min-width: 768px) {
	.dkc-readable-content img {
		width: min(84%, 960px);
	}
}

@media (min-width: 1200px) {
	.dkc-readable-content img {
		width: min(76%, 960px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dkc-feed {
		scroll-behavior: auto;
	}

	* {
		transition-duration: 0.001ms !important;
		animation-duration: 0.001ms !important;
	}
}
