/* Singelevent – Arrangementer
   Designsystem etter handoff: Newsreader + Outfit, varm sandbakgrunn, rosa aksent. */

:root {
	--se-bg: #fbf8f7;
	--se-flate: #ffffff;
	--se-kant: #efe4e7;
	--se-skille: #ece0e4;
	--se-skille-lys: #f3eaed;

	--se-tekst: #1d1218;
	--se-tekst-2: #2f2229;
	--se-tekst-3: #4a3b42;
	--se-brod: #5c4c54;
	--se-dempet: #8a7680;

	--se-aksent: #c2415a;
	--se-aksent-mork: #a8324f;
	--se-lenke-hover: #7d2239;

	--se-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--se-sans: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;

	--se-skygge-kort: 0 1px 2px rgba(40, 20, 30, .04);
	--se-skygge-kort-hover: 0 18px 40px rgba(60, 25, 45, .10);
	--se-skygge-sted: 0 10px 30px rgba(50, 20, 35, .14);
	--se-skygge-badge: 0 4px 14px rgba(60, 25, 45, .18);
}

/* ---------- Rammeverk: bredde, bakgrunn og typografi ---------- */

body {
	--wp--style--global--content-size: 1120px;
	--wp--style--global--wide-size: 1120px;
	background: var(--se-bg);
	font-family: var(--se-sans);
	color: #241820;
}

body ::selection {
	background: #f4d3dc;
}

.wp-site-blocks h1,
.wp-site-blocks h2,
.wp-site-blocks h3,
.wp-site-blocks h4,
.wp-block-post-title,
.wp-block-site-title,
.wp-block-site-title a {
	font-family: var(--se-serif);
	font-weight: 400;
	letter-spacing: -.02em;
	color: var(--se-tekst);
}

.wp-block-post-title {
	font-size: clamp(38px, 5.5vw, 62px);
	line-height: 1.05;
}

.wp-block-site-title a {
	font-size: 24px;
	text-decoration: none;
}

.wp-block-navigation,
.wp-block-navigation a {
	font-family: var(--se-sans);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .01em;
}

.wp-block-navigation a {
	color: var(--se-brod);
	text-decoration: none;
}

.wp-block-navigation a:hover,
.wp-block-navigation .current-menu-item a {
	color: var(--se-aksent-mork);
}

/* Forsiden bruker sin egen tittelblokk (se-hero). */
body.home .wp-block-post-title {
	display: none;
}

/* Luft over innholdet, tett opp til designet (72px). */
main > .wp-block-group.has-global-padding {
	padding-top: 24px !important;
}

body.home main > .wp-block-group.has-global-padding {
	padding-top: 0 !important;
}

/* Temaets «Written by … in …» er tom for arrangementer. */
body.single-se_arrangement main .wp-block-group.has-small-font-size.is-layout-flex {
	display: none;
}

/* Bildet vises inne i arrangementsoppsettet, ikke over det. */
body.single-se_arrangement .wp-block-post-featured-image {
	display: none;
}

/* ---------- Hero på forsiden ---------- */

.se-hero {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 720px;
	padding: 16px 0 48px;
}

.se-kicker {
	font-family: var(--se-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--se-aksent-mork);
	margin: 0;
}

.se-hero-tittel {
	font-family: var(--se-serif);
	font-weight: 400;
	font-size: clamp(44px, 7vw, 76px);
	line-height: 1.02;
	letter-spacing: -.02em;
	color: var(--se-tekst);
	margin: 0;
}

.se-hero-ingress {
	font-family: var(--se-serif);
	font-size: clamp(18px, 2.2vw, 23px);
	line-height: 1.5;
	color: var(--se-brod);
	margin: 0;
	text-wrap: pretty;
}

/* ---------- Områdekortene ---------- */

.se-steder {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
	margin: 0 0 8px;
	padding: 0;
	list-style: none;
}

.se-sted-kort {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 300px;
	padding: 28px;
	border-radius: 22px;
	overflow: hidden;
	text-decoration: none;
	color: #fff;
	background-color: #2b2334;
	background-size: cover;
	background-position: center;
	box-shadow: var(--se-skygge-sted);
	transition: transform 180ms ease;
}

