/*
 * Enkelt Salg – kundeside.
 *
 * To stiler: .es-skin-dark (glød og glass, laget for mørke sider som kimandre.no)
 * og .es-skin-light. Alt styres av variablene under og kan overstyres i temaet:
 *   .es-shop { --es-accent: #ff8154; }
 */

@font-face {
	font-family: "ES Poppins";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("fonts/poppins-latin-400-normal.woff2") format("woff2");
}

@font-face {
	font-family: "ES Poppins";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("fonts/poppins-latin-500-normal.woff2") format("woff2");
}

@font-face {
	font-family: "ES Poppins";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("fonts/poppins-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-family: "ES Poppins";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("fonts/poppins-latin-700-normal.woff2") format("woff2");
}

@font-face {
	font-family: "ES Caveat";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("fonts/caveat-latin-600-normal.woff2") format("woff2");
}

/* ------------------------------------------------------------------ */
/* Variabler                                                          */
/* ------------------------------------------------------------------ */

.es-shop {
	--es-font: "Poppins", "ES Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
	--es-hand: "ES Caveat", "Segoe Script", "Bradley Hand", cursive;
	--es-accent: #8b5cf6;
	--es-cta: linear-gradient(120deg, #f52791 0%, #7c3aed 52%, #3742fb 100%);
	--es-cta-text: #fff;
	--es-vipps: #ff5b24;
	--es-danger: #ff6b7a;
	--es-success: #34d399;
	--es-paper: #fbf7ee;
	--es-ink: #22306e;
	--es-radius: 22px;
	--es-radius-sm: 14px;
	--es-ease: cubic-bezier(.2, .8, .2, 1);
}

.es-skin-dark {
	--es-text: #f5f3fb;
	--es-muted: rgba(245, 243, 251, .64);
	--es-faint: rgba(245, 243, 251, .38);
	--es-panel: rgba(255, 255, 255, .035);
	--es-panel-border: rgba(255, 255, 255, .09);
	--es-field: rgba(255, 255, 255, .045);
	--es-field-border: rgba(255, 255, 255, .14);
	--es-field-hover: rgba(255, 255, 255, .26);
	--es-soft: rgba(255, 255, 255, .06);
	--es-glow: rgba(124, 58, 237, .5);
	--es-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8);
	--es-bar: rgba(10, 14, 23, .82);

	background:
		radial-gradient(60% 50% at 12% 8%, rgba(121, 58, 255, .28) 0%, transparent 70%),
		radial-gradient(50% 45% at 95% 100%, rgba(245, 39, 145, .16) 0%, transparent 70%),
		linear-gradient(180deg, #0a0e17 0%, #0d0a1e 100%);
	border-radius: 32px;
	color-scheme: dark;
	padding: clamp(20px, 5cqi, 64px);
}

/* Diskret rutenett i bakgrunnen, som på resten av kimandre.no. */
.es-skin-dark::before {
	background-image:
		linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 48px 48px;
	border-radius: inherit;
	content: "";
	inset: 0;
	-webkit-mask-image: radial-gradient(80% 60% at 30% 0%, #000 0%, transparent 75%);
	mask-image: radial-gradient(80% 60% at 30% 0%, #000 0%, transparent 75%);
	pointer-events: none;
	position: absolute;
}

.es-skin-light {
	--es-text: #15121f;
	--es-muted: #625e70;
	--es-faint: #9a96a8;
	--es-panel: #fff;
	--es-panel-border: rgba(21, 18, 31, .08);
	--es-field: #f7f6fb;
	--es-field-border: rgba(21, 18, 31, .12);
	--es-field-hover: rgba(21, 18, 31, .28);
	--es-soft: #f3f1f8;
	--es-accent: #7c3aed;
	--es-glow: rgba(124, 58, 237, .28);
	--es-danger: #d92d45;
	--es-success: #0f9d6e;
	--es-shadow: 0 24px 48px -28px rgba(40, 20, 90, .35);
	--es-bar: rgba(255, 255, 255, .86);

	background:
		radial-gradient(60% 50% at 10% 0%, rgba(124, 58, 237, .09) 0%, transparent 70%),
		#faf9fc;
	border-radius: 32px;
	padding: clamp(20px, 5cqi, 64px);
}

/* Uten ramme: skjemaet bruker bakgrunnen i seksjonen rundt (f.eks. en Divi-seksjon). */
.es-shop.es-frameless {
	background: none;
	border-radius: 0;
	padding: 0;
}

.es-shop.es-frameless::before {
	display: none;
}

/* ------------------------------------------------------------------ */
/* Grunnlag – nøytraliserer temaets standardstiler (Divi m.fl.)       */
/* ------------------------------------------------------------------ */

.es-shop {
	color: var(--es-text);
	container-type: inline-size;
	font-family: var(--es-font);
	font-size: 16px;
	isolation: isolate;
	line-height: 1.55;
	margin: 0 auto;
	max-width: 1180px;
	position: relative;
	-webkit-font-smoothing: antialiased;
}

.es-shop *,
.es-shop *::before,
.es-shop *::after {
	box-sizing: border-box;
}

.es-shop p,
.es-shop ul,
.es-shop ol,
.es-shop h2,
.es-shop h3,
.es-shop fieldset,
.es-shop legend {
	border: 0;
	margin: 0;
	padding: 0;
}

.es-shop ul,
.es-shop ol {
	list-style: none;
}

.es-shop h2,
.es-shop h3,
.es-shop strong {
	color: var(--es-text);
	font-family: var(--es-font);
}

.es-shop a {
	color: inherit;
}

.es-shop [hidden] {
	display: none !important;
}

.es-icon {
	flex: none;
	vertical-align: -3px;
}

.es-muted {
	color: var(--es-muted);
	font-size: .9rem;
}

/* ------------------------------------------------------------------ */
/* Toppseksjon med 3D-bok                                             */
/* ------------------------------------------------------------------ */

.es-hero {
	align-items: center;
	display: grid;
	gap: clamp(28px, 5cqi, 72px);
	margin-bottom: clamp(32px, 6cqi, 72px);
}

@container (min-width: 760px) {
	.es-hero {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	}
}

.es-book {
	display: grid;
	justify-items: center;
	padding: 12px 0 28px;
	position: relative;
}

.es-book-glow {
	background: radial-gradient(closest-side, var(--es-glow), transparent);
	filter: blur(30px);
	height: 90%;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 90%;
	z-index: -1;
}

.es-book-3d {
	border-radius: 3px 8px 8px 3px;
	box-shadow:
		1px 1px 0 rgba(255, 255, 255, .06),
		24px 30px 50px -12px rgba(0, 0, 0, .65),
		8px 10px 18px -6px rgba(0, 0, 0, .5);
	max-width: min(340px, 78%);
	overflow: hidden;
	position: relative;
	transform: perspective(1400px) rotateY(-17deg) rotateX(3deg);
	transition: transform .7s var(--es-ease);
}

.es-book:hover .es-book-3d {
	transform: perspective(1400px) rotateY(-6deg) rotateX(1deg) translateY(-4px);
}

/* Rygg og lysrefleks gir papp-følelse. */
.es-book-3d::after {
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .35) 0%, rgba(255, 255, 255, .22) 2.2%, rgba(0, 0, 0, .12) 4.5%, transparent 8%),
		linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, .12) 50%, transparent 62%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.es-shop .es-cover-img {
	display: block;
	height: auto;
	max-height: 520px;
	object-fit: cover;
	width: 100%;
}

.es-cover-fallback {
	align-items: flex-end;
	aspect-ratio: 2 / 3;
	background: linear-gradient(160deg, #2b1b5a, #0e1330);
	display: flex;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.15;
	padding: 24px;
	width: 260px;
}

.es-eyebrow {
	align-items: center;
	color: var(--es-accent);
	display: inline-flex;
	font-size: .76rem;
	font-weight: 700;
	gap: .5rem;
	letter-spacing: .16em;
	margin-bottom: .9rem !important;
	text-transform: uppercase;
}

.es-eyebrow::before {
	background: currentColor;
	border-radius: 2px;
	content: "";
	height: 2px;
	width: 22px;
}

.es-shop .es-title {
	font-size: clamp(2rem, 1.2rem + 3.4cqi, 3.6rem);
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 1.04;
	margin-bottom: .6rem;
	padding: 0;
	text-wrap: balance;
}

.es-subtitle {
	color: var(--es-muted);
	font-size: 1.02rem;
	margin-bottom: 1.25rem !important;
}

.es-desc {
	color: var(--es-muted);
	font-size: 1.02rem;
	max-width: 58ch;
}

.es-desc p {
	margin-bottom: .8rem !important;
}

.es-price-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .9rem;
	margin: 1.4rem 0 1.2rem;
}

.es-price {
	font-size: 2.1rem;
	font-weight: 700;
	letter-spacing: -.02em;
}

.es-price-old {
	color: var(--es-faint);
	font-size: 1.15rem;
	font-weight: 500;
	text-decoration-thickness: 1.5px;
}

.es-qty-note del {
	color: var(--es-faint);
	margin-left: .3rem;
}

.es-badge--sale {
	background: color-mix(in srgb, #f52791 16%, transparent) !important;
	border-color: color-mix(in srgb, #f52791 45%, transparent) !important;
	color: #ff7cbf !important;
}

.es-skin-light .es-badge--sale {
	color: #be185d !important;
}

.es-line.es-line--save {
	color: var(--es-success);
}

.es-badge {
	background: rgba(255, 129, 84, .14);
	border: 1px solid rgba(255, 129, 84, .35);
	border-radius: 999px;
	color: #ff9a75;
	font-size: .78rem;
	font-weight: 600;
	padding: .3rem .8rem;
}

.es-skin-light .es-badge {
	color: #c2410c;
}

.es-badge--out {
	background: rgba(255, 107, 122, .12);
	border-color: rgba(255, 107, 122, .35);
	color: var(--es-danger);
}

.es-trust {
	display: grid;
	gap: .55rem;
	margin-bottom: 1.6rem !important;
}

.es-trust li {
	align-items: center;
	color: var(--es-muted);
	display: flex;
	font-size: .92rem;
	gap: .65rem;
}

.es-trust .es-icon {
	color: var(--es-accent);
}

.es-jump {
	align-items: center;
	border: 1px solid var(--es-field-border);
	border-radius: 999px;
	display: inline-flex;
	font-size: .85rem;
	font-weight: 600;
	gap: .5rem;
	letter-spacing: .08em;
	padding: .75rem 1.3rem;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: border-color .2s, background .2s;
}

.es-jump:hover {
	background: var(--es-soft);
	border-color: var(--es-field-hover);
}

/* ------------------------------------------------------------------ */
/* Skjema: steg til venstre, oppsummering til høyre                   */
/* ------------------------------------------------------------------ */

.es-form {
	display: grid;
	gap: 20px;
	scroll-margin-top: 90px;
}

@container (min-width: 860px) {
	.es-form {
		align-items: start;
		gap: 28px;
		grid-template-columns: minmax(0, 1fr) 360px;
	}
	.es-summary {
		position: sticky;
		top: 24px;
	}
	.es-jump {
		display: none;
	}
}

.es-steps {
	display: grid;
	gap: 16px;
	min-width: 0;
}

.es-panel {
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	background: var(--es-panel);
	border: 1px solid var(--es-panel-border) !important;
	border-radius: var(--es-radius);
	box-shadow: var(--es-shadow);
	min-width: 0;
	padding: clamp(18px, 3.2cqi, 28px) !important;
}

.es-center {
	text-align: center;
}

.es-panel-head {
	align-items: center;
	display: flex !important;
	float: left;
	font-size: 1.08rem;
	font-weight: 600;
	gap: .8rem;
	letter-spacing: -.01em;
	margin-bottom: 1.1rem !important;
	width: 100%;
}

.es-panel-head + * {
	clear: both;
}

.es-num {
	align-items: center;
	background:
		linear-gradient(var(--es-panel), var(--es-panel)) padding-box,
		var(--es-cta) border-box;
	border: 1.5px solid transparent;
	border-radius: 50%;
	display: inline-flex;
	flex: none;
	font-size: .82rem;
	font-weight: 700;
	height: 30px;
	justify-content: center;
	width: 30px;
}

/* Antall */

.es-qty-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.es-stepper {
	align-items: center;
	background: var(--es-field);
	border: 1px solid var(--es-field-border);
	border-radius: 999px;
	display: inline-flex;
	padding: 4px;
}

.es-shop .es-step {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--es-text);
	cursor: pointer;
	display: inline-flex;
	font-size: 1.35rem;
	height: 44px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	transition: background .15s;
	width: 44px;
}

.es-shop .es-step:hover:not(:disabled) {
	background: var(--es-soft);
}

.es-shop .es-step:disabled {
	color: var(--es-faint);
	cursor: default;
}

.es-shop .es-stepper input {
	-moz-appearance: textfield;
	appearance: textfield;
	background: transparent;
	border: 0;
	color: var(--es-text);
	font: 600 1.2rem/1 var(--es-font);
	padding: 0;
	text-align: center;
	width: 3rem;
}

.es-stepper input::-webkit-inner-spin-button,
.es-stepper input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.es-shop .es-stepper input:focus {
	outline: none;
}

/* Valgkort (signering) */

.es-choices {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr 1fr;
}

@container (max-width: 440px) {
	.es-choices {
		grid-template-columns: 1fr;
	}
}

.es-choice,
.es-method {
	background: var(--es-field);
	border: 1.5px solid var(--es-field-border);
	border-radius: var(--es-radius-sm);
	cursor: pointer;
	position: relative;
	transition: border-color .2s, background .2s, transform .2s var(--es-ease);
}

.es-choice:hover,
.es-method:hover {
	border-color: var(--es-field-hover);
}

.es-choice input,
.es-method input {
	opacity: 0;
	position: absolute;
}

.es-choice-body {
	display: grid;
	gap: .2rem;
	padding: 1rem 1.1rem 1rem 3rem;
}

.es-choice-body strong {
	align-items: center;
	display: inline-flex;
	font-weight: 600;
	gap: .4rem;
}

.es-choice-body small {
	color: var(--es-muted);
	font-size: .82rem;
}

/* Egendefinert radioknapp */
.es-choice::before,
.es-radio {
	border: 1.5px solid var(--es-field-hover);
	border-radius: 50%;
	content: "";
	height: 20px;
	position: absolute;
	transition: border-color .2s, box-shadow .2s;
	width: 20px;
}

.es-choice::before {
	left: 1rem;
	top: 1.1rem;
}

.es-choice:has(input:checked),
.es-method:has(input:checked) {
	background: color-mix(in srgb, var(--es-accent) 12%, transparent);
	border-color: var(--es-accent);
}

.es-choice:has(input:checked)::before,
.es-method:has(input:checked) .es-radio {
	border-color: var(--es-accent);
	box-shadow: inset 0 0 0 5px var(--es-accent);
}

.es-choice:has(input:focus-visible),
.es-method:has(input:focus-visible) {
	outline: 2px solid var(--es-accent);
	outline-offset: 3px;
}

/* Dedikasjoner og forhåndsvisning */

.es-dedications {
	animation: es-reveal .45s var(--es-ease);
	display: grid;
	gap: 14px;
	margin-top: 1.25rem;
}

.es-dedication-list {
	display: grid;
	gap: 12px;
}

.es-preview {
	background:
		repeating-linear-gradient(180deg, transparent 0 31px, rgba(34, 48, 110, .07) 31px 32px),
		var(--es-paper);
	border-radius: 6px;
	box-shadow: 0 18px 30px -18px rgba(0, 0, 0, .6), 0 1px 0 rgba(0, 0, 0, .05);
	color: var(--es-ink);
	margin-top: 4px;
	padding: 18px 24px 22px;
	position: relative;
	transform: rotate(-1.2deg);
}

.es-preview-label {
	color: rgba(34, 48, 110, .5);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.es-hand {
	display: grid;
	font-family: var(--es-hand);
	font-size: clamp(1.7rem, 1.2rem + 1.6cqi, 2.2rem);
	font-weight: 600;
	gap: .1rem;
	line-height: 1.15;
	margin-top: .35rem !important;
	min-height: 2.6em;
}

.es-hand-to:empty {
	display: none;
}

.es-hand-sig {
	align-self: end;
	justify-self: end;
	padding-right: .3em;
	position: relative;
	transform: rotate(-3deg);
}

.es-hand-sig::after {
	border-bottom: 2px solid currentColor;
	border-radius: 0 0 60% 40%;
	bottom: .05em;
	content: "";
	left: 10%;
	opacity: .55;
	position: absolute;
	right: 0;
}

.es-hand-sig:empty {
	display: none;
}

/* Felt med flytende etiketter */

.es-fields {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr 1fr;
}

.es-full {
	grid-column: 1 / -1;
}

@container (max-width: 480px) {
	.es-fields {
		grid-template-columns: 1fr;
	}
}

@container (min-width: 481px) {
	.es-fields {
		grid-template-columns: 1fr 1fr;
	}
	.es-postcode {
		grid-column: 1;
	}
}

.es-field {
	display: block;
	margin: 0;
	position: relative;
}

.es-shop .es-field input,
.es-shop .es-field textarea {
	appearance: none;
	background: var(--es-field);
	border: 1.5px solid var(--es-field-border);
	border-radius: var(--es-radius-sm);
	box-shadow: none;
	color: var(--es-text);
	display: block;
	font: 400 1rem/1.3 var(--es-font);
	height: 58px;
	margin: 0;
	padding: 24px 16px 8px;
	transition: border-color .2s, box-shadow .2s, background .2s;
	width: 100%;
}

.es-shop .es-field textarea {
	height: auto;
	min-height: 84px;
	padding-top: 28px;
	resize: vertical;
}

.es-field > span {
	color: var(--es-muted);
	font-size: 1rem;
	left: 17px;
	pointer-events: none;
	position: absolute;
	top: 18px;
	transform-origin: left top;
	transition: transform .18s var(--es-ease), color .18s;
}

.es-shop .es-field input:focus + span,
.es-shop .es-field input:not(:placeholder-shown) + span,
.es-shop .es-field textarea:focus + span,
.es-shop .es-field textarea:not(:placeholder-shown) + span {
	transform: translateY(-10px) scale(.74);
}

.es-shop .es-field input:focus + span,
.es-shop .es-field textarea:focus + span {
	color: var(--es-accent);
}

.es-shop .es-field input:hover,
.es-shop .es-field textarea:hover {
	border-color: var(--es-field-hover);
}

.es-shop .es-field input:focus,
.es-shop .es-field textarea:focus {
	border-color: var(--es-accent);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--es-accent) 20%, transparent);
	outline: none;
}

.es-shop .es-field input:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 40px var(--es-field) inset;
	-webkit-text-fill-color: var(--es-text);
	transition: background-color 9999s;
}

.es-shop .es-invalid {
	border-color: var(--es-danger) !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--es-danger) 18%, transparent) !important;
}

