/* =========================================================================
   Steamy — main stylesheet
   ========================================================================= */

/* ---- Reset & base ------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	font-family: var(--font);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	color: var(--text);
	background-color: var(--bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01" on, "cv01" on;
	overflow-x: hidden;
}

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
/* Safety net: any icon without a context-specific size stays inline-small instead of
   ballooning to max-width:100% (e.g. the car icon in .offer__note). */
.ic { width: 1em; height: 1em; flex: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: none; }
ul { list-style: none; padding: 0; }
:focus-visible { outline: 2.5px solid var(--aqua-700); outline-offset: 3px; border-radius: 3px; }

/* ---- Typography --------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 { color: var(--heading); font-family: var(--font-display); font-weight: 800; font-style: italic; line-height: 1.0; letter-spacing: -.015em; text-transform: uppercase; text-wrap: balance; }
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5, h6 { text-transform: none; font-style: normal; font-weight: 700; letter-spacing: 0; }
/* RULE: display headings must never run onto 3–4 lines — keep them tight */
.hero__title, .section__title, .booking__title, .offer__title { text-wrap: balance; }
h1, h2, h3, h4 { overflow-wrap: break-word; }
/* Long Danish compounds (fx “undervognsbehandling”) must fit on small screens */
@media (max-width: 520px) {
	h1 { font-size: clamp(2rem, 9.5vw, 2.6rem); }
	h2 { font-size: clamp(1.55rem, 7.4vw, 2rem); }
	h3 { font-size: clamp(1.35rem, 6vw, 1.7rem); }
}
p { text-wrap: pretty; }

/* Display numerals — price/stat figures share the heading font for cohesion */
.hero__price-amt, .offer__big-n, .bigstat__n, .stat__n, .promo .price, .pricecard__amt { font-family: var(--font-display); font-style: italic; font-weight: 800; }
.marquee__item { font-style: italic; }
::selection { background: var(--aqua); color: var(--ink); }
strong { font-weight: 700; color: var(--heading); }

/* Eyebrow — plain uppercase label, no decoration */
.eyebrow {
	display: inline-block;
	font-family: var(--font);
	font-size: var(--fs-eyebrow);
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--accent-ink);
	margin-bottom: 1rem;
}
.eyebrow--light { color: var(--aqua); }

/* ---- Layout ------------------------------------------------------------- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: var(--maxw-narrow); }
.section { padding-block: var(--section-y); position: relative; }
section[id], [id="saadan"], [id="pris"] { scroll-margin-top: calc(var(--header-h-full) + 16px); }
.section--tight { padding-block: clamp(2.25rem, 4vw, 3.5rem); }
.section--dark { background: var(--ink); color: var(--slate-on-dark); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4 { color: #fff; }
.section--soft { background: linear-gradient(180deg, #fff, var(--off-white)); }

.section__head { max-width: 680px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.section__head--center { margin-inline: auto; text-align: center; }
.section__head--wide { max-width: none; }
.section__head--wide .section__title { white-space: nowrap; }
@media (max-width: 900px) { .section__head--wide .section__title { white-space: normal; } }
.section__title { font-size: var(--fs-h2); }
.section__lead { font-size: var(--fs-lead); color: var(--slate); margin-top: 1rem; }
.section--dark .section__lead { color: var(--slate-on-dark); }

/* ---- Buttons ------------------------------------------------------------ */
.btn {
	display: inline-flex; align-items: center; gap: .55rem;
	padding: .9rem 1.6rem;
	border-radius: var(--r-sm);
	font-weight: 800;
	font-size: .9rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
	white-space: nowrap;
}
.btn .ic { width: 1.15em; height: 1.15em; }
.btn--sm { padding: .6rem 1.1rem; font-size: .92rem; }
.btn--lg { padding: 1.02rem 1.9rem; font-size: 1.08rem; }

.btn--primary {
	background: linear-gradient(180deg, #FFD400, var(--aqua));
	color: #141414;
	box-shadow: var(--shadow-aqua);
}
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -12px rgba(255,196,0,.6); }

