/*
  tæppe-rens.dk — designsystem (mobile-first), afledt af kit/design/tokens.css
  -------------------------------------------------------------------------
  Indlæses af agb-site-kit på ALLE frontend-sider — også den gamle forside og
  Theme Builder-header (19) og -footer (23). Derfor:

  1. INGEN globale element-resets. Alt er scopet under .tr-page.
     Alle nye sidefragmenter wrappes i <div class="tr-page">…</div>.
  2. Element-regler skrives som `body .tr-page h1` (specificitet 0,1,2), så de
     slår Elementor-kittets `.elementor-kit-7 h1/a` (0,1,1) uanset
     indlæsningsrækkefølge. Komponenter skrives som `.tr-page .bp-x` (0,2,0+),
     så de slår både kittet og Hello Elementors reset.css.
  3. Custom properties ligger på :root (påvirker intet visuelt) så header-/
     footer-tilpasninger kan genbruge dem.

  Brand (aflæst 10-10-2026 fra Default Kit id 7 og live-sitet):
    Primary  "Dark blue"   #1C2A39  → tekst, mørke sektioner, logo
    Secondary "Lime"       #70E000  → handling (knapper, formular), som headerens knap
    Hover     "Light lime" #BDFA7F  → hover (samme som headerens knap)
    Custom    "Light blue" #A0CBF9 / "Baby blue" #DAECFF → tint-flader
  Lime er en FLADE-farve. Tekst på lime er altid mørkeblå (8,6:1) — aldrig hvid
  (hvid på lime = 1,7:1). Lime bruges aldrig som tekst på hvid (1,7:1); links er
  derfor en mørk blå (#1760A8, 6,4:1 på hvid).

  Typografi: sitet indlæser allerede Montserrat (variabel fil, alle vægte i én
  woff2) og Lato. Vi tilføjer INGEN ny webfont:
    overskrifter, priser, taltegn  → Montserrat 700/800
    brødtekst, knapper, labels     → Lato 400/700 (Lato har ingen 500/600)

  Kontrast (WCAG, beregnet): ink #1C2A39/hvid 14,6 · ink-2 #4B5A69/hvid 7,1 ·
  ink-2/paper-2 6,6 · link/hvid 6,4 · link/baby blue 5,3 · mørkeblå/lime 8,6 ·
  night-ink #B8C7D8/night 8,5 · lime/night 8,6.
*/

:root {
  /* Farver */
  --bp-accent:        #70E000;   /* Lime — flade for handling (knap, formular-knap, taltegn) */
  --bp-accent-ink:    #BDFA7F;   /* Light lime — hover/pressed (som headerens knap)          */
  --bp-accent-soft:   #E6F9D2;   /* Lime-tint — fokusring                                     */
  --bp-on-accent:     #1C2A39;   /* Tekst på lime (8,6:1)                                     */
  --bp-link:          #1760A8;   /* Links og kicker på lys baggrund (6,4:1 på hvid)           */
  --bp-link-ink:      #0F4C8A;   /* Link hover (8,7:1)                                        */
  --bp-tint:          #DAECFF;   /* Baby blue — fremhævet blok (svar-boks, tabel-highlight)   */
  --bp-ink:           #1C2A39;   /* Dark blue — tekst og overskrifter                          */
  --bp-ink-2:         #4B5A69;   /* Sekundær tekst (7,1:1 på hvid)                            */
  --bp-line:          #DFE5EC;   /* Kanter, delelinjer                                        */
  --bp-field:         #F3F6F9;   /* Inputbaggrund                                             */
  --bp-paper:         #FFFFFF;
  --bp-paper-2:       #F4F8FC;   /* Skiftende sektionsbaggrund, kølig tone                    */
  --bp-peach:         var(--bp-tint); /* bagudkompatibelt navn fra kittet                      */
  --bp-night:         #1C2A39;   /* Mørke sektioner = brandets mørkeblå                        */
  --bp-night-2:       #26394D;   /* Kort på mørk baggrund                                     */
  --bp-night-ink:     #B8C7D8;   /* Sekundær tekst på mørk (8,5:1)                            */
  --bp-ok:            #1F8F5F;   /* Flueben (ikke Trustpilot-grøn)                            */
  --bp-warn:          #B4541A;

  /* Typografi — sitets egne familier, ingen nye */
  --bp-font: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bp-font-display: "Montserrat", "Lato", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bp-fs-xs: 0.8125rem;  /* 13 */
  --bp-fs-s:  0.9375rem;  /* 15 */
  --bp-fs-m:  1.0625rem;  /* 17 */
  --bp-fs-l:  1.25rem;    /* 20 */
  --bp-fs-xl: 1.5rem;     /* 24 */
  --bp-fs-2xl: 2rem;      /* 32 */
  --bp-fs-3xl: 2.75rem;   /* 44 */
  --bp-lh-tight: 1.12;
  --bp-lh-body: 1.55;

  /* Rytme — 4px-grid */
  --bp-s1: 0.25rem; --bp-s2: 0.5rem; --bp-s3: 0.75rem; --bp-s4: 1rem;
  --bp-s5: 1.5rem; --bp-s6: 2rem; --bp-s7: 3rem; --bp-s8: 4rem; --bp-s9: 6rem;

  /* Form */
  --bp-r-pill: 999px;
  --bp-r-card: 12px;
  --bp-r-img: 16px;
  --bp-shadow: 0 6px 24px -8px rgba(28, 42, 57, 0.30);
  --bp-shadow-bar: 0 -4px 20px -6px rgba(28, 42, 57, 0.22);
  --bp-tap: 48px;
  --bp-measure: 68ch;
  --bp-container: 1120px;
  --bp-gutter: 1.25rem;

  /* Motion */
  --bp-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --bp-dur: 320ms;
}
@media (min-width: 768px)  { :root { --bp-gutter: 2rem; --bp-fs-xl: 1.75rem; --bp-fs-2xl: 2.5rem; } }
@media (min-width: 1024px) { :root { --bp-gutter: 2.5rem; --bp-fs-2xl: var(--bp-fs-3xl); --bp-fs-xl: 2rem; } }

