/* Appell Senter Hub – Theme Builder detail/system pages.
 * Geometry exceptions only. Brand colors come exclusively from Elementor Global Colors,
 * which Appell Senter Hub synchronizes from Senterinnstillinger.
 */

body.single-butikk,
body.single-tilbud,
body.single-post,
body.search,
body.error404 {
	--appell-primary: var(--e-global-color-primary);
	--appell-secondary: var(--e-global-color-secondary);
	--appell-text: var(--e-global-color-text);
	--appell-accent: var(--e-global-color-accent);
	--appell-light: var(--e-global-color-appell-light);
	--appell-dark: var(--e-global-color-appell-dark);
	--appell-surface: color-mix(in srgb, var(--appell-light) 92%, var(--appell-secondary));
	--appell-surface-strong: color-mix(in srgb, var(--appell-light) 84%, var(--appell-secondary));
	--appell-border: color-mix(in srgb, var(--appell-text) 15%, transparent);
	--appell-muted: color-mix(in srgb, var(--appell-text) 68%, transparent);
	--appell-on-dark: var(--appell-light);
	--appell-radius-lg: 24px;
	--appell-radius-md: 18px;
}

body.single-butikk *,
body.single-tilbud *,
body.single-post *,
body.search *,
body.error404 * { box-sizing: border-box; }

[data-id="apsdheroshell"],
[data-id="apsdmediashell"],
[data-id="apsdbodyshell"],
[data-id="apsdrelatedshell"],
[data-id="ap404shell"],
[data-id="apsearchheroshell"],
[data-id="ap404helpshell"],
[data-id="apsearchcontentshell"] {
	margin-block: 0 !important;
}

body.single-butikk :is(a,button,input,select,textarea,[tabindex]):focus-visible,
body.single-tilbud :is(a,button,input,select,textarea,[tabindex]):focus-visible,
body.single-post :is(a,button,input,select,textarea,[tabindex]):focus-visible,
body.search :is(a,button,input,select,textarea,[tabindex]):focus-visible,
body.error404 :is(a,button,input,select,textarea,[tabindex]):focus-visible {
	outline: 3px solid var(--appell-accent);
	outline-offset: 3px;
}

/* ---------- Detail page root / hero ---------- */
[data-id="apsdpage"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	min-width: 0;
	gap: 0 !important;
	overflow-x: clip;
	color: var(--appell-text);
	background: var(--appell-light);
}

[data-id="apsdhero"] {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	padding: 0 !important;
	gap: 0 !important;
	isolation: isolate;
	overflow: hidden;
	background: var(--appell-dark) !important;
}

[data-id="apsdhero"]::after {
	content: "";
	position: absolute;
	right: max(24px, calc((100vw - 1280px) / 2 + 24px));
	bottom: 74px;
	width: clamp(72px, 8vw, 118px);
	height: 4px;
	background: var(--appell-accent);
}

[data-id="apsdheroshell"] {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	align-items: center !important;
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	min-width: 0;
	min-height: 500px;
	margin-inline: auto !important;
	padding: clamp(72px, 8vw, 104px) 24px clamp(146px, 14vw, 190px) !important;
	gap: clamp(36px, 7vw, 92px) !important;
}
body.single-butikk [data-id="apsdheroshell"] {
	grid-template-columns: minmax(0, 1fr) minmax(180px, 300px) !important;
}
body.single-tilbud [data-id="apsdherocopy"],
body.single-post [data-id="apsdherocopy"] {
	max-width: 1040px;
}

[data-id="apsdherocopy"] {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	width: 100% !important;
	min-width: 0;
	max-width: 860px;
	gap: 18px !important;
}

[data-id="apsdherocopy"] > .elementor-element,
[data-id="apsdherocopy"] > .e-con,
[data-id="apsdherocopy"] > .e-flexbox { max-width: 100%; }

[data-id="apsdeyebrow"],
[data-id="apsdeyebrow"] * {
	margin: 0 !important;
	color: var(--appell-accent) !important;
}

.appell-single-detail__title,
.appell-single-detail__title .elementor-widget-container,
.appell-single-detail__title .elementor-heading-title {
	width: 100%;
	max-width: 900px;
	margin: 0;
	color: var(--appell-on-dark) !important;
	word-break: normal;
	overflow-wrap: normal;
}

