Initial React project

This commit is contained in:
Johan
2026-03-15 00:05:56 +01:00
parent 8051a8abd2
commit 9133352d38
20 changed files with 199 additions and 201 deletions

BIN
dist/assets/appstore-DX03xcIM.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 KiB

BIN
dist/assets/cv-iphone2-CvgZEVJe.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 KiB

20
dist/assets/index-B8uZZaoK.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
dist/assets/playstore-B4TSIa9H.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

4
dist/index.html vendored
View File

@@ -10,8 +10,8 @@
<title>Arbejd.com | Din hurtigste vej til dit næste job</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
<script type="module" crossorigin src="/assets/index-DnZKRgos.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-B4NkXYHm.css">
<script type="module" crossorigin src="/assets/index-B8uZZaoK.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BYNOGfOg.css">
</head>
<body>
<div id="root"></div>

File diff suppressed because one or more lines are too long

View File

@@ -19,6 +19,7 @@ import { ForVirksomhederPage } from './presentation/companies/pages/ForVirksomhe
import { JobSearchersPage } from './presentation/jobseekers/pages/JobSearchersPage';
import { ContactPage } from './presentation/contact/pages/ContactPage';
import { FaqPage } from './presentation/faq/pages/FaqPage';
import { PrivacyPolicyPage } from './presentation/privacy/pages/PrivacyPolicyPage';
import {
SimulatorPage,
type SimulatorEvaluationSelection,
@@ -43,6 +44,7 @@ function App() {
const isJobseekersRoute = useMemo(() => window.location.pathname === '/for-jobsogere' || window.location.pathname === '/jobsearchers', []);
const isContactRoute = useMemo(() => window.location.pathname === '/kontakt' || window.location.pathname === '/contact', []);
const isFaqRoute = useMemo(() => window.location.pathname === '/faq', []);
const isPrivacyRoute = useMemo(() => window.location.pathname === '/privatlivspolitik' || window.location.pathname === '/privacy-policy', []);
const isJobordbogenEntryRoute = useMemo(() => window.location.pathname.startsWith('/jobordbogen/') && window.location.pathname !== '/jobordbogen/', []);
const isJobordbogenRoute = useMemo(() => window.location.pathname === '/jobordbogen' || window.location.pathname === '/academy', []);
const initialAuthenticated = useMemo(() => Boolean(window.localStorage.getItem('token')), []);
@@ -137,6 +139,10 @@ function App() {
return <FaqPage />;
}
if (isPrivacyRoute) {
return <PrivacyPolicyPage />;
}
if (isJobordbogenEntryRoute) {
return <JobordbogenEntryPage />;
}

BIN
src/assets/appstore.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 KiB

BIN
src/assets/cv-iphone2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 KiB

BIN
src/assets/playstore.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@@ -187,12 +187,12 @@ const faqSections: Record<FaqCategory, FaqSection> = {
},
};
const categoryOrder: FaqCategory[] = ['jobseekers', 'companies', 'account', 'payment'];
const categoryOrder: FaqCategory[] = ['jobseekers', 'account', 'payment'];
function initialCategoryFromHash(): FaqCategory {
const hash = window.location.hash.toLowerCase();
if (hash.includes('for-jobs-gere') || hash.includes('for-jobsogere')) return 'jobseekers';
if (hash.includes('for-virksomheder')) return 'companies';
if (hash.includes('for-virksomheder')) return 'jobseekers';
if (hash.includes('brugerprofil')) return 'account';
if (hash.includes('betaling') || hash.includes('abonnement')) return 'payment';
return 'jobseekers';
@@ -300,4 +300,3 @@ export function FaqPage() {
</div>
);
}

View File

@@ -2,7 +2,9 @@ import { type CSSProperties } from 'react';
import './homepage.css';
import { SiteFooter } from '../../shared/components/SiteFooter';
import { SiteNavbar } from '../../shared/components/SiteNavbar';
import appStoreImage from '../../../assets/appstore.png';
import jobSearchIphoneImage from '../../../assets/jobsearch-iphone.png';
import playStoreImage from '../../../assets/playstore.jpg';
import screen2Image from '../../../assets/screen2.png';
interface IconifyIconProps {
@@ -27,6 +29,12 @@ const trustedCompanyLogos = [
'https://cdn.prod.website-files.com/5d4a8e9cc03a64b5d34a42b4/6086b302bd1bed78e2c84ebe_Midtfjord.svg',
];
const adultPortraits = Array.from({ length: 36 }, (_, index) => {
const group = index % 2 === 0 ? 'women' : 'men';
const image = ((index * 7) % 96) + 1;
return `https://randomuser.me/api/portraits/${group}/${image}.jpg`;
});
const floatingPeople = Array.from({ length: 36 }, (_, index) => {
const row = Math.floor(index / 9);
const col = index % 9;
@@ -35,7 +43,7 @@ const floatingPeople = Array.from({ length: 36 }, (_, index) => {
return {
id: index,
src: `https://i.pravatar.cc/60?img=${(index % 70) + 1}`,
src: adultPortraits[index],
top,
left,
duration: 5 + (index % 5),
@@ -300,86 +308,7 @@ export function HomePage() {
className="relative w-full h-full rounded-[2.8rem] bg-black overflow-hidden shadow-[inset_0_0_10px_rgba(0,0,0,0.1)] border border-gray-800/50 isolate"
style={{ WebkitMaskImage: '-webkit-radial-gradient(white, black)' }}
>
<div className="absolute inset-0 bg-black overflow-y-auto homepage-no-scrollbar pb-16">
<div className="h-16 w-full" />
<div className="flex gap-4 px-5 pb-4">
<div className="w-24 h-24 rounded-[1.4rem] bg-gradient-to-br from-indigo-500 to-teal-400 p-[1px] shrink-0 shadow-lg">
<div className="w-full h-full bg-gray-900/20 backdrop-blur-sm rounded-[1.3rem] flex items-center justify-center">
<IconifyIcon icon="solar:case-minimalistic-linear" className="text-4xl text-white drop-shadow-md" style={{ strokeWidth: 1.5 }} />
</div>
</div>
<div className="flex flex-col pt-1 w-full">
<h1 className="text-white text-xl tracking-tight font-medium leading-tight">Arbejd.com</h1>
<p className="text-gray-400 text-xs mt-0.5">Ansæt &amp; find jobs</p>
<div className="mt-auto flex items-center justify-between">
<button type="button" className="bg-blue-600 text-white text-sm font-medium rounded-full px-5 py-1.5">HENT</button>
<IconifyIcon icon="solar:export-linear" className="text-blue-500 text-xl" style={{ strokeWidth: 1.5 }} />
</div>
</div>
</div>
<div className="flex items-center justify-between px-5 py-3 border-y border-gray-800/60 mt-2">
<div className="flex flex-col items-center">
<span className="text-gray-500 text-xs font-medium tracking-wide uppercase">1.2K anmeld.</span>
<span className="text-gray-300 text-lg font-medium">4.8</span>
<div className="flex text-gray-500 text-xs gap-0.5 mt-0.5">
<IconifyIcon icon="solar:star-linear" className="text-white" style={{ strokeWidth: 1.5 }} />
<IconifyIcon icon="solar:star-linear" className="text-white" style={{ strokeWidth: 1.5 }} />
<IconifyIcon icon="solar:star-linear" className="text-white" style={{ strokeWidth: 1.5 }} />
<IconifyIcon icon="solar:star-linear" className="text-white" style={{ strokeWidth: 1.5 }} />
<IconifyIcon icon="solar:star-linear" className="text-white" style={{ strokeWidth: 1.5 }} />
</div>
</div>
<div className="w-px h-8 bg-gray-800/60" />
<div className="flex flex-col items-center">
<span className="text-gray-500 text-xs font-medium tracking-wide uppercase">Alder</span>
<span className="text-gray-300 text-lg font-medium">4+</span>
<span className="text-gray-500 text-xs mt-1">År</span>
</div>
<div className="w-px h-8 bg-gray-800/60" />
<div className="flex flex-col items-center">
<span className="text-gray-500 text-xs font-medium tracking-wide uppercase">Hitliste</span>
<span className="text-gray-300 text-lg font-medium">#1</span>
<span className="text-gray-500 text-xs mt-1">Erhverv</span>
</div>
</div>
<div className="mt-5">
<div className="flex gap-3 overflow-x-auto px-5 pb-4 snap-x snap-mandatory homepage-no-scrollbar">
<div className="w-48 h-[22rem] rounded-[1.5rem] bg-[#0a0a0a] border border-gray-800 shrink-0 snap-center relative overflow-hidden flex flex-col items-center pt-6 px-4">
<div className="w-full text-left text-white/90 text-sm font-medium mb-4">Find jobs</div>
<div className="w-full h-24 rounded-xl bg-gray-900 border border-gray-800 mb-3 relative overflow-hidden">
<div className="absolute inset-0 bg-gradient-to-br from-indigo-500/10 to-teal-500/10" />
</div>
<div className="w-full h-12 rounded-lg bg-gray-900 border border-gray-800 mb-2" />
<div className="w-full h-12 rounded-lg bg-gray-900 border border-gray-800" />
</div>
<div className="w-48 h-[22rem] rounded-[1.5rem] bg-[#0a0a0a] border border-gray-800 shrink-0 snap-center relative overflow-hidden flex flex-col items-center pt-6 px-4">
<div className="w-full text-left text-white/90 text-sm font-medium mb-4">Håndter talent</div>
<div className="w-full h-16 rounded-xl bg-gray-900 border border-gray-800 mb-2 flex items-center px-3 gap-3">
<div className="w-8 h-8 rounded-full bg-gray-800" />
<div className="flex-1 h-2 rounded bg-gray-800" />
</div>
<div className="w-full h-16 rounded-xl bg-gray-900 border border-gray-800 mb-2 flex items-center px-3 gap-3">
<div className="w-8 h-8 rounded-full bg-gray-800" />
<div className="flex-1 h-2 rounded bg-gray-800" />
</div>
<div className="w-full h-16 rounded-xl bg-gray-900 border border-gray-800 mb-2 flex items-center px-3 gap-3">
<div className="w-8 h-8 rounded-full bg-gray-800" />
<div className="flex-1 h-2 rounded bg-gray-800" />
</div>
</div>
</div>
</div>
<div className="px-5 mt-2 pb-8">
<h2 className="text-white text-sm font-medium mb-2">Beskrivelse</h2>
<p className="text-gray-400 text-xs leading-relaxed font-normal">
Arbejd.com er den ultimative platform til at finde jobs og ansætte de bedste freelancere. Uanset om du vil fremme din karriere eller opbygge dit drømmehold, forbinder vi dig med de rigtige muligheder globalt.
</p>
</div>
</div>
<img src={appStoreImage} alt="Arbejd.com App Store view" className="absolute inset-0 w-full h-full object-cover z-0" />
<div className="absolute top-0 inset-x-0 h-24 bg-gradient-to-b from-black/80 via-black/40 to-transparent z-10 pointer-events-none" />
<div className="absolute top-2.5 left-1/2 -translate-x-1/2 w-[100px] h-[30px] bg-black rounded-full z-50 shadow-[0_4px_10px_rgba(0,0,0,0.3)] flex items-center justify-between px-3">
<div className="w-2.5 h-2.5 rounded-full bg-gray-800 flex items-center justify-center">
@@ -409,88 +338,7 @@ export function HomePage() {
className="relative w-full h-full rounded-[2.8rem] bg-[#121212] overflow-hidden shadow-[inset_0_0_10px_rgba(0,0,0,0.1)] border border-gray-800/50 isolate"
style={{ WebkitMaskImage: '-webkit-radial-gradient(white, black)' }}
>
<div className="absolute inset-0 bg-[#121212] overflow-y-auto homepage-no-scrollbar pb-16">
<div className="flex items-center justify-between px-4 pt-14 pb-3 text-white/90">
<IconifyIcon icon="solar:arrow-left-linear" className="text-xl" style={{ strokeWidth: 1.5 }} />
<div className="flex gap-4">
<IconifyIcon icon="solar:magnifer-linear" className="text-xl" style={{ strokeWidth: 1.5 }} />
<IconifyIcon icon="solar:menu-dots-vertical-linear" className="text-xl" style={{ strokeWidth: 1.5 }} />
</div>
</div>
<div className="flex gap-5 px-5 pt-1 pb-5">
<div className="w-20 h-20 rounded-[1.2rem] bg-gradient-to-br from-indigo-500 to-teal-400 p-[1px] shrink-0 shadow-md">
<div className="w-full h-full bg-gray-900/20 backdrop-blur-sm rounded-[1.1rem] flex items-center justify-center">
<IconifyIcon icon="solar:case-minimalistic-linear" className="text-3xl text-white drop-shadow-md" style={{ strokeWidth: 1.5 }} />
</div>
</div>
<div className="flex flex-col justify-center">
<h1 className="text-white text-xl tracking-tight font-medium leading-tight">Arbejd.com - Jobs</h1>
<span className="text-teal-400 text-sm font-normal mt-0.5">Arbejd Inc.</span>
<span className="text-gray-400 text-xs mt-1">Indeholder annoncer · Køb i appen</span>
</div>
</div>
<div className="flex items-center justify-center gap-6 px-5 py-2">
<div className="flex flex-col items-center">
<div className="flex items-center gap-1 text-white text-sm font-medium">4.8 <IconifyIcon icon="solar:star-linear" className="text-xs" style={{ strokeWidth: 1.5 }} /></div>
<span className="text-gray-400 text-xs mt-0.5">1M anmeldelser</span>
</div>
<div className="w-px h-6 bg-gray-700/60" />
<div className="flex flex-col items-center text-white text-sm font-medium">
10M+
<span className="text-gray-400 text-xs font-normal mt-0.5">Downloads</span>
</div>
<div className="w-px h-6 bg-gray-700/60" />
<div className="flex flex-col items-center text-white text-sm font-medium">
<div className="border border-white/60 rounded-[3px] px-1 text-xs leading-tight mt-0.5">E</div>
<span className="text-gray-400 text-xs font-normal mt-0.5">Alle</span>
</div>
</div>
<div className="px-5 py-5">
<button type="button" className="w-full bg-[#01875F] text-white text-sm font-medium py-2.5 rounded-full transition-colors">Installer</button>
</div>
<div className="mt-1">
<div className="flex gap-3 overflow-x-auto px-5 pb-4 snap-x snap-mandatory homepage-no-scrollbar">
<div className="w-[140px] h-[260px] rounded-xl bg-[#1c1c1c] border border-white/5 shrink-0 snap-center relative overflow-hidden flex flex-col pt-5 px-3">
<div className="w-full text-left text-white/90 text-sm font-medium mb-4">Udforsk</div>
<div className="flex gap-2 mb-3">
<div className="w-10 h-10 rounded-lg bg-[#2a2a2a]" />
<div className="flex-1 h-10 rounded-lg bg-[#2a2a2a]" />
</div>
<div className="w-full h-16 rounded-lg bg-[#2a2a2a] mb-2" />
<div className="w-full h-16 rounded-lg bg-[#2a2a2a]" />
</div>
<div className="w-[140px] h-[260px] rounded-xl bg-[#1c1c1c] border border-white/5 shrink-0 snap-center relative overflow-hidden flex flex-col pt-5 px-3">
<div className="w-full text-left text-white/90 text-sm font-medium mb-4">Beskeder</div>
<div className="w-full h-12 rounded-lg bg-[#2a2a2a] mb-2 flex items-center px-2 gap-2">
<div className="w-6 h-6 rounded-full bg-[#3a3a3a]" />
<div className="flex-1 h-2 rounded bg-[#3a3a3a]" />
</div>
<div className="w-full h-12 rounded-lg bg-[#2a2a2a] mb-2 flex items-center px-2 gap-2">
<div className="w-6 h-6 rounded-full bg-[#3a3a3a]" />
<div className="flex-1 h-2 rounded bg-[#3a3a3a]" />
</div>
<div className="w-full h-12 rounded-lg bg-[#2a2a2a] mb-2 flex items-center px-2 gap-2">
<div className="w-6 h-6 rounded-full bg-[#3a3a3a]" />
<div className="flex-1 h-2 rounded bg-[#3a3a3a]" />
</div>
</div>
</div>
</div>
<div className="px-5 mt-2 pb-8">
<div className="flex items-center justify-between mb-2">
<h2 className="text-white text-sm font-medium">Om denne app</h2>
<IconifyIcon icon="solar:arrow-right-linear" className="text-white text-lg" style={{ strokeWidth: 1.5 }} />
</div>
<p className="text-gray-400 text-xs leading-relaxed font-normal">
Kom i kontakt med tusindvis af fagfolk. Find fjernarbejde, freelanceopgaver og kontraktarbejde globalt Arbejd.com.
</p>
</div>
</div>
<img src={playStoreImage} alt="Arbejd.com Google Play view" className="absolute inset-0 w-full h-full object-cover z-0" />
<div className="absolute top-0 inset-x-0 h-20 bg-gradient-to-b from-[#121212]/90 via-[#121212]/50 to-transparent z-10 pointer-events-none" />
@@ -540,12 +388,12 @@ export function HomePage() {
<div className="bg-gradient-to-br from-white/60 to-white/20 backdrop-blur-2xl border border-white/60 rounded-3xl overflow-hidden shadow-[0_8px_30px_rgba(0,0,0,0.04)] hover:shadow-[0_15px_40px_rgba(0,0,0,0.08)] transition-all group">
<div className="p-6">
<p className="text-base text-gray-700 italic mb-6 leading-relaxed">"AI-ansøgningerne sparede mig timevis af arbejde. Det ramte den professionelle tone perfekt fra første forsøg."</p>
<p className="text-base text-gray-700 italic mb-6 leading-relaxed">"Nem og intuitiv app som hurtigt giver overblik over relevante jobmuligheder. Kan klart anbefales!"</p>
<div className="flex items-center gap-3">
<img src="https://i.pravatar.cc/150?img=12" alt="Mikkel" className="w-10 h-10 rounded-full border-2 border-white shadow-sm" />
<img src="https://cdn.prod.website-files.com/5d4a8e9cc03a64b5d34a42b4/606027435c9d2b88ee3b1449_5d5fb45ea7638f84484ff911_Niels%20Langfeldt.jpg" alt="Niels Langfeldt" className="w-10 h-10 rounded-full border-2 border-white shadow-sm object-cover" />
<div>
<h4 className="text-base font-medium text-gray-900">Mikkel Larsen</h4>
<p className="text-sm text-indigo-600 font-normal">Landed job som Frontend Udvikler</p>
<h4 className="text-base font-medium text-gray-900">Niels Langfeldt</h4>
<p className="text-sm text-indigo-600 font-normal">Anmeldelse fra Arbejd.com</p>
</div>
</div>
</div>
@@ -553,12 +401,12 @@ export function HomePage() {
<div className="bg-gradient-to-br from-white/60 to-white/20 backdrop-blur-2xl border border-white/60 rounded-3xl overflow-hidden shadow-[0_8px_30px_rgba(0,0,0,0.04)] hover:shadow-[0_15px_40px_rgba(0,0,0,0.08)] transition-all group md:col-span-2 lg:col-span-1">
<div className="p-6">
<p className="text-base text-gray-700 italic mb-6 leading-relaxed">"Agenten fandt et job jeg aldrig selv ville have søgt på. Det viste sig at være det helt rigtige match for mig."</p>
<p className="text-base text-gray-700 italic mb-6 leading-relaxed">"En app med en dejlig simpel brugerflade, der specificerer søgningen rigtig fint, således at man hurtigt finder frem til jobs, der er relevante for ens profil."</p>
<div className="flex items-center gap-3">
<img src="https://i.pravatar.cc/150?img=47" alt="Amalie" className="w-10 h-10 rounded-full border-2 border-white shadow-sm" />
<img src="https://cdn.prod.website-files.com/5d4a8e9cc03a64b5d34a42b4/6060274253c5393b1ba54131_5d5fb4a838c00e40bdadda6e_Michael%20Lauridsen.jpg" alt="Michael Lauridsen" className="w-10 h-10 rounded-full border-2 border-white shadow-sm object-cover" />
<div>
<h4 className="text-base font-medium text-gray-900">Amalie Nielsen</h4>
<p className="text-sm text-cyan-600 font-normal">Landed job som Projektleder</p>
<h4 className="text-base font-medium text-gray-900">Michael Lauridsen</h4>
<p className="text-sm text-cyan-600 font-normal">Anmeldelse fra Arbejd.com</p>
</div>
</div>
</div>

View File

@@ -4,7 +4,7 @@ import { SiteFooter } from '../../shared/components/SiteFooter';
import { SiteNavbar } from '../../shared/components/SiteNavbar';
import aiAgentIphoneImage from '../../../assets/aiagent-iphone.png';
import aiAgentMacImage from '../../../assets/aiagent-mac.png';
import cvIphoneImage from '../../../assets/cv-iphone.png';
import cvIphoneImage from '../../../assets/cv-iphone2.png';
import cvMacImage from '../../../assets/cv-mac.png';
import jobAnsogningIphoneImage from '../../../assets/jobansogning-iphone.png';
import jobSearchIphoneImage from '../../../assets/jobsearch-iphone.png';
@@ -308,7 +308,7 @@ export function JobSearchersPage() {
<div className="text-xs uppercase tracking-widest text-teal-700 font-medium mb-3">Sådan fungerer oplevelsen</div>
<h2 className="text-3xl md:text-4xl font-medium tracking-tight text-gradient-subtle mb-4">Hele app-oplevelsen samlet ét sted</h2>
<p className="text-lg text-gray-600">
Arbejd.com kombinerer jobsøgning, profil, ansøgninger og interviewtræning i én platform. Her er, hvordan vi bruger information til at gøre oplevelsen mere relevant for dig.
Arbejd.com er udviklet 100 % jobsøgernes præmisser med ét formål: at dig videre til dit næste job. Platformen organiserer din jobsøgning og samler alt ét sted fra første skridt til næste job.
</p>
</div>

View File

@@ -147,7 +147,7 @@ export function PricingPage() {
</div>
</section>
<section className="py-24 px-6 lg:px-12 max-w-7xl mx-auto border-t border-white/40 relative z-10">
<section className="hidden py-24 px-6 lg:px-12 max-w-7xl mx-auto border-t border-white/40 relative z-10">
<div className="text-center mb-16">
<h2 className="text-3xl md:text-4xl font-medium tracking-tight text-gradient-subtle mb-4">Prøv Arbejd.com gratis</h2>
<p className="text-lg text-gray-600 max-w-2xl mx-auto font-normal drop-shadow-sm">Du kan starte gratis og oprette din profil med det samme. Når du vil have mere effekt i din jobsøgning, kan du opgradere til en premium pakke med fuld adgang til CV-værktøjer, målrettede ansøgninger, jobmatch og interviewtræning i 30, 90 eller 365 dage.</p>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,53 @@
.privacy-react-root {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
}
.privacy-scrollbar::-webkit-scrollbar { width: 6px; }
.privacy-scrollbar::-webkit-scrollbar-track { background: transparent; }
.privacy-scrollbar::-webkit-scrollbar-thumb { background-color: rgba(20, 184, 166, 0.2); border-radius: 20px; }
.privacy-scrollbar::-webkit-scrollbar-thumb:hover { background-color: rgba(20, 184, 166, 0.4); }
.text-gradient-subtle {
display: inline-block;
line-height: 1.1;
padding-bottom: 0.08em;
background: linear-gradient(135deg, #1f2937 0%, #4b5563 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.privacy-richtext {
color: #4b5563;
font-size: 1rem;
line-height: 1.7;
}
.privacy-richtext h5 {
margin: 1.6rem 0 0.75rem;
color: #111827;
font-size: 1.2rem;
line-height: 1.4;
font-weight: 600;
}
.privacy-richtext p {
margin: 0.75rem 0;
}
.privacy-richtext strong {
color: #111827;
font-weight: 600;
}
.privacy-richtext blockquote {
margin: 0.35rem 0;
padding-left: 0.95rem;
border-left: 2px solid rgba(20, 184, 166, 0.4);
color: #374151;
}
.privacy-richtext a {
color: #0f766e;
text-decoration: underline;
text-underline-offset: 2px;
}

View File

@@ -6,6 +6,7 @@ export function SiteFooter() {
<footer className="bg-white/60 backdrop-blur-xl border-t border-white/80 mt-10 pt-16 pb-12 relative z-10 shadow-[0_-10px_40px_rgba(0,0,0,0.02)]">
<div className="max-w-7xl mx-auto px-6 lg:px-12">
<div className="mb-16">
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-10">
<div>
<a href="/home" className="flex items-center gap-2 mb-6 group outline-none inline-flex">
<img
@@ -22,6 +23,11 @@ export function SiteFooter() {
<br />
dit n&#230;ste job
</p>
<div className="mb-6 space-y-1.5 text-sm text-gray-600">
<p className="font-medium text-gray-800">Arbejd.com IVS</p>
<p>Telefon: +45 31 53 20 44</p>
<p>CVR: 39779285</p>
</div>
<div className="flex items-center gap-3">
<a
href="https://www.facebook.com/arbejd.com1/"
@@ -52,12 +58,21 @@ export function SiteFooter() {
</a>
</div>
</div>
<div className="min-w-[180px]">
<h3 className="text-sm font-medium uppercase tracking-wider text-gray-500 mb-4">Links</h3>
<div className="flex flex-col gap-2">
<a href="/faq" className="text-base text-gray-700 hover:text-gray-900 transition-colors font-normal">FAQ</a>
<a href="/kontakt" className="text-base text-gray-700 hover:text-gray-900 transition-colors font-normal">Kontakt</a>
</div>
</div>
</div>
</div>
<div className="pt-8 border-t border-gray-200/60 flex flex-col md:flex-row justify-between items-center gap-4">
<p className="text-sm text-gray-400 font-normal">© 2026 Arbejd.com. Alle rettigheder forbeholdes.</p>
<div className="flex items-center gap-4">
<a href="#" className="text-sm text-gray-400 hover:text-gray-900 transition-colors font-normal">Privatlivspolitik</a>
<a href="/privatlivspolitik" className="text-sm text-gray-400 hover:text-gray-900 transition-colors font-normal">Privatlivspolitik</a>
<a href="#" className="text-sm text-gray-400 hover:text-gray-900 transition-colors font-normal">Handelsbetingelser</a>
<a href="#" className="text-sm text-gray-400 hover:text-gray-900 transition-colors font-normal">Cookies</a>
</div>