.btn--ink { background: var(--ink); color: #fff; }
.btn--ink:hover { transform: translateY(-2px); background: var(--ink-2); box-shadow: var(--shadow); }

.btn--ghost { background: transparent; color: var(--heading); border: 1.5px solid var(--line-2); }
.btn--ghost:hover { border-color: var(--aqua); color: var(--accent-ink); transform: translateY(-2px); }

.btn--light { background: #fff; color: var(--ink); }
.btn--light:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }

.btn--outline-light { border: 1.5px solid rgba(255,255,255,.28); color: #fff; }
.btn--outline-light:hover { border-color: var(--aqua-300); color: var(--aqua-300); }

.btn-row { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }

/* ---- Skip link ---------------------------------------------------------- */
.skip-link { position: absolute; left: -999px; top: 0; z-index: 999; background: var(--ink); color: #fff; padding: .8rem 1.2rem; border-radius: 0 0 var(--r) 0; }
.skip-link:focus { left: 0; }

/* ---- Header ------------------------------------------------------------- */
.site-header { position: sticky; top: 0; z-index: 100; }

.topbar { background: var(--ink); color: var(--slate-on-dark); font-size: var(--fs-small); }
.topbar__inner { display: flex; align-items: center; gap: 1rem; min-height: var(--topbar-h); }
.topbar__item { color: #cdd6d9; display: inline-flex; align-items: center; gap: .4rem; }
.topbar__item .ic { width: 1em; height: 1em; color: var(--aqua-300); flex: none; }
/* The lead text may be long (editable) — truncate instead of pushing the phone out */
.topbar__inner > .topbar__item:first-child { display: block; flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar__sep { flex: 1; }
.topbar__phone { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: #fff; flex: none; }
.topbar__phone .ic { width: 1em; height: 1em; color: var(--aqua-300); }
.topbar__phone:hover { color: var(--aqua-300); }
@media (max-width: 860px) {
	.topbar__item--hide { display: none; }
	.topbar__inner { justify-content: center; }
	.topbar__sep { display: none; }
	.topbar__inner > .topbar__item:first-child { text-align: center; }
}
@media (max-width: 420px) { .topbar { font-size: .8rem; } }

/* Dark off-black navbar with centered crest logo (3-column grid) */
.navbar {
	background: var(--ink);
	border-bottom: 1px solid var(--line-dark);
	transition: box-shadow .3s var(--ease);
}
.is-scrolled .navbar { box-shadow: 0 10px 30px -16px rgba(0,0,0,.7); }
.navbar__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; min-height: var(--header-h); }

.brand { display: inline-flex; align-items: center; }
.brand--center { justify-self: center; }
/* Large logo — allowed to overflow into the topbar / below the navbar */
.brand__crest { display: block; height: 104px; width: auto; margin-block: -14px; position: relative; z-index: 2; filter: drop-shadow(0 6px 14px rgba(0,0,0,.5)); }
.brand--footer .brand__crest { height: 92px; margin: 0; filter: none; }

.nav { display: flex; align-items: center; }
.nav__list { display: flex; align-items: center; gap: .2rem; }
.nav__link {
	display: inline-block; padding: .55rem .75rem; border-radius: var(--r-sm);
	font-weight: 700; font-size: .9rem; letter-spacing: .01em; color: #d9d8d4;
	transition: color .2s var(--ease), background-color .2s var(--ease);
}
.nav__link:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav__actions { display: flex; align-items: center; justify-self: end; gap: .6rem; }
.nav__actions .btn { padding: .6rem 1.2rem; font-size: .9rem; }
.nav__phone { color: #fff; border-color: rgba(255,255,255,.22); }
.nav__phone .ic { color: var(--aqua); }
.nav__phone:hover { border-color: var(--aqua); color: var(--aqua); }
.nav__cta--mobile { display: none; }

.nav-toggle { display: none; width: 46px; height: 46px; border-radius: var(--r-sm); border: 1px solid rgba(255,255,255,.22); }
.nav-toggle span { display: block; width: 20px; height: 2px; background: #fff; margin: 4px auto; border-radius: 2px; transition: transform .3s var(--ease), opacity .2s var(--ease); }
.btn--block { width: 100%; justify-content: center; }

/* ---- Mobile menu (off-canvas drawer) ------------------------------------ */
.mobile-menu { position: fixed; inset: 0; z-index: 300; visibility: hidden; transition: visibility 0s .5s; }
.menu-open .mobile-menu { visibility: visible; transition-delay: 0s; }
body.menu-open { overflow: hidden; }

.mobile-menu__backdrop { position: absolute; inset: 0; background: rgba(8,8,9,.55); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); opacity: 0; transition: opacity .35s var(--ease); cursor: pointer; }
.menu-open .mobile-menu__backdrop { opacity: 1; }

.mobile-menu__panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(400px, 90vw);
	display: flex; flex-direction: column;
	background: var(--ink); border-left: 1px solid var(--line-dark);
	box-shadow: -30px 0 80px -30px rgba(0,0,0,.85);
	transform: translateX(105%); transition: transform .45s var(--ease-out);
	overflow-y: auto; overscroll-behavior: contain;
	padding-bottom: max(1.4rem, env(safe-area-inset-bottom));
}
.menu-open .mobile-menu__panel { transform: none; }
/* hazard stripe — shared brand detail along the top edge */
.mobile-menu__panel::before { content: ""; flex: none; height: 7px; background: var(--hazard); }

.mobile-menu__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.4rem; border-bottom: 1px solid var(--line-dark); }
.mobile-menu__head .brand__crest { height: 56px; margin: 0; filter: none; }
.mobile-menu__close { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: var(--r-sm); border: 1px solid rgba(255,255,255,.22); color: #fff; transition: border-color .2s var(--ease), color .2s var(--ease); }
.mobile-menu__close .ic { width: 22px; height: 22px; }
.mobile-menu__close:hover { border-color: var(--aqua); color: var(--aqua); }

.mobile-menu__nav { padding: .5rem 1.4rem 0; }
.mobile-menu__nav li { opacity: 0; transform: translateX(22px); transition: opacity .4s var(--ease-out), transform .4s var(--ease-out); }
.menu-open .mobile-menu__nav li { opacity: 1; transform: none; }
.menu-open .mobile-menu__nav li:nth-child(1) { transition-delay: .07s; }
.menu-open .mobile-menu__nav li:nth-child(2) { transition-delay: .12s; }
.menu-open .mobile-menu__nav li:nth-child(3) { transition-delay: .17s; }
.menu-open .mobile-menu__nav li:nth-child(4) { transition-delay: .22s; }
.menu-open .mobile-menu__nav li:nth-child(5) { transition-delay: .27s; }
.menu-open .mobile-menu__nav li:nth-child(6) { transition-delay: .32s; }
.mobile-menu__nav a {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 1rem .1rem; border-bottom: 1px solid var(--line-dark);
	font-family: var(--font-display); font-style: italic; font-weight: 800;
	font-size: 1.35rem; line-height: 1.1; text-transform: uppercase; letter-spacing: .01em;
	color: #ecebe7; transition: color .2s var(--ease);
}
.mobile-menu__nav a .ic { width: 1.05em; height: 1.05em; flex: none; color: var(--aqua); transition: transform .25s var(--ease); }
.mobile-menu__nav a:hover, .mobile-menu__nav a:active { color: var(--aqua); }
.mobile-menu__nav a:hover .ic { transform: translateX(4px); }

.mobile-menu__cta { margin-top: auto; display: grid; gap: .65rem; padding: 1.5rem 1.4rem 0; }
.mobile-menu__meta { display: grid; gap: .45rem; padding: 1.1rem 1.4rem 0; color: var(--slate-on-dark); font-size: .88rem; }
.mobile-menu__meta span { display: flex; align-items: center; gap: .5rem; }
.mobile-menu__meta .ic { width: 1.05em; height: 1.05em; flex: none; color: var(--aqua); }

@media (prefers-reduced-motion: reduce) {
	.mobile-menu__panel, .mobile-menu__backdrop, .mobile-menu__nav li { transition: none !important; }
	.mobile-menu__nav li { opacity: 1; transform: none; }
}

/* ---- Hero --------------------------------------------------------------- */
.hero { position: relative; padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5rem); }
/* Light hero background: clean white fade, no decorative blobs */
.hero, .page-hero { position: relative; isolation: isolate; }
.hero::before, .page-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, #fff 0%, var(--off-white) 100%);
}
.hero__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.hero__content { max-width: 640px; }
.hero__title { font-size: clamp(2.5rem, 4.6vw, 3.9rem); text-wrap: balance; }
.hero__title em { font-style: normal; color: var(--aqua-700); }
.hero__lead { font-size: var(--fs-lead); color: var(--slate); margin-top: 1.25rem; max-width: 30em; }
.hero__cta { margin-top: 1.9rem; }
.hero__trust { margin-top: 1.9rem; display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.8rem; color: var(--slate); font-size: var(--fs-small); }
.hero__trust strong { color: var(--ink); }
.hero__fact { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; }
.hero__fact .ic { width: 1.1em; height: 1.1em; color: var(--aqua); flex: none; }
.hero__stars { display: inline-flex; gap: 2px; color: #f5a623; }
.hero__stars .ic { width: 1.05em; height: 1.05em; fill: #f5a623; stroke: #f5a623; }

.hero__media { position: relative; }
.hero__img {
	width: 100%; border-radius: var(--r-xl);
	box-shadow: var(--shadow-lg);
	aspect-ratio: 16 / 11; object-fit: cover;
}
.hero__badge {
	position: absolute; left: -14px; bottom: 26px;
	display: flex; align-items: center; gap: .8rem;
	background: #fff; border: 1px solid var(--line);
	border-radius: var(--r-lg); padding: .85rem 1.1rem;
	box-shadow: var(--shadow);
}
.hero__badge-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--r-sm); background: var(--aqua-50); color: var(--aqua-700); }
.hero__badge-ic .ic { width: 22px; height: 22px; }
.hero__badge b { display: block; font-size: 1.05rem; color: var(--ink); line-height: 1.1; }
.hero__badge span { font-size: .82rem; color: var(--slate); }

/* Hero price chip — plants the price immediately */
.hero__price { display: inline-flex; align-items: center; gap: 1rem; margin-top: 1.7rem; padding: .7rem 1.15rem; border-radius: var(--r-lg); background: linear-gradient(150deg, var(--ink), var(--ink-3)); color: #fff; box-shadow: var(--shadow); position: relative; overflow: hidden; width: fit-content; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.hero__price::after { content: none; }
.hero__price:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.hero__price > * { position: relative; z-index: 1; }
.hero__price-tag { font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; color: var(--aqua-300); font-weight: 800; }
.hero__price-amt { font-size: clamp(1.9rem, 3.4vw, 2.3rem); font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.hero__price-amt span { font-size: .85rem; font-weight: 700; color: var(--aqua-300); margin-left: 2px; }
.hero__price-sub { font-size: .8rem; color: var(--slate-on-dark); line-height: 1.3; padding-left: 1rem; border-left: 1px solid var(--line-dark); }

/* ---- Hero: full-bleed dark variant (black & yellow, image covers whole section) ---- */
.hero--full { position: relative; min-height: clamp(580px, 84vh, 820px); display: flex; align-items: center; color: #fff; background: #0a0a0b var(--hero-bg) center/cover no-repeat; overflow: hidden; isolation: isolate; padding-block: clamp(3rem, 9vh, 6.5rem); }
.hero--full::before { content: none; }
.hero__overlay { position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background:
		linear-gradient(98deg, rgba(8,8,9,.95) 0%, rgba(8,8,9,.86) 40%, rgba(8,8,9,.42) 70%, rgba(8,8,9,.64) 100%),
		linear-gradient(0deg, rgba(8,8,9,.88) 0%, transparent 40%); }
.hero--full .wrap { position: relative; z-index: 1; }
.hero__inner { max-width: 940px; }
.hero--full .eyebrow--light { color: var(--aqua); }
.hero--full .hero__title { color: #fff; font-size: clamp(2.7rem, 5.2vw, 4.8rem); line-height: .98; text-wrap: balance; }
.hero--full .hero__title em { font-style: normal; color: var(--aqua); }
.hero--full .hero__lead { color: #d8d7d3; max-width: 34em; }
.hero__row { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.6rem; margin-top: 2.1rem; }
.hero--full .hero__price { margin-top: 0; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(4px); }
.hero--full .hero__cta { margin-top: 0; }
.hero--full .hero__cta .btn { min-width: 13.5rem; justify-content: center; }
.hero--full .hero__trust { margin-top: 2.2rem; color: #b9b8bd; }
.hero--full .hero__trust strong { color: #fff; }
.hero__trust-dot { opacity: .45; }
@media (max-width: 640px) {
	.hero__row { flex-direction: column; align-items: stretch; }
	.hero--full .hero__title { font-size: clamp(1.6rem, 7.3vw, 2.3rem); line-height: 1.07; }
	.hero--full .hero__cta { flex-direction: column; }
	.hero--full .hero__cta .btn { justify-content: center; width: 100%; min-width: 0; }
	/* Price box: tag on its own line, then amount + sub side by side (no awkward wrapping). */
	.hero--full .hero__price { width: 100%; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .9rem 1.1rem; }
	.hero__price-tag { flex-basis: 100%; }
	.hero__price-amt { white-space: nowrap; }
}

/* ---- Process (what's included) — bold numbered steps, no icon boxes ---- */
/* Editorial split: heading column left, numbered rows right */
.procx { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.procx__head { position: sticky; top: calc(var(--header-h-full) + 24px); }
.procx__head .btn { margin-top: 1.6rem; }
.procx__list { margin: 0; padding: 0; list-style: none; }
.procx__row { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; padding: 1.7rem 0; border-top: 1px solid var(--line-2); }
.procx__row:last-child { border-bottom: 1px solid var(--line-2); }
.procx__n { font-family: var(--font-display); font-style: italic; font-weight: 800; font-size: clamp(2.4rem, 4vw, 3.4rem); line-height: .9; color: var(--aqua); text-shadow: 2px 2px 0 var(--ink); min-width: 2.2ch; }
.procx__row h3 { font-size: var(--fs-h4); margin-bottom: .4rem; }
.procx__row p { color: var(--slate); max-width: 52ch; }
@media (max-width: 860px) { .procx { grid-template-columns: 1fr; } .procx__head { position: static; } }

/* ---- Lakering page: before/after, price table, upload form ---- */
.ba-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.25rem, 3vw, 2rem); }
.ba-pair { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 1.2rem; box-shadow: var(--shadow-xs); }
.ba-pair__h { font-size: var(--fs-h5); margin-bottom: .9rem; }
.ba-pair__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.ba-shot { position: relative; margin: 0; border-radius: var(--r); overflow: hidden; }
.ba-shot img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.ba-shot figcaption { position: absolute; left: .6rem; top: .6rem; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: rgba(8,8,9,.7); padding: .2rem .6rem; border-radius: var(--r-pill); }
.ba-shot__after { color: var(--ink) !important; background: var(--aqua) !important; }
@media (max-width: 760px) { .ba-grid { grid-template-columns: 1fr; } }

.pris-table { width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-xs); }
.pris-table table { width: 100%; border-collapse: collapse; }
.pris-table th, .pris-table td { padding: .95rem 1.2rem; text-align: left; border-bottom: 1px solid var(--line); }
.pris-table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--slate); font-weight: 700; background: #fbfaf7; }
.pris-table tbody th { font-weight: 600; color: var(--heading); }
.pris-table td { color: var(--slate); white-space: nowrap; }
.pris-table .pris-old { text-decoration: line-through; color: var(--slate-2); }
.pris-table .pris-ours { text-align: right; }
.pris-table thead .pris-ours { color: var(--aqua-700); }
.pris-table tbody .pris-ours strong { color: var(--ink); font-size: 1.05rem; }
.pris-table tr:last-child th, .pris-table tr:last-child td { border-bottom: 0; }
.pris-note { margin: 1rem auto 0; font-size: .88rem; color: var(--slate-2); text-align: center; }

.lak-upload { display: inline-flex; margin-top: .5rem; }
.lak-upload span { display: inline-flex; align-items: center; gap: .5rem; padding: .8rem 1.2rem; border: 1.5px dashed var(--line-2); border-radius: var(--r); font-weight: 700; color: var(--accent-ink); background: #fff; cursor: pointer; transition: border-color .2s var(--ease), background-color .2s var(--ease); }
.lak-upload span .ic { width: 1.1em; height: 1.1em; }
.lak-upload:hover span { border-color: var(--aqua); background: var(--aqua-50); }
.lak-preview { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .8rem; }
.lak-thumb { width: 72px; height: 72px; border-radius: var(--r-sm); overflow: hidden; border: 1px solid var(--line); background: var(--off-white); display: grid; place-items: center; }
.lak-thumb img { width: 100%; height: 100%; object-fit: cover; }
.lak-thumb--file { font-size: .68rem; color: var(--slate-2); padding: .3rem; text-align: center; overflow: hidden; }
.lak-msg { background: #fceaea; border: 1px solid #f0c7c9; color: #b32d2e; border-radius: var(--r); padding: .85rem 1.1rem; font-size: .92rem; margin-bottom: 1rem; }
.lak-receipt__ic { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--aqua); color: var(--ink); margin-bottom: 1rem; }
.lak-receipt__ic .ic { width: 32px; height: 32px; }
.lak-receipt h2 { font-size: var(--fs-h3); }
.lak-receipt p { color: var(--slate); margin: .6rem auto 1.2rem; max-width: 48ch; }
.lak-receipt__no { display: inline-block; padding: .35rem .9rem; border-radius: var(--r-pill); background: var(--ink); color: #fff; font-weight: 700; font-size: .9rem; }

/* ---- Marquee band (scrolling) ------------------------------------------ */
.marquee { background: var(--aqua); color: var(--ink); overflow: hidden; padding: .85rem 0; border-block: 3px solid var(--ink); white-space: nowrap; }
.marquee__track { display: inline-flex; align-items: center; gap: 1.8rem; padding-left: 1.8rem; animation: marquee 34s linear infinite; will-change: transform; }
.marquee__item { font-family: var(--font-display); font-size: 1.4rem; line-height: 1; text-transform: uppercase; letter-spacing: .03em; color: var(--ink); flex: none; }
.marquee__star { display: inline-flex; flex: none; color: var(--ink); }
.marquee__star .ic { width: 18px; height: 18px; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; } }

/* ---- Spec bar (key facts, label/value, no icons) ------------------------ */
.specbar { border-bottom: 1px solid var(--line); background: #fff; }
.specbar__grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }
.specbar__item { padding: 1.35rem 1.4rem 1.25rem; border-left: 1px solid var(--line); }
.specbar__item:first-child { border-left: 0; }
.specbar__item dt { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-2); margin-bottom: .3rem; }
.specbar__item dd { margin: 0; font-family: var(--font-display); font-style: italic; font-weight: 800; font-size: clamp(1.1rem, 1.6vw, 1.45rem); line-height: 1.1; color: var(--ink); text-transform: uppercase; }
@media (max-width: 860px) {
	.specbar__grid { grid-template-columns: 1fr 1fr; }
	.specbar__item:nth-child(odd) { border-left: 0; }
	.specbar__item:nth-child(n+3) { border-top: 1px solid var(--line); }
}

/* ---- Steps -------------------------------------------------------------- */
/* Steps — open numbered rail, no boxes; number and heading share a line */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3.5vw, 3rem); counter-reset: step; }
.step { position: relative; border-top: 3px solid var(--ink); padding-top: 1.2rem; }
.step::before { content: ""; position: absolute; top: -3px; left: 0; width: 56px; height: 3px; background: var(--aqua); }
.step__h { display: flex; align-items: baseline; gap: .65rem; margin-bottom: .55rem; }
.step__num { counter-increment: step; font-family: var(--font-display); font-style: italic; font-weight: 800; font-size: 1.9rem; line-height: 1; color: var(--aqua); text-shadow: 1px 1px 0 var(--ink); flex: none; }
.step__num::before { content: "0" counter(step); }
.step__h h3 { font-size: var(--fs-h5); margin: 0; }
.step h3 { font-size: var(--fs-h5); margin-bottom: .4rem; }
.step p { color: var(--slate); font-size: .98rem; }
.steps__note { display: flex; align-items: center; gap: .6rem; margin-top: clamp(1.5rem, 3vw, 2.4rem); background: var(--off-white, #f4f2ea); border-radius: var(--r, 14px); padding: 1rem 1.3rem; color: var(--slate); font-size: .98rem; line-height: 1.55; }
.steps__note .ic { width: 1.5em; height: 1.5em; color: var(--accent-ink, var(--ink)); flex: none; }
.steps__note strong { color: var(--ink); }

/* ---- Cards (services) --------------------------------------------------- */
.card-grid { display: grid; gap: 1.25rem; }
.card-grid--3 { grid-template-columns: repeat(3, 1fr); }
.card-grid--4 { grid-template-columns: repeat(4, 1fr); }
.card-grid--2 { grid-template-columns: repeat(2, 1fr); }

.card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	padding: 1.6rem 1.5rem;
	box-shadow: var(--shadow-xs);
	transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
	display: flex; flex-direction: column;
}
.card:hover { border-color: var(--ink); }
.card__ic { display: inline-flex; color: var(--aqua-700); margin-bottom: 1rem; }
.card__ic .ic { width: 38px; height: 38px; stroke-width: 1.4; }
.card__title { font-size: var(--fs-h5); margin-bottom: .45rem; }
.card__text { color: var(--slate); font-size: .98rem; }
.card__link { margin-top: auto; padding-top: 1rem; color: var(--accent-ink); font-weight: 700; display: inline-flex; align-items: center; gap: .4rem; }
.card__link .ic { width: 1.1em; height: 1.1em; transition: transform .25s var(--ease); }
.card:hover .card__link .ic { transform: translateX(4px); }

/* List with check icons */
.checklist { display: grid; gap: .7rem; }
.checklist li { display: flex; gap: .65rem; align-items: flex-start; color: var(--slate); }
.checklist .ic { width: 1.25em; height: 1.25em; color: var(--aqua); flex: none; margin-top: .15em; }
.checklist strong { color: var(--heading); font-weight: 600; }
.section--dark .checklist li { color: var(--slate-on-dark); }
.section--dark .checklist .ic { color: var(--aqua-300); }

/* ---- Steam tech (dark, split) ------------------------------------------ */
.tech__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.tech__media { position: relative; }
.tech__img { width: 100%; border-radius: var(--r-xl); box-shadow: var(--shadow-lg); aspect-ratio: 4/3; object-fit: cover; }
.section--dark { background-image: none; }

/* spec-sheet style figures */
.bigstat { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; margin-top: 2.2rem; }
.bigstat > div { border-top: 2px solid var(--aqua); padding-top: .8rem; }
.bigstat__n { font-size: clamp(1.9rem, 3.4vw, 2.7rem); color: #fff; letter-spacing: 0; line-height: 1; }
.bigstat__n em { font-style: italic; color: var(--aqua); }
.bigstat__l { font-size: .86rem; color: var(--slate-on-dark); margin-top: .4rem; }
@media (max-width: 560px) { .bigstat { grid-template-columns: 1fr; gap: 1.1rem; } }

/* ---- Comparison table --------------------------------------------------- */
.compare { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); background: #fff; box-shadow: var(--shadow-xs); }
.compare table { width: 100%; border-collapse: collapse; min-width: 640px; }
.compare th, .compare td { padding: 1rem 1.15rem; text-align: left; border-bottom: 1px solid var(--line); }
.compare thead th { font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; color: var(--slate); font-weight: 700; }
.compare tbody th { font-weight: 600; color: var(--heading); }
.compare td { color: var(--slate); }
.compare .col-rex { background: linear-gradient(180deg, var(--aqua-50), #fff); }
.compare thead .col-rex { color: var(--aqua-700); }
.compare .col-rex.is-head { font-weight: 800; color: var(--aqua-700); font-size: 1rem; letter-spacing: 0; }
.compare tr:last-child td, .compare tr:last-child th { border-bottom: 0; }
.tick { color: var(--aqua); display: inline-flex; }
.tick .ic { width: 1.25em; height: 1.25em; }
.cross { color: #c2666b; font-weight: 700; }

/* ---- Stats band --------------------------------------------------------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.stat { text-align: center; padding: 1.4rem 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-xs); }
.stat__n { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; color: var(--ink); letter-spacing: -.03em; }
.stat__n em { font-style: normal; color: var(--aqua-700); }
.stat__l { font-size: .9rem; color: var(--slate); margin-top: .25rem; }

/* ---- Testimonial -------------------------------------------------------- */
.quote { max-width: 860px; margin-inline: auto; text-align: center; }
.quote__mark { color: var(--aqua); display: inline-flex; }
.quote__mark .ic { width: 46px; height: 46px; }
.quote__text { font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 600; color: var(--heading); line-height: 1.3; letter-spacing: -.01em; margin: 1rem 0 1.4rem; }
.quote__by { color: var(--slate); font-weight: 600; }
.quote__stars { display: inline-flex; gap: 3px; color: #f5a623; margin-bottom: .4rem; }
.quote__stars .ic { width: 1.2em; height: 1.2em; fill: #f5a623; stroke: #f5a623; }

/* ---- Reviews carousel ---- */
.reviews { position: relative; display: flex; align-items: center; gap: .6rem; }
.reviews__track { display: flex; gap: 1.1rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: .5rem .25rem 1rem; flex: 1; scrollbar-width: none; -ms-overflow-style: none; }
.reviews__track::-webkit-scrollbar { display: none; }
/* Review card — dark ticket, no avatar */
.review { scroll-snap-align: start; flex: 0 0 clamp(290px, 33%, 400px); background: var(--ink); border-radius: var(--r-lg); padding: 1.7rem 1.6rem 1.45rem; display: flex; flex-direction: column; gap: 1rem; }
.review__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.review__stars { display: inline-flex; gap: 3px; color: var(--aqua); }
.review__stars .ic { width: .95em; height: .95em; fill: var(--aqua); stroke: var(--aqua); }
.review__src { font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--slate-2); }
.review__text { color: #d8d7d2; font-size: .98rem; line-height: 1.65; flex: 1; }
.review__by { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; border-top: 1px solid var(--line-dark); padding-top: 1rem; }
.review__name { font-family: var(--font-display); font-style: italic; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; color: #fff; font-size: 1.05rem; }
.review__meta { font-size: .82rem; color: var(--slate-2); }
.reviews__nav { flex: none; width: 46px; height: 46px; border-radius: var(--r-sm); background: var(--ink); border: 1px solid var(--ink); color: #fff; display: grid; place-items: center; transition: background-color .2s var(--ease), color .2s var(--ease); }
.reviews__nav:hover { background: var(--aqua); border-color: var(--aqua); color: var(--ink); }
.reviews__nav .ic { width: 20px; height: 20px; }
.reviews__nav--prev .ic { transform: rotate(180deg); }
.reviews__dots { display: flex; justify-content: center; gap: .4rem; margin-top: .25rem; }
.reviews__dots button { width: 8px; height: 8px; border-radius: 999px; background: var(--line-2); transition: background-color .2s var(--ease), width .2s var(--ease); }
.reviews__dots button.is-active { background: var(--aqua); width: 22px; }
@media (max-width: 700px) { .reviews__nav { display: none; } .review { flex-basis: 84%; } }

/* ---- Reviews masonry (anmeldelser page) ---- */
.reviews-stat { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem .8rem; margin-top: 1.2rem; color: var(--slate); font-size: .98rem; }
.reviews-stat strong { color: var(--ink); }
.reviews-stat__stars { display: inline-flex; gap: 2px; color: var(--aqua); }
.reviews-stat__stars .ic { width: 1.1em; height: 1.1em; fill: var(--aqua); stroke: var(--aqua); }
.reviews-masonry { columns: 3 300px; column-gap: 1.25rem; }
.review--masonry { display: block; break-inside: avoid; margin-bottom: 1.25rem; flex: none; }
@media (max-width: 600px) { .reviews-masonry { columns: 1; } }

/* ---- Price offer (front-page headline price) --------------------------- */
.offer-sec { padding-top: clamp(2rem, 4vw, 3rem); }
.offer { display: grid; grid-template-columns: 1.3fr .9fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; background: linear-gradient(155deg, var(--ink), var(--ink-3)); border-radius: var(--r-xl); padding: clamp(1.75rem, 4vw, 3.25rem); color: var(--slate-on-dark); position: relative; overflow: hidden; box-shadow: var(--shadow-lg); }
/* hazard stripe — deliberate automotive detail along the top edge */
.offer::after { content: ""; position: absolute; inset: 0 0 auto 0; height: 7px; background: var(--hazard); pointer-events: none; }

/* Crest watermark — large rotated logo fading out of dark surfaces */
.offer::before, .ctaband::before, .section--dark::before {
	content: ""; position: absolute; right: -4%; bottom: -16%; z-index: 0;
	width: clamp(300px, 36vw, 580px); aspect-ratio: 1651 / 1315;
	background: url('../img/carshield.svg') center / contain no-repeat;
	opacity: .07; transform: rotate(-12deg); pointer-events: none;
	-webkit-mask-image: linear-gradient(112deg, #000 28%, transparent 76%);
	mask-image: linear-gradient(112deg, #000 28%, transparent 76%);
}
.section--dark { position: relative; overflow: hidden; }
.section--dark > .wrap { position: relative; z-index: 1; }
.offer > * { position: relative; z-index: 1; }
.offer__title { color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height: 1.12; letter-spacing: -.02em; }
.offer__title em { font-style: normal; color: var(--aqua-300); }
.offer__lead { color: var(--slate-on-dark); margin-top: 1rem; max-width: 46ch; }
.offer__incl-label { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--aqua); margin: 1.6rem 0 .7rem; }
.offer__incl { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 2rem; margin: 0 0 1.9rem; }
.offer__incl li { color: #e2e1dc; font-size: .97rem; padding-left: 1.1rem; position: relative; }
.offer__incl li::before { content: ""; position: absolute; left: 0; top: .52em; width: 7px; height: 7px; background: var(--aqua); }
.offer__incl strong { color: #fff; font-weight: 700; }
.offer__card { background: rgba(255,255,255,.055); border: 1px solid var(--line-dark); border-radius: var(--r-lg); padding: 1.6rem 1.5rem; backdrop-filter: blur(6px); position: relative; }
.offer__ribbon { position: absolute; top: 1.2rem; right: 1.2rem; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #141414; background: var(--aqua-300); padding: .28rem .7rem; border-radius: var(--r-pill); box-shadow: var(--shadow-sm); }
.offer__big { padding-bottom: 1.2rem; border-bottom: 1px solid var(--line-dark); margin-bottom: 1.1rem; }
.offer__big-k { display: block; font-size: .8rem; color: var(--slate-on-dark); font-weight: 600; }
.offer__big-n { display: block; font-size: clamp(3rem, 7vw, 4.2rem); font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: 1; margin: .12rem 0; }
.offer__big-n span { font-size: 1.1rem; font-weight: 700; color: var(--aqua-300); margin-left: 4px; letter-spacing: 0; }
.offer__big-v { display: block; font-size: .85rem; color: var(--aqua-300); font-weight: 600; }
.offer__pkgs { display: grid; gap: .6rem; }
.offer__pkg { display: grid; grid-template-columns: 1fr auto; gap: .05rem .8rem; align-items: center; padding: .6rem .85rem; background: rgba(255,255,255,.04); border-radius: var(--r-sm); }
.offer__pkg-n { color: #fff; font-weight: 700; font-size: .94rem; }
.offer__pkg-d { grid-column: 1; font-size: .79rem; color: var(--slate-2); }
.offer__pkg i { grid-row: 1 / span 2; grid-column: 2; font-style: normal; font-weight: 800; color: var(--aqua-300); align-self: center; white-space: nowrap; }
.offer__note { font-size: .82rem; color: var(--slate-2); margin: 1.05rem 0 1.1rem; line-height: 1.5; }
.offer__note strong { color: #fff; font-weight: 700; }
.offer__note .ic { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.2em; margin-right: .25rem; color: var(--aqua-300); }
.offer__btn { width: 100%; justify-content: center; }
@media (max-width: 880px) { .offer { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .offer__incl { grid-template-columns: 1fr; } }

/* ---- S365 / pricing teaser --------------------------------------------- */
.promo { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; background: var(--ink); color: var(--slate-on-dark); border-radius: var(--r-xl); padding: clamp(1.75rem, 4vw, 3rem); position: relative; overflow: hidden; }
.promo::after { content: none; }
.promo > * { position: relative; z-index: 1; }
.promo h2 { color: #fff; }
.promo .price { font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: 1; }
.promo .price span { font-size: 1rem; font-weight: 600; color: var(--aqua-300); letter-spacing: 0; }
.promo__card { background: rgba(255,255,255,.05); border: 1px solid var(--line-dark); border-radius: var(--r-lg); padding: 1.5rem; backdrop-filter: blur(4px); }
.promo .checklist li { color: var(--slate-on-dark); }
.promo .checklist strong { color: #fff; }
.promo .checklist .ic { color: var(--aqua-300); }

/* ---- Coverage ----------------------------------------------------------- */
.coverage__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.region { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 1.4rem 1.5rem; box-shadow: var(--shadow-xs); }
.region h3 { font-size: var(--fs-h5); display: flex; align-items: center; gap: .55rem; margin-bottom: .6rem; }
.region h3 .ic { width: 1.2em; height: 1.2em; color: var(--aqua-700); }
.region p { color: var(--slate); font-size: .95rem; }
.city-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.city-pill { font-size: .9rem; padding: .45rem .9rem; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--line); color: #364046; transition: border-color .2s var(--ease), color .2s var(--ease), background-color .2s var(--ease); }
.city-pill:hover { border-color: var(--aqua); color: var(--accent-ink); background: var(--aqua-50); }

/* ---- CTA band ----------------------------------------------------------- */
.ctaband { background: linear-gradient(150deg, var(--ink), var(--ink-3)); color: #fff; border-radius: var(--r-xl); padding: clamp(2rem, 5vw, 3.4rem); text-align: center; position: relative; overflow: hidden; }
.ctaband::after { content: ""; position: absolute; inset: 0 0 auto 0; height: 7px; background: var(--hazard); }
.ctaband > * { position: relative; z-index: 1; }
.ctaband h2 { color: #fff; }
.ctaband p { color: var(--slate-on-dark); max-width: 52ch; margin: .9rem auto 1.6rem; font-size: var(--fs-lead); }
.ctaband .btn-row { justify-content: center; }

/* ---- Footer (RustStop — dark, faint undercarriage background) ----------- */
.site-footer { position: relative; background: #0b0b0c; color: var(--slate-on-dark); padding-block: clamp(3rem, 6vw, 4.75rem) 0; margin-top: var(--section-y); overflow: hidden; isolation: isolate; }
.site-footer::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--footer-bg) center / cover no-repeat; opacity: .55; }
.site-footer::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: var(--hazard), linear-gradient(180deg, rgba(11,11,12,.60) 0%, rgba(11,11,12,.42) 38%, rgba(11,11,12,.86) 100%);
	background-size: 100% 7px, auto;
	background-position: top, center;
	background-repeat: no-repeat, no-repeat; }

/* CTA band */
.ftr-cta { display: grid; grid-template-columns: 1fr auto; gap: 1.6rem 2.5rem; align-items: center; padding-bottom: 2.4rem; margin-bottom: 2.6rem; border-bottom: 1px solid var(--line-dark); }
.ftr-cta h2 { color: #fff; font-size: clamp(1.55rem, 2.6vw, 2.3rem); line-height: 1.1; letter-spacing: -.02em; margin-top: .35rem; }
@media (min-width: 760px) { .ftr-cta h2 { white-space: nowrap; } }
.ftr-cta__act { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; justify-content: flex-end; }
.ftr-phone { display: inline-flex; align-items: center; gap: .5rem; font-weight: 800; color: #fff; font-size: 1.2rem; }
.ftr-phone .ic { width: 1.05em; height: 1.05em; color: var(--aqua); }
.ftr-phone:hover { color: var(--aqua); }

/* Main columns */
.ftr-main { display: grid; grid-template-columns: 1.7fr 1fr 1.2fr; gap: 2rem 2.5rem; padding-bottom: 2.4rem; }
.ftr-brand { display: flex; align-items: flex-start; gap: 1.3rem; }
.ftr-brand .brand--footer { flex: none; }
.ftr-pitch { font-size: .96rem; line-height: 1.6; max-width: 34ch; color: var(--slate-on-dark); margin-bottom: 1.1rem; }
.ftr-contact { display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; }
.ftr-contact a { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: #fff; font-size: .96rem; }
.ftr-contact .ic { width: 1.05em; height: 1.05em; color: var(--aqua); flex: none; }
.ftr-contact a:hover { color: var(--aqua); }
.ftr-h { font-size: .76rem; text-transform: uppercase; letter-spacing: .16em; color: var(--aqua); margin-bottom: 1.1rem; font-weight: 800; }
.ftr-links ul { display: grid; gap: .65rem; }
.ftr-links a { color: var(--slate-on-dark); font-size: .96rem; transition: color .2s var(--ease), padding-left .2s var(--ease); }
.ftr-links a:hover { color: #fff; padding-left: .3rem; }
.ftr-find { position: relative; }
.ftr-addr { font-style: normal; font-size: .96rem; line-height: 1.75; color: var(--slate-on-dark); margin-bottom: .85rem; }
.ftr-addr strong { color: #fff; }
.ftr-hours { display: flex; align-items: center; gap: .45rem; color: #fff; font-weight: 600; font-size: .94rem; margin-bottom: 1.2rem; }
.ftr-hours .ic { width: 1.05em; height: 1.05em; color: var(--aqua); }

/* Bottom */
.ftr-bottom { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; padding: 1.4rem 0; border-top: 1px solid var(--line-dark); font-size: .86rem; color: var(--slate-2); }
.ftr-legal { display: flex; gap: 1.3rem; }
.ftr-legal a:hover { color: var(--aqua); }
@media (max-width: 880px) {
	.ftr-cta { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.ftr-cta__text { display: flex; flex-direction: column; align-items: center; }
	.ftr-cta__act { justify-content: center; width: 100%; }
	.ftr-main { grid-template-columns: 1fr 1fr; }
	.ftr-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.ftr-cta__act { flex-direction: column; gap: .9rem; }
	.ftr-cta__act .btn { width: 100%; max-width: 360px; justify-content: center; }
	.ftr-main { grid-template-columns: 1fr; gap: 2.2rem; text-align: center; }
	.ftr-brand { flex-direction: column; align-items: center; gap: 1rem; }
	.ftr-pitch { margin-inline: auto; }
	.ftr-contact { justify-content: center; }
	.ftr-links a:hover { padding-left: 0; }
	.ftr-hours { justify-content: center; }
	.ftr-bottom { flex-direction: column; justify-content: center; text-align: center; gap: .5rem; padding-block: 1.3rem 1.6rem; }
	.ftr-legal { justify-content: center; gap: 1rem; }
}

/* ---- Reveal animation --------------------------------------------------- */
/* Hidden only when JS is present (no-JS users always see content). */
.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
[data-reveal].is-visible { opacity: 1; transform: none; }
[data-reveal][data-delay="1"] { transition-delay: .08s; }
[data-reveal][data-delay="2"] { transition-delay: .16s; }
[data-reveal][data-delay="3"] { transition-delay: .24s; }
[data-reveal][data-delay="4"] { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) { .js [data-reveal], [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; } }

/* ---- Prose (content pages) --------------------------------------------- */
.prose { font-size: 1.08rem; color: var(--slate); }
.prose > * + * { margin-top: 1.1rem; }
.prose h2 { font-size: var(--fs-h3); margin-top: 2.2rem; }
.prose h3 { font-size: var(--fs-h4); margin-top: 1.6rem; }
.prose a { color: var(--accent-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.prose ul { display: grid; gap: .5rem; padding-left: 1.2rem; list-style: disc; }

/* ---- Inner page hero + lists ---- */
.page-hero { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(.5rem, 2vw, 1.25rem); }
.page-hero__img { width: 100%; border-radius: var(--r-xl); box-shadow: var(--shadow-lg); aspect-ratio: 16 / 7; object-fit: cover; margin-top: 1.5rem; }
.pricelist { display: grid; gap: .4rem; }
.pricelist li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--line); font-size: .96rem; color: var(--slate); }
.pricelist li:last-child { border-bottom: 0; }
.pricelist li span:last-child { color: var(--ink); font-weight: 700; white-space: nowrap; }
.pricelist em { color: var(--slate-2); font-style: normal; font-size: .85rem; }
.gc-card { align-items: flex-start; }
.gc-card__amt { font-size: 1.7rem; font-weight: 800; color: var(--ink); letter-spacing: -.02em; margin: .2rem 0 1rem; }

/* ---- Premium price cards (priser page) --------------------------------- */
.card--price { position: relative; }
.card--price.is-featured { border-color: var(--aqua); box-shadow: 0 0 0 1px var(--aqua), var(--shadow); }
.card__ribbon { position: absolute; top: 1.1rem; right: 1.1rem; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #141414; background: var(--aqua-300); padding: .26rem .65rem; border-radius: var(--r-pill); box-shadow: var(--shadow-sm); }
.pricecard__amt { font-size: clamp(2.6rem, 5vw, 3.4rem); font-weight: 800; color: var(--ink); letter-spacing: -.03em; line-height: 1; margin: .35rem 0 .2rem; }
.pricecard__amt span { font-size: 1.1rem; font-weight: 700; color: var(--aqua-700); }
.pricecard__sub { font-size: .9rem; color: var(--slate); }
.pricecard__btn { width: 100%; justify-content: center; margin-top: auto; }
.card--price .checklist { margin-bottom: 1.4rem; }
.pricecard__foot { margin-top: 1.5rem; color: var(--slate); font-size: .96rem; max-width: 62ch; }
.pricecard__foot strong { color: var(--ink); }

/* ---- Generic featured card ---- */
.card.is-featured { position: relative; border-color: var(--aqua); box-shadow: 0 0 0 1px var(--aqua), var(--shadow); }

/* ---- Gavekort page ---- */
.gc-hero { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.gc-visual { display: grid; place-items: center; }
.gc-visual__card { width: 100%; max-width: 400px; aspect-ratio: 1.6 / 1; border-radius: var(--r-lg); background: linear-gradient(150deg, var(--ink), var(--ink-3)); color: #fff; padding: 1.5rem 1.7rem; box-shadow: var(--shadow-lg); position: relative; overflow: hidden; display: flex; flex-direction: column; }
.gc-visual__card::after { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 90% at 100% 0, rgba(255,196,0,.42), transparent 60%); }
.gc-visual__card > * { position: relative; z-index: 1; }
.gc-visual__top { display: flex; justify-content: space-between; align-items: center; }
.gc-visual__brand { font-weight: 800; font-size: 1.25rem; letter-spacing: .02em; }
.gc-visual__brand i { color: var(--aqua-300); font-style: normal; }
.gc-visual__ic { color: var(--aqua-300); }
.gc-visual__ic .ic { width: 1.5em; height: 1.5em; }
.gc-visual__label { margin-top: auto; font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; color: var(--aqua-300); font-weight: 700; }
.gc-visual__amt { font-size: clamp(2.2rem, 5vw, 3rem); font-weight: 800; letter-spacing: -.02em; line-height: 1; margin-top: .15rem; }
.gc-visual__foot { margin-top: .85rem; font-size: .76rem; color: var(--slate-on-dark); line-height: 1.5; }
.gc-amt { text-align: center; align-items: center; }
.gc-amt .card__ic { margin-inline: auto; }
.gc-amt .gc-card__amt { margin: .3rem 0 .2rem; }
.gc-amt__btn { width: 100%; justify-content: center; margin-top: auto; }
.gc-uses { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.gc-uses__media img { width: 100%; border-radius: var(--r-xl); box-shadow: var(--shadow-lg); aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 880px) { .gc-hero, .gc-uses { grid-template-columns: 1fr; } .gc-uses__media { order: -1; } }

/* ---- Contact band ---- */
.contactband { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; align-items: center; justify-content: space-between; background: linear-gradient(150deg, var(--ink), var(--ink-3)); color: #fff; border-radius: var(--r-xl); padding: clamp(1.5rem, 3.5vw, 2.4rem) clamp(1.5rem, 4vw, 2.75rem); position: relative; overflow: hidden; }
.contactband::after { content: none; }
.contactband > * { position: relative; z-index: 1; }
.contactband h2 { color: #fff; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.contactband p { color: var(--slate-on-dark); margin-top: .4rem; }

/* ---- Abonnement plan cards ---- */
.plan { align-items: flex-start; }
.plan__ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--r); background: var(--aqua-50); color: var(--aqua-700); margin-bottom: 1rem; }
.plan__ic .ic { width: 24px; height: 24px; }
.plan__tag { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 700; color: var(--aqua-700); margin-top: auto; padding-top: .9rem; }
.plan__tag .ic { width: 1.1em; height: 1.1em; }
.plan__btn { width: 100%; justify-content: center; margin-top: 1rem; }
.plan__note { text-align: center; color: var(--slate); margin-top: 1.4rem; }
.plan__note a { color: var(--accent-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ---- Gavekort order form ---- */
.gift-form { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); padding: clamp(1.5rem, 4vw, 2.5rem); box-shadow: var(--shadow-sm); }
.gift-block { margin-bottom: 1.6rem; }
.gift-block > .bk-label { display: block; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--slate); margin-bottom: .65rem; }
.gift-chips { display: flex; flex-wrap: wrap; gap: .6rem; }
.gift-chip { padding: .65rem 1.25rem; border-radius: var(--r-pill); border: 1.5px solid var(--line-2); background: #fff; font-weight: 700; font-size: 1rem; color: var(--ink); transition: border-color .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease); }
.gift-chip:hover { border-color: var(--aqua); color: var(--accent-ink); }
.gift-chip.is-active { background: var(--aqua); border-color: var(--aqua); color: #141414; }
.gift-custom { display: block; margin-top: 1rem; font-size: .9rem; color: var(--slate); font-weight: 600; max-width: 260px; }
.gift-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; margin-bottom: 1.25rem; }
.gift-field { display: block; font-size: .9rem; color: var(--slate); font-weight: 600; }
.gift-custom input, .gift-field input, .gift-field select, .gift-field textarea { display: block; width: 100%; margin-top: .45rem; font: inherit; font-size: 1rem; color: var(--text); background: #fff; border: 1.5px solid var(--line-2); border-radius: var(--r); padding: .8rem 1rem; transition: border-color .2s var(--ease), box-shadow .2s var(--ease); }
.gift-custom input:focus, .gift-field input:focus, .gift-field select:focus, .gift-field textarea:focus { outline: none; border-color: var(--aqua); box-shadow: 0 0 0 4px var(--aqua-50); }
.gift-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C6A70' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M8 10l4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; background-size: 18px; padding-right: 2.6rem; cursor: pointer; }
.gift-col2 { grid-column: 1 / -1; }
.gift-opt { color: var(--slate-2); font-weight: 500; }
.gift-accept { display: flex; gap: .65rem; align-items: flex-start; font-size: .95rem; color: var(--slate); cursor: pointer; margin-bottom: 1.2rem; }
.gift-accept input { margin-top: .2rem; width: 18px; height: 18px; accent-color: var(--aqua); flex: none; }
.gift-msg { background: #fceaea; border: 1px solid #f0c7c9; color: #b32d2e; border-radius: var(--r); padding: .85rem 1.1rem; font-size: .92rem; margin-bottom: 1rem; }
.gift-submit { width: 100%; justify-content: center; }
.gift-note { text-align: center; color: var(--slate); font-size: .85rem; margin-top: .85rem; }
.gift-receipt { text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); padding: clamp(1.75rem, 4vw, 3rem); box-shadow: var(--shadow); }
.gift-receipt__ic { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--aqua); color: #141414; margin-bottom: 1rem; }
.gift-receipt__ic .ic { width: 32px; height: 32px; }
.gift-receipt h2 { font-size: var(--fs-h3); }
.gift-receipt p { color: var(--slate); margin: .6rem auto 1.2rem; max-width: 48ch; }
.gift-receipt__sum { display: inline-flex; gap: 1rem; align-items: baseline; background: var(--aqua-50); border-radius: var(--r); padding: .7rem 1.3rem; }
.gift-receipt__sum b { font-size: 1.4rem; font-weight: 800; color: var(--ink); }
.gift-receipt__ref { display: block; margin-top: 1rem; font-size: .85rem; color: var(--slate-2); }
@media (max-width: 560px) { .gift-grid { grid-template-columns: 1fr; } }

/* ---- Service detail split rows ---- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.split__media img { width: 100%; border-radius: var(--r-xl); box-shadow: var(--shadow-lg); aspect-ratio: 4 / 3; object-fit: cover; }
.split--rev .split__media { order: 2; }
.svc-card { text-decoration: none; }
.svc-card .card__link { margin-top: auto; }
@media (max-width: 880px) { .split { grid-template-columns: 1fr; } .split__media, .split--rev .split__media { order: -1; } }

/* ---- Accordion (FAQ) ---------------------------------------------------- */
/* Two independent columns: expanding an item only affects its own column */
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; align-items: start; }
@media (max-width: 860px) { .faq-grid { grid-template-columns: 1fr; gap: 0; } }
.acc__item { background: #fff; border: 1px solid var(--line); border-radius: var(--r); margin-bottom: .75rem; overflow: hidden; transition: border-color .25s var(--ease), box-shadow .25s var(--ease); }
.acc__item.is-open { border-color: var(--line-2); box-shadow: var(--shadow-sm); }
.acc__trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.15rem 1.3rem; font-weight: 600; font-size: 1.05rem; color: var(--heading); text-align: left; }
.acc__trigger .ic { width: 1.3em; height: 1.3em; color: var(--aqua-700); transition: transform .3s var(--ease); flex: none; }
.acc__item.is-open .acc__trigger .ic { transform: rotate(180deg); }
.acc__body { max-height: 0; overflow: hidden; transition: max-height .35s var(--ease); }
.acc__item.is-open .acc__body { max-height: 420px; }
.acc__body-inner { padding: 0 1.3rem 1.25rem; color: var(--slate); }

/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 1024px) {
	.hero__grid { grid-template-columns: 1fr; }
	.hero__media { order: -1; }
	.hero__badge { left: 14px; }
	.tech__grid, .promo { grid-template-columns: 1fr; }
	.card-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 980px) {
	/* Header collapses to flex: logo left, CTA + burger right (drawer takes over the nav) */
	.navbar__inner { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
	.nav { display: none; }
	.brand--center { justify-self: auto; }
	.brand__crest { height: 72px; margin-block: -10px; }
	.nav__phone { display: none; }
	.nav__actions { gap: .5rem; }
	.nav-toggle { display: block; }
	.steps, .card-grid--3, .coverage__grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
	.card-grid--4, .card-grid--2 { grid-template-columns: 1fr; }
	.stats { grid-template-columns: 1fr 1fr; }
	.bigstat { gap: 1.5rem; }
}

@media (max-width: 420px) {
	.brand__crest { height: 60px; margin-block: -8px; }
	.nav__actions .btn--primary { padding: .55rem .85rem; font-size: .8rem; }
	.nav-toggle { width: 42px; height: 42px; }
}

/* ── Fast mobil-CTA-bar (ring + book) — kun på telefoner ──────────────────── */
.mcta { display: none; }
@media (max-width: 768px) {
	.mcta {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
		display: grid; grid-template-columns: 1fr 1fr;
		box-shadow: 0 -4px 18px rgba(16, 22, 28, .28);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.mcta a { display: flex; align-items: center; justify-content: center; gap: .45rem; min-width: 0; min-height: 56px; padding: 0 .5rem; font-weight: 800; font-size: .98rem; line-height: 1; white-space: nowrap; text-decoration: none; -webkit-tap-highlight-color: transparent; }
	.mcta__ic { width: 1.3em; height: 1.3em; flex: none; }
	.mcta__call { background: var(--aqua); color: #15191C; }          /* mørk på gul */
	.mcta__book { background: var(--ink); color: #fff; }
	.mcta__book .mcta__ic { color: var(--aqua); }                     /* gult ikon */
	.mcta a:active { filter: brightness(.93); }
	body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
}