/* ---------- Elementor-neutralisering ----------
   Siden er én HTML-widget i én container. Containere, der indeholder et
   .tr-page-fragment, bliver fuld bredde uden padding/gap, så hero og
   sektionsbaggrunde kan gå kant til kant. Rammer kun sider med .tr-page. */
.e-con:has(.tr-page) { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --content-width: 100%; --container-max-width: 100%; --width: 100%; }
.elementor-widget-html:has(.tr-page) { width: 100%; max-width: none; margin: 0 !important; }
.elementor-widget-html:has(.tr-page) > .elementor-widget-container { padding: 0; margin: 0; }
/* Sticky-baren må ikke dække footeren, når den er synlig */
body:has(.bp-sticky) { padding-bottom: 88px; }

/* ---------- Scopet basis (kun inden for .tr-page) ---------- */
.tr-page {
  background: var(--bp-paper); color: var(--bp-ink);
  font-family: var(--bp-font); font-size: var(--bp-fs-m); font-weight: 400; line-height: var(--bp-lh-body);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -webkit-text-size-adjust: 100%;
}
.tr-page *, .tr-page *::before, .tr-page *::after { box-sizing: border-box; }
body .tr-page img, body .tr-page svg, body .tr-page video { display: block; max-width: 100%; height: auto; }
body .tr-page a { font: inherit; color: var(--bp-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
body .tr-page a:hover, body .tr-page a:active { color: var(--bp-link-ink); }
.tr-page :focus-visible { outline: 3px solid var(--bp-link); outline-offset: 3px; border-radius: 4px; }
/* Fokusringen skal ses på mørk baggrund (≥3:1): lime på mørkeblå er 8,6:1 */
.tr-page :is(.bp-section--night, .bp-hero:not(.bp-hero--light), .bp-callout) :focus-visible { outline-color: var(--bp-accent); }
/* Telefonnumre brydes ikke midt i nummeret */
body .tr-page a[href^="tel:"] { white-space: nowrap; }
body .tr-page :is(button, input, select, textarea) { font: inherit; color: inherit; }
body .tr-page :is(h1, h2, h3, h4) { margin: 0; color: inherit; font-family: var(--bp-font-display); font-weight: 700; line-height: var(--bp-lh-tight); letter-spacing: -0.02em; text-wrap: balance; }
body .tr-page h1 { font-size: var(--bp-fs-2xl); font-weight: 800; letter-spacing: -0.03em; }
body .tr-page h2 { font-size: var(--bp-fs-xl); }
body .tr-page h3 { font-size: var(--bp-fs-l); }
body .tr-page h4 { font-size: var(--bp-fs-m); }
body .tr-page :is(p, li) { max-width: var(--bp-measure); }
body .tr-page p { margin: 0 0 var(--bp-s4); }
body .tr-page :is(ul, ol) { margin: 0; padding: 0; }
body .tr-page :is(strong, b) { font-weight: 700; }
body .tr-page figure { margin: 0; }
.tr-page .bp-muted { color: var(--bp-ink-2); }
.tr-page .bp-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tr-page .bp-brack { background: #FFF3C4; color: #5C4300; padding: 0 0.2em; border-radius: 3px; font-style: normal; } /* [KLAMMER] der skal bekræftes */

/* ---------- Layout ---------- */
.tr-page .bp-wrap { width: 100%; max-width: var(--bp-container); margin-inline: auto; padding-inline: var(--bp-gutter); }
.tr-page .bp-section { padding-block: var(--bp-s7); }
.tr-page .bp-section--tight { padding-block: var(--bp-s6); }
.tr-page .bp-section--warm { background: var(--bp-paper-2); }
.tr-page .bp-section--night { background: var(--bp-night); color: #fff; }
.tr-page .bp-section--night .bp-muted, .tr-page .bp-section--night .bp-lead { color: var(--bp-night-ink); }
.tr-page .bp-section--night a:not(.bp-btn) { color: #fff; }
.tr-page .bp-section > .bp-wrap > h2, .tr-page .bp-section > .bp-wrap > .bp-h { margin-bottom: var(--bp-s5); }
.tr-page .bp-kicker { display: block; font-size: var(--bp-fs-s); font-weight: 700; color: var(--bp-link); margin-bottom: var(--bp-s2); }
.tr-page .bp-section--night .bp-kicker { color: var(--bp-accent); }
.tr-page .bp-lead { font-size: var(--bp-fs-l); line-height: 1.4; color: var(--bp-ink-2); }
@media (min-width: 768px) { .tr-page .bp-section { padding-block: var(--bp-s8); } }
@media (min-width: 1024px) { .tr-page .bp-section { padding-block: var(--bp-s9); } }
/* Tight-varianten skal stå EFTER .bp-section-media-queries, ellers overskrives den på tablet/desktop */
@media (min-width: 768px)  { .tr-page .bp-section--tight { padding-block: var(--bp-s6); } }
@media (min-width: 1024px) { .tr-page .bp-section--tight { padding-block: var(--bp-s7); } }

/* ---------- Knapper ---------- */
body .tr-page .bp-btn, .tr-page .bp-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--bp-s2); min-height: var(--bp-tap); padding: 0 var(--bp-s5); border-radius: var(--bp-r-pill); border: 0; cursor: pointer; text-decoration: none; font-family: var(--bp-font); font-weight: 700; font-size: var(--bp-fs-m); line-height: 1; white-space: nowrap; transition: background-color var(--bp-dur) var(--bp-ease), color var(--bp-dur) var(--bp-ease), transform var(--bp-dur) var(--bp-ease), box-shadow var(--bp-dur) var(--bp-ease); }
.tr-page .bp-btn--primary, .tr-page .bp-btn--primary:visited { background: var(--bp-accent); color: var(--bp-on-accent); box-shadow: var(--bp-shadow); }
.tr-page .bp-btn--primary:hover, .tr-page .bp-btn--primary:focus { background: var(--bp-accent-ink); color: var(--bp-on-accent); }
.tr-page .bp-btn--primary:active { transform: translateY(1px); box-shadow: none; }
body .tr-page .bp-btn--ghost { background: transparent; color: var(--bp-ink); border: 1.5px solid var(--bp-ink); } /* body-præfiks: slår `body .tr-page .bp-btn { border: 0 }` */
.tr-page .bp-btn--ghost:hover, .tr-page .bp-btn--ghost:focus { background: var(--bp-ink); color: #fff; }
.tr-page .bp-btn--light { background: #fff; color: var(--bp-ink); }
.tr-page .bp-btn--light:hover, .tr-page .bp-btn--light:focus { background: var(--bp-tint); color: var(--bp-ink); }
.tr-page .bp-btn--block { width: 100%; }
.tr-page .bp-btn[aria-disabled="true"], .tr-page .bp-btn:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }
.tr-page .bp-btn svg { width: 18px; height: 18px; }

/* ---------- Postnummer-formular (indtægtskæden) ----------
   Kontrakt: action="/searching/index.php" method="post" name="postnr".
   Kun udseendet er vores. Selektorerne (0,3,0+) slår Hello-reset'ens
   input[type=text] og [type=submit]:hover/:focus. */
:is(.tr-page, .bp-sticky) .hero-form { width: 100%; max-width: 440px; margin: 0; }
:is(.tr-page, .bp-sticky) .hero-form .wrap { display: flex; width: 100%; }
:is(.tr-page, .bp-sticky) .hero-form .search { position: relative; display: flex; align-items: center; width: 100%; min-height: 60px; padding: 6px 6px 6px 20px; background: #fff; border: 1.5px solid var(--bp-line); border-radius: var(--bp-r-pill); box-shadow: var(--bp-shadow); transition: border-color var(--bp-dur) var(--bp-ease), box-shadow var(--bp-dur) var(--bp-ease); }
:is(.tr-page, .bp-sticky) .hero-form .search:focus-within { border-color: var(--bp-ink); box-shadow: 0 0 0 4px var(--bp-accent-soft), var(--bp-shadow); }
:is(.tr-page, .bp-sticky) .hero-form .searchTerm, :is(.tr-page, .bp-sticky) .hero-form .searchTerm:focus { flex: 1; min-width: 0; width: auto; border: 0 !important; outline: none; box-shadow: none; background: transparent; padding: 10px 0 !important; margin: 0 !important; border-radius: 0 !important; font-family: var(--bp-font); font-size: 1.0625rem; font-weight: 700; line-height: 1.2; color: var(--bp-ink); }
:is(.tr-page, .bp-sticky) .hero-form .searchTerm::placeholder { color: var(--bp-ink-2); opacity: 1; font-weight: 400; }
:is(.tr-page, .bp-sticky) .hero-form .searchButton, :is(.tr-page, .bp-sticky) .hero-form .searchButton:focus { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: auto; min-width: var(--bp-tap); height: var(--bp-tap); padding: 0 18px !important; border: 0 !important; border-radius: var(--bp-r-pill); background: var(--bp-accent); color: var(--bp-on-accent); font-family: var(--bp-font); font-weight: 700; font-size: var(--bp-fs-s); line-height: 1; cursor: pointer; white-space: nowrap; transition: background-color var(--bp-dur) var(--bp-ease); }
:is(.tr-page, .bp-sticky) .hero-form .searchButton:hover { background: var(--bp-accent-ink); color: var(--bp-on-accent); }
:is(.tr-page, .bp-sticky) .hero-form .searchButton:focus-visible { outline: 3px solid var(--bp-ink); outline-offset: 2px; }
:is(.tr-page, .bp-sticky) .hero-form .searchButton svg { width: 18px; height: 18px; flex: none; }
:is(.tr-page, .bp-sticky) .hero-form .searchButton span { display: none; }
:is(.tr-page, .bp-sticky) .hero-form__hint { display: flex; align-items: flex-start; gap: var(--bp-s2); margin: var(--bp-s3) 0 0; font-size: var(--bp-fs-s); color: var(--bp-ink-2); }
:is(.tr-page, .bp-sticky) .hero-form__hint svg { width: 16px; height: 16px; color: var(--bp-ok); flex: none; margin-top: 3px; }
:is(.tr-page, .bp-sticky) .hero-form--dark .search { border-color: transparent; }
:is(.tr-page, .bp-sticky) .hero-form--dark .hero-form__hint { color: var(--bp-night-ink); }
:is(.tr-page, .bp-sticky) .hero-form--dark .hero-form__hint svg { color: var(--bp-accent); }
/* Mørkeblå fokusring forsvinder på mørk baggrund, og lime flyder sammen med den lime knap → hvid */
.tr-page :is(.bp-section--night, .bp-hero:not(.bp-hero--light), .bp-callout) .hero-form .searchButton:focus-visible,
.tr-page .hero-form--dark .searchButton:focus-visible { outline-color: #fff; }
@media (min-width: 360px) { :is(.tr-page, .bp-sticky) .hero-form .searchButton span { display: inline; } }

/* ---------- Tillid: Trustpilot-linje ---------- */
.tr-page .bp-trust { display: flex; flex-direction: column; gap: 6px; max-width: 440px; font-size: var(--bp-fs-s); }
.tr-page .bp-trust .trustpilot-widget { min-height: 24px; }
.tr-page .bp-trust__source { margin: 0; font-size: var(--bp-fs-xs); line-height: 1.4; color: var(--bp-ink-2); }
.tr-page .bp-trust a { color: inherit; }
.tr-page .bp-trust--onphoto, .tr-page .bp-trust--onphoto .bp-trust__source { color: var(--bp-night-ink); }
.tr-page .bp-trust--onphoto a, .tr-page .bp-trust--onphoto a:hover { color: #fff; }

/* ---------- Hero ---------- */
.tr-page .bp-hero { position: relative; color: #fff; background: var(--bp-night); isolation: isolate; }
.tr-page .bp-hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
body .tr-page .bp-hero__media img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 62% 50%; }
.tr-page .bp-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(28,42,57,0.50) 0%, rgba(28,42,57,0.62) 45%, rgba(20,30,42,0.92) 100%); }
.tr-page .bp-hero .bp-wrap { display: flex; flex-direction: column; justify-content: flex-end; min-height: min(78svh, 720px); padding-block: var(--bp-s6); gap: var(--bp-s4); }
.tr-page .bp-hero h1 { max-width: 16ch; color: #fff; }
.tr-page .bp-hero__sub { font-size: var(--bp-fs-l); line-height: 1.35; color: #E3ECF6; max-width: 32ch; margin: 0; }
.tr-page .bp-hero__sub strong { color: #fff; }
.tr-page .bp-hero__proof { display: flex; flex-wrap: wrap; gap: var(--bp-s2) var(--bp-s4); margin: 0; padding: 0; list-style: none; font-size: var(--bp-fs-s); color: #E3ECF6; }
.tr-page .bp-hero__proof li { display: inline-flex; align-items: center; gap: 6px; max-width: none; }
.tr-page .bp-hero__proof svg { width: 16px; height: 16px; color: var(--bp-accent); }
@media (min-width: 768px) {
  .tr-page .bp-hero .bp-wrap { min-height: min(72vh, 680px); justify-content: center; padding-block: var(--bp-s8); }
  body .tr-page .bp-hero__media img { object-position: 50% 50%; }
  .tr-page .bp-hero__media::after { background: linear-gradient(90deg, rgba(20,30,42,0.88) 0%, rgba(28,42,57,0.60) 55%, rgba(28,42,57,0.25) 100%); }
}
/* Lys hero-variant (service-/bysider): ingen foto bag teksten */
.tr-page .bp-hero--light { color: var(--bp-ink); background: var(--bp-paper-2); }
.tr-page .bp-hero--light h1 { color: var(--bp-ink); }
.tr-page .bp-hero--light .bp-hero__sub { color: var(--bp-ink-2); }
.tr-page .bp-hero--light .bp-hero__sub strong { color: var(--bp-ink); }
.tr-page .bp-hero--light .bp-hero__proof { color: var(--bp-ink-2); }
.tr-page .bp-hero--light .bp-hero__proof svg { color: var(--bp-ok); }
.tr-page .bp-hero--light .bp-wrap { min-height: 0; padding-block: var(--bp-s6) var(--bp-s7); }

/* ---------- Ærlighedslinje (afsender) ---------- */
.tr-page .bp-notice { display: flex; gap: var(--bp-s3); align-items: flex-start; padding: var(--bp-s3) 0; font-size: var(--bp-fs-s); color: var(--bp-ink-2); border-bottom: 1px solid var(--bp-line); }
.tr-page .bp-notice svg { width: 18px; height: 18px; flex: none; color: var(--bp-link); margin-top: 2px; }
.tr-page .bp-notice p { margin: 0; max-width: none; }

/* ---------- Trin ---------- */
.tr-page .bp-steps { list-style: none; display: grid; gap: var(--bp-s5); counter-reset: step; }
.tr-page .bp-steps li { display: grid; grid-template-columns: 44px 1fr; gap: var(--bp-s4); max-width: none; align-content: start; }
.tr-page .bp-steps li::before { counter-increment: step; content: counter(step); display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--bp-r-pill); background: var(--bp-accent); color: var(--bp-on-accent); font-family: var(--bp-font-display); font-weight: 800; font-size: 1.125rem; }
.tr-page .bp-steps h3 { margin-bottom: var(--bp-s1); }
.tr-page .bp-steps p { margin: 0; color: var(--bp-ink-2); }
@media (min-width: 768px) { .tr-page .bp-steps { grid-template-columns: repeat(3, 1fr); gap: var(--bp-s6); } .tr-page .bp-steps li { grid-template-columns: 1fr; } }

/* ---------- Tjekliste (hvad er med) ---------- */
.tr-page .bp-check { list-style: none; display: grid; gap: var(--bp-s3); }
.tr-page .bp-check li { display: grid; grid-template-columns: 24px 1fr; gap: var(--bp-s3); max-width: none; }
.tr-page .bp-check svg { width: 22px; height: 22px; color: var(--bp-ok); margin-top: 2px; }
.tr-page .bp-check strong { display: block; }
.tr-page .bp-check span { color: var(--bp-ink-2); font-size: var(--bp-fs-s); }
@media (min-width: 1024px) { .tr-page .bp-check { grid-template-columns: 1fr 1fr; gap: var(--bp-s4) var(--bp-s6); } }

/* ---------- Prisliste ---------- */
.tr-page .bp-prices { border-top: 1px solid var(--bp-line); }
body .tr-page .bp-prices__row { display: grid; grid-template-columns: 1fr auto; gap: var(--bp-s2) var(--bp-s4); align-items: center; padding: var(--bp-s4) 0; border-bottom: 1px solid var(--bp-line); text-decoration: none; color: inherit; }
.tr-page .bp-prices__row:hover .bp-prices__name { color: var(--bp-link); }
.tr-page .bp-prices__name { font-family: var(--bp-font-display); font-weight: 700; font-size: var(--bp-fs-l); transition: color var(--bp-dur) var(--bp-ease); }
.tr-page .bp-prices__desc { grid-column: 1; margin: 0; color: var(--bp-ink-2); font-size: var(--bp-fs-s); }
.tr-page .bp-prices__price { grid-column: 2; grid-row: 1 / span 2; text-align: right; font-family: var(--bp-font-display); font-weight: 800; font-size: var(--bp-fs-l); white-space: nowrap; }
.tr-page .bp-prices__price small { display: block; font-family: var(--bp-font); font-weight: 700; font-size: var(--bp-fs-xs); color: var(--bp-ink-2); }
.tr-page .bp-prices__foot { margin-top: var(--bp-s4); font-size: var(--bp-fs-s); color: var(--bp-ink-2); }

/* ---------- Prisskema ---------- */
.tr-page .bp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-inline: calc(-1 * var(--bp-gutter)); padding-inline: var(--bp-gutter); }
body .tr-page .bp-table { width: 100%; min-width: 0; margin: 0; border-collapse: collapse; font-size: var(--bp-fs-s); background: transparent; }
.tr-page .bp-table th, .tr-page .bp-table td, .tr-page .bp-table tbody tr:hover > td, .tr-page .bp-table tbody tr:hover > th, .tr-page .bp-table tbody > tr:nth-child(odd) > td, .tr-page .bp-table tbody > tr:nth-child(odd) > th { padding: var(--bp-s3); text-align: right; border: 0; border-bottom: 1px solid var(--bp-line); vertical-align: top; background: transparent; line-height: 1.45; }
.tr-page .bp-table th:first-child, .tr-page .bp-table td:first-child, .tr-page .bp-table tbody > tr > th:first-child { text-align: left; position: sticky; left: 0; background: var(--bp-paper); }
.tr-page .bp-section--warm .bp-table th:first-child, .tr-page .bp-section--warm .bp-table td:first-child { background: var(--bp-paper-2); }
.tr-page .bp-table thead th { font-weight: 700; color: var(--bp-ink); border-bottom: 2px solid var(--bp-ink); }
.tr-page .bp-table tbody th { font-weight: 700; }
.tr-page .bp-table td strong { font-family: var(--bp-font-display); font-weight: 800; }
.tr-page .bp-table .is-hi { background: var(--bp-tint); }
.tr-page .bp-table caption { text-align: left; caption-side: bottom; padding-top: var(--bp-s3); color: var(--bp-ink-2); font-size: var(--bp-fs-xs); }
/* Opt-in til brede skemaer med mange kolonner: vandret scroll på mobil */
body .tr-page .bp-table--wide { min-width: 560px; }
/* Størrelser og priser brydes ikke midt i enheden ("11–⏎20 m²", "1.349⏎kr.").
   Kun rækkehoveder, hvis næste celle er en pris (<td><strong>), så lange bydelsnavne
   i dækningstabellerne stadig må ombrydes. */
.tr-page .bp-table tbody th:has(+ td > strong), .tr-page .bp-table td strong { white-space: nowrap; }
/* Reset mod Hello reset.css for tabeller uden .bp-table: grå kant om hver celle,
   grå striber og hover-baggrund. (0,2,2+) slår Hello's (0,1,5); .bp-table har egne regler. */
.tr-page table:not(.bp-table) { border-collapse: collapse; background-color: transparent; }
.tr-page table:not(.bp-table) :is(td, th) { border: 0; border-bottom: 1px solid var(--bp-line); }
.tr-page table:not(.bp-table) tbody > tr > :is(td, th) { background-color: transparent; }
.tr-page table:not(.bp-table) td strong { white-space: nowrap; }

/* ---------- Ydelser: liste med billede ---------- */
.tr-page .bp-services { list-style: none; display: grid; gap: var(--bp-s4); }
.tr-page .bp-services li { max-width: none; }
body .tr-page .bp-services a { display: grid; grid-template-columns: 96px 1fr auto; gap: var(--bp-s4); align-items: center; padding: var(--bp-s3); border: 1px solid var(--bp-line); border-radius: var(--bp-r-card); color: inherit; text-decoration: none; background: #fff; transition: border-color var(--bp-dur) var(--bp-ease), transform var(--bp-dur) var(--bp-ease); }
body .tr-page .bp-services a:hover { border-color: var(--bp-ink); transform: translateY(-2px); color: inherit; }
body .tr-page .bp-services img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; background: var(--bp-field); }
.tr-page .bp-services h3 { font-size: var(--bp-fs-m); margin-bottom: 2px; }
.tr-page .bp-services p { margin: 0; font-size: var(--bp-fs-s); color: var(--bp-ink-2); }
.tr-page .bp-services .bp-services__go { width: 40px; height: 40px; border-radius: var(--bp-r-pill); display: grid; place-items: center; background: var(--bp-accent); color: var(--bp-on-accent); }
.tr-page .bp-services .bp-services__go svg { width: 18px; height: 18px; }
@media (min-width: 768px) { .tr-page .bp-services { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Bevis-blok (kun dokumenterede tal) ---------- */
.tr-page .bp-proof { display: grid; gap: var(--bp-s5); }
.tr-page .bp-proof__item strong { display: block; font-family: var(--bp-font-display); font-size: var(--bp-fs-2xl); font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.tr-page .bp-proof__item span { display: block; margin-top: var(--bp-s2); color: var(--bp-ink-2); font-size: var(--bp-fs-s); }
.tr-page .bp-section--night .bp-proof__item span { color: var(--bp-night-ink); }
@media (min-width: 768px) { .tr-page .bp-proof { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Anmeldelser ---------- */
.tr-page .bp-reviews { list-style: none; display: grid; gap: var(--bp-s4); }
.tr-page .bp-reviews li { max-width: none; }
body .tr-page .bp-reviews blockquote { margin: 0; padding: var(--bp-s5); background: #fff; border: 1px solid var(--bp-line); border-radius: var(--bp-r-card); color: var(--bp-ink); quotes: none; }
.tr-page .bp-reviews p { margin: 0 0 var(--bp-s3); font-size: var(--bp-fs-m); }
.tr-page .bp-reviews footer { display: flex; justify-content: space-between; align-items: center; gap: var(--bp-s3); font-size: var(--bp-fs-s); color: var(--bp-ink-2); }
.tr-page .bp-reviews cite { font-style: normal; font-weight: 700; color: var(--bp-ink); }
@media (min-width: 768px) { .tr-page .bp-reviews { grid-template-columns: repeat(3, 1fr); } }
.tr-page .bp-reviews--scroll { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--bp-gutter); gap: var(--bp-s4); margin-inline: calc(-1 * var(--bp-gutter)); padding: 0 var(--bp-gutter) var(--bp-s2); scrollbar-width: none; }
.tr-page .bp-reviews--scroll::-webkit-scrollbar { display: none; }
.tr-page .bp-reviews--scroll li { flex: 0 0 min(84vw, 360px); scroll-snap-align: start; }
@media (min-width: 768px) { .tr-page .bp-reviews--scroll { display: grid; overflow: visible; margin-inline: 0; padding: 0; } .tr-page .bp-reviews--scroll li { flex: none; } }

/* ---------- FAQ ---------- */
.tr-page .bp-faq { border-top: 1px solid var(--bp-line); }
.tr-page .bp-faq details { border-bottom: 1px solid var(--bp-line); }
body .tr-page .bp-faq summary { display: flex; justify-content: space-between; align-items: center; gap: var(--bp-s4); min-height: 56px; padding: var(--bp-s3) 0; cursor: pointer; list-style: none; font-weight: 700; font-size: var(--bp-fs-m); line-height: 1.35; }
.tr-page .bp-faq summary::-webkit-details-marker { display: none; }
.tr-page .bp-faq summary::after { content: ""; flex: none; width: 12px; height: 12px; border-right: 2px solid var(--bp-ink); border-bottom: 2px solid var(--bp-ink); transform: rotate(45deg); transition: transform var(--bp-dur) var(--bp-ease); margin-right: 4px; }
.tr-page .bp-faq details[open] summary::after { transform: rotate(-135deg); }
.tr-page .bp-faq details > div { padding: 0 0 var(--bp-s4); color: var(--bp-ink-2); }
.tr-page .bp-faq details > div p:last-child { margin-bottom: 0; }

/* ---------- Bybrikker / relaterede links ---------- */
.tr-page .bp-cities { list-style: none; display: flex; flex-wrap: wrap; gap: var(--bp-s2); }
.tr-page .bp-cities li { max-width: none; }
body .tr-page .bp-cities a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--bp-s4); border-radius: var(--bp-r-pill); border: 1px solid var(--bp-line); background: #fff; color: var(--bp-ink); text-decoration: none; font-weight: 700; font-size: var(--bp-fs-s); }
body .tr-page .bp-cities a:hover { border-color: var(--bp-ink); color: var(--bp-ink); background: var(--bp-tint); }

/* ---------- Breadcrumb ---------- */
.tr-page .bp-crumbs { font-size: var(--bp-fs-xs); color: var(--bp-ink-2); padding-block: var(--bp-s3); }
.tr-page .bp-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--bp-s2); }
.tr-page .bp-crumbs li { max-width: none; display: inline-flex; gap: var(--bp-s2); }
.tr-page .bp-crumbs li + li::before { content: "/"; opacity: 0.5; }
body .tr-page .bp-crumbs a { color: inherit; }
.tr-page .bp-hero:not(.bp-hero--light) .bp-crumbs, .tr-page .bp-hero:not(.bp-hero--light) .bp-crumbs a { color: var(--bp-night-ink); }

/* ---------- Artikel (guides) ---------- */
.tr-page .bp-article { max-width: var(--bp-measure); }
body .tr-page .bp-article h2 { margin: var(--bp-s7) 0 var(--bp-s3); }
body .tr-page .bp-article h3 { margin: var(--bp-s5) 0 var(--bp-s2); }
body .tr-page .bp-article :is(ul, ol) { padding-left: 1.2em; margin-bottom: var(--bp-s4); }
.tr-page .bp-article li { margin-bottom: var(--bp-s2); }
body .tr-page .bp-article figure { margin: var(--bp-s5) 0; }
body .tr-page .bp-article img { border-radius: var(--bp-r-img); }
body .tr-page .bp-article figcaption { margin-top: var(--bp-s2); font-size: var(--bp-fs-xs); font-style: normal; color: var(--bp-ink-2); }
.tr-page .bp-answer { padding: var(--bp-s4) var(--bp-s5); background: var(--bp-tint); border-radius: var(--bp-r-card); font-weight: 700; margin-bottom: var(--bp-s4); }
.tr-page .bp-answer p { margin: 0; }
.tr-page .bp-meta { display: flex; flex-wrap: wrap; gap: var(--bp-s2) var(--bp-s4); font-size: var(--bp-fs-xs); color: var(--bp-ink-2); margin-bottom: var(--bp-s5); }
.tr-page .bp-toc { padding: var(--bp-s4) var(--bp-s5); background: var(--bp-paper-2); border-radius: var(--bp-r-card); margin-bottom: var(--bp-s6); }
.tr-page .bp-toc strong { display: block; margin-bottom: var(--bp-s2); font-size: var(--bp-fs-s); }
body .tr-page .bp-toc ol { list-style: decimal; padding-left: 1.2em; font-size: var(--bp-fs-s); }
body .tr-page .bp-toc a { color: var(--bp-ink); }
.tr-page .bp-callout { display: grid; gap: var(--bp-s3); padding: var(--bp-s5); background: var(--bp-night); color: #fff; border-radius: var(--bp-r-card); margin: var(--bp-s6) 0; }
.tr-page .bp-callout p { margin: 0; color: var(--bp-night-ink); }
.tr-page .bp-callout strong { color: #fff; }
.tr-page .bp-author { display: flex; gap: var(--bp-s4); align-items: center; padding-top: var(--bp-s5); margin-top: var(--bp-s7); border-top: 1px solid var(--bp-line); font-size: var(--bp-fs-s); color: var(--bp-ink-2); }

/* ---------- Sticky CTA ----------
   Vises først, når sidens første formular (#postnr) er scrollet ud
   (plugin'ets assets/tracking.js styrer .is-visible). Selektorerne kræver
   IKKE .tr-page som forfader, så baren virker, uanset om markup'en ligger i
   fragmentet eller udskrives af plugin'et i wp_footer. */
.bp-sticky { font-family: var(--bp-font); font-size: var(--bp-fs-m); line-height: var(--bp-lh-body); color: var(--bp-ink); }
.bp-sticky .bp-wrap { width: 100%; max-width: var(--bp-container); margin-inline: auto; padding-inline: 0; }
.bp-sticky .bp-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.bp-sticky svg { display: block; }
.bp-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: var(--bp-s2) var(--bp-gutter) calc(var(--bp-s2) + env(safe-area-inset-bottom)); background: rgba(255,255,255,0.96); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--bp-line); box-shadow: var(--bp-shadow-bar); transform: translateY(110%); transition: transform var(--bp-dur) var(--bp-ease); }
.bp-sticky.is-visible { transform: none; }
.bp-sticky .hero-form { max-width: none; }
.bp-sticky .hero-form .search { box-shadow: none; min-height: 52px; }
.bp-sticky .hero-form .searchButton { height: 40px; }
.bp-sticky__meta { display: none; }
@media (min-width: 768px) {
  .bp-sticky { padding-block: var(--bp-s3); }
  .bp-sticky .bp-wrap { display: flex; align-items: center; gap: var(--bp-s5); padding-inline: 0; }
  .bp-sticky__meta { display: block; flex: 1; margin: 0; font-size: var(--bp-fs-s); font-weight: 700; }
  .bp-sticky .hero-form { max-width: 480px; }
}

/* ---------- Kontaktformular ---------- */
.tr-page .bp-form { display: grid; gap: var(--bp-s4); }
.tr-page .bp-form label { display: grid; gap: var(--bp-s1); font-weight: 700; font-size: var(--bp-fs-s); line-height: 1.3; }
.tr-page .bp-form :is(input, textarea, select) { width: 100%; min-height: 52px; padding: 12px 16px; border: 1.5px solid var(--bp-line); border-radius: 12px; background: #fff; font-size: 1rem; }
.tr-page .bp-form textarea { min-height: 120px; resize: vertical; }
.tr-page .bp-form :is(input, textarea):focus { border-color: var(--bp-ink); outline: none; box-shadow: 0 0 0 4px var(--bp-accent-soft); }
.tr-page .bp-form .bp-error { display: none; color: var(--bp-warn); font-size: var(--bp-fs-xs); font-weight: 700; }
.tr-page .bp-form input:user-invalid ~ .bp-error { display: block; }
.tr-page .bp-form input:user-invalid { border-color: var(--bp-warn); }
.tr-page .bp-form__row { display: grid; gap: var(--bp-s4); }
@media (min-width: 640px) { .tr-page .bp-form__row { grid-template-columns: 1fr 1fr; } }

/* ---------- Motion: én autoriseret entré ---------- */
@media (prefers-reduced-motion: no-preference) {
  .tr-page .bp-hero h1, .tr-page .bp-hero__sub, .tr-page .bp-hero .hero-form, .tr-page .bp-hero .bp-trust, .tr-page .bp-hero__proof { animation: tr-rise 700ms var(--bp-ease) both; }
  .tr-page .bp-hero__sub { animation-delay: 80ms; } .tr-page .bp-hero .hero-form { animation-delay: 160ms; } .tr-page .bp-hero .bp-trust { animation-delay: 240ms; } .tr-page .bp-hero__proof { animation-delay: 300ms; }
  @keyframes tr-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) { .tr-page * { transition: none !important; animation: none !important; } }

/* ---------- Skip-link (Hello: <a class="skip-link screen-reader-text">) ----------
   Kopi af Hello-temaets theme.css-regel. agb_perf_dequeue fjerner theme.css,
   og så ville Elementors .screen-reader-text (top:-10000em, clip) holde linket
   skjult, også ved tastaturfokus. Ufarlig, når theme.css stadig indlæses. */
.skip-link.screen-reader-text:focus { clip: auto !important; clip-path: none; position: absolute; top: 5px; left: 5px; z-index: 100000; display: block; width: auto; height: auto; margin: 0; overflow: visible; padding: 12px 24px; background-color: #eee; color: #333; font-size: 1rem; line-height: normal; text-decoration: none; }
