/* Vores Kalundborg — 404 "Vi finder den ikke"
 * Port af handoff page-hero + 3 CTA-cards + kompas-illustration.
 */

main#vk-design-main.vk-404{
  --vk-font:'Work Sans',system-ui,-apple-system,sans-serif;
  --vk-cream:#F5EFE2;--vk-cream-muted:#ECE4D1;
  --vk-dark:#1F2A24;--vk-dark-2:#223428;--vk-body:#3D4642;--vk-muted:#7B827D;
  --vk-border:#E2D9C4;--vk-border-strong:#D0C5AA;
  --vk-sage:#6A8E5C;--vk-sage-hover:#587A4B;--vk-sage-light:#9AB58B;
  --vk-red:#A83232;--vk-red-hover:#8F2828;
  --vk-amber:#C99354;--vk-teal:#4E7C78;
  --vk-radius-card:14px;
  font-family:var(--vk-font);color:var(--vk-body);background:var(--vk-cream);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.vk-404 *{box-sizing:border-box}

/* Hero */
.vk-404 .nf-hero{position:relative;background:var(--vk-cream);padding:40px 0 70px;overflow:hidden;isolation:isolate;min-height:52vh;display:flex;align-items:center}
.vk-404 .page-hero-inner{max-width:1200px;margin:0 auto;padding:0 24px;position:relative;z-index:2;width:100%}
.vk-404 .ph-bg{position:absolute;inset:0;z-index:0;opacity:.55;
  background:
    radial-gradient(ellipse 50% 45% at 15% 30%, rgba(168,50,50,.14) 0%, rgba(168,50,50,0) 70%),
    radial-gradient(ellipse 45% 40% at 85% 65%, rgba(106,142,92,.16) 0%, rgba(106,142,92,0) 70%),
    radial-gradient(ellipse 35% 30% at 55% 85%, rgba(78,124,120,.12) 0%, rgba(78,124,120,0) 70%);}

/* Dekorativt kompas, top-højre */
.vk-404 .nf-compass{position:absolute;top:-24px;right:-36px;width:380px;height:380px;color:var(--vk-sage);opacity:.22;z-index:1;pointer-events:none;animation:nfCompassSpin 60s linear infinite}
.vk-404 .nf-compass .nf-needle{transform-origin:100px 100px;animation:nfNeedleTilt 6s ease-in-out infinite}
@keyframes nfCompassSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes nfNeedleTilt{0%,100%{transform:rotate(0)}50%{transform:rotate(8deg)}}
@media (max-width:860px){
  .vk-404 .nf-compass{width:240px;height:240px;top:-16px;right:-60px;opacity:.14}
}
@media (prefers-reduced-motion:reduce){
  .vk-404 .nf-compass,.vk-404 .nf-compass .nf-needle{animation:none}
}

/* Breadcrumb (copy fra handoff) */
.vk-404 .breadcrumb{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--vk-muted);font-weight:500;margin-bottom:22px}
.vk-404 .breadcrumb a{color:var(--vk-muted);text-decoration:none;transition:color .15s}
.vk-404 .breadcrumb a:hover{color:var(--vk-dark)}
.vk-404 .breadcrumb .sep{opacity:.55}
.vk-404 .breadcrumb .current{color:var(--vk-dark);font-weight:600}

/* Eyebrow + titel */
.vk-404 .ph-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:var(--vk-cream-muted);color:var(--vk-red-hover);border-radius:9999px;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}
.vk-404 .ph-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--vk-red);animation:nfPulse 1.8s ease-in-out infinite}
@keyframes nfPulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}

.vk-404 .ph-title{margin:0 0 14px;font-weight:700;font-size:clamp(36px,6vw,64px);line-height:1.04;letter-spacing:-.025em;color:var(--vk-dark);text-wrap:balance;max-width:680px}
.vk-404 .ph-sub{margin:0;max-width:560px;font-size:clamp(15px,1.45vw,17.5px);line-height:1.55;color:var(--vk-body);text-wrap:pretty}

/* Søgeform */
.vk-404 .search-form{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--vk-border-strong);border-radius:9999px;padding:5px 5px 5px 18px;width:min(520px,100%);margin-top:28px;gap:10px;box-shadow:0 2px 12px rgba(0,0,0,.05);transition:border-color .15s,box-shadow .15s}
.vk-404 .search-form:focus-within{border-color:var(--vk-sage);box-shadow:0 0 0 4px rgba(106,142,92,.12)}
.vk-404 .search-form .icon{color:var(--vk-muted);flex-shrink:0}
.vk-404 .search-form input{flex:1;border:0;outline:0;background:transparent;font:500 15px var(--vk-font);color:var(--vk-dark);padding:10px 0;min-width:0}
.vk-404 .search-form input::placeholder{color:var(--vk-muted)}
.vk-404 .search-form button{padding:10px 22px;border:0;border-radius:9999px;background:var(--vk-dark);color:#fff;font:600 14px var(--vk-font);cursor:pointer;transition:background .15s,transform .15s}
.vk-404 .search-form button:hover{background:var(--vk-sage);transform:translateY(-1px)}

/* 3 CTA-cards */
.vk-404 .nf-cards-wrap{padding:20px 0 80px;background:var(--vk-cream)}
.vk-404 .nf-cards-inner{max-width:1200px;margin:0 auto;padding:0 24px}
.vk-404 .nf-cards-head{margin:0 0 22px;font-size:18px;font-weight:700;color:var(--vk-dark);letter-spacing:-.006em}
.vk-404 .nf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

.vk-404 .nf-card{
  display:flex;gap:18px;align-items:flex-start;
  padding:24px 22px;background:#fff;border:1px solid var(--vk-border);
  border-radius:var(--vk-radius-card);text-decoration:none;color:inherit;
  transition:box-shadow .25s,transform .2s,border-color .2s;
}
.vk-404 .nf-card:hover{box-shadow:0 14px 30px rgba(0,0,0,.08);transform:translateY(-3px);border-color:var(--vk-border-strong)}
.vk-404 .nf-card-icon{width:52px;height:52px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;color:#fff}
.vk-404 .nf-icon-home{background:linear-gradient(135deg,#A83232,#6f2020)}
.vk-404 .nf-icon-event{background:linear-gradient(135deg,#6A8E5C,#3e5a34)}
.vk-404 .nf-icon-shop{background:linear-gradient(135deg,#4E7C78,#2e504e)}
.vk-404 .nf-card-body{min-width:0;display:flex;flex-direction:column;gap:4px}
.vk-404 .nf-card-body h3{margin:0;font-size:18px;font-weight:700;color:var(--vk-dark);letter-spacing:-.008em}
.vk-404 .nf-card-body p{margin:0;font-size:13.5px;color:var(--vk-body);line-height:1.5}
.vk-404 .nf-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:var(--vk-sage-hover);font-weight:600;font-size:13.5px}
.vk-404 .nf-card-link .arrow{transition:transform .2s}
.vk-404 .nf-card:hover .nf-card-link{color:var(--vk-dark)}
.vk-404 .nf-card:hover .nf-card-link .arrow{transform:translateX(4px)}

/* Responsive */
@media (max-width:960px){
  .vk-404 .nf-cards{grid-template-columns:1fr 1fr;gap:16px}
}
@media (max-width:680px){
  .vk-404 .nf-hero{padding:28px 0 56px;min-height:auto}
  .vk-404 .ph-title{font-size:clamp(30px,9vw,44px)}
  .vk-404 .nf-cards{grid-template-columns:1fr}
}
