/**
 * Zestino designsystem – innholdssider.
 * Artikler, arkiv, søk, 404 og redaksjonelt innhold.
 */

/* ============================================================
   1. Sidetopp
   ============================================================ */

.z-page-hero {
	position: relative;
	padding-block: clamp(3rem, 8vw, 6.5rem);
	background: var(--z-black);
	border-bottom: var(--z-border);
	overflow: hidden;
}

.z-page-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 52rem;
}

.z-page-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--z-space-sm);
	margin-top: var(--z-space-sm);
	font-size: var(--z-fs-tiny);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--z-text-dim);
}

/* ============================================================
   2. Redaksjonelt innhold
   ============================================================ */

.z-prose {
	max-width: 72ch;
	color: var(--z-text-muted);
	font-size: var(--z-fs-body);
	line-height: var(--z-lh-relaxed);
}

.z-prose > * + * {
	margin-top: var(--z-space-sm);
}

.z-prose h2,
.z-prose h3,
.z-prose h4 {
	color: #fff;
	margin-top: var(--z-space-xl);
	margin-bottom: var(--z-space-2xs);
}

.z-prose h2 {
	font-size: var(--z-fs-h3);
}

.z-prose h3 {
	font-size: var(--z-fs-h4);
}

.z-prose img,
.z-prose figure {
	border-radius: var(--z-radius-sm);
	margin-block: var(--z-space-lg);
}

.z-prose figcaption {
	margin-top: var(--z-space-2xs);
	font-size: var(--z-fs-tiny);
	color: var(--z-text-dim);
	text-align: center;
}

.z-prose blockquote {
	margin: var(--z-space-lg) 0;
	padding: var(--z-space-md) var(--z-space-lg);
	border-left: 3px solid var(--z-red);
	background: var(--z-surface);
	border-radius: var(--z-radius-xs);
	font-family: var(--z-font-display);
	font-size: var(--z-fs-h4);
	font-style: italic;
	color: #fff;
}

.z-prose blockquote p:last-child {
	margin-bottom: 0;
}

.z-prose ul,
.z-prose ol {
	padding-left: 1.35rem;
}

.z-prose li + li {
	margin-top: 0.4rem;
}

.z-prose ul li::marker {
	color: var(--z-red);
}

.z-prose code {
	font-family: var(--z-font-mono);
	font-size: 0.875em;
	background: var(--z-surface-2);
	padding: 0.15em 0.4em;
	border-radius: var(--z-radius-xs);
}

.z-prose table {
	border: var(--z-border);
	border-radius: var(--z-radius-sm);
	overflow: hidden;
	display: block;
	overflow-x: auto;
}

.z-prose th,
.z-prose td {
	padding: 0.75rem var(--z-space-sm);
	border-bottom: var(--z-border);
	text-align: left;
}

.z-prose th {
	background: var(--z-surface);
	color: #fff;
	font-size: var(--z-fs-tiny);
	letter-spacing: var(--z-ls-label);
	text-transform: uppercase;
}

/* ============================================================
   3. Artikkelkort
   ============================================================ */

.z-posts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: var(--z-space-md);
}

.z-post-card {
	display: flex;
	flex-direction: column;
	background: var(--z-surface);
	border: var(--z-border);
	border-radius: var(--z-radius-sm);
	overflow: hidden;
	transition:
		border-color var(--z-dur) var(--z-ease),
		transform var(--z-dur) var(--z-ease);
}

.z-post-card:hover {
	border-color: var(--z-red);
	transform: translateY(-4px);
}

.z-post-card__media {
	aspect-ratio: 16 / 10;
	background: var(--z-surface-2);
	overflow: hidden;
}

.z-post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--z-dur-slow) var(--z-ease);
}

.z-post-card:hover .z-post-card__media img {
	transform: scale(1.05);
}

.z-post-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--z-space-2xs);
	padding: var(--z-space-md);
	flex: 1;
}

.z-post-card__date {
	font-size: var(--z-fs-tiny);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--z-red);
	font-weight: var(--z-fw-bold);
}

