@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(font-bebasneue-1.1a4346a6.woff2) format('woff2')}
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(font-bebasneue-2.c0320a87.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:300 800;font-display:swap;src:url(font-outfit-1.71442463.woff2) format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:300 800;font-display:swap;src:url(font-outfit-2.bdba243e.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(font-barlowcondensed-1.4c3bf65b.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(font-ibmplexmono-1.2c9bacf0.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(font-ibmplexmono-2.c11adc91.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(font-inter-1.1dc044f4.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(font-inter-2.1dc044f4.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(font-fraunces-1.175f6e93.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url(font-fraunces-2.175f6e93.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(font-inter-3.1dc044f4.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(font-inter-4.1dc044f4.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(font-plusjakartasans-1.069be307.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url(font-plusjakartasans-2.069be307.woff2) format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(font-plusjakartasans-3.069be307.woff2) format('woff2')}
@font-face{font-family:'Petrona';font-style:normal;font-weight:700;font-display:swap;src:url(font-petrona-700.b06a136c.woff2) format('woff2')}
/* ---------- hjerte på alle kort ---------- */
.fav-heart{position:absolute;top:6px;right:6px;z-index:4;width:29px;height:29px;border-radius:50%;
  display:grid;place-items:center;border:0;padding:0;cursor:pointer;background:#00000066;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:#fff;transition:transform .13s,background .13s}
.fav-heart:hover{background:#000000a6;transform:scale(1.09)}
.fav-heart svg{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:2.1}
.fav-heart.on{color:var(--heart)}
.fav-heart.on svg{fill:var(--heart);stroke:var(--heart)}
.fav-heart.pop{animation:heartpop .34s ease}
@keyframes heartpop{0%{transform:scale(1)}42%{transform:scale(1.32)}100%{transform:scale(1)}}
.fav-item{position:relative;flex:0 0 auto;display:flex;height:100%}
.fav-item>.fav-card{height:100%;width:100%}
.fav-item .fav-heart{width:25px;height:25px;top:4px;right:4px}
.fav-item .fav-heart svg{width:13px;height:13px}

/* ---------- ark (profil, opret profil) ---------- */
.sheet-panel{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none}
.sheet-panel.open{visibility:visible;pointer-events:auto}
.sheet-backdrop{position:absolute;inset:0;background:#000000bf;opacity:0;transition:opacity .18s}
.sheet-panel.open .sheet-backdrop{opacity:1}
.sheet-card{position:absolute;left:50%;bottom:0;width:min(460px,100%);transform:translate(-50%,100%);
  background:var(--card-bg);border:1px solid var(--input-border);border-bottom:0;
  border-radius:16px 16px 0 0;transition:transform .24s;max-height:90vh;display:flex;flex-direction:column}
.sheet-panel.open .sheet-card{transform:translate(-50%,0)}
@media (min-width:700px){.sheet-card{bottom:auto;top:50%;border-radius:16px;border-bottom:1px solid var(--input-border);
  transform:translate(-50%,-46%) scale(.97);opacity:0;transition:transform .2s,opacity .2s}
  .sheet-panel.open .sheet-card{transform:translate(-50%,-50%) scale(1);opacity:1}}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:15px 16px 11px;border-bottom:1px solid var(--card-border)}
.sheet-title{font-family:var(--font-display);font-size:calc(1.36rem*var(--sz-head));letter-spacing:calc(.05em + var(--track));
  text-transform:var(--display-case)}
.sheet-close{background:none;border:0;font-size:1.05rem;cursor:pointer;color:var(--text-dim);padding:4px 6px}
.sheet-body{padding:14px 16px 18px;overflow-y:auto}
.sheet-lead{margin:0 0 14px;font-size:.9rem;line-height:1.55;color:var(--text-dim)}
.sheet-lead b{color:var(--text)}
.gbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;cursor:pointer;
  background:#fff;color:#1f1f1f;border:0;border-radius:9px;padding:12px;font:inherit;font-size:.92rem;font-weight:600}
.gbtn:hover{background:#f1f3f4}
.gbtn svg{width:18px;height:18px;flex:none}
.sheet-note{margin:12px 0 0;font-size:.72rem;line-height:1.55;color:var(--text-dim)}
.prof-row{display:flex;align-items:center;gap:12px;margin-bottom:11px}
.prof-avatar{width:46px;height:46px;border-radius:50%;background:#ffffff14;display:grid;place-items:center;
  font-size:1.2rem;font-weight:800;overflow:hidden;flex:none}
.prof-avatar img{width:100%;height:100%;object-fit:cover}
.prof-name{font-weight:700;font-size:.95rem}
.prof-mail{color:var(--text-dim);font-size:.78rem}
.prof-sec{border-top:1px solid var(--card-border);padding-top:13px;margin-top:13px}
/* Etiket og felt på samme linje — datofeltet fyldte før en fjerdedel af skærmen. */
.prof-linje{display:flex;align-items:center;gap:12px;border-top:1px solid var(--card-border);
  padding-top:11px;margin-top:11px}
.prof-linje label{flex:0 0 74px;font-size:1rem;font-weight:700;color:var(--text)}
.prof-linje .p-input{flex:1;min-width:0;padding:9px 11px}
.prof-felt{flex:1;min-width:0;position:relative}
.prof-sec.prof-bund{display:flex;gap:22px;align-items:center}
.prof-sec h3{margin:0 0 9px;font-size:1rem;font-weight:700;letter-spacing:.01em;color:var(--text)}
.swatches{display:flex;flex-wrap:wrap;gap:9px}
.swatch{width:38px;height:38px;border-radius:9px;border:2px solid transparent;cursor:pointer;padding:0;
  position:relative;transition:transform .12s}
.swatch:hover{transform:scale(1.07)}
.swatch.on{border-color:#fff}
.swatch.on::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:15px;
  transform:translate(-50%,-58%) rotate(45deg);border:solid #fff;border-width:0 2.6px 2.6px 0;
  filter:drop-shadow(0 0 2px #0009)}
.prof-linkbtn{background:none;border:0;color:var(--text-dim);font:inherit;font-size:.92rem;
  cursor:pointer;padding:0;text-decoration:underline}

.card-wrap{position:relative;display:block;min-width:0}
.card-wrap>.ev-card{width:100%}
.dd-opt.off{opacity:.42;cursor:not-allowed}
.dd-opt .n{margin-left:auto;padding-left:12px;color:var(--text-dim);font-weight:400;font-size:.76em}


:root{
  --bg:#0b0c0e; --card-bg:#16181c; --text:#fff; --text-dim:#8f94a0;
  --accent:#3ccfc0; --accent-soft:#3ccfc026; --accent-faint:#3ccfc01a; --accent-mid:#3ccfc0a8;
  --accent-ink:#0b1a18; --heart:#ff4d6d; --green:#34c759; --amber:#ffb020; --red:#ff453a;
  --card-border:#ffffff0f; --input-bg:#16181c; --input-border:#ffffff1f;
  --buy-green:#090; --age-a:#2e9e4f; --age-7:#2e9e4f; --age-11:#f2a900; --age-15:#d21f3c;
  --bordeaux:#6e0f22;
  /* Kategorifarver i to udgaver. Fylder farven en hel knap, skal den være
     mørk og støvet, ellers larmer den mere end indholdet. Er den derimod
     selve skriften — et lille mærke på mørk bund — skal den have lys nok til
     at kunne læses. Samme kulør, to opgaver. */
  --f-film:#b08a3c; --f-teater:#b06a7e; --f-koncert:#4d84ad;
  --f-museum:#5d9478; --f-sport:#b86a4c; --f-mad:#8b5e8f;
  --t-film:#d0a659; --t-teater:#cf8a9c; --t-koncert:#7fa8c9;
  --t-museum:#84b79c; --t-sport:#d08a6f; --t-mad:#c48ec7;
  --content-width:1120px;
  --ui:.82rem;   /* fælles skriftstørrelse i hovedet */
  /* Skrifterne står ét sted, så designlabbet kan bytte dem ud på hele siden. */
  --font-display:'Barlow Condensed','Bebas Neue',sans-serif;
  --font-body:'Plus Jakarta Sans',Outfit,-apple-system,'SF Pro Text','Segoe UI',Roboto,sans-serif;
  /* Overskrifter i versaler — uanset skrift. Og fire størrelsesgrupper plus
     sporing, som designlabbet kan skrue på. 1 = som tegnet. */
  --display-case:uppercase; --word-space:.09em;   /* Plus Jakarta Sans' mellemrum er kun 0,17 em */
  --sz-title:1.05; --sz-head:1.25; --sz-time:1.1; --sz-small:.95; --sz-mk:1.45; --track:-.02em;
  --neon-ev:#ff4646; --neon-st:#3d9bff;
}
*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--text);margin:0;padding:0;
  font-family:var(--font-body);word-spacing:var(--word-space)}
a{color:inherit} button{font-family:inherit;color:inherit;word-spacing:inherit} input,select,textarea{word-spacing:inherit}
body.detail-open{overflow:hidden}

/* ---------- header ---------- */
header.app-header{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  background:linear-gradient(#000000fa,#000000ec);position:sticky;top:0;border-bottom:1px solid #ffffff0f}
.header-inner{max-width:var(--content-width);margin:0 auto;padding:8px 10px 8px}
.brand-row{position:relative;display:flex;align-items:center;justify-content:center;
  gap:10px;margin-bottom:7px;min-height:40px}
.brand-row .tagline{position:absolute;left:0;top:50%;transform:translateY(-50%);max-width:38%}
.brand-actions{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;gap:7px}
.brand-soeg{position:absolute;left:0;top:50%;transform:translateY(-50%);display:flex}
/* Skiltet står lige før logoet, og de to er centreret sammen mellem søg og ikonerne. */
.brand-left{order:-1;display:flex;align-items:center;z-index:6}/* kategorimenuen skal ligge over værktøjslinjen */
.brand-row{gap:12px;padding:0 74px 0 40px}
@media (max-width:430px){.brand-row .tagline{font-size:calc(var(--ui) - .06rem);line-height:1.2}}
.brand{margin:0;line-height:0}.brand-link{display:inline-block;line-height:0}
.brand-img{height:54px;width:auto;display:block}
@media (min-width:900px){.brand-img{height:66px}}
.tagline{color:var(--text-dim);font-size:var(--ui);font-weight:600;letter-spacing:.005em}
.round-btn{background:#ffffff0a;border:1px solid var(--input-border);color:var(--text-dim);
  border-radius:50%;width:30px;height:30px;display:grid;place-items:center;cursor:pointer;flex:none;padding:0}
.round-btn:hover{color:var(--text);border-color:#ffffff30}
.profile-btn{overflow:hidden;padding:0}
.profile-mark{display:flex;line-height:0}
.profile-mark svg{width:17px;height:17px;fill:currentColor;opacity:.85}
.profile-btn img{width:100%;height:100%;object-fit:cover;display:block}
.profile-btn.signed{border-color:var(--accent)}
.app-header.search-open #searchToggle{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.header-search-row{display:none;gap:8px;align-items:center;margin-bottom:9px}
.app-header.search-open .header-search-row{display:flex}
.header-search-wrap{position:relative;flex:1;min-width:0}
.header-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-dim);
  background:none;border:0;padding:0;display:flex;pointer-events:none}
.header-search-input{appearance:none;box-sizing:border-box;border:1px solid var(--input-border);
  background-color:var(--input-bg);width:100%;min-height:40px;color:var(--text);border-radius:8px;
  padding:10px 14px 10px 40px;font-family:inherit;font-size:.92rem}
.header-search-input::placeholder{color:var(--text-dim)}
.header-search-input:focus{outline:1px solid var(--green)}

/* linje 1: overskrift + kulturvalg */
.overview-line{display:flex;gap:5px;align-items:center;flex-wrap:nowrap;overflow:visible;
  scrollbar-width:none;padding-bottom:0}
.overview-line::-webkit-scrollbar{display:none}
.overview-line>.overview-label{flex:none}
#kindRow{display:flex;gap:4px;flex:1;min-width:0}
.overview-label{font-size:var(--ui);font-weight:600;color:var(--text-dim);white-space:nowrap;
  position:sticky;left:0;z-index:2;background:#000;padding-right:9px;letter-spacing:.005em}
.kind-btn{appearance:none;border:1px solid var(--input-border);background:#ffffff0a;color:var(--text-dim);
  border-radius:999px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;
  letter-spacing:.01em;transition:background .12s,border-color .12s,color .12s;
  flex:1 1 0;min-width:0;text-align:center;padding:5px 6px;overflow:hidden;white-space:nowrap}
.kind-btn{font-size:var(--ui)}
.kind-btn .sm{display:none}
@media (max-width:620px){
  .overview-label{padding-right:5px}
  .kind-btn{padding:5px 3px}
  .kind-btn .lg{display:none} .kind-btn .sm{display:inline}
}
/* På computer skal knapperne ikke strækkes ud over hele bredden. */
.overview-line{justify-content:center} #kindRow{justify-content:center}
@media (min-width:700px){.overview-line{justify-content:center}
  .overview-line .kind-btn{flex:0 0 auto;padding:6px 20px;min-width:104px}}
/* Fravalgt: fladt og gråt. Valgt: fyldt med kategoriens farve og mørk skrift.
   Ingen tredje tilstand — hover findes kun på mus, aldrig på berøring. */
.kind-btn{--kc:var(--f-film)}
.kind-btn.k-teater{--kc:var(--f-teater)} .kind-btn.k-koncert{--kc:var(--f-koncert)}
.kind-btn.k-museum{--kc:var(--f-museum)} .kind-btn.k-sport{--kc:var(--f-sport)} .kind-btn.k-mad{--kc:var(--f-mad)}
/* Valgt: et mørkt, tonet fyld og en tynd, lysende ring, der følger pillens
   form — som et neonrør. Ringen er kategoriens lyse kulør (--kn), fyldet den
   støvede (--kc). Fravalgt: fladt og gråt. */
.kind-btn{--kn:var(--t-film)}
.kind-btn.k-teater{--kn:var(--t-teater)} .kind-btn.k-koncert{--kn:var(--t-koncert)}
.kind-btn.k-museum{--kn:var(--t-museum)} .kind-btn.k-sport{--kn:var(--t-sport)} .kind-btn.k-mad{--kn:var(--t-mad)}
.kind-btn.on{background:var(--kc);border-color:var(--kn);color:#fff;font-weight:700;
  background:color-mix(in srgb,var(--kc) 40%,#0b0c0e);
  box-shadow:0 0 0 1px var(--kn),0 0 10px 1px color-mix(in srgb,var(--kn) 65%,transparent),
             inset 0 0 12px color-mix(in srgb,var(--kn) 22%,transparent);
  text-shadow:0 0 7px color-mix(in srgb,var(--kn) 55%,transparent)}
/* Holdes en knap nede, løfter den sig og kan trækkes. */
.kind-btn{touch-action:pan-y;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;
  transition:background .12s,border-color .12s,color .12s,transform .16s,box-shadow .16s}
#kindRow.arranging .kind-btn{transition:transform .16s}
.kind-btn.drag{transition:none;position:relative;z-index:5;opacity:.96;
  box-shadow:0 10px 26px #000a,0 0 0 1px #fff5}
@media (hover:hover) and (pointer:fine){
  .kind-btn:not(.on):hover{color:var(--text);border-color:#ffffff45}
  .kind-btn.on:hover{filter:brightness(1.12)}
}

/* linje 2: de tre rullemenuer */
.tool-line{display:flex;gap:5px;align-items:stretch;margin-top:5px}
.dd{position:relative;flex:1 1 auto;min-width:0}
#ddDay{flex:1.55 1 auto}
#ddDist{flex:1.05 1 auto}
#ddAge{flex:.9 1 auto}
@media (max-width:430px){#ddDay,#ddDist,#ddAge,#ddSort{flex:1 1 auto}}
#ddSort{display:none;flex:1.2 1 auto} body.steder-mode #ddSort{display:block}
body.steder-mode #ddDay,body.steder-mode #ddAge{display:none}
.dd-sec{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px 10px}
.dd-kilde{appearance:none;border:1px solid var(--input-border);background:#ffffff0a;color:var(--text-dim);border-radius:999px;
  padding:5px 11px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.dd-kilde.on{color:#fff;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,transparent)}
.dd-kilde .n{font-weight:400;opacity:.7;margin-left:4px}
/* Neonskiltet ved forstørrelsesglasset: to ord, det tændte lyser i accentfarven. */
/* Skiltet har samme størrelse på alle skærme og skifter ikke bredde, når man
   tænder det andet ord: to linjer, fast skriftstørrelse, fast bredde.
   EVENTS er rødt, STEDER blåt — det slukkede ord har sin farve, men lyser ikke. */
.neon-skilt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:3px 9px 4px;border-radius:9px;
  border:1px solid #ffffff12;background:#ffffff05;min-width:5.4em;font-size:1rem}
.neon-ord{appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;font-family:var(--font-display);
  text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:1rem;line-height:1.05;--nf:var(--neon-ev);
  color:color-mix(in srgb,var(--nf) 42%,#0b0c0e);transition:color .15s,text-shadow .15s;text-shadow:0 0 6px transparent;text-align:left}
.neon-ord[data-neon=steder]{--nf:var(--neon-st)}
.neon-ord.on{color:#fff;text-shadow:0 0 3px #fff,0 0 8px var(--nf),0 0 16px var(--nf),0 0 28px var(--nf),
  0 0 44px color-mix(in srgb,var(--nf) 60%,transparent)}
@media (hover:hover){.neon-ord:not(.on):hover{color:color-mix(in srgb,var(--nf) 70%,#fff)}}
/* Skiltet ved logoet: et neonrør hele vejen rundt om kategoriens navn.
   Røret er den lyse kant (næsten hvid kerne i kategoriens farve); gløden ligger
   både uden for glasset og inde i det, og bogstaverne lyser med samme rør.
   Neonfarverne er mættede — de dæmpede tekstfarver lyser ikke. */
:root{--n-koncert:#3d9bff;--n-teater:#ff4fa3;--n-sport:#ff7a3d;--n-museum:#3ddc97;--n-mad:#c86bff;--n-film:#ffcc3d}
.kat-wrap{position:relative;display:flex;align-items:center}
.kat-knap{appearance:none;cursor:pointer;position:relative;height:43px;padding:0 19px 0 21px;border-radius:999px;margin:0;
  border:2px solid color-mix(in srgb,var(--kn) 58%,#fff);
  background:radial-gradient(120% 150% at 50% 130%,color-mix(in srgb,var(--kn) 20%,#0b0c0e),#0b0c0e 72%);
  color:#fff;font-family:var(--font-display);text-transform:uppercase;font-size:1.35rem;letter-spacing:.17em;font-weight:700;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;min-width:140px;/* samme bredde uanset ord — et skilt skifter ikke størrelse */
  box-shadow:0 0 1px #fff,0 0 4px var(--kn),0 0 10px var(--kn),0 0 22px var(--kn),0 0 42px color-mix(in srgb,var(--kn) 50%,transparent),
    inset 0 0 2px #ffffffb0,inset 0 0 7px var(--kn),inset 0 0 18px color-mix(in srgb,var(--kn) 38%,transparent);
  text-shadow:0 0 1px #fff,0 0 4px color-mix(in srgb,var(--kn) 55%,transparent);/* ordet skal kunne læses — røret er det, der lyser */
  --kn:var(--n-koncert);transition:box-shadow .15s}
.kat-pil{width:.62em;height:.62em;flex:none;color:color-mix(in srgb,var(--kn) 45%,#fff);transition:transform .18s;margin-top:1px}
.kat-knap[aria-expanded=true] .kat-pil{transform:rotate(180deg)}
.kat-knap.k-teater{--kn:var(--n-teater)} .kat-knap.k-koncert{--kn:var(--n-koncert)} .kat-knap.k-museum{--kn:var(--n-museum)}
.kat-knap.k-sport{--kn:var(--n-sport)} .kat-knap.k-mad{--kn:var(--n-mad)} .kat-knap.k-film{--kn:var(--n-film)}
.kat-knap .kat-navn{padding:0;transform:translateY(0)}
@media (hover:hover){.kat-knap:hover{box-shadow:0 0 1px #fff,0 0 5px var(--kn),0 0 14px var(--kn),0 0 30px var(--kn),0 0 56px color-mix(in srgb,var(--kn) 55%,transparent),
    inset 0 0 2px #ffffffb0,inset 0 0 9px var(--kn),inset 0 0 22px color-mix(in srgb,var(--kn) 42%,transparent)}}
/* Når man vælger en ny kategori, tænder røret med et lille blink, som rigtig neon gør. */
@keyframes neon-taend{0%{filter:brightness(.3)}9%{filter:brightness(1.1)}14%{filter:brightness(.35)}24%{filter:brightness(1)}31%{filter:brightness(.55)}38%,100%{filter:brightness(1)}}
.kat-knap.taend{animation:neon-taend .85s linear}
@media (prefers-reduced-motion:reduce){.kat-knap.taend{animation:none}}
.kat-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:60;background:var(--card-bg);border:1px solid var(--input-border);
  border-radius:14px;padding:6px;min-width:190px;box-shadow:0 14px 34px #000b;display:flex;flex-direction:column;gap:2px}
.kat-menu[hidden]{display:none}
.kat-valg{appearance:none;background:none;border:0;color:var(--text);font:inherit;font-size:1rem;font-weight:600;text-align:left;
  padding:10px 12px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:11px;--kn:var(--t-koncert)}
.kat-valg i{width:12px;height:12px;border-radius:50%;background:var(--kn);box-shadow:0 0 8px var(--kn);flex:none}
.kat-valg.k-teater{--kn:var(--n-teater)} .kat-valg.k-koncert{--kn:var(--n-koncert)} .kat-valg.k-museum{--kn:var(--n-museum)}
.kat-valg.k-sport{--kn:var(--n-sport)} .kat-valg.k-mad{--kn:var(--n-mad)} .kat-valg.k-film{--kn:var(--n-film)}
.kat-valg.on{background:#ffffff12} @media (hover:hover){.kat-valg:hover{background:#ffffff0c}}
/* Logoet rykker til højre for skiltet. */
.brand-row{justify-content:center}
/* Små skærme: samme midte, bare mindre. Logoet er 35 px (var 28) — det skal kunne ses. */
@media (max-width:640px){.brand-row{gap:9px;padding:0 74px 0 38px}
  .brand-img{height:40px} .kat-knap{height:35px;font-size:1.1rem;padding:0 11px 0 14px;letter-spacing:.15em;min-width:108px;gap:6px}}
@media (max-width:360px){.brand-img{height:36px} .kat-knap{font-size:1rem;padding:0 9px 0 11px;min-width:96px}}
/* Værktøjslinjen pr. kategori. */
#ddSort,#ddType,#ddKoek{display:none}
body.kat-mad #ddDay,body.kat-mad #ddAge,body.kat-museum #ddAge{display:none}
body.kat-mad #ddSort,body.kat-mad #ddType,body.kat-mad #ddKoek{display:block}
#ddType{flex:1 1 auto} #ddKoek{flex:1.2 1 auto}
.naer-sub-h{color:var(--text-dim);font-size:.8rem}
.ev-band .naer-kort{width:118px} .ev-band .naer-kort img{height:150px} .ev-mini{cursor:pointer;font:inherit;padding:0;text-align:left}
.ev-band .naer-navn{font-size:calc(.92rem*var(--sz-title));white-space:normal;line-height:1.1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* Opslaget: stort billede, én linje fakta, én linje knapper — resten foldet. */
.rs-hero{position:relative;height:min(58vw,300px);background:#15171b;overflow:hidden}
.rs-hero-img{width:100%;height:100%;object-fit:cover;display:block}
.rs-hero-grad{position:absolute;inset:0;background:linear-gradient(180deg,#0000 35%,#000c 100%)}
.rs-hero-txt{position:absolute;left:14px;right:56px;bottom:12px}
.rs-hero-txt h1{margin:0;font-family:var(--font-display);font-weight:400;font-size:calc(1.9rem*var(--sz-title));line-height:1;letter-spacing:calc(.02em + var(--track));text-transform:var(--display-case);text-shadow:0 2px 12px #000}
.rs-fakta{margin:5px 0 0;color:#ffffffd0;font-size:.9rem;text-shadow:0 1px 6px #000}
.rs-linje{padding:10px 14px 6px}
.rs-tid{appearance:none;background:none;border:0;padding:0;margin:0 0 8px;font:inherit;font-size:1rem;font-weight:600;color:var(--accent);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.rs-tid.dim{color:var(--text-dim);font-weight:500}
/* Fire lige store knapper på én række: ikon over ord — som i en app. */
.rs-knapper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.rs-knap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--text);
  background:#ffffff0d;border:1px solid var(--input-border);border-radius:12px;padding:9px 4px 7px;font-weight:600;font-size:.76rem;min-width:0}
.rs-knap span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rs-knap svg{width:19px;height:19px;color:var(--accent)}
@media (min-width:700px){.rs-knapper{display:flex;flex-wrap:wrap} .rs-knap{flex-direction:row;gap:7px;padding:8px 14px;border-radius:999px;font-size:.9rem} .rs-knap svg{width:16px;height:16px}}
@media (hover:hover){.rs-knap:hover{border-color:var(--accent)}}
.rs-uge{margin-top:10px}
.rs-maerker{padding:4px 14px 8px} .rs-maerker .maerker{margin:0}
.rs-sek{padding:12px 14px;border-top:1px solid var(--card-border)}
.rs-sek h2{font-family:var(--font-display);font-weight:400;letter-spacing:calc(.05em + var(--track));font-size:calc(1.05rem*var(--sz-head));margin:0 0 8px;color:var(--text-dim);text-transform:var(--display-case)}
.rs-om{margin:0;line-height:1.5;font-size:.95rem} .rs-om.klip{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rs-mere{appearance:none;background:none;border:0;padding:4px 0 0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}
.rs-avis{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:7px 0;text-decoration:none;color:inherit;border-top:1px solid var(--card-border)}
.rs-avis:first-of-type{border-top:0}
.rs-avis-m{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--text-dim);min-width:52px}
.rs-avis-t{font-size:.92rem;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rs-avis-s{color:#f7d98b;font-weight:700;white-space:nowrap;font-size:.86rem}
.rs-fold summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;padding:2px 0}
.rs-fold summary::-webkit-details-marker{display:none}
.rs-fold-t{font-family:var(--font-display);text-transform:var(--display-case);letter-spacing:calc(.05em + var(--track));font-size:calc(1.05rem*var(--sz-head));color:var(--text-dim)}
.rs-fold-v{color:#9cc4ff;font-weight:700;display:inline-flex;align-items:center;gap:7px}
.rs-fold-v::after{content:'';width:8px;height:8px;border-right:2px solid var(--text-dim);border-bottom:2px solid var(--text-dim);transform:translateY(-3px) rotate(45deg);transition:transform .15s}
.rs-fold[open] .rs-fold-v::after{transform:translateY(1px) rotate(-135deg)}
.rs-fold[open] summary{margin-bottom:8px}
.rs-kilde{padding:10px 14px 18px}
/* Anbefalinger: procent, navne, to knapper. */
.rs-anb-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rs-tag{font-family:var(--font-body);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);
  border:1px solid var(--input-border);border-radius:999px;padding:2px 8px}
.rs-anb-tal{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
/* Spørgsmålet, når man giver et hjerte. */
.spoerg-bag{position:fixed;inset:0;z-index:120;background:#000000a8;display:grid;place-items:center;padding:20px}
.spoerg{background:var(--card-bg);border:1px solid var(--input-border);border-radius:18px;padding:20px 20px 16px;width:min(100%,360px);box-shadow:0 20px 60px #000c}
.spoerg-navn{margin:0 0 4px;font-family:var(--font-display);font-size:1.15rem;letter-spacing:.03em;color:#ff8da3;text-transform:var(--display-case)}
.spoerg h3{margin:0 0 14px;font-size:1.25rem;font-weight:700}
.spoerg-knapper{display:grid;gap:8px}
.spoerg-knapper button{appearance:none;cursor:pointer;font:inherit;font-weight:700;font-size:1rem;padding:12px 14px;border-radius:12px;border:1px solid var(--input-border);background:#ffffff0d;color:var(--text);text-align:left}
.spoerg-knapper button[data-spist="1"]{border-color:#ff5a7a;background:#ff5a7a26}
.spoerg-knapper button small{display:block;font-weight:500;font-size:.82rem;color:var(--text-dim);margin-top:2px}
.spoerg-luk{appearance:none;background:none;border:0;color:var(--text-dim);font:inherit;font-size:.9rem;margin:10px auto 0;display:block;cursor:pointer}
.rs-anb-tal b{font-family:var(--font-display);font-size:1.7rem;color:var(--accent);letter-spacing:.02em}
.rs-anb-tal span{color:var(--text-dim);font-size:.88rem}
.rs-navne{margin:4px 0 0;font-size:.9rem;color:var(--text)}
.rs-anb-knapper{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.rs-tog{appearance:none;cursor:pointer;font:inherit;font-weight:700;font-size:.92rem;padding:9px 14px;border-radius:999px;
  border:1px solid var(--input-border);background:#ffffff0d;color:var(--text)}
.rs-tog.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,transparent);color:#fff}
.rs-tog-h.on{border-color:#ff5a7a;background:#ff5a7a2e}
.rest-hjerte.on svg{fill:#ff5a7a;stroke:#ff5a7a}
/* Annoncekortet (bud A): samme kortform som resten, mærket "Annonce" — Google
   leverer indholdet i vores farver. Pladsen har højde fra starten, så intet hopper. */
/* Annoncekortet ligner de andre kort, men er ikke et .ev-card: resten af appen
   regner med, at et .ev-card er en begivenhed med en titel. */
.ann-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:12px;margin-bottom:8px;
  display:block;position:relative;overflow:hidden;width:100%;cursor:default;min-height:128px}
.annonce-kort .ann-card{border-color:#ffffff1f}
.annonce-kort .adsbygoogle{display:block;width:100%;min-height:118px}
.annonce-maerke{position:absolute;top:8px;left:10px;z-index:3;z-index:3;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#000;background:var(--t-film,#f7d98b);border-radius:4px;padding:1px 6px}
.annonce-demo{display:flex;gap:10px;padding:26px 10px 10px;align-items:stretch}/* plads til Annonce-mærket foroven */
.annonce-demo .demo-img{width:86px;flex:none;border-radius:8px;background:repeating-linear-gradient(135deg,#2a2d35 0 8px,#22252c 8px 16px)}
.annonce-demo .demo-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.annonce-demo .demo-h{font-family:var(--font-display);font-size:calc(1.42rem*var(--sz-title));letter-spacing:.02em;line-height:1.15;color:var(--accent)}
.annonce-demo .demo-s{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}
.annonce-demo p{margin:0;font-size:.78rem;color:var(--text-dim);line-height:1.35}
.card-wrap>.rest-hjerte{top:12px;left:12px;right:auto;width:31px;height:31px;background:#000000b3;border:1px solid #ffffff2a}
.card-wrap>.rest-hjerte:hover{background:#000000d9}
/* En tynd hvid neon om Afstand, Sortér osv.: et smalt lyst rør med lidt glød —
   dæmpet, så skiltet ved logoet stadig er det, der lyser mest. */
.dd-btn{width:100%;min-height:33px;display:flex;align-items:center;gap:6px;text-align:left;
  border:1.5px solid #ffffffd8;background:#0b0c0e;border-radius:999px;padding:5px 10px 5px 13px;
  box-shadow:0 0 1px #fff,0 0 5px #ffffffb8,0 0 12px #ffffff66,0 0 22px #ffffff2e,inset 0 0 3px #ffffff73,inset 0 0 9px #ffffff26;
  cursor:pointer;font:inherit;min-width:0;transition:box-shadow .15s,border-color .15s}
.dd-btn:hover{border-color:#fff;box-shadow:0 0 1px #fff,0 0 5px #ffffffb0,0 0 12px #ffffff59,inset 0 0 3px #ffffff59,inset 0 0 8px #ffffff24}
.dd.open .dd-btn{border-color:#fff;background:#141518;box-shadow:0 0 1px #fff,0 0 6px #fff,0 0 14px #ffffff80,0 0 24px #ffffff40,inset 0 0 4px #ffffff73,inset 0 0 9px #ffffff2e}
.dd-txt{display:flex;flex-direction:row;align-items:baseline;gap:5px;min-width:0;flex:1;line-height:1.15}
.dd-k{flex:none;font-size:calc(var(--ui) + .06rem);letter-spacing:.005em;color:var(--text-dim);font-weight:700}
.dd-v{font-size:calc(var(--ui) + .14rem);font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd.changed .dd-v{color:var(--accent)}
.dd-chev{flex:none;color:var(--text-dim);transition:transform .18s}
.dd.open .dd-chev{transform:rotate(180deg);color:var(--accent)}
.dd-menu{position:absolute;z-index:50;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;
  max-width:min(88vw,340px);max-height:min(62vh,430px);overflow-y:auto;background:#1b1e24;
  border:1px solid #ffffff24;border-radius:12px;padding:6px;box-shadow:0 18px 44px #000b;display:none}
.dd.open .dd-menu{display:block}
.dd:last-child .dd-menu{left:auto;right:0}
.dd-opt{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:0;
  padding:9px 10px;border-radius:8px;cursor:pointer;font:inherit;font-size:.85rem;white-space:nowrap}
.dd-opt:hover{background:#ffffff14}
.dd-opt.on{color:var(--accent);font-weight:700;background:var(--accent-faint)}
.dd-opt .n{margin-left:auto;color:var(--text-dim);font-size:.74rem;font-weight:400;padding-left:14px}
.dd-opt.on .n{color:var(--accent-mid)}
.dd-sep{margin:6px 4px 4px;padding-top:6px;border-top:1px solid #ffffff1a;color:var(--text-dim);
  font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
.dd-note{padding:6px 10px 4px;color:var(--text-dim);font-size:.7rem;line-height:1.45;white-space:normal;max-width:290px}
.dd-loc{padding:4px 6px 8px}
.loc-input{width:100%;min-height:36px;background:var(--input-bg);border:1px solid var(--input-border);
  color:var(--text);border-radius:8px;padding:8px 11px;font:inherit;font-size:.84rem}
.loc-input:focus{outline:1px solid var(--green)}
.location-suggestions{list-style:none;margin:6px 0 0;padding:0;max-height:150px;overflow-y:auto}
.location-suggestions li{padding:7px 9px;border-radius:6px;cursor:pointer;font-size:.82rem;white-space:nowrap}
.location-suggestions li:hover{background:#ffffff14}
.location-suggestions li span{color:var(--text-dim);font-size:.76rem;margin-left:6px}
.location-use-current{background:none;border:0;color:var(--accent);font-size:.8rem;cursor:pointer;padding:8px 4px 2px;text-align:left}
.dd-scrim{position:fixed;inset:0;z-index:20;display:none}
body.dd-open .dd-scrim{display:block}

/* ---------- INSPIRATION (båndet) ---------- */
.fav-band{max-width:var(--content-width);margin:0 auto;padding:12px 10px 4px}
.fav-head{display:flex;align-items:baseline;gap:9px;margin-bottom:7px}
.fav-title{font-family:var(--font-display);letter-spacing:calc(.07em + var(--track));font-size:calc(1.36rem*var(--sz-head));
  text-transform:var(--display-case);color:#fff;text-shadow:0 0 1px #fff,0 0 5px var(--kat-neon),0 0 12px var(--kat-neon),0 0 24px color-mix(in srgb,var(--kat-neon) 55%,transparent)}
.fav-sub{color:var(--text-dim);font-size:.76rem}
.fav-track{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:6px;
  height:25vh;min-height:158px;max-height:280px;align-items:stretch}
.fav-track::-webkit-scrollbar{display:none}
.fav-card{position:relative;flex:0 0 auto;width:calc((25vh - 6px)*0.68);min-width:108px;max-width:190px;
  height:100%;
  border-radius:11px;overflow:hidden;background:#22252b;border:1px solid var(--card-border);
  cursor:pointer;padding:0;text-align:left;display:block}
.fav-card:hover{border-color:#ffffff33}
.fav-img{width:100%;height:100%;object-fit:cover;display:block;
  position:absolute;inset:0}
.fav-scrim{position:absolute;inset:0;background:linear-gradient(#0000 38%,#000000f0)}
.fav-meta{position:absolute;left:7px;right:7px;bottom:6px}
.fav-name{font-size:.74rem;font-weight:700;line-height:1.2;text-shadow:0 1px 3px #000;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fav-when{font-size:.66rem;color:#d7dae1;text-shadow:0 1px 3px #000;margin-top:2px}
.fav-rank{position:absolute;top:6px;left:6px;background:#000000b3;border-radius:6px;padding:1px 6px;
  font-size:.64rem;font-weight:800;letter-spacing:.03em}

/* ---------- resultater ---------- */
main{max-width:var(--content-width);margin:0 auto;padding:6px 10px 34px}
.count-row{display:none}/* r25: stedet vælges under Afstand — ingen chip over listen */
.sted-chip{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;cursor:pointer;
  color:var(--text-dim);display:inline-flex;align-items:center;gap:6px}
.sted-chip .skift{color:var(--accent);border-bottom:1px dotted color-mix(in srgb,var(--accent) 50%,transparent)}
.sted-chip.unoej{color:#f0b45a} .sted-chip .unoej-txt{opacity:.85}
@media (hover:hover){.sted-chip:hover{color:var(--text)}}
.dd-nu{margin:0 0 6px;padding:0} .dd-nu b{color:var(--text)}
.results-grid{display:grid;grid-template-columns:1fr;align-content:start;column-gap:8px}
@media(min-width:620px){.results-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}
.date-separator{grid-column:1/-1;display:flex;justify-content:flex-start;margin:12px 0 3px}
/* Overskrifterne står i neon: hvid kerne, kategoriens farve som glød. Dagens
   dato får accentfarven, som før — den er allerede "tændt". */
body{--kat-neon:var(--n-koncert)}
body.kat-teater{--kat-neon:var(--n-teater)} body.kat-koncert{--kat-neon:var(--n-koncert)} body.kat-museum{--kat-neon:var(--n-museum)}
body.kat-sport{--kat-neon:var(--n-sport)} body.kat-mad{--kat-neon:var(--n-mad)} body.kat-film{--kat-neon:var(--n-film)}
.neon-tekst{color:#fff;text-shadow:0 0 1px #fff,0 0 5px var(--kat-neon),0 0 12px var(--kat-neon),0 0 24px color-mix(in srgb,var(--kat-neon) 55%,transparent)}
.date-separator-label{font-family:var(--font-display);letter-spacing:calc(.05em + var(--track));font-size:calc(1.28rem*var(--sz-head));
  color:#fff;text-transform:var(--display-case);text-shadow:0 0 1px #fff,0 0 5px var(--kat-neon),0 0 12px var(--kat-neon),0 0 24px color-mix(in srgb,var(--kat-neon) 55%,transparent)}
.date-separator-label.dag{color:#fff;text-shadow:0 0 1px #fff,0 0 5px var(--accent),0 0 12px var(--accent),0 0 24px color-mix(in srgb,var(--accent) 55%,transparent)}
.kind-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.62rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;margin-right:5px;vertical-align:1px}
.kind-tag.k-film{background:#b08a3c2e;color:var(--t-film)}
.kind-tag.k-teater{background:#b06a7e2e;color:var(--t-teater)}
.kind-tag.k-koncert{background:#4d84ad33;color:var(--t-koncert)}
.kind-tag.k-museum{background:#5d94782e;color:var(--t-museum)}
.kind-tag.k-sport{background:#b86a4c2e;color:var(--t-sport)}
.kind-tag.k-mad{background:#8b5e8f33;color:var(--t-mad)}
.hours-display{font-size:calc(.78rem*var(--sz-time));font-weight:600;color:var(--text)}
.hours-display.dim{font-weight:400;color:var(--text-dim);font-size:.72rem}
.mus-card{text-decoration:none;color:inherit}
.ev-card{color:inherit;border:1px solid var(--card-border);background:var(--card-bg);content-visibility:auto;
  contain-intrinsic-size:auto 128px;border-radius:12px;align-items:stretch;height:128px;margin-bottom:8px;
  text-decoration:none;display:flex;position:relative;overflow:hidden;cursor:pointer;text-align:left;padding:0;width:100%;font:inherit}
.ev-card:hover{border-color:#ffffff26}
.card-bg-blur{filter:blur(20px) brightness(.35);z-index:0;background-position:50%;background-size:cover;position:absolute;inset:0}
.card-poster-img{z-index:1;object-fit:cover;border-radius:8px;flex:0 0 85px;width:85px;height:108px;
  margin:10px 0 10px 10px;display:block;position:relative;background:#22252b}
.card-text{z-index:1;flex-direction:column;flex:1;justify-content:space-between;min-width:0;padding:10px 10px 10px 12px;display:flex;position:relative}
/* Mærket hører til stedets linje. Sad det klods i bunden af kortet, landede det
   ud for pladsmåleren på de kort, der har en — altså en linje for lavt. Nu er
   det bundet til selve linjen og står midt på den, uanset hvad der er under. */
.card-rating{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:4;
  display:flex;align-items:center;justify-content:center;pointer-events:none}
/* Trekanterne har deres tyngde nedadtil og ser et hår for lave ud, når de
   centreres matematisk. En pixel op retter øjet. */
.card-rating .age-badge.age-a,.card-rating .age-badge.age-7{margin-top:-1px}
.ev-card .title{letter-spacing:calc(.02em + var(--track));flex-shrink:0;margin:0 38px 0 0;display:block;
  font-family:var(--font-display);font-size:calc(1.42rem*var(--sz-title));font-weight:400;line-height:1.15;
  text-transform:var(--display-case);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}/* margin, ikke padding: teksten skal stoppe før hjertet */
.time-badge-row{align-items:center;gap:6px;min-width:0;display:flex;flex-wrap:wrap}
.time-display{letter-spacing:-.02em;color:var(--accent);flex-shrink:0;font-size:calc(1.4rem*var(--sz-time));font-weight:700;line-height:1}
/* Slut-tidspunktet er en oplysning, man kigger efter — ikke en, man leder
   efter. Det skal kunne læses uden at gøre krav på samme plads som det
   tidspunkt, folk faktisk kom for. */
.slut{color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-size:calc(.8rem*var(--sz-small));font-weight:400;
  line-height:1;letter-spacing:0;align-self:flex-end;padding-bottom:1px}
.context-date,.duration,.price{color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-size:calc(.8125rem*var(--sz-small));font-weight:400}
.ev-card .meta{color:var(--text-dim);margin:0;font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-card .location-row{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;align-items:center;
  gap:5px;margin:0;font-size:calc(.86rem*var(--sz-small));line-height:1.5;display:flex;overflow:hidden;
  padding-right:34px;position:relative}
/* Stednavnet er et link til vejen derhen. Det skal ikke se ud som et link i en
   løbende tekst — kun opføre sig som et. */
.sted-link{text-decoration:none;color:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis}
a.time-display{text-decoration:none}
@media (hover:hover) and (pointer:fine){
  .sted-link:hover{color:var(--text);text-decoration:underline}
  a.time-display:hover{text-decoration:underline}
}
.ev-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sted-link:focus-visible,a.time-display:focus-visible{outline:2px solid var(--accent);
  outline-offset:2px;border-radius:3px}
.distance-far{color:var(--text-dim)}
.location-row .km{color:var(--accent);font-weight:700;flex:none}
.seat-gauge-row{display:flex;align-items:center;gap:7px;margin-top:2px}
.seat-gauge-track{flex:1;height:3px;border-radius:2px;background:#ffffff1a;overflow:hidden;max-width:110px}
.seat-gauge-fill{height:100%;background:var(--green)}
.seat-gauge-fill.low{background:var(--amber)} .seat-gauge-fill.min{background:var(--red)}
.seat-gauge-label{font-size:.7rem;color:var(--text-dim)}
.age-badge{box-sizing:border-box;color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:25px;height:25px;
  font-size:.72rem;font-weight:800;line-height:1;display:inline-flex;position:relative}
.age-badge.age-a,.age-badge.age-7{clip-path:polygon(50% 6%,5% 95%,95% 95%);z-index:0;background:#fff;padding-top:4px}
.age-badge.age-a:before,.age-badge.age-7:before{content:"";z-index:-1;background:var(--age-a);
  clip-path:polygon(50% 6%,5% 95%,95% 95%);position:absolute;inset:1.5px}
.age-badge.age-7:after{content:"";box-sizing:border-box;border:1px solid #fff;border-radius:50%;width:11px;height:11px;
  position:absolute;top:57%;left:50%;transform:translate(-50%,-50%)}
.age-badge.age-11{background:var(--age-11);border:1px solid #fff;border-radius:2px}
.age-badge.age-15{background:var(--age-15);border:1px solid #fff;border-radius:50%}
.age-pill{border:1px solid var(--input-border);border-radius:5px;padding:0 5px;font-size:.66rem;
  font-weight:700;color:var(--text-dim);line-height:1.5}
.empty-state{grid-column:1/-1;text-align:center;padding:26px 8px}
.status-message{color:var(--text-dim);margin:0 0 16px}
.clear-filters-btn{border:1px solid var(--accent);color:var(--accent);border-radius:20px;padding:10px 20px;
  font-size:.85rem;font-weight:700;background:none;cursor:pointer;margin:0 4px}
.more-btn{grid-column:1/-1;margin:6px 0 0;background:#ffffff0a;border:1px solid var(--input-border);
  border-radius:8px;padding:12px;font-size:.85rem;font-weight:600;cursor:pointer}

/* ---------- detaljepanel ---------- */
.detail-panel{position:fixed;inset:0;z-index:70;display:none}
.detail-panel.open{display:block}
.detail-backdrop{position:absolute;inset:0;background:#000000cc}
.detail-sheet{position:absolute;left:0;right:0;bottom:0;top:24px;background:var(--bg);border-radius:14px 14px 0 0;
  border-top:1px solid var(--card-border);display:flex;flex-direction:column;max-width:820px;margin:0 auto;overflow:hidden}
@media (min-width:900px){.detail-sheet{top:40px;bottom:40px;border-radius:14px;border:1px solid var(--card-border)}}
.detail-close-rail{position:absolute;top:10px;right:10px;z-index:3}
.detail-close{width:32px;height:32px;border-radius:99px;border:1px solid var(--input-border);background:#000000a6;
  cursor:pointer;display:flex;align-items:center;justify-content:center}
.detail-sheet-body{overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin}
.detail-content{margin:0 auto}
.detail-hero{position:relative;padding:16px 14px 12px;display:flex;gap:14px;align-items:flex-start;overflow:hidden}
.hero-blur{position:absolute;inset:0;background-size:cover;background-position:50% 30%;filter:blur(26px) brightness(.3);z-index:0}
.hero-poster{position:relative;z-index:1;width:96px;flex:0 0 96px;height:144px;object-fit:cover;border-radius:8px;background:#22252b}
.hero-text{position:relative;z-index:1;min-width:0;flex:1}
.detail-hero h1{letter-spacing:calc(.02em + var(--track));flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;
  font-family:var(--font-display);font-size:calc(1.7rem*var(--sz-title));font-weight:400;display:flex;padding-right:38px;
  text-transform:var(--display-case)}
.title-suffix{color:var(--text-dim);font-size:.6em}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--text-dim);font-size:.8125rem}
.hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:7px 11px;font-size:.8rem;font-weight:700;
  text-decoration:none;border:1px solid var(--input-border);background:#ffffff0f;cursor:pointer}
.btn:hover{background:#ffffff1f}
.btn-imdb{background:#f5c518;border-color:#f5c518;color:#111}
.btn-sek{background:#ffffff12;border-color:var(--input-border);color:var(--text)}
.btn-sek:hover{background:#ffffff1f}
.sheet-section{padding:14px;border-top:1px solid var(--card-border)}
.sheet-section h2{font-family:var(--font-display);font-weight:400;letter-spacing:calc(.05em + var(--track));font-size:calc(1.05rem*var(--sz-head));
  text-transform:var(--display-case);
  margin:0 0 8px;color:var(--text-dim)}
.plot{margin:0;font-size:.9rem;line-height:1.5;color:#e6e8ec}
.trailer-thumb{position:relative;display:block;width:100%;border:0;padding:0;background:#000;border-radius:10px;
  overflow:hidden;cursor:pointer;aspect-ratio:16/9}
.trailer-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.8}
.trailer-scrim{position:absolute;inset:0;background:linear-gradient(#0000,#000000a6)}
.trailer-label{position:absolute;left:12px;bottom:10px;font-weight:700;font-size:.85rem}
.trailer-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;display:block}
.show-day{margin:0 0 6px;font-size:.78rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}
.cin-block{margin-bottom:14px}
.cin-head{display:flex;align-items:center;gap:7px;margin-bottom:7px;flex-wrap:wrap}
.cin-name{font-size:.88rem;font-weight:700}
.cin-addr{font-size:.74rem;color:var(--text-dim)}
.times{display:flex;flex-wrap:wrap;gap:6px}
.tbtn{display:inline-flex;flex-direction:column;align-items:center;gap:1px;background:#ffffff0f;
  border:1px solid var(--input-border);border-radius:7px;padding:6px 10px 5px;text-decoration:none;min-width:56px}
.tbtn:hover{background:var(--buy-green);border-color:var(--buy-green);color:#fff}
.tbtn .hh{font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}
.tbtn .sub{font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);white-space:nowrap}
.tbtn:hover .sub{color:#ffffffcc}
.about-section{opacity:.55;color:var(--text-dim);font-size:.72rem;line-height:1.6;padding:18px 2px 40px;
  max-width:var(--content-width);margin:0 auto}
.about-section a{color:var(--text-dim)}
.loc-banner{position:fixed;left:50%;bottom:18px;transform:translate(-50%,140%);z-index:80;
  display:flex;align-items:center;gap:12px;background:var(--card-bg);border:1px solid var(--input-border);
  border-radius:12px;padding:11px 14px;font-size:.82rem;max-width:min(560px,calc(100vw - 24px));
  box-shadow:0 12px 34px #000a;transition:transform .26s}
.loc-banner.show{transform:translate(-50%,0)}
.loc-banner button{border:1px solid var(--input-border);background:#ffffff0f;border-radius:7px;
  padding:6px 11px;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap}
.loc-banner button#lbYes{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.dd-ic{display:none}
@media (max-width:430px){
  :root{--ui:.735rem}
  /* Fire rullemenuer på én linje: på en telefon erstattes ordene Dato/Afstand/
     Alder/Visning af et lille ikon, og skrift og knapper bliver mindre. Der er
     ikke plads til både ord og værdi fire gange på 390 px — værdien er den, der
     bærer information ("I dag+i morgen", "50 km", "Alle aldre", "Efter tid"). */
  .tool-line{gap:3px}
  .dd-btn{padding:3px 5px 3px 8px;gap:3px;min-height:30px;border-radius:999px}
  .dd-txt{gap:0} .dd-k{display:none}
  .dd-ic{display:block;flex:none;width:11px;height:11px;color:var(--text-dim)}
  .dd.changed .dd-ic{color:var(--accent)}
  /* Plus Jakarta Sans er bredere end Outfit; et hak ned, så intet klippes på 390 px. */
  .dd-v{font-size:.8rem;letter-spacing:-.02em}
  .dd-chev{width:7px;height:7px}
  /* Dato-knappen har den længste tekst; lad de tre andre give sig først. */
  #ddDay{flex-shrink:.5}
}
@media (max-width:360px){:root{--ui:.70rem} .dd-v{font-size:.73rem} .dd-btn{padding-left:6px;gap:2px}}
@media (max-width:330px){.dd-v{font-size:.6rem} .dd-ic{display:none} .dd-btn{padding-left:5px}}

.kind-note{grid-column:1/-1;display:flex;align-items:center;gap:9px;margin:0 0 8px;
  background:#ffffff0a;border:1px solid var(--input-border);border-radius:10px;
  padding:9px 11px;font-size:.79rem;line-height:1.45;color:var(--text-dim)}
.kind-note b{color:var(--text);font-weight:600}
.kn-dot{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}
.kn-dot.k-film{color:var(--t-film)} .kn-dot.k-teater{color:var(--t-teater)}
.kn-dot.k-koncert{color:var(--t-koncert)} .kn-dot.k-sport{color:var(--t-sport)}
.kn-btn{flex:none;margin-left:auto;background:#ffffff14;border:1px solid var(--input-border);
  color:var(--text);border-radius:7px;padding:5px 11px;font:inherit;font-size:.76rem;
  font-weight:600;cursor:pointer}
.kn-btn:hover{background:#ffffff24}

.p-input{width:100%;max-width:100%;box-sizing:border-box;background:var(--input-bg);
  border:1px solid var(--input-border);color:var(--text);border-radius:9px;padding:12px 12px;
  font:inherit;font-size:16px;margin:0}
.p-input:focus{outline:1px solid var(--accent)}
.p-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.p-chip{--kc:var(--f-film);flex:1 1 auto;text-align:center;
  border:1px solid var(--input-border);background:#ffffff0a;color:var(--text-dim);
  border-radius:999px;padding:9px 14px;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer}
.p-chip.k-teater{--kc:var(--f-teater)} .p-chip.k-koncert{--kc:var(--f-koncert)}
.p-chip.k-museum{--kc:var(--f-museum)} .p-chip.k-sport{--kc:var(--f-sport)} .p-chip.k-mad{--kc:var(--f-mad)}
.p-chip.on{background:var(--kc);border-color:var(--kc);color:#0b0c0e;font-weight:700}

.prof-linkbtn.danger{color:var(--red)}
/* ---------- steder ---------- */
.sted-kort{text-decoration:none;color:inherit}
.kilde-note{grid-column:1/-1;color:var(--text-dim);font-size:.72rem;margin:6px 2px 0}
.naer-band{grid-column:1/-1;margin:4px 0 6px;min-width:0}
.naer-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 7px}
.naer-alle{background:none;border:1px solid var(--input-border);color:var(--text-dim);border-radius:999px;padding:4px 11px;
  font:inherit;font-size:.74rem;font-weight:600;cursor:pointer}
.naer-alle:hover{color:var(--text);border-color:#ffffff45}
.naer-track{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;scroll-snap-type:x proximity}
.naer-track::-webkit-scrollbar{display:none}
.naer-kort{flex:0 0 auto;width:126px;scroll-snap-align:start;text-decoration:none;color:inherit;
  border:1px solid var(--card-border);background:var(--card-bg);border-radius:11px;overflow:hidden;display:flex;flex-direction:column}
.naer-kort img{width:100%;height:84px;object-fit:cover;display:block;background:#22252b}
.naer-kort img.er-logo{object-fit:contain;padding:12%;background:#121418}
.naer-navn{font-family:var(--font-display);font-size:calc(1.02rem*var(--sz-title));letter-spacing:calc(.02em + var(--track));
  text-transform:var(--display-case);line-height:1.1;padding:7px 8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.naer-sub{color:var(--text-dim);font-size:.68rem;padding:3px 8px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.naer-kort:hover{border-color:#ffffff33}
.btn-buy{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.laes-mere{display:inline-block;margin-top:8px;color:var(--accent);font-size:.86rem;font-weight:600;text-decoration:none}
.laes-mere:hover{text-decoration:underline}
.plot.dim{color:var(--text-dim)}
.lab-radio{flex-direction:row;flex-wrap:wrap} .lab-radio .lab-opt{flex:1 1 auto;font-size:.88rem;padding:8px 10px}
/* ---------- restaurant: mærker og opslag ---------- */
.maerker{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;min-width:0}
.mk{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1;padding:3px 6px 3px;border-radius:6px;
  background:#ffffff0f;border:1px solid #ffffff14;font-size:calc(.7rem*var(--sz-mk));font-weight:700;letter-spacing:.04em;white-space:nowrap}
.mk i{font-style:normal;font-weight:500;font-size:calc(.6rem*var(--sz-mk));color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:2px;
  font-family:var(--font-display)}
/* Stilarter (designlabbet): boks (nu) · flad · delt (avis i eget felt) · linje (avis og karakter ved siden af hinanden) */
html[data-mk=flad] .mk{background:none;border-color:transparent;padding:2px 3px}
html[data-mk=delt] .mk{flex-direction:row;align-items:stretch;gap:0;padding:0;overflow:hidden;border-radius:7px}
html[data-mk=delt] .mk i{order:-1;margin:0;padding:4px 6px;background:#ffffff14;display:flex;align-items:center;color:var(--text)}
html[data-mk=delt] .mk b,html[data-mk=delt] .mk .mk-ord{display:flex;align-items:center;padding:3px 7px 3px 6px}
html[data-mk=linje] .mk{flex-direction:row;align-items:baseline;gap:5px;background:none;border:0;padding:1px 0;border-radius:0}
html[data-mk=linje] .mk i{order:-1;margin:0}
html[data-mk=linje] .maerker{gap:4px 12px}
.mk-mich{color:#e8c56a;background:#a5122a26;border-color:#c8283a55} .mk-mich.dim{color:#d9b46a}
.mk-avis{color:#f1e1a6} .mk-tom{opacity:.28} .mk b{font-weight:700;white-space:nowrap;letter-spacing:-.02em}
.ev-card.sted-kort{height:auto;min-height:128px;contain-intrinsic-size:auto 150px}
.mk-ta{color:#7fd8a0} .mk-g{color:#f2f0ea}
.hero-text .maerker{margin:6px 0 4px}
.naer-kort .maerker{padding:0 8px 8px;margin-top:-4px} .naer-kort .mk{font-size:.62rem;padding:2px 5px} .naer-kort .mk i{display:none}
.rest-kort .card-text{justify-content:flex-start;gap:3px}
.rest-navn{color:var(--accent);padding-right:38px}
.rest-koekken{margin:0;font-size:calc(.86rem*var(--sz-small));color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rest-linje2{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0;min-width:0}
.rest-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-width:0}
.rest-top .rest-navn{flex:1 1 auto;min-width:0;padding-right:0;margin-right:0}
.rest-linje2 .rest-tid{min-height:0;flex:none;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rest-linje2 .tid-knap{font-size:calc(.8rem*var(--sz-small))}
.rest-kort .rest-bund{padding-top:6px}
.rest-kat{font-size:calc(.78rem*var(--sz-small));font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rest-kat.dim{color:var(--text-dim)}
.km-knap{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;cursor:pointer;flex:none;
  color:var(--accent);font-weight:700;font-size:calc(.86rem*var(--sz-small));display:inline-flex;align-items:center;gap:3px;
  border-bottom:1px dotted color-mix(in srgb,var(--accent) 50%,transparent)}
.km-knap svg{width:10px;height:10px}
/* Ved navnet: samme skrift og størrelse som navnet selv. */
.rest-top .km-knap{font-family:var(--font-display);font-size:calc(1.42rem*var(--sz-title));font-weight:400;line-height:1.15;
  letter-spacing:calc(.02em + var(--track));border-bottom:0;gap:4px;align-self:baseline}
.rest-top .km-knap svg{width:.6em;height:.6em;opacity:.8}
.mk.mk-pol{color:#ff8da3} .mk.mk-jp{color:#f1e1a6} .mk.mk-stift{color:#f7d98b} .mk.mk-g{color:#9cc4ff}
/* Elitesmiley: Fødevarestyrelsens fire glade kontroller i træk. Vi tegner ikke
   deres smiley — kun ordet, så designkravene til symbolerne ikke er i spil. */
.rs-fold-sm .rs-fold-v{color:#8fd9a8}
.rs-fold-sm .rs-smiley{margin:6px 0 0}
.rs-smiley{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:.86rem;color:var(--text-dim)}
.rs-smiley b{color:var(--text);font-weight:700}
.rs-smiley.sur b{color:#f0b45a}
.rs-smiley a{color:var(--accent);border-bottom:1px dotted color-mix(in srgb,var(--accent) 50%,transparent);text-decoration:none}
.mk .mk-ord{font-weight:600;font-size:.62rem;letter-spacing:.02em;opacity:.8}
.rest-kort .mk{padding:2px 5px;font-size:calc(.66rem*var(--sz-mk))} .rest-kort .mk i{font-size:calc(.56rem*var(--sz-mk));margin-top:1px}
html[data-mk=delt] .rest-kort .mk{padding:0} html[data-mk=delt] .rest-kort .mk i{margin:0}
.rest-tid{min-height:20px}
.tid-knap{appearance:none;background:none;border:0;padding:0;font:inherit;font-size:calc(.84rem*var(--sz-small));color:var(--text-dim);
  display:inline-flex;align-items:center;gap:4px;cursor:pointer;border-bottom:1px dotted #ffffff33}
.tid-knap.dim{border-bottom:0;cursor:default;opacity:.7}
.tid-knap:hover{color:var(--text)}
.rest-bund{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:3px}
.rest-bund .km{color:var(--accent);font-weight:700;font-size:calc(.86rem*var(--sz-small))}
.g-anm{border-top:1px solid var(--card-border);padding:8px 0 6px} .g-anm:first-of-type{border-top:0}
.g-anm-top{display:flex;justify-content:space-between;gap:10px;font-size:.84rem} .g-anm-top b{color:#9cc4ff}
.g-anm p{margin:3px 0 0;font-size:.9rem;line-height:1.35;color:var(--text)}
.g-tal{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:2px 0 6px}
.g-tal b{font-size:1.6rem;color:#9cc4ff;font-family:var(--font-display);letter-spacing:.02em}
.g-tal span{color:var(--text-dim);font-size:.86rem}
.g-varsel{margin:0 0 8px;font-size:.86rem;line-height:1.45;color:#f0b45a}
.g-varsel b{color:#ffce7a}
.mk.mk-kn{color:var(--accent)}
/* Egen anmeldelse: seks stjerner, man kan trykke på. */
.egen-form{margin-top:6px}
.egen-h{margin:0 0 6px;font-weight:700;font-size:.95rem}
.stj-vaelg{display:flex;align-items:center;gap:4px;margin-bottom:8px}
.stj{appearance:none;background:none;border:0;padding:2px;margin:0;cursor:pointer;font-size:1.7rem;line-height:1;color:#ffffff2e;transition:color .12s,transform .12s}
.stj.on{color:#f7d98b} .stj:active{transform:scale(.9)}
@media (hover:hover){.stj:hover{color:#f7d98b}}
.stj-tal{margin-left:8px;color:var(--text-dim);font-size:.84rem}
.egen-tekst{width:100%;background:#ffffff0a;border:1px solid var(--input-border);border-radius:10px;color:var(--text);
  font:inherit;font-size:.95rem;padding:9px 11px;resize:vertical}
.egen-tekst:focus{outline:none;border-color:var(--accent)}
.egen-knapper{display:flex;align-items:center;gap:9px;margin-top:9px;flex-wrap:wrap}
.egen-svar{color:var(--text-dim);font-size:.85rem}
.egne-liste{margin-top:12px}
.rest-bund .maerker{margin:0}
.card-wrap.pop-open{z-index:30;content-visibility:visible}
.tid-pop{position:absolute;left:104px;right:10px;top:78px;z-index:6;background:var(--card-bg);border:1px solid var(--input-border);
  border-radius:10px;padding:10px 12px 8px;box-shadow:0 12px 30px #000b}
.tid-pop .uge{margin:0} .tid-pop .kilde-note{margin:6px 0 0;font-size:.66rem}
.uge{border-collapse:collapse;font-size:.9rem;margin:2px 0 6px} .uge td{padding:3px 14px 3px 0;color:var(--text-dim)}
.uge td:last-child{color:var(--text)} .uge tr.idag td{color:var(--accent);font-weight:700}
.anm{border-top:1px solid var(--card-border);padding:10px 0 8px}
.anm:first-child{border-top:0;padding-top:2px}
.anm-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.anm-medie{font-weight:700;font-size:.86rem} .anm-score{color:#f1e1a6;font-weight:700;font-size:.86rem;white-space:nowrap}
.anm-ovs{margin:4px 0 2px;font-weight:600;font-size:.95rem;line-height:1.3}
.anm-resume{margin:2px 0 4px;color:var(--text);font-size:.9rem;line-height:1.5}
.anm-hvem{margin:0;color:var(--text-dim);font-size:.76rem} .anm-hvem a{color:var(--accent);text-decoration:none;font-weight:600}
.andre{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.sheet-section .kilde-note{margin:8px 0 0}
/* ---------- designlab: et vindue, ikke et ark ---------- */
.lab-panel[hidden]{display:none}
.lab-panel{position:fixed;right:12px;top:76px;width:min(372px,94vw);max-height:min(78vh,760px);z-index:95;
  background:var(--card-bg);border:1px solid var(--input-border);border-radius:14px;box-shadow:0 18px 50px #000c;
  display:flex;flex-direction:column;overflow:hidden}
@media (max-width:700px){.lab-panel{left:3vw;right:auto;top:auto;bottom:10px;max-height:52vh}}
.lab-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px 9px 14px;
  border-bottom:1px solid var(--card-border);cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none}
.lab-head.drag{cursor:grabbing}
.lab-knapper{display:flex;gap:2px}
.lab-fold{background:none;border:0;color:var(--text-dim);font:inherit;font-size:1.2rem;line-height:1;cursor:pointer;padding:2px 8px}
.lab-body{padding:12px 14px 16px;overflow-y:auto;scrollbar-width:thin}
.lab-panel.foldet .lab-body{display:none}
.lab-panel.foldet{max-height:none}
.lab-body .prof-sec{margin-top:10px;padding-top:10px}
.lab-body .prof-sec h3{font-size:.9rem;margin:0 0 6px}
.prof-sec h3 small{font-weight:400;color:var(--text-dim);font-size:.78rem;margin-left:6px}
.lab-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
.lab-sw{appearance:none;background:none;border:1px solid var(--input-border);border-radius:10px;padding:8px 4px 6px;
  color:var(--text-dim);font:inherit;font-size:.68rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px}
.lab-sw i{display:block;width:34px;height:34px;border-radius:50%;background:var(--sw);
  box-shadow:0 0 0 2px #0b0c0e,0 0 0 3px #ffffff22}
.lab-sw.on{border-color:var(--sw);color:var(--text)} .lab-sw.on i{box-shadow:0 0 0 2px #0b0c0e,0 0 0 3px var(--sw),0 0 12px var(--sw)}
.lab-sw.custom{position:relative} .lab-sw.custom input{position:absolute;inset:0;opacity:0;cursor:pointer}
.lab-sw.custom i{background:conic-gradient(#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.lab-opts{display:flex;flex-direction:column;gap:6px}
.lab-opt{appearance:none;text-align:left;background:#ffffff0a;border:1px solid var(--input-border);border-radius:9px;
  padding:10px 12px;color:var(--text);font-size:1.05rem;cursor:pointer}
.lab-opt.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.lab-slider{display:grid;grid-template-columns:96px 1fr 44px;align-items:center;gap:10px;margin:8px 0;font-size:.9rem}
.lab-slider input{width:100%;accent-color:var(--accent)}
.lab-slider output{text-align:right;color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.82rem}
.lab-toggle{display:flex;align-items:center;gap:10px;margin:6px 0 2px;font-size:.92rem}
.lab-toggle input{width:18px;height:18px;accent-color:var(--accent)}

.gsi-wrap{display:flex;justify-content:center;margin-bottom:10px;min-height:44px}

.round-btn{position:relative}
.fav-count{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;
  border-radius:9px;background:var(--heart);color:#fff;font-size:.6rem;font-weight:800;
  display:grid;place-items:center;line-height:1}
.fav-count[hidden]{display:none}
#favBtn.on{color:var(--heart);border-color:var(--heart);background:#ff4d6d1f}

/* ---------- søgeark ---------- */
.search-panel .sheet-card{top:0;bottom:auto;transform:translate(-50%,-100%);
  border-radius:0 0 16px 16px;border-top:0;border-bottom:1px solid var(--input-border);
  height:min(80vh,620px)}
.search-panel.open .sheet-card{transform:translate(-50%,0)}
@media (min-width:700px){.search-panel .sheet-card{top:0;transform:translate(-50%,-100%);opacity:1}
  .search-panel.open .sheet-card{transform:translate(-50%,0) scale(1);opacity:1}}
.search-bar{display:flex;align-items:center;gap:8px;padding:14px 12px 10px;
  border-bottom:1px solid var(--card-border);padding-top:max(14px,env(safe-area-inset-top))}
.search-ic{color:var(--text-dim);display:flex;flex:none;padding-left:4px}
.search-input{flex:1;min-width:0;background:none;border:0;color:var(--text);
  font:inherit;font-size:1.08rem;padding:8px 2px}
.search-input:focus{outline:none}
.search-input::placeholder{color:var(--text-dim)}
.search-cancel{background:none;border:0;color:var(--accent);font:inherit;font-size:.9rem;
  font-weight:600;cursor:pointer;padding:8px 4px;flex:none}
.search-results{overflow-y:auto;flex:1;padding:6px 0 14px}
.sr-row{display:flex;align-items:center;gap:11px;width:100%;background:none;border:0;
  padding:8px 14px;cursor:pointer;text-align:left;font:inherit;color:inherit}
.sr-row:hover{background:#ffffff0f}
.sr-img{width:40px;height:54px;flex:none;object-fit:cover;border-radius:5px;background:#22252b}
.sr-txt{min-width:0;flex:1}
.sr-title{font-size:.95rem;font-weight:600;line-height:1.25;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.sr-sub{color:var(--text-dim);font-size:.8rem;margin-top:2px}
.sr-empty{color:var(--text-dim);font-size:.88rem;padding:22px 16px;text-align:center;line-height:1.5}

.cin-head{flex-wrap:wrap}
.kort-btn{display:inline-flex;align-items:center;gap:5px;margin-left:auto;flex:none;
  border:1px solid var(--input-border);background:#ffffff0f;color:var(--text);
  border-radius:7px;padding:5px 10px;font-size:.76rem;font-weight:600;text-decoration:none}
.kort-btn:hover{background:#ffffff1f;border-color:#ffffff33}

/* Arket skal aldrig være bredere end skærmen — ellers skalerer iOS hele siden. */
.sheet-card{max-width:min(460px,100vw);overflow-x:hidden}
.sheet-body{overflow-x:hidden}
.sheet-body *{max-width:100%}
.prof-intro{margin:0;font-size:.88rem;line-height:1.45;color:var(--text-dim)}
.prof-gemt{display:inline-block;opacity:0;transform:translateY(-2px);transition:opacity .18s,transform .18s;
  color:var(--green);font-weight:700}
.prof-gemt.vis{opacity:1;transform:none}
.search-input{font-size:16px}
.loc-input,.checkbox-filter-search{font-size:16px}

.henter{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--text-dim);
  font-size:.85rem;padding:14px 0}
.henter[hidden]{display:none}
.spin{width:15px;height:15px;border-radius:50%;border:2px solid #ffffff26;
  border-top-color:var(--accent);animation:snurre .7s linear infinite}
@keyframes snurre{to{transform:rotate(360deg)}}

/* Kort uden for skærmen koster hverken layout eller maling, før man ruller
   derned. 600 kort i "Vis flere" er derfor lige så lette som 60. */
.card-wrap{content-visibility:auto;contain-intrinsic-size:auto 118px}
.btn-del{background:transparent;color:var(--text-dim);border-color:var(--line)}
.btn-del:hover{color:var(--text)}

/* ---------- visning: Titel (én plakat pr. titel, tider som knapper) ---------- */
.tcard{position:relative;min-width:0;max-width:100%;background:var(--card-bg);border-radius:14px;padding:10px 10px 6px;margin:0 0 10px;
  border:1px solid var(--card-border);box-shadow:0 2px 10px #0004;grid-column:1/-1;
  content-visibility:auto;contain-intrinsic-size:auto 220px}
.tcard>.fav-heart{top:10px;right:10px}
.thead{display:flex;gap:11px;align-items:flex-start;padding:0 36px 0 0;text-align:left;cursor:pointer;min-width:0}
.tposter{width:76px;aspect-ratio:2/3;border-radius:8px;overflow:hidden;flex:none;background:#222;box-shadow:0 2px 8px #0006}
.tposter img{width:100%;height:100%;object-fit:cover;display:block}
.tinfo{flex:1;min-width:0;padding-top:2px}
.tinfo h3{margin:0 0 4px;font-family:var(--font-display);font-weight:400;font-size:calc(1.5rem*var(--sz-title));line-height:.98;
  letter-spacing:calc(.015em + var(--track));text-transform:var(--display-case);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tinfo .meta{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-dim);white-space:nowrap;overflow:hidden}
.tinfo .meta>span{flex:none} .tinfo .meta>span.g{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.tinfo .meta .dot{color:#565b66}
.kl{font-weight:700;letter-spacing:.02em}
.kl.film{color:#e8b44a}.kl.teater{color:#e26e8c}.kl.koncert{color:#60beff}.kl.sport{color:#ff7a59}.kl.museum{color:#6fcf97}
.tinfo .plot{margin:5px 0 0;font-size:.72rem;color:#a9adb7;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.venues{margin-top:8px}
.vrow{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #ffffff0d}
.vrow:first-child{border-top:0}
.tcard:not(.open) .vrow.x{display:none}
.vname{flex:0 0 104px;min-width:0;font-size:.78rem;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis}
.vname small{display:block;font-size:.69rem;color:var(--text-dim);font-weight:500;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vname.near{color:var(--accent)}
.chips{flex:1;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:1px 0;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000)}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-width:60px;padding:5px 7px 4px;border-radius:8px;text-align:center;text-decoration:none;color:inherit;
  background:#e8b44a14;border:1px solid #e8b44a3d;line-height:1;font:inherit;cursor:pointer}
.chip b{display:block;font-family:var(--font-display);font-weight:400;font-size:calc(1.15rem*var(--sz-time));color:var(--accent);letter-spacing:.03em}
.chip small{display:block;font-size:.63rem;color:#b7bbc4;margin-top:3px;white-space:nowrap}
.chip small.ok{color:#79d18f}.chip small.few{color:#ffb454}
.chip.soon{background:#e8b44a2a;border-color:#e8b44a80}
.exp{width:100%;text-align:left;padding:7px 0 4px;font-size:.75rem;color:var(--accent);font-weight:600;border:0;border-top:1px solid #ffffff0d;
  background:none;font-family:inherit;display:flex;align-items:center;gap:6px;cursor:pointer}
.exp svg{width:11px;height:11px}

/* ---------- visning: Plakat (store plakatkort) ---------- */
.hero{position:relative;min-width:0;max-width:100%;aspect-ratio:2/3;max-height:78vh;border-radius:18px;overflow:hidden;margin:0 0 14px;background:#1a1d22;
  box-shadow:0 8px 24px #0008;isolation:isolate;grid-column:1/-1;content-visibility:auto;contain-intrinsic-size:auto 540px}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to top,#0b0c0ef5 0%,#0b0c0ee0 22%,#0b0c0e80 38%,#0000 58%)}
.hero-hit{position:absolute;inset:0;z-index:1;background:none;border:0;cursor:pointer}
.hero .top{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:8px;z-index:2}
.hero .top .fav-heart{position:static;margin-left:auto;width:34px;height:34px}
.hero .top .fav-heart svg{width:17px;height:17px}
.tag{font-family:var(--font-display);font-size:calc(.8rem*var(--sz-head));letter-spacing:calc(.12em + var(--track));text-transform:var(--display-case);padding:5px 8px 3px;border-radius:6px;background:#0b0c0ecc;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.tag.film{color:#e8b44a}.tag.teater{color:#e26e8c}.tag.koncert{color:#60beff}.tag.sport{color:#ff7a59}.tag.museum{color:#6fcf97}
.hero .info{position:absolute;left:0;right:0;bottom:0;padding:0 16px 14px;z-index:2}
.when{display:flex;align-items:baseline;gap:9px;font-family:var(--font-display);letter-spacing:calc(.03em + var(--track));line-height:1;
  text-transform:var(--display-case)}
.when b{font-weight:400;font-size:2.1rem;color:var(--accent)}
.when span{font-size:1rem;color:#c9ccd3}
.when .in{color:var(--heart)}
.hero .info h2{margin:5px 0 7px;font-family:var(--font-display);font-weight:400;font-size:calc(2.35rem*var(--sz-title));line-height:.94;
  letter-spacing:calc(.01em + var(--track));text-transform:var(--display-case);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 2px 8px #000a}
.hmeta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:.8rem;color:#d5d8de;margin-bottom:12px}
.hmeta .dot{color:#6a6f7a} .hmeta .ok{color:#79d18f} .hmeta .few{color:#ffb454} .hmeta .pr{color:#fff;font-weight:600}
.cta{display:flex;align-items:center;gap:10px}
.buy{flex:1;height:44px;border-radius:12px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:.95rem;
  display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.01em;text-decoration:none;border:0;font-family:inherit;cursor:pointer}
.buy svg{width:18px;height:18px}
.buy.open{background:#ffffff14;color:#fff;border:1px solid #ffffff2a}
.alt{height:44px;padding:0 12px;border-radius:12px;background:#0b0c0e99;border:1px solid #ffffff22;color:#e6e8ec;font-size:.78rem;
  font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap;font-family:inherit;cursor:pointer}
.alt small{color:var(--text-dim);font-weight:500}
@media (min-width:700px){.hero{max-width:420px}}

/* Et logo er ikke en plakat. Det skal ses helt, midt i feltet, på husets egen
   mørke flade — ikke beskæres til et udsnit af et bogstav. */
.er-logo{object-fit:contain!important;padding:14%;background:#121418}
.hero-poster.er-logo{padding:10%}
.tposter .er-logo{padding:10%}
.hero>img.er-logo{object-fit:contain!important;background:#121418;padding:12% 12% 34%}


/* ═══════════════════ r34 · toppen ═══════════════════════════════════════
   Før lyste alt lige meget: skiltet, de tre vælgere og overskrifterne. Når
   alting råber, er der ingen, der bliver hørt. Nu er skiltet det eneste i
   toppen med fuld neon — vælgerne får en tynd, rolig ring, og først når man
   HAR ændret noget, tænder den i kategoriens farve. */

/* 1 · vælgerne: rolig hvid ring i stedet for fire lag glød */
.dd-btn{border:1.5px solid #ffffffa8;
  box-shadow:0 0 1px #ffffffc0,0 0 4px #ffffff5e,0 0 9px #ffffff24,inset 0 0 4px #ffffff2a}
.dd-btn:hover{border-color:#ffffffd8;
  box-shadow:0 0 1px #fff,0 0 5px #ffffff8a,0 0 12px #ffffff3d,inset 0 0 5px #ffffff38}

/* 2 · en vælger, der er ændret fra standard, lyser i kategoriens farve.
   Så kan man se på én gang, hvad der er skruet på — uden at læse teksten. */
.dd.changed .dd-btn{border-color:color-mix(in srgb,var(--kat-neon) 62%,#fff);
  box-shadow:0 0 1px #fff,0 0 5px var(--kat-neon),0 0 13px color-mix(in srgb,var(--kat-neon) 62%,transparent),
    inset 0 0 5px color-mix(in srgb,var(--kat-neon) 42%,transparent)}
.dd.changed .dd-k{color:color-mix(in srgb,var(--kat-neon) 72%,#fff)}
.dd.changed .dd-v{color:#fff}
.dd.changed .dd-chev{color:color-mix(in srgb,var(--kat-neon) 58%,#fff)}

/* 3 · desktop: tre vælgere delte 1120 px og blev til bjælker med lillebitte
   tekst i. De holder sig nu til midten, i samme bredde som logoet står i. */
@media (min-width:900px){
  .tool-line{max-width:790px;margin-left:auto;margin-right:auto}
}

/* 4 · de runde knapper stod uden lys midt i en neonrække. Samme tynde ring
   som vælgerne, så rækken hænger sammen. */
.round-btn{background:#0b0c0e;border:1.5px solid #ffffff8c;color:#d7dae2;
  box-shadow:0 0 1px #ffffffa8,0 0 4px #ffffff42,inset 0 0 4px #ffffff1f;
  transition:box-shadow .15s,border-color .15s,color .15s}
.round-btn:hover{border-color:#ffffffcc;color:#fff;
  box-shadow:0 0 1px #fff,0 0 6px #ffffff6e,inset 0 0 5px #ffffff30}
.round-btn.on{border-color:color-mix(in srgb,var(--kat-neon) 62%,#fff);color:#fff;
  box-shadow:0 0 1px #fff,0 0 5px var(--kat-neon),0 0 12px color-mix(in srgb,var(--kat-neon) 55%,transparent)}

/* 5 · kompakt top, når man er på vej ned i listen. Toppen er klæbende, så
   hver pixel den fylder, er en pixel mindre kultur. Logo og skilt krymper —
   vælgerne bliver, for det er dem, man vender tilbage til. */
.header-inner{transition:padding .18s ease}
.app-header.kompakt .header-inner{padding-top:4px;padding-bottom:5px}
.app-header.kompakt .brand-row{margin-bottom:4px;min-height:30px}
/* Højderne styres af --cap i r35-blokken nedenfor — kun skriftstørrelsen
   inde i skiltet skrumper her, så ordet ikke sprænger den lavere pille. */
.app-header.kompakt .kat-knap{min-width:104px;font-size:.98rem;padding:0 12px 0 14px}
@media (min-width:900px){.app-header.kompakt .kat-knap{font-size:1.15rem;min-width:126px}}
@media (prefers-reduced-motion:reduce){.header-inner{transition:none}}


/* ═══════════════════ r35 · nyt logo ════════════════════════════════════
   Billetten gav mening, da siden var film og koncerter. Med restauranter og
   caféer i kataloget lover den noget, halvdelen af indholdet ikke kan holde.
   NU er nu et neonrør i stedet — hult, som bøjet glas — og det lyser i den
   kategori, man står i. Det betyder også, at logoet ikke længere er syv
   billedfiler, én pr. farve: KULTUR er ét ordmærke, og NU er levende tekst,
   der bare arver --kat-neon. Skarpt i enhver størrelse, og 0,5 MB lettere.

   Alt i toppen måles nu i --cap: bogstavhøjden i KULTUR. Skiltet er præcis
   lige så højt — aldrig højere. Ét tal at skrue på, og de to kan ikke komme
   ud af trit. */
.brand-row{--cap:31px}
@media (min-width:900px){.brand-row{--cap:40px}}
@media (max-width:360px){.brand-row{--cap:27px}}

.brand-link{display:inline-flex;align-items:baseline;gap:.17em;line-height:1;text-decoration:none}
.brand-img{height:var(--cap);width:auto;display:block}
.brand-nu{font-family:var(--font-display);font-weight:600;text-transform:uppercase;
  font-size:calc(var(--cap) * 1.34);line-height:1;letter-spacing:.02em;
  color:transparent;-webkit-text-stroke:.062em #fff;
  /* Dæmpet i forhold til første udkast: to lag farve i stedet for tre, og
     kortere rækkevidde — ellers lyser røret ind over KULTUR. */
  filter:drop-shadow(0 0 1px #fff)
         drop-shadow(0 0 3px var(--kat-neon))
         drop-shadow(0 0 8px color-mix(in srgb,var(--kat-neon) 40%,transparent));
  transition:filter .2s ease}

/* Skiltet: samme højde som bogstaverne, punktum. */
.kat-knap{height:var(--cap);padding:0 15px 0 17px;min-width:116px}
@media (min-width:900px){.kat-knap{padding:0 19px 0 21px;min-width:140px}}

/* Kompakt top: ét tal skifter, resten følger med. */
.app-header.kompakt .brand-row{--cap:26px}
@media (min-width:900px){.app-header.kompakt .brand-row{--cap:34px}}
.brand-row{transition:none}
.brand-img,.kat-knap,.brand-nu{transition:height .18s ease,font-size .18s ease,padding .18s ease,filter .2s ease}
@media (prefers-reduced-motion:reduce){.brand-img,.kat-knap,.brand-nu{transition:none}}


/* ═══════════════════ r36 · restonear ═════════════════════════════════════
   Ny side, nyt navn, ét emne: spisesteder. Neonrøret hørte til en side med
   koncerter og teater; en restaurantguide skal ligne middag, ikke en
   spillehal. Så: varm mørk bund, vin som den eneste farve i tekst, safran
   kun i mærket, Petrona til alt der er overskrift eller navn. */
:root{
  --bg:#141012; --card-bg:#1d1719; --card-border:#ffffff10;
  --text:#f3ede4; --text-dim:#9a9088;
  --vin:#a8364a; --vin-dyb:#8b2635; --saf:#e8a317;
  --accent:var(--vin); --accent-faint:color-mix(in srgb,var(--vin) 14%,transparent);
  --heart:var(--vin); --kat-neon:var(--vin);
  --input-border:#3a2f31;
  --font-serif:'Petrona',Georgia,'Times New Roman',serif;
}
body{background:var(--bg);color:var(--text)}
.app-header{background:linear-gradient(#141012fa,#141012ee);border-bottom:1px solid #ffffff10}
.header-inner{padding:9px 12px 6px}

/* ── mærke + ord ── */
.brand-row{--cap:30px;gap:0;padding:0 74px 0 40px;margin-bottom:4px;min-height:36px}
@media (min-width:900px){.brand-row{--cap:38px}}
.app-header.kompakt .brand-row{--cap:24px}
.brand-link{display:inline-flex;align-items:center;gap:.28em;text-decoration:none;line-height:1}
.brand-maerke{width:var(--cap);height:var(--cap);display:block;flex:none;transition:width .18s ease,height .18s ease}
.brand-ord{font-family:var(--font-serif);font-weight:700;font-size:calc(var(--cap) * .96);line-height:1;letter-spacing:-.008em;display:inline-flex;
  transition:font-size .18s ease}
.brand-ord .a{color:var(--vin)} .brand-ord .b{color:var(--saf)}
.brand-img,.brand-nu,.brand-left,.kat-wrap,.kat-knap{display:none!important}

/* ── runde knapper: stille ── */
.round-btn{background:#ffffff08;border:1px solid #ffffff22;color:#d9d1c6;box-shadow:none}
.round-btn:hover{border-color:#ffffff44;color:#fff;box-shadow:none}
.round-btn.on{border-color:var(--vin);color:var(--vin);background:color-mix(in srgb,var(--vin) 12%,transparent);box-shadow:none}

/* ── vælgerne: vinkortet. Navn i kapitæler over værdien, hårstreg under.
   Er der valgt noget, bliver navn og streg vin. Ingen kasser, ingen glød. ── */
.tool-line{display:flex;gap:14px;margin-top:6px;align-items:stretch}
#ddDist,#ddSort,#ddType,#ddKoek{display:block;flex:1 1 0;min-width:0}
.dd{position:relative}
.dd-btn,.dd-btn:hover{border:0;border-bottom:1px solid #ffffff26;border-radius:0;background:none;box-shadow:none;
  padding:4px 16px 7px 1px;min-height:38px;gap:0;flex-direction:column;align-items:flex-start;justify-content:flex-end;transition:border-color .15s}
.dd-btn:hover{border-bottom-color:#ffffff55}
.dd-ic{display:none!important}
.dd-txt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;width:100%}
.dd-k{display:block!important;font-family:'Plus Jakarta Sans',sans-serif;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);font-weight:700;line-height:1}
.dd-v{font-family:var(--font-serif);font-weight:700;font-size:1rem;color:var(--text);line-height:1.1;width:100%;overflow:hidden;text-overflow:ellipsis}
.dd-chev{position:absolute;right:1px;bottom:9px;width:11px;height:11px;color:var(--text-dim)}
.dd.changed .dd-btn{background:none;border-bottom-color:var(--vin);box-shadow:none}
.dd.changed .dd-k,.dd.changed .dd-chev{color:var(--vin)} .dd.changed .dd-v{color:var(--text)}
@media (max-width:430px){
  .tool-line{gap:10px}
  .dd-btn,.dd-btn:hover{padding:3px 13px 6px 0;min-height:36px;border-radius:0}
  .dd-k{display:block!important;font-size:.54rem}
  .dd-v{font-size:.92rem}
}
@media (min-width:900px){.tool-line{max-width:760px;margin-left:auto;margin-right:auto;gap:22px}}
.app-header.kompakt .dd-btn{min-height:34px}

/* menuerne under vælgerne: samme rolige sprog */
.dd-menu{background:#1d1719;border:1px solid #ffffff18;box-shadow:0 18px 40px #00000080}
.dd-opt.on{color:var(--vin);background:var(--accent-faint)}
.dd-kilde.on{border-color:var(--vin);background:var(--accent-faint);color:#fff}
.dd-sep{color:var(--text-dim)}

/* ── overskrifter: Petrona, ingen glød, ingen versaler ── */
.date-separator{margin:14px 0 6px}
.date-separator-label,.fav-title,.naer-head .date-separator-label{
  font-family:var(--font-serif);font-weight:700;font-size:1.42rem;letter-spacing:-.005em;text-transform:none;
  color:var(--text);text-shadow:none}
.date-separator-label.dag{font-size:1rem;color:var(--vin)}
.fav-sub,#favSub{font-family:'Plus Jakarta Sans',sans-serif;color:var(--text-dim)}
.neon-ord,.neon-ord.on{text-shadow:none;color:var(--text)}
.kilde-note{font-family:'Plus Jakarta Sans',sans-serif}

/* ── restaurantkortet ──────────────────────────────────────────────────
   r37: navnet tilbage i den smalle display-skrift — den er bygget til at
   blive læst hurtigt i en liste, hvor serifen er bygget til at blive læst
   langsomt i en overskrift. Afstanden er cremehvid, ikke rød: rød tekst på
   mørk bund er smuk i overskrifter og træls i tal, man skal afkode på et
   halvt sekund. Nålen beholder farven.
   Mærkerne har fået deres egen række i fuld kortbredde — der er plads til
   fire i stedet for ét, og så er der ingen «+n» at forklare. */
.card-wrap{contain-intrinsic-size:auto 172px}
.ev-card.sted-kort.rest-kort{height:172px;min-height:172px;overflow:hidden;flex-direction:column;align-items:stretch}
@media (min-width:900px){.ev-card.sted-kort.rest-kort{height:176px;min-height:176px}}
.rest-ind{display:flex;align-items:stretch;flex:1;min-height:0;position:relative;z-index:1}
.rest-kort .card-poster-img{height:96px;width:76px;margin:10px 0 0 10px;flex:0 0 76px;align-self:flex-start}
.rest-kort .card-text{justify-content:flex-start;gap:5px;padding:10px 10px 0 11px}

/* Navnet må bryde på to linjer — et helt navn er mere værd end en
   snorlige forkant, og kortet har højden til det. Afstanden holder sig
   på den første linje. */
.ev-card .title.rest-navn{font-family:var(--font-display);font-weight:400;
  font-size:calc(1.46rem*var(--sz-title));letter-spacing:calc(.015em + var(--track));
  text-transform:uppercase;color:var(--text);line-height:1.08;padding-right:6px;
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rest-top{align-items:baseline;gap:9px}
/* afstanden: cremehvid og fed, nålen i vin */
.km,.st-km{color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;letter-spacing:-.02em}
.rest-kort .km-knap{color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;
  font-size:calc(.95rem*var(--sz-small));letter-spacing:-.02em;border-bottom:0;gap:2px}
.rest-kort .km-knap svg{width:12px;height:12px;color:var(--vin);stroke-width:3}
.rest-kat{font-family:'Plus Jakarta Sans',sans-serif;font-size:.64rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-dim);font-weight:700}
.rest-tid .tid-knap{font-family:'Plus Jakarta Sans',sans-serif;font-size:calc(.8rem*var(--sz-small))}

/* mærkerækken: fire små tavler i fuld kortbredde ───────────────────
   Fire anmeldelser ved siden af hinanden i et kort på 360 px giver
   omkring 80 px til hver. Etiket og karakter ved siden af hinanden
   koster det dobbelte, så kilden står som en lille overskrift og
   karakteren under — samme greb som vælgerne i toppen. Så får
   karakteren den plads, den skal have for at kunne læses. */
.rest-kort .rest-bund{position:relative;z-index:1;padding:7px 10px 9px;border-top:1px solid #ffffff12;
  background:#00000026;flex:none}
.rest-bund .maerker{display:flex;flex-wrap:nowrap;gap:5px;width:100%;margin:0;align-items:stretch}
/* De smalle bliver ved deres egen bredde, de brede giver efter.
   Ingen løber ud over kanten, og ét mærke alene bliver ikke en bjælke. */
html[data-mk=delt] .rest-bund .mk{flex:0 1 auto;min-width:0;flex-direction:column;align-items:stretch;
  gap:0;padding:0;border-radius:8px;overflow:hidden}
/* Kildenavnene står som de skrives — versaler med sperring er smukke i
   toppen, men koster her den bredde, det fjerde mærke skal bruge. */
html[data-mk=delt] .rest-bund .mk i{order:-1;display:block;width:100%;padding:3px 5px 2px;background:#ffffff14;
  font-family:'Plus Jakarta Sans',sans-serif;font-style:normal;font-weight:700;
  font-size:calc(.68rem*var(--sz-mk));letter-spacing:0;text-transform:none;text-align:center;
  color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-mk=delt] .rest-bund .mk b,html[data-mk=delt] .rest-bund .mk .mk-ord{display:block;width:100%;
  padding:3px 5px 4px;text-align:center;font-size:calc(1rem*var(--sz-mk));font-weight:700;
  letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Ord i stedet for en karakter («anmeldt», «Bib») fylder mere end et tal
   og bærer mindre — de sættes mindre, så de ikke skubber de andre ud. */
html[data-mk=delt] .rest-bund .mk b.mk-ord,html[data-mk=delt] .rest-bund .mk .mk-ord{font-size:calc(.72rem*var(--sz-mk))}
.rest-bund .mk{font-size:1rem;overflow:hidden}
/* ingen anmeldelser: rækken bliver stående, så alle kort er lige høje */
.rest-tom{display:flex;align-items:center;min-height:40px;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.78rem;color:#6f6862;letter-spacing:.02em}
@media (max-width:430px){
  .rest-bund .maerker{gap:5px}
  html[data-mk=delt] .rest-bund .mk i{padding:3px 5px 2px;font-size:calc(.67rem*var(--sz-mk))}
  html[data-mk=delt] .rest-bund .mk b,html[data-mk=delt] .rest-bund .mk .mk-ord{padding:3px 5px 4px}
  html[data-mk=delt] .rest-bund .mk b{font-size:calc(.96rem*var(--sz-mk))}
  html[data-mk=delt] .rest-bund .mk b.mk-ord,html[data-mk=delt] .rest-bund .mk .mk-ord{font-size:calc(.7rem*var(--sz-mk))}
}

.fav-heart.on{color:var(--vin)}
/* annoncekortet følger samme højde */
.annonce-kort .ann-card{height:172px;min-height:172px;overflow:hidden}
@media (min-width:900px){.annonce-kort .ann-card{height:176px;min-height:176px}}
.annonce-demo .demo-txt p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ── detaljeark, knapper, hjerte-spørgsmål: vin i stedet for turkis ── */
.buy,.rs-knap.primary,.clear-filters-btn,.more-btn{background:var(--vin);color:#fff}
.buy:hover,.rs-knap.primary:hover{background:var(--vin-dyb)}
.rs-tog.on{border-color:var(--vin);background:var(--accent-faint)}
.detail-title,.rs-navn,.hero-title,.sheet-title,.detail-sheet h2,.profile-sheet h2{font-family:var(--font-serif);font-weight:700;text-transform:none;letter-spacing:-.005em;text-shadow:none}
a{color:var(--vin)}

/* ── annoncekort: samme palet ── */
.annonce-maerke{background:var(--saf);color:#141012}
.annonce-demo .demo-h{color:var(--vin)}

</head>

/* ── foden ────────────────────────────────────────────────────────────── */
#foot{max-width:44rem;margin:38px auto 0;padding:22px 16px 60px;border-top:1px solid #ffffff12;text-align:center}
#foot p{font-family:'Plus Jakarta Sans',sans-serif;margin:0 0 8px;color:var(--text-dim)}
#foot .fod-links{font-size:.92rem;font-weight:700}
#foot .fod-links a{color:var(--text);text-decoration:none;border-bottom:1px solid #ffffff22;padding-bottom:1px}
#foot .fod-kilde{font-size:.78rem;line-height:1.6}
#foot .fod-kilde a{color:var(--text-dim)}

/* ── samtykke ──────────────────────────────────────────────────────────
   Et kort, ikke en bjælke: spørgsmålet skal kunne læses færdigt, før man
   svarer, og de to svar skal se lige inviterende ud. Ingen mørke mønstre. */
.samtykke{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center;
  background:#0a070866;backdrop-filter:blur(3px);padding:0;animation:samInd .18s ease-out}
@keyframes samInd{from{opacity:0}to{opacity:1}}
@media (min-width:700px){.samtykke{align-items:center;padding:24px}}
.sam-kort{width:100%;max-width:33rem;background:var(--card-bg);border:1px solid #ffffff1f;
  border-radius:18px 18px 0 0;padding:22px 20px 20px;box-shadow:0 -12px 40px #00000066}
@media (min-width:700px){.sam-kort{border-radius:18px;box-shadow:0 20px 60px #00000080}}
.sam-kort h2{font-family:var(--font-serif);font-weight:700;font-size:1.35rem;margin:0 0 12px;
  letter-spacing:-.005em;color:var(--text)}
.sam-kort p{font-family:'Plus Jakarta Sans',sans-serif;font-size:.93rem;line-height:1.55;
  color:#cfc7bd;margin:0 0 10px}
.sam-kort p b{color:var(--text);font-weight:700}
.sam-links{font-size:.86rem!important;margin:14px 0 16px!important}
.sam-links a{color:var(--vin);text-decoration:underline;text-underline-offset:2px}
.sam-knapper{display:flex;gap:10px;flex-wrap:wrap}
.sam-knapper button{flex:1 1 10rem;appearance:none;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:.95rem;padding:13px 16px;border-radius:11px;transition:background .12s,border-color .12s}
.sam-nej{background:transparent;color:var(--text);border:1px solid #ffffff2e}
.sam-nej:hover{background:#ffffff0f;border-color:#ffffff4a}
.sam-ja{background:var(--vin);color:#fff;border:1px solid var(--vin)}
.sam-ja:hover{background:var(--vin-dyb);border-color:var(--vin-dyb)}
/* Ringen hører til tastaturet, ikke til musen. */
.sam-knapper button:focus:not(:focus-visible){outline:none;box-shadow:none}

/* ── type, øko og et køkkenkort man kan se hele ─────────────────────────
   Køkkenmenuen skal kunne rumme alle 22 køkkener uden at rulle: den må
   fylde det meste af skærmen, og knapperne står tættere. Øko står øverst
   som sit eget spørgsmål — det er ikke et køkken, det er et løfte. */
#menuKoek{max-height:min(86vh,720px);max-width:min(94vw,420px)}
#menuKoek .dd-sec{gap:5px;padding:4px 10px 8px}
#menuType .dd-kilde{width:100%;justify-content:space-between}
.dd-oeko{display:flex;align-items:center;gap:8px;text-align:left;background:none;border:1px solid #8fd9a844;
  color:#8fd9a8;padding:9px 12px;border-radius:9px;cursor:pointer;font:inherit;font-size:.86rem;font-weight:700;margin:2px 6px 6px;width:calc(100% - 12px)}
.dd-oeko .n{margin-left:auto;font-weight:600;font-size:.74rem;opacity:.8}
.dd-oeko.on{background:#8fd9a822;border-color:#8fd9a8}
.dd-oeko svg{width:15px;height:15px;flex:none}
/* mærket på kortet: en prik og niveauet, i samme grønne som elitesmileyen */
/* Køkkenlinjen: navnet må klippes, mærket må ikke. */
.rest-kat{display:flex;align-items:baseline;gap:7px;min-width:0}
.rest-kat .kat-navn{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Niveauet bæres af farven — guld, sølv, bronze — så ordet kan være kort. */
.rest-kat .oeko{flex:none;letter-spacing:.06em}
.rest-kat .oeko.guld{color:#e8c56a} .rest-kat .oeko.soelv{color:#d3d8de} .rest-kat .oeko.bronze{color:#d8a26e}
.rs-oeko.guld{color:#e8c56a} .rs-oeko.soelv{color:#d3d8de} .rs-oeko.bronze{color:#d8a26e}
.rest-kat .oeko::before{content:"\00b7";margin-right:7px;color:var(--text-dim)}
.rs-oeko{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#8fd9a8;font-family:'Plus Jakarta Sans',sans-serif;font-size:.88rem;font-weight:700;margin:6px 0 2px}
.rs-oeko small{font-weight:500;color:var(--text-dim);font-size:.8rem}
.rs-oeko a{color:var(--text-dim);font-weight:500;font-size:.8rem}

/* ── logo i stedet for foto ────────────────────────────────────────────
   Et logo er tegnet til en lys flade — de fleste har sort eller farvet
   tegning og ingen baggrund. Derfor en cremehvid plade med luft, samme
   bredde som fotoet, så kortet ikke skifter form fra sted til sted. */
.rest-kort .rest-logo{flex:0 0 76px;width:76px;height:76px;margin:10px 0 0 10px;align-self:flex-start;
  background:#f3ede4;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  box-shadow:0 1px 0 #ffffff14 inset}
.rest-kort .rest-logo img{width:64px;height:64px;object-fit:contain;display:block}

/* Profilens chips følger mærket — de gamle kategorifarver hørte til kulturnu. */
.p-chip{--kc:var(--vin)}
.p-chip.on{background:var(--vin);border-color:var(--vin);color:#fff}

/* En type uden steder kan stadig vælges — men den skal se tom ud. */
.dd-kilde.tom{opacity:.42}

/* Logo i søgeresultatet — samme plade som på kortet, bare mindre. */
.sr-logo{flex:none;width:44px;height:44px;background:#f3ede4;border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.sr-logo img{width:36px;height:36px;object-fit:contain;display:block}
