/* Advesign – regler för default-k.hbs ovanpå advesign-components.css och site.css.
   Bara bibliotekets tokens. Sidspecifikt ligger i egna filer (css/home.css …)
   som laddas av sin mall. */

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { color: var(--c-ink); }

/* ---------- Cookie-bannern (partials/consent-banner.hbs, styrs av main.js) ----------
   Samma markup som på de gamla sidorna. Båda knapparna ser likadana ut:
   att säga nej ska vara lika lätt som att säga ja. */
.consent-banner {
  position: fixed;
  right: var(--s-4);
  bottom: var(--s-4);
  z-index: 70;
  display: flex;
  align-items: center;
  gap: var(--s-5);
  max-width: 640px;
  padding: var(--s-4) var(--s-5);
  border: 1px solid var(--c-rule-dark);
  border-radius: var(--radius-card);
  background: var(--c-deep);
  color: var(--c-lilac);
  box-shadow: var(--shadow-pop);
  font-family: var(--font-body);
  font-size: var(--fs-small);
  line-height: 1.5;
}
.consent-banner p { margin: 0; }
.consent-banner .consent-title { margin-bottom: var(--s-1); font-family: var(--font-display); font-size: 0.95rem; font-weight: 700; color: var(--c-white); }
.consent-banner a { color: var(--c-white); font-weight: 700; text-decoration: underline; text-decoration-color: var(--c-lime); text-underline-offset: 3px; }
.consent-actions { display: flex; flex-direction: column; flex-shrink: 0; gap: var(--s-2); }
.consent-banner .button {
  min-height: 44px;
  padding: 0 var(--s-5);
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--c-lime);
  color: var(--c-deep);
  font: 700 0.9375rem/1 var(--font-body);
  cursor: pointer;
}
.consent-banner .button:focus-visible { outline: 3px solid var(--c-lime); outline-offset: 3px; }
@media (max-width: 640px) {
  .consent-banner { left: var(--s-4); flex-direction: column; align-items: stretch; gap: var(--s-3); }
  .consent-actions { flex-direction: row; }
  .consent-actions .button { flex: 1; }
}

/* ---------- Sidhuvudet: menyn centrerad ----------
   I komponentbiblioteket (K-HEADER) står menyn till höger, intill språkvalet
   och knappen (.k-nav { margin-left: auto }). Här står den mitt på sidan, som
   på den nuvarande sajten. Gäller från 1200 px: hela menyn visas från 1140 px
   (site.css gömmer den mellan 920 och 1139 px), men mellan 1140 och 1199 px
   blir det för trångt mot språkvalet, så där står den kvar till höger. */
@container k (min-width: 1200px) {
  .k-header__inner { position: relative; }
  .k-header .k-nav { position: absolute; left: 50%; transform: translateX(-50%); margin-left: 0; }
  .k-header .k-lang { margin-left: auto; }
}

/* ---------- Bransch- och länssidor (custom-bransch.hbs, js/k-data-page.js) ---------- */
.adv-dp__intro { display: grid; gap: var(--s-3); }
.adv-dp__intro:empty { display: none; }
.adv-dp__intro-more { color: var(--fg-muted); font-size: var(--fs-small); }
.adv-dp__more { margin-top: var(--s-8); }
/* Utan JavaScript: sidans text som en vanlig artikel */
.adv-dp__content .adv-copy { max-width: 72ch; }
.adv-dp__content h2 { margin: var(--s-6) 0 0; font-family: var(--font-display); font-size: 1.75rem; line-height: 1.15; letter-spacing: -0.03em; }
.adv-dp__head [data-dp-aside] { max-width: 68ch; }
/* "Andra branscher" följer det vita "Om siffrorna"-bandet: inget dubbelt luftrum */
.adv-dp__others { padding-top: 0; }

/* FINAL-BOOKING: Cal.diy-kalendern (startsidan, Tjänster och priser och K-FINAL med booking=…) (partials/k-booking.hbs, js/k-booking.js). Cal
   sätter iframens höjd själv; min-height håller platsen medan den laddas. */
.booking-embed__frame { position: relative; width: 100%; min-height: 560px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: var(--radius-card); background: rgba(255, 255, 255, 0.04); }
.booking-embed.is-ready .booking-embed__frame { min-height: 0; border-color: transparent; background: none; }
.booking-embed__loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: var(--s-2); margin: 0; color: rgba(255, 255, 255, 0.72); }
.booking-embed__frame iframe { display: block; width: 100%; }
.k-final__booking { display: grid; gap: var(--s-4); margin-top: var(--s-10); }
.k-final__booking .link-cal { color: var(--c-white); font-weight: 700; text-decoration: none; }
.booking-embed--compact .booking-embed__frame { min-height: 420px; }
.k-final__booking .k-link { margin-top: var(--s-3); }
@container k (min-width: 1024px) { .k-final--booking .k-final__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-10); } }

/* Klasser som Ghost-texten på bransch- och länssidorna använder (de stod tidigare i
   screen.css, som de omgjorda sidorna inte laddar). */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Kommuntabellen: osäkra värden ljusare, stjärnan utanför siffran så att siffrorna står i rad */
:is(.byggdata-kommuner, .adv-table) td.osaker { color: var(--fg-muted); }
:is(.byggdata-kommuner, .adv-table) td .mark { position: absolute; margin-left: 1px; }
.byggdata-kommuner-hint { display: none; }
@media (max-width: 640px) { .byggdata-kommuner-hint { display: block; font-size: var(--fs-small); color: var(--fg-muted); } }
/* Stjärnorna och skärmläsartexten ligger absolut; rutan som scrollar måste vara deras
   referens, annars hamnar de utanför tabellen när den scrollas. */
:is(.adv-table__wrap, .byggdata-kommuner-scroll):has(.mark, .sr-only) { position: relative; }