.z-post-card__title {
	margin: 0;
	font-size: 1.375rem;
	line-height: 1.15;
}

.z-post-card__excerpt {
	font-size: var(--z-fs-small);
	color: var(--z-text-muted);
	margin: 0;
}

.z-post-card__more {
	margin-top: auto;
	padding-top: var(--z-space-2xs);
}

/* ============================================================
   4. Enkeltartikkel
   ============================================================ */

.z-article {
	padding-block: var(--z-space-xl) var(--z-space-3xl);
}

.z-article__featured {
	margin-bottom: var(--z-space-xl);
	border-radius: var(--z-radius-sm);
	overflow: hidden;
}

.z-article__footer {
	margin-top: var(--z-space-2xl);
	padding-top: var(--z-space-lg);
	border-top: var(--z-border);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--z-space-md);
}

.z-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.z-post-nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: var(--z-space-md);
	margin-top: var(--z-space-2xl);
}

.z-post-nav__item {
	padding: var(--z-space-md);
	background: var(--z-surface);
	border: var(--z-border);
	border-radius: var(--z-radius-sm);
}

.z-post-nav__label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: var(--z-fs-tiny);
	letter-spacing: var(--z-ls-label);
	text-transform: uppercase;
	color: var(--z-red);
}

.z-post-nav__title {
	font-family: var(--z-font-display);
	font-size: 1.125rem;
	font-weight: var(--z-fw-bold);
	text-transform: uppercase;
}

/* ============================================================
   5. 404 og tomme tilstander
   ============================================================ */

.z-empty {
	text-align: center;
	padding-block: var(--z-space-4xl);
	max-width: 46rem;
	margin-inline: auto;
}

.z-empty__code {
	font-family: var(--z-font-display);
	font-size: clamp(6rem, 22vw, 14rem);
	font-weight: var(--z-fw-black);
	font-style: italic;
	line-height: 0.85;
	color: var(--z-red);
	margin-bottom: var(--z-space-sm);
}

.z-empty__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--z-space-sm);
	margin-top: var(--z-space-lg);
}

/* ============================================================
   6. Elementor-integrasjon
   ============================================================ */

/* La Elementor-seksjoner arve temaets bakgrunn og bredder. */
.elementor-section.elementor-section-boxed > .elementor-container {
	max-width: var(--z-container);
}

/* Elementor-knapper bruker temaets knappedesign. */
.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--z-space-2xs);
	min-height: 52px;
	padding: 0.9375rem 2rem;
	border: 2px solid transparent;
	border-radius: var(--z-radius-xs);
	background: var(--z-red);
	color: #fff;
	font-family: var(--z-font-body);
	font-size: var(--z-fs-small);
	font-weight: var(--z-fw-bold);
	letter-spacing: var(--z-ls-label);
	line-height: 1;
	text-transform: uppercase;
	transition:
		background-color var(--z-dur) var(--z-ease),
		color var(--z-dur) var(--z-ease),
		border-color var(--z-dur) var(--z-ease),
		transform var(--z-dur-fast) var(--z-ease),
		box-shadow var(--z-dur) var(--z-ease);
}

.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus {
	background: var(--z-red-hover);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--z-shadow-red);
}

/* Sekundærvariant: hvit ramme på gjennomsiktig bakgrunn. */
.elementor-widget-button.z-btn--outline .elementor-button {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.elementor-widget-button.z-btn--outline .elementor-button:hover,
.elementor-widget-button.z-btn--outline .elementor-button:focus {
	background: #fff;
	color: var(--z-black);
	border-color: #fff;
}

/* Sørg for at Elementor-overskrifter arver merkevaretypografien som standard. */
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--z-font-display);
	font-weight: var(--z-fw-black);
	text-transform: uppercase;
	letter-spacing: var(--z-ls-display);
	line-height: 1.05;
	color: var(--z-text);
}

.elementor-widget-heading .elementor-heading-title em {
	color: var(--z-red);
	font-style: italic;
}