.se-sted-kort::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(170deg, rgba(29, 18, 24, .30) 0%, rgba(29, 18, 24, .88) 78%);
}

.se-sted-kort::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 80% 15%, rgba(255, 255, 255, .14), transparent 55%);
	pointer-events: none;
}

a.se-sted-kort:hover,
a.se-sted-kort:focus-visible {
	transform: translateY(-4px);
	color: #fff;
}

a.se-sted-kort:focus-visible {
	outline: 3px solid var(--se-aksent);
	outline-offset: 3px;
}

.se-sted-innhold {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	width: 100%;
}

.se-sted-navn {
	font-family: var(--se-serif);
	font-size: 34px;
	line-height: 1.1;
	color: #fff;
}

.se-sted-ingress {
	font-size: 14.5px;
	line-height: 1.45;
	color: rgba(255, 255, 255, .82);
	max-width: 34ch;
}

.se-sted-antall {
	display: inline-block;
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	font-size: 13px;
	font-weight: 500;
	color: #fff;
}

a.se-sted-kort:hover .se-sted-antall {
	background: rgba(255, 255, 255, .24);
}

/* Aktivt område (siden man står på) */
.se-sted-kort.er-aktiv::before {
	background-image: linear-gradient(170deg, rgba(194, 65, 90, .72) 0%, rgba(60, 15, 32, .92) 100%);
}

.se-sted-kort.er-aktiv .se-sted-antall {
	background: rgba(255, 255, 255, .24);
}

/* ---------- Overskrift over listen ---------- */

.se-liste-topp {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 64px 0 24px;
}

.se-liste-tittel {
	font-family: var(--se-serif);
	font-weight: 400;
	font-size: clamp(28px, 3.6vw, 40px);
	letter-spacing: -.01em;
	color: var(--se-tekst);
	margin: 0;
}

.se-liste-teller {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--se-dempet);
}

/* ---------- Arrangementskortene ---------- */

.se-liste {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 22px;
	align-items: start;
}

.se-kort {
	display: flex;
	flex-direction: column;
	background: var(--se-flate);
	border: 1px solid var(--se-kant);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--se-skygge-kort);
	transition: box-shadow 180ms ease;
}

.se-kort:hover {
	box-shadow: var(--se-skygge-kort-hover);
}

.se-kort-bilde {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: #f4ecef;
	overflow: hidden;
}

.se-kort-bilde img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.se-kort-bilde-tom {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #f4dbe3 0%, #e6dcef 100%);
}

.se-datomerke {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 8px 12px;
	border-radius: 12px;
	background: #fff;
	text-align: center;
	line-height: 1.05;
	box-shadow: var(--se-skygge-badge);
}

.se-datomerke-dag {
	display: block;
	font-family: var(--se-serif);
	font-size: 22px;
	color: var(--se-tekst);
}

.se-datomerke-mnd {
	display: block;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--se-aksent-mork);
}

.se-kort-innhold {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
	padding: 22px;
}

.se-kort-sted-etikett {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--se-aksent-mork);
}

.se-kort-tittel {
	margin: 0;
	font-family: var(--se-serif);
	font-weight: 400;
	font-size: 25px;
	line-height: 1.15;
	color: var(--se-tekst);
}

.se-kort-tittel a {
	color: inherit;
	text-decoration: none;
}

.se-kort-tittel a:hover {
	color: var(--se-aksent-mork);
}

.se-fakta-rader {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 12px;
	font-size: 14.5px;
	color: var(--se-brod);
	margin: 0;
}

.se-fakta-rader dt {
	color: var(--se-aksent-mork);
	font-weight: 400;
}

.se-fakta-rader dd {
	margin: 0;
}

.se-kort-tekst {
	margin: 4px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--se-brod);
	text-wrap: pretty;
}

.se-kort-knapper {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin: auto 0 0;
	padding-top: 16px;
}

.se-knapp {
	display: inline-block;
	padding: 12px 22px;
	border: none;
	border-radius: 999px;
	background: var(--se-aksent);
	color: #fff !important;
	font-family: var(--se-sans);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background 160ms ease;
}

.se-knapp:hover,
.se-knapp:focus-visible {
	background: var(--se-aksent-mork);
	color: #fff !important;
}