.appell-single-detail__lead,
.appell-single-detail__lead .elementor-widget-container,
.appell-single-detail__lead :is(p,div) {
	width: 100%;
	max-width: 720px;
	margin: 0;
	color: color-mix(in srgb, var(--appell-on-dark) 88%, transparent) !important;
	word-break: normal;
	overflow-wrap: normal;
}

[data-id="apsdmeta"] {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	width: 100% !important;
	gap: 9px !important;
	margin-top: 4px;
}

.appell-single-detail__meta-item {
	width: auto !important;
	max-width: 100%;
	margin: 0 !important;
	padding: 8px 12px;
	border: 1px solid color-mix(in srgb, var(--appell-on-dark) 20%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--appell-on-dark) 7%, transparent);
}
.appell-single-detail__meta-item,
.appell-single-detail__meta-item :is(p,div,a) {
	color: color-mix(in srgb, var(--appell-on-dark) 92%, transparent) !important;
	text-decoration: none;
}
.appell-single-detail__meta-item--accent {
	border-color: color-mix(in srgb, var(--appell-accent) 72%, transparent);
	background: color-mix(in srgb, var(--appell-accent) 18%, transparent);
}
.appell-single-detail__meta-item:has(.elementor-widget-container:empty) { display: none !important; }

[data-id="apsdheromark"] {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-width: 0;
	min-height: 210px !important;
	padding: 28px !important;
	gap: 12px !important;
	border: 1px solid color-mix(in srgb, var(--appell-on-dark) 12%, transparent) !important;
	border-radius: var(--appell-radius-lg) !important;
	background: var(--appell-light) !important;
	box-shadow: 0 24px 64px color-mix(in srgb, var(--appell-dark) 34%, transparent);
}
[data-id="apsdheromark"]:has(.appell-single-detail__store-logo .elementor-widget-container:empty) { display: none !important; }
.appell-single-detail__store-logo,
.appell-single-detail__store-logo > .elementor-widget-container { width: 100%; }
.appell-single-detail__store-logo img {
	display: block;
	width: 100%;
	height: 140px !important;
	object-fit: contain;
}
body.single-tilbud [data-id="apsdheromark"],
body.single-post [data-id="apsdheromark"] {
	display: none !important;
}

/* ---------- Hero → content transition ---------- */
[data-id="apsdmediasection"] {
	position: relative;
	z-index: 4;
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	margin-top: -102px !important;
	padding: 0 !important;
	gap: 0 !important;
	background: linear-gradient(to bottom, transparent 0 102px, var(--appell-light) 102px 100%) !important;
}

[data-id="apsdmediashell"] {
	display: flex !important;
	flex-direction: column !important;
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	margin-inline: auto !important;
	padding: 0 24px !important;
	gap: 0 !important;
}

[data-id="apsdmediaframe"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	min-height: 0 !important;
	padding: 0 !important;
	gap: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
	border-radius: var(--appell-radius-lg) !important;
	background: var(--appell-surface-strong) !important;
	box-shadow: 0 24px 70px color-mix(in srgb, var(--appell-dark) 18%, transparent);
}

.appell-single-detail__media-image,
.appell-single-detail__media-image > .elementor-widget-container {
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}
.appell-single-detail__media-image img {
	display: block;
	width: 100%;
	height: clamp(410px, 48vw, 610px) !important;
	margin: 0;
	object-fit: cover;
}
body.single-butikk .appell-single-detail__media-image img { height: clamp(380px, 44vw, 560px) !important; }

/* ---------- Main content ---------- */
[data-id="apsdbody"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	padding: clamp(68px, 7vw, 104px) 0 clamp(82px, 8vw, 118px) !important;
	gap: 0 !important;
	background: var(--appell-light) !important;
}