/* Hero: rød soloppgang bak innholdet, uten at Elementor må vite om det. */
.z-hero-shell {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.z-hero-shell::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -10%;
	width: 120vmax;
	height: 120vmax;
	transform: translateY(-50%);
	background: repeating-conic-gradient(
		from 0deg,
		var(--z-red-deep) 0deg 5deg,
		transparent 5deg 13deg
	);
	opacity: 0.2;
	mask-image: radial-gradient(circle at center, #000 0%, transparent 58%);
	-webkit-mask-image: radial-gradient(circle at center, #000 0%, transparent 58%);
	pointer-events: none;
	z-index: -1;
}

/* Produktbildet i heroen: rød glød bak den utklippede figuren. */
.z-hero-product {
	position: relative;
}

.z-hero-product img {
	filter: drop-shadow(0 30px 50px rgba(0, 0, 0, 0.75));
}

.z-hero-product::before {
	content: "";
	position: absolute;
	inset: 8%;
	border-radius: 50%;
	background: radial-gradient(circle, var(--z-red-glow) 0%, transparent 68%);
	filter: blur(30px);
	z-index: -1;
}

/* ============================================================
   7. Kommentarer
   ============================================================ */

.z-comments {
	margin-top: var(--z-space-2xl);
	padding-top: var(--z-space-lg);
	border-top: var(--z-border);
	max-width: 72ch;
}

.z-comments ol {
	list-style: none;
	padding: 0;
}

.z-comments .comment-body {
	padding: var(--z-space-md);
	background: var(--z-surface);
	border: var(--z-border);
	border-radius: var(--z-radius-sm);
	margin-bottom: var(--z-space-sm);
}

.z-comments .comment-meta {
	font-size: var(--z-fs-tiny);
	color: var(--z-text-dim);
	margin-bottom: var(--z-space-2xs);
}

/* ============================================================
   8. Nøytraliser Elementor sine globale knappestiler
   ============================================================

   Elementor-kittet styler alle <button>-elementer, ikke bare
   .elementor-button. Temaets egne ikonknapper, trekkspill og
   antallsvelgere må derfor ha høyere spesifisitet.                */

.z-theme .z-icon-btn,
.z-theme .z-burger,
.z-theme .z-qty-btn,
.z-theme .z-accordion__trigger,
.z-theme .z-mini-cart__remove,
.z-theme .z-drawer button:not(.elementor-button):not(.z-btn),
.z-theme .z-search button:not(.elementor-button):not(.z-btn) {
	background-color: transparent;
	border-radius: var(--z-radius-xs);
	padding: 0;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
}

.z-theme .z-icon-btn,
.z-theme .z-burger {
	width: 44px;
	height: 44px;
	color: #fff;
}

.z-theme .z-icon-btn:hover,
.z-theme .z-burger:hover {
	background-color: rgba(255, 255, 255, 0.06);
	color: var(--z-red);
}

.z-theme .z-qty-btn {
	width: 46px;
	color: var(--z-text-muted);
}

.z-theme .z-qty-btn:hover {
	background-color: var(--z-surface-2);
	color: var(--z-red);
}

.z-theme .z-accordion__trigger {
	width: 100%;
	padding: var(--z-space-md) 0;
	font-family: var(--z-font-display);
	font-size: var(--z-fs-h4);
	font-weight: var(--z-fw-bold);
	text-transform: uppercase;
	color: var(--z-text);
}

.z-theme .z-accordion__trigger:hover,
.z-theme .z-accordion__trigger[aria-expanded="true"] {
	background-color: transparent;
	color: var(--z-red);
}

.z-theme .z-mini-cart__remove {
	width: 26px;
	height: 26px;
	background-color: var(--z-surface-2);
	color: var(--z-text-dim);
}

.z-theme .z-mini-cart__remove:hover {
	background-color: var(--z-red);
	color: #fff;
}

/* WooCommerce-knapper skal beholde temaets utseende, ikke kittets padding. */
.z-theme .woocommerce button.button,
.z-theme .woocommerce a.button,
.z-theme .woocommerce input.button,
.z-theme .woocommerce #respond input#submit {
	padding: 0.9375rem 2rem;
	letter-spacing: var(--z-ls-label);
}