.es-address-wrap {
	grid-column: 1 / -1;
	min-width: 0;
	position: relative;
	z-index: 4;
}

.es-address-suggestions {
	background: var(--es-panel);
	border: 1px solid var(--es-field-border);
	border-radius: var(--es-radius-sm);
	box-shadow: var(--es-shadow);
	left: 0;
	margin-top: 6px;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 30;
}

.es-address-suggestions[hidden] {
	display: none;
}

.es-shop .es-address-option {
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--es-panel-border);
	color: var(--es-text);
	cursor: pointer;
	display: grid;
	font: inherit;
	gap: 2px;
	padding: 11px 14px;
	text-align: left;
	width: 100%;
}

.es-shop .es-address-option:last-child {
	border-bottom: 0;
}

.es-shop .es-address-option:hover,
.es-shop .es-address-option.is-active {
	background: var(--es-soft);
}

.es-address-option strong {
	font-size: .94rem;
	font-weight: 600;
}

.es-address-option small {
	color: var(--es-muted);
	font-size: .78rem;
}

.es-hp {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

/* Betalingsmåter */

.es-methods {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.es-method {
	align-items: center;
	display: flex;
	gap: .9rem;
	padding: 1rem 1.1rem;
}

.es-method-logo {
	align-items: center;
	background: var(--es-soft);
	border-radius: 10px;
	display: inline-flex;
	flex: none;
	font-weight: 800;
	height: 2.6rem;
	justify-content: center;
	letter-spacing: -.01em;
	min-width: 3.6rem;
	padding: 0 .6rem;
}

.es-method--vipps .es-method-logo {
	background: var(--es-vipps);
	color: #fff;
}

.es-method--vipps:has(input:checked) {
	background: color-mix(in srgb, var(--es-vipps) 12%, transparent);
	border-color: var(--es-vipps);
}

.es-method--vipps:has(input:checked) .es-radio {
	border-color: var(--es-vipps);
	box-shadow: inset 0 0 0 5px var(--es-vipps);
}

.es-method-text {
	display: grid;
	flex: 1;
	line-height: 1.3;
	min-width: 0;
}

.es-method-text strong {
	font-weight: 600;
}

.es-method-text small {
	color: var(--es-muted);
	font-size: .8rem;
}

.es-radio {
	position: static;
}

/* Oppsummering */

.es-summary {
	min-width: 0;
}

.es-summary-inner {
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	background:
		linear-gradient(var(--es-panel), var(--es-panel)) padding-box,
		linear-gradient(160deg, color-mix(in srgb, var(--es-accent) 55%, transparent), var(--es-panel-border) 40%) border-box;
	border: 1px solid transparent;
	border-radius: var(--es-radius);
	box-shadow: var(--es-shadow);
	display: grid;
	gap: 18px;
	padding: 24px;
}

.es-sum-product {
	align-items: center;
	display: flex;
	gap: 14px;
}

.es-sum-product strong {
	display: block;
	font-weight: 600;
	line-height: 1.25;
}

.es-thumb {
	border-radius: 4px;
	box-shadow: 0 8px 16px -8px rgba(0, 0, 0, .6);
	flex: none;
	overflow: hidden;
	width: 52px;
}

.es-shop .es-thumb-img {
	display: block;
	height: auto;
	width: 100%;
}

.es-sum-variant {
	font-size: .8rem;
}

.es-lines {
	border-top: 1px solid var(--es-panel-border);
	display: grid;
	gap: .35rem;
	padding-top: 16px;
}

.es-line {
	color: var(--es-muted);
	display: flex;
	font-size: .95rem;
	gap: 1rem;
	justify-content: space-between;
}

.es-line span:last-child {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.es-total {
	border-top: 1px solid var(--es-panel-border);
	color: var(--es-text);
	font-size: 1.25rem;
	font-weight: 700;
	margin-top: .5rem;
	padding-top: .8rem;
}

.es-bump {
	animation: es-bump .35s var(--es-ease);
	display: inline-block;
}

.es-check {
	align-items: flex-start;
	color: var(--es-muted);
	cursor: pointer;
	display: flex;
	font-size: .88rem;
	gap: .65rem;
}

.es-check input {
	accent-color: var(--es-accent);
	flex: none;
	height: 18px;
	margin: 2px 0 0;
	width: 18px;
}

.es-check a {
	color: var(--es-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.es-shop .es-submit {
	align-items: center;
	background: var(--es-cta);
	background-size: 160% 100%;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 14px 30px -12px var(--es-glow);
	color: var(--es-cta-text);
	cursor: pointer;
	display: flex;
	font: 700 .9rem/1 var(--es-font);
	gap: .7rem;
	justify-content: center;
	letter-spacing: .14em;
	padding: 1.2rem 1.5rem;
	text-transform: uppercase;
	transition: background-position .5s var(--es-ease), transform .15s, box-shadow .3s;
	width: 100%;
}

.es-shop .es-submit:hover {
	background-position: 100% 0;
	box-shadow: 0 18px 36px -12px var(--es-glow);
	transform: translateY(-1px);
}

.es-shop .es-submit:active {
	transform: translateY(0) scale(.99);
}

.es-shop .es-submit:disabled {
	cursor: progress;
	opacity: .75;
	transform: none;
}

.es-secure {
	align-items: center;
	color: var(--es-faint);
	display: flex;
	font-size: .78rem;
	gap: .45rem;
	justify-content: center;
}

.es-spinner {
	animation: es-spin .8s linear infinite;
	border: 2.5px solid currentColor;
	border-radius: 50%;
	border-right-color: transparent;
	display: none;
	height: 1.1rem;
	width: 1.1rem;
}

.es-loading .es-spinner,
.es-spinner--big {
	display: inline-block;
}

.es-spinner--big {
	border-width: 3px;
	color: var(--es-accent);
	height: 2.8rem;
	margin-bottom: 1.2rem;
	width: 2.8rem;
}

/* Meldinger */

.es-error,
.es-alert {
	border-radius: var(--es-radius-sm);
	font-size: .92rem;
	padding: .85rem 1rem;
}

.es-error {
	background: color-mix(in srgb, var(--es-danger) 12%, transparent);
	border: 1px solid color-mix(in srgb, var(--es-danger) 40%, transparent);
	color: var(--es-danger);
}

.es-alert {
	background: rgba(255, 129, 84, .12);
	border: 1px solid rgba(255, 129, 84, .35);
	color: #ffb394;
}

.es-skin-light .es-alert {
	color: #9a3412;
}

/* Fast bunnlinje på mobil */

.es-mobilebar {
	display: none;
}

@media (max-width: 859px) {
	.es-mobilebar {
		align-items: center;
		-webkit-backdrop-filter: blur(16px);
		backdrop-filter: blur(16px);
		background: var(--es-bar);
		border-top: 1px solid var(--es-panel-border);
		bottom: 0;
		display: flex;
		gap: 1rem;
		justify-content: space-between;
		left: 0;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		position: fixed;
		right: 0;
		transform: translateY(0);
		transition: transform .35s var(--es-ease);
		z-index: 999;
	}
	.es-mobilebar.is-hidden {
		transform: translateY(110%);
	}
	.es-mobilebar small {
		color: var(--es-muted);
		display: block;
		font-size: .72rem;
		letter-spacing: .08em;
		text-transform: uppercase;
	}
	.es-mobilebar strong {
		font-size: 1.2rem;
	}
	.es-shop .es-submit--bar {
		padding: 1rem 1.4rem;
		width: auto;
	}
}

/* ------------------------------------------------------------------ */
/* Bekreftelse                                                        */
/* ------------------------------------------------------------------ */

.es-confirm {
	margin: 0 auto;
	max-width: 680px;
	text-align: center;
}

.es-confirm .es-title {
	font-size: clamp(2rem, 1.4rem + 3cqi, 3rem);
}

.es-confirm-icon {
	align-items: center;
	display: flex !important;
	margin-left: auto !important;
	margin-right: auto !important;
	background: var(--es-cta);
	border-radius: 50%;
	box-shadow: 0 0 0 10px color-mix(in srgb, var(--es-accent) 14%, transparent), 0 20px 40px -12px var(--es-glow);
	color: #fff;
	display: inline-flex;
	height: 72px;
	justify-content: center;
	margin: 8px 0 24px;
	width: 72px;
}

.es-confirm .es-eyebrow {
	display: flex;
	justify-content: center;
}

.es-lead {
	color: var(--es-muted);
	font-size: 1.05rem;
	margin: .3rem auto 2rem !important;
	max-width: 46ch;
}

.es-timeline {
	display: grid;
	gap: 0;
	margin: 0 auto 2rem !important;
	max-width: 440px;
	text-align: left;
}

.es-timeline li {
	display: grid;
	padding: 0 0 1.3rem 2.4rem;
	position: relative;
}

.es-timeline li::before {
	background: var(--es-panel);
	border: 2px solid var(--es-field-hover);
	border-radius: 50%;
	content: "";
	height: 16px;
	left: 2px;
	position: absolute;
	top: 4px;
	width: 16px;
}

.es-timeline li::after {
	background: var(--es-field-border);
	bottom: 0;
	content: "";
	left: 9px;
	position: absolute;
	top: 24px;
	width: 2px;
}

.es-timeline li:last-child {
	padding-bottom: 0;
}

.es-timeline li:last-child::after {
	display: none;
}

.es-timeline li.is-done::before {
	background: var(--es-success);
	border-color: var(--es-success);
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--es-success) 20%, transparent);
}

.es-timeline strong {
	font-weight: 600;
}

.es-timeline small {
	color: var(--es-muted);
	font-size: .86rem;
}

.es-hand-list {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-bottom: 2rem;
}

.es-hand-list .es-hand {
	background:
		repeating-linear-gradient(180deg, transparent 0 31px, rgba(34, 48, 110, .07) 31px 32px),
		var(--es-paper);
	border-radius: 6px;
	box-shadow: 0 18px 30px -18px rgba(0, 0, 0, .6);
	color: var(--es-ink);
	padding: 18px 22px;
	text-align: left;
	transform: rotate(-1deg);
}

.es-hand-list .es-hand:nth-child(even) {
	transform: rotate(1deg);
}

.es-confirm-grid {
	display: grid;
	gap: 20px;
	text-align: left;
}

@container (min-width: 560px) {
	.es-confirm-grid {
		grid-template-columns: 3fr 2fr;
	}
}

.es-address {
	background: var(--es-soft);
	border-radius: var(--es-radius-sm);
	padding: 14px 16px;
}

.es-address p {
	margin-top: .3rem !important;
}

/* ------------------------------------------------------------------ */
/* Animasjoner                                                        */
/* ------------------------------------------------------------------ */

@keyframes es-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes es-reveal {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
}

@keyframes es-bump {
	40% {
		transform: scale(1.08);
	}
}

@media (prefers-reduced-motion: reduce) {
	.es-shop *,
	.es-shop *::before,
	.es-shop *::after {
		animation-duration: 0s !important;
		transition: none !important;
	}
	.es-book-3d {
		transform: none;
	}
}