[data-id="apsdbodyshell"] {
	display: grid !important;
	align-items: start !important;
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	margin-inline: auto !important;
	padding: 0 24px !important;
	gap: clamp(44px, 7vw, 92px) !important;
}
body.single-butikk [data-id="apsdbodyshell"],
body.single-tilbud [data-id="apsdbodyshell"] {
	grid-template-columns: minmax(0, 1fr) minmax(285px, 360px) !important;
}
body.single-post [data-id="apsdbodyshell"] {
	grid-template-columns: minmax(0, 850px) !important;
	justify-content: center !important;
}

[data-id="apsdmain"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	min-width: 0;
	gap: 20px !important;
}
[data-id="apsdmain"]:has(.appell-single-detail__post-content .elementor-widget-container:empty) { display: none !important; }

.appell-single-detail__post-content {
	width: 100%;
	max-width: 850px;
	color: var(--appell-text);
}
.appell-single-detail__post-content :is(p,ul,ol,blockquote) { margin: 0 0 1.45em; }
.appell-single-detail__post-content :is(h2,h3,h4) {
	color: var(--appell-text);
	word-break: normal;
	overflow-wrap: normal;
}
.appell-single-detail__post-content h2 { margin: 1.8em 0 .65em; }
.appell-single-detail__post-content h3 { margin: 1.6em 0 .6em; }
.appell-single-detail__post-content a {
	color: var(--appell-primary);
	text-decoration-color: var(--appell-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}
.appell-single-detail__post-content blockquote {
	margin-inline: 0;
	padding: 12px 0 12px 24px;
	border-left: 4px solid var(--appell-accent);
}

[data-id="apsdaside"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	min-width: 0;
	gap: 28px !important;
}

[data-id="apsdstatuscard"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	padding: 26px 26px 28px !important;
	gap: 10px !important;
	border: 0 !important;
	border-top: 4px solid var(--appell-accent) !important;
	border-radius: 0 0 var(--appell-radius-md) var(--appell-radius-md) !important;
	background: var(--appell-surface) !important;
}
.appell-single-detail__status-value,
.appell-single-detail__status-value :is(p,div) {
	margin: 0;
	color: var(--appell-text) !important;
}
.appell-single-detail__status-note,
.appell-single-detail__status-note :is(p,div) {
	margin: 0;
	color: var(--appell-muted) !important;
}

[data-id="apsdinfocard"],
[data-id="apsdoffercard"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	gap: 0 !important;
	padding: 24px 0 0 !important;
	border: 0 !important;
	border-top: 3px solid var(--appell-accent) !important;
	background: transparent !important;
}
[data-id="apsdinfotitle"] { margin: 0 0 12px !important; color: var(--appell-text) !important; }

[data-id="apsdlocation"],
[data-id="apsdphone"],
[data-id="apsdemail"],
[data-id="apsdwebsite"],
[data-id="apsdvalidityinfo"],
[data-id="apsdstoreinfo"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	gap: 4px !important;
	padding: 16px 0 !important;
	border-bottom: 1px solid var(--appell-border);
}
[data-id="apsdlocation"]:has(.elementor-widget-container:empty),
[data-id="apsdphone"]:has(.elementor-widget-container:empty),
[data-id="apsdemail"]:has(.elementor-widget-container:empty),
[data-id="apsdwebsite"]:has(.elementor-widget-container:empty),
[data-id="apsdvalidityinfo"]:has(.elementor-widget-container:empty),
[data-id="apsdstoreinfo"]:has(.elementor-widget-container:empty) { display: none !important; }

[data-id$="label"] { color: var(--appell-muted) !important; }
.appell-single-detail__info-value,
.appell-single-detail__info-value :is(p,div,a) {
	margin: 0;
	color: var(--appell-text) !important;
}
.appell-single-detail__info-value a {
	text-decoration-color: var(--appell-accent);
	text-underline-offset: 3px;
}
[data-id="apsdinfocard"] .elementor-widget-button,
[data-id="apsdoffercard"] .elementor-widget-button { margin-top: 22px; }
[data-id="apsdinfocard"] .elementor-widget-button + .elementor-widget-button,
[data-id="apsdoffercard"] .elementor-widget-button + .elementor-widget-button { margin-top: 10px; }
.appell-single-detail__external-cta a[href=""],
.appell-single-detail__external-cta a:not([href]) { display: none !important; }

/* ---------- Related ---------- */
[data-id="apsdrelated"] {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	padding: clamp(60px, 6vw, 82px) 0 clamp(48px, 5vw, 64px) !important;
	gap: 0 !important;
	background: var(--appell-surface) !important;
}
[data-id="apsdrelated"]::before {
	content: "";
	position: absolute;
	top: 0;
	left: max(24px, calc((100vw - 1280px) / 2 + 24px));
	width: min(148px, 20vw);
	height: 4px;
	background: var(--appell-accent);
}
[data-id="apsdrelatedshell"] {
	display: flex !important;
	flex-direction: column !important;
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	margin-inline: auto !important;
	padding: 0 24px !important;
	gap: 26px !important;
}
[data-id="apsdrelatedhead"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	max-width: 720px;
	gap: 9px !important;
}
[data-id="apsdrelatedtitle"] { color: var(--appell-text) !important; }
[data-id="apsdrelatedlead"] { max-width: 650px; color: var(--appell-muted) !important; }

.appell-single-detail__related-grid .elementor-loop-container {
	align-items: stretch;
	gap: clamp(18px, 2vw, 26px) !important;
}
.appell-single-detail__related-grid .e-loop-item { height: 100%; min-width: 0; }
.appell-single-detail__related-grid [data-id="aploop01"] {
	height: 100%;
	overflow: hidden;
	border-color: var(--appell-border) !important;
	background: var(--appell-light) !important;
	box-shadow: 0 12px 36px color-mix(in srgb, var(--appell-dark) 10%, transparent);
}

/* ---------- Search / 404 ---------- */
[data-id="ap404page"],
[data-id="apsearchpage"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	gap: 0 !important;
	color: var(--appell-text);
	background: var(--appell-light) !important;
}
[data-id="ap404hero"],
[data-id="apsearchhero"] {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	padding: clamp(70px, 8vw, 108px) 0 clamp(78px, 9vw, 124px) !important;
	gap: 0 !important;
	overflow: hidden;
	background: var(--appell-dark) !important;
}
[data-id="ap404hero"]::after,
[data-id="apsearchhero"]::after {
	content: "";
	position: absolute;
	left: max(24px, calc((100vw - 1280px) / 2 + 24px));
	bottom: 0;
	width: min(150px, 22vw);
	height: 4px;
	background: var(--appell-accent);
}
[data-id="ap404shell"] {
	display: grid !important;
	grid-template-columns: minmax(0,.92fr) minmax(360px,1.08fr) !important;
	align-items: center !important;
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	margin-inline: auto !important;
	padding: 0 24px !important;
	gap: clamp(38px, 6vw, 78px) !important;
}
[data-id="ap404copy"],
[data-id="apsearchheroshell"] {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	margin-inline: auto !important;
	padding: 0 24px !important;
	gap: 18px !important;
}
[data-id="ap404copy"] { padding: 0 !important; margin: 0 !important; }
[data-id="ap404eyebrow"], [data-id="apsearcheyebrow"] { color: var(--appell-accent) !important; }
[data-id="ap404title"], [data-id="apsearchtitle"],
[data-id="ap404title"] *, [data-id="apsearchtitle"] * { color: var(--appell-on-dark) !important; }
[data-id="ap404lead"], [data-id="apsearchlead"],
[data-id="ap404lead"] *, [data-id="apsearchlead"] * { color: color-mix(in srgb, var(--appell-on-dark) 88%, transparent) !important; }
[data-id="ap404actions"], [data-id="ap404helpactions"] {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
}
[data-id="ap404visual"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	min-height: 0 !important;
	padding: 0 !important;
	gap: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
	border-radius: var(--appell-radius-lg) !important;
	background: var(--appell-surface-strong) !important;
}
.appell-system-page__image,
.appell-system-page__image > .elementor-widget-container { width: 100%; margin: 0 !important; padding: 0 !important; }
.appell-system-page__image img { display: block; width: 100%; height: clamp(310px,35vw,470px) !important; object-fit: cover; }

[data-id="ap404help"], [data-id="apsearchcontent"] {
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	padding: clamp(64px, 7vw, 96px) 0 !important;
	gap: 0 !important;
	background: var(--appell-surface) !important;
}
[data-id="ap404helpshell"], [data-id="apsearchcontentshell"] {
	display: flex !important;
	flex-direction: column !important;
	width: min(100%,1280px) !important;
	max-width: 1280px !important;
	margin-inline: auto !important;
	padding: 0 24px !important;
	gap: 28px !important;
}
.appell-system-page__search-form { width: 100%; max-width: 720px; margin-top: 14px; }
.appell-system-page__search-form .elementor-search-form__container {
	min-height: 58px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--appell-light);
}
.appell-system-page__search-form input { color: var(--appell-text) !important; }
.appell-system-page__archive-posts .elementor-posts-container { gap: 24px; }
.appell-system-page__archive-posts .elementor-post {
	overflow: hidden;
	border-color: var(--appell-border) !important;
	border-radius: 20px;
	background: var(--appell-light);
	box-shadow: 0 12px 36px color-mix(in srgb, var(--appell-dark) 10%, transparent);
}
.appell-system-page__archive-posts .elementor-post__thumbnail__link { margin: 0 !important; }
.appell-system-page__archive-posts .elementor-post__text { padding: 22px 22px 26px; }