.se-knapp-stor {
	padding: 15px 30px;
	font-size: 16px;
}

.se-lenke {
	font-family: var(--se-sans);
	font-size: 14.5px;
	font-weight: 500;
	color: var(--se-brod);
	text-decoration: none;
	border-bottom: 1px solid #d9c8ce;
}

.se-lenke:hover {
	color: var(--se-tekst);
}

/* ---------- Tom liste ---------- */

.se-tom {
	padding: 44px 28px;
	background: var(--se-flate);
	border: 1px solid var(--se-kant);
	border-radius: 20px;
	box-shadow: var(--se-skygge-kort);
}

.se-tom-tittel {
	margin: 0 0 8px;
	font-family: var(--se-serif);
	font-size: 22px;
	color: var(--se-tekst);
}

.se-tom-tekst {
	margin: 0;
	font-size: 15px;
	color: var(--se-brod);
}

/* ---------- Tilbakelenke ---------- */

.se-tilbake {
	margin: 40px 0 0;
	font-size: 14.5px;
}

.se-tilbake a {
	color: var(--se-brod);
	font-weight: 500;
	text-decoration: none;
}

.se-tilbake a:hover {
	color: var(--se-tekst);
}

/* ---------- Ett arrangement ---------- */

.se-enkelt {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 48px;
	align-items: start;
	margin: 8px 0 0;
}

.se-enkelt-tekst {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.se-enkelt-tekst > p {
	font-family: var(--se-serif);
	font-size: 20px;
	line-height: 1.6;
	color: var(--se-tekst-3);
	margin: 0;
	max-width: 56ch;
	text-wrap: pretty;
}

.se-enkelt-tekst > h2,
.se-enkelt-tekst > h3 {
	font-family: var(--se-serif);
	font-weight: 400;
	color: var(--se-tekst);
	margin: 8px 0 0;
}

.se-enkelt-tekst ul,
.se-enkelt-tekst ol {
	font-size: 17px;
	line-height: 1.6;
	color: var(--se-tekst-3);
	margin: 0;
	padding-left: 20px;
}

.se-enkelt-side {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.se-enkelt-bilde {
	aspect-ratio: 4 / 3;
	border-radius: 20px;
	overflow: hidden;
	background: #f4ecef;
}

.se-enkelt-bilde img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.se-faktakort {
	background: var(--se-flate);
	border: 1px solid var(--se-kant);
	border-radius: 20px;
	padding: 8px 26px 18px;
}

.se-fakta-rad {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr);
	gap: 6px 16px;
	align-items: baseline;
	padding: 18px 0;
	border-bottom: 1px solid var(--se-skille-lys);
}

.se-fakta-rad:last-of-type {
	border-bottom: none;
}

.se-fakta-etikett {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--se-aksent-mork);
}

.se-fakta-verdi {
	font-size: 16px;
	line-height: 1.5;
	color: var(--se-tekst-2);
}

.se-fakta-verdi a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.se-fakta-hjelp {
	margin: 16px 0 4px;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--se-dempet);
}

.se-enkelt-knapper {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	padding-top: 8px;
	margin: 0;
}

.se-avsluttet {
	margin: 0;
	padding: 12px 16px;
	border-radius: 12px;
	background: #f3eaed;
	color: var(--se-brod);
	font-weight: 500;
	font-size: 14.5px;
}

.se-enkelt-bunn {
	margin-top: 56px;
	border-top: 1px solid var(--se-skille);
	padding-top: 24px;
}

/* ---------- Nettbrett og mobil ---------- */

@media (max-width: 900px) {
	.se-sted-kort {
		min-height: 240px;
		padding: 24px;
	}

	.se-sted-navn {
		font-size: 30px;
	}

	.se-liste-topp {
		padding-top: 48px;
	}
}

@media (max-width: 600px) {
	.se-steder,
	.se-liste {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.se-sted-kort {
		min-height: 210px;
	}

	.se-hero {
		padding-bottom: 32px;
	}

	.se-enkelt {
		gap: 32px;
	}

	.se-kort-knapper .se-knapp {
		flex: 1 1 auto;
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.se-sted-kort,
	.se-kort {
		transition: none;
	}
}