@media (max-width: 1024px) {
	body.single-butikk [data-id="apsdheroshell"] {
		grid-template-columns: minmax(0,1fr) minmax(150px,220px) !important;
		gap: 32px !important;
	}
	body.single-butikk [data-id="apsdbodyshell"],
	body.single-tilbud [data-id="apsdbodyshell"] {
		grid-template-columns: minmax(0,1fr) !important;
		gap: 52px !important;
	}
	[data-id="ap404shell"] { grid-template-columns: 1fr !important; }
	[data-id="ap404visual"] { max-width: 760px; }
}

@media (max-width: 767px) {
	body.single-butikk,
	body.single-tilbud,
	body.single-post,
	body.search,
	body.error404 { --appell-radius-lg: 20px; }

	[data-id="apsdhero"]::after { right: 16px; bottom: 54px; }
	[data-id="apsdheroshell"] {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		min-height: 0;
		padding: 54px 16px 118px !important;
		gap: 28px !important;
	}
	[data-id="apsdheromark"] { width: min(230px,72vw) !important; min-height: 150px !important; padding: 22px !important; }
	body.single-tilbud [data-id="apsdheromark"], body.single-post [data-id="apsdheromark"] { display: none !important; }
	.appell-single-detail__store-logo img { height: 96px !important; }
	[data-id="apsdmeta"] { gap: 7px !important; }

	[data-id="apsdmediasection"] {
		margin-top: -70px !important;
		background: linear-gradient(to bottom, transparent 0 70px, var(--appell-light) 70px 100%) !important;
	}
	[data-id="apsdmediashell"], [data-id="apsdbodyshell"], [data-id="apsdrelatedshell"],
	[data-id="ap404shell"], [data-id="apsearchheroshell"], [data-id="ap404helpshell"], [data-id="apsearchcontentshell"] { padding-inline: 16px !important; }
	.appell-single-detail__media-image img,
	body.single-butikk .appell-single-detail__media-image img { height: 290px !important; }

	[data-id="apsdbody"] { padding: 54px 0 72px !important; }
	[data-id="apsdbodyshell"],
	body.single-butikk [data-id="apsdbodyshell"],
	body.single-tilbud [data-id="apsdbodyshell"],
	body.single-post [data-id="apsdbodyshell"] {
		display: flex !important;
		flex-direction: column !important;
		gap: 48px !important;
	}
	[data-id="apsdrelated"] { padding: 62px 0 72px !important; }
	[data-id="apsdrelated"]::before { left: 16px; }

	[data-id="ap404hero"], [data-id="apsearchhero"] { padding: 56px 0 72px !important; }
	[data-id="ap404hero"]::after, [data-id="apsearchhero"]::after { left: 16px; }
	[data-id="ap404actions"], [data-id="ap404helpactions"] { flex-direction: column !important; align-items: stretch !important; }
}

@media (prefers-reduced-motion: reduce) {
	body.single-butikk *, body.single-tilbud *, body.single-post *, body.search *, body.error404 * {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
