/* ==========================================================
   OLB FOOTER ADAPTER v0.3 (plugin 0.3.0: foldbare kolonner <768, nyhedsbrev, Google-bedømmelse)
   Klassifikation: component adapter
   Requires: OLB Design System v1.0 LOCKED (runtime-hashes verificeret), Loader ≥ 1.6.0
   Functional master: OLB_FOOTER_MASTER_v1.1_READY_FOR_IMPLEMENTATION.md
   Specialist master: n/a (adfærd: OLB_SHELL_BEHAVIOR_SPECIALIST_MASTER, trin A14)
   Mockup: FooterOLB.png (inden for K10: petrol-footer)
   Build mode: A
   Structure: OLB_FOOTER_STRUCTURE_PLAN_v1.3.md · DOM: OLB_FOOTER_DOM_VERIFICATION_v1.0.md
   Owns: placering, grid, zone-synlighed, kobling af footer-markup til canonical tokens
   Does NOT own: farver, typografi, spacing-skala, radius, skygger,
                 knapper/felter/kort/ikoner, fokus, globale states,
                 produktgrid, breakpoints
   Breakpoints: kun canonical (768 / 1024)
   Documented deviations:
     K10  footer = --color-footer-bg/-fg. "Bland selv slik" fremhæves med vægt + chevron.
     K13  Køl & frost-feltet vises ikke <768.
     DEV-F1  stretched link (::after, position absolute, inset 0) gør hele quick-action-feltet
             klikbart <768. Ingen værdier, kun strukturelle nøgleord.
   ========================================================== */


/* ----------------------------------------------------------
   0. Bricks-lag og fælles nulstilling
   ---------------------------------------------------------- */

.olb-footer-help,
.olb-footer-links,
.olb-footer-trust,
.olb-footer-legal {
  background: var(--color-footer-bg);
  color: var(--color-footer-fg);
  font-family: var(--font-family-ui);
  line-height: var(--line-height-ui);
}

.olb-footer-help > .olb-container > .brxe-shortcode,
.olb-footer-links > .olb-container > .brxe-shortcode,
.olb-footer-trust > .olb-container > .brxe-shortcode,
.olb-footer-legal > .olb-container > .brxe-shortcode {
  inline-size: 100%;
}

:is(.olb-footer-help__list, .olb-footer-links__list,
    .olb-footer-trust__methods, .olb-footer-legal__list) {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* :where() = specificitet 0, så komponentklasserne nedenfor altid vinder. */
:where(.olb-footer-help, .olb-footer-links, .olb-footer-trust, .olb-footer-legal) :where(p, h2) {
  margin: 0;
}

:where(.olb-footer-help, .olb-footer-links, .olb-footer-trust, .olb-footer-legal) a {
  color: inherit;
  text-decoration: none;
}

/* Knapper, der skal se ud som links (leveringspanel, CookieYes). */
:where(.olb-footer-help__action, .olb-footer-links__link, .olb-footer-legal__link):is(button) {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
}

:is(.olb-footer-help__action, .olb-footer-help__whatsapp, .olb-footer-links__link,
    .olb-footer-trust__reviews, .olb-footer-trust__social, .olb-footer-legal__link):hover {
  text-decoration: underline;
}


/* ----------------------------------------------------------
   1. Hjælperække — <768: 3 quick-actions (master §15, K13)
   ---------------------------------------------------------- */

.olb-footer-help {
  padding-block: var(--space-5);
  border-block-end: var(--border-divider);
}

.olb-footer-help__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olb-footer-help__item {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: var(--gap-hairline);
  min-block-size: var(--field-height);
  padding-inline: var(--gap-tight);
  text-align: center;
}

.olb-footer-help__item + .olb-footer-help__item {
  border-inline-start: var(--border-divider);
}

.olb-footer-help__title {
  font-size: var(--font-size-meta);
  font-weight: var(--font-weight-semibold);
}

.olb-footer-help__action {
  display: inline-flex;
  align-items: center;
  gap: var(--icon-gap-sm);
  font-size: var(--font-size-meta);
}

.olb-footer-help__action--page {
  margin-block-start: var(--space-1);
}

.olb-footer-help__whatsapp {
  display: inline-flex;
  align-items: center;
  gap: var(--icon-gap-sm);
  min-block-size: var(--field-height);
  font-size: var(--font-size-small);
}

.olb-footer-help__brand {
  inline-size: var(--icon-size-sm);
  block-size: var(--icon-size-sm);
}


/* Kun mobil: kompakte felter uden sekundære linjer. */
@media (max-width: 767.98px) {

  /* DEV-F1: hele feltet er klikbart. */
  .olb-footer-help__action::after {
    content: "";
    position: absolute;
    inset: 0;
  }

  .olb-footer-help__action .olb-icon,
  .olb-footer-help__action--page,   /* v0.2.4: kun ét klikmål pr. felt på mobil */
  .olb-footer-help__detail,
  .olb-footer-help__whatsapp,
  .olb-footer-help__text--wide,
  .olb-footer-help__item--frost {
    display: none;
  }
}


/* ----------------------------------------------------------
   2. Linkkolonner — <768: liste under hinanden (accordions i A14, K19)
   ---------------------------------------------------------- */

.olb-footer-links {
  padding-block: var(--space-4);
}

.olb-footer-links__group {
  border-block-end: var(--border-divider);
}

.olb-footer-links__heading {
  display: flex;
  align-items: center;
  min-block-size: var(--height-drawer-row);
  color: inherit;
  font-family: var(--font-family-body);
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-normal);
}

.olb-footer-links__list {
  padding-block-end: var(--space-4);
}

.olb-footer-links__link {
  display: inline-flex;
  align-items: center;
  gap: var(--icon-gap-sm);
  min-block-size: var(--field-height);
  font-size: var(--font-size-nav-sub);
}

.olb-footer-links__link--priority {
  font-weight: var(--font-weight-semibold);
}


/* ----------------------------------------------------------
   3. Trust — anmeldelser · betaling · Facebook
   ---------------------------------------------------------- */

.olb-footer-trust {
  padding-block: var(--space-6);
}

.olb-footer-trust__inner {
  display: grid;
  gap: var(--gap-card-list);
}

.olb-footer-trust__reviews,
.olb-footer-trust__social {
  display: inline-flex;
  align-items: center;
  gap: var(--gap-inline);
  min-block-size: var(--field-height);
  font-weight: var(--font-weight-semibold);
}

.olb-footer-trust__brand {
  inline-size: auto;
  block-size: var(--icon-size-md);
}

.olb-footer-trust__payment {
  display: grid;
  gap: var(--gap-tight);
}

.olb-footer-trust__label {
  font-weight: var(--font-weight-semibold);
}

.olb-footer-trust__note {
  font-size: var(--font-size-small);
}

.olb-footer-trust__methods {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-tight);
}

/* Hvid flade bag betalingsmærkerne, så de står i egne farver på petrol. */
.olb-footer-trust__method {
  display: inline-flex;
  align-items: center;
  gap: var(--icon-gap-sm);
  min-block-size: var(--space-8);
  padding-inline: var(--space-3);
  border-radius: var(--radius-badge);
  background: var(--color-surface);
  color: var(--color-text-primary);
  font-size: var(--font-size-meta);
  font-weight: var(--font-weight-medium);
}

.olb-footer-trust__method-img {
  inline-size: auto;
  block-size: var(--icon-size-md);
}


/* ----------------------------------------------------------
   4. Juridisk bund — <768: links først (master §18)
   ---------------------------------------------------------- */

.olb-footer-legal {
  padding-block: var(--space-6);
  border-block-start: var(--border-divider);
  font-size: var(--font-size-meta);
}

/* Bundnav B9: plads til bundnavigationen kun når den faktisk vises (body-class sættes af olb-bottom-nav). */
body.olb-has-bottom-nav .olb-footer-legal {
  padding-block-end: calc(var(--space-6) + var(--bottom-nav-total));
}

.olb-footer-legal__inner {
  display: grid;
  gap: var(--gap-component);
}

.olb-footer-legal__nav {
  order: -1;
}

.olb-footer-legal__list {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--gap-component);
}

.olb-footer-legal__link {
  display: inline-flex;
  align-items: center;
  min-block-size: var(--field-height);
}

.olb-footer-legal__company {
  display: grid;
  gap: var(--gap-hairline);
}

.olb-footer-legal__age {
  font-weight: var(--font-weight-semibold);
}


/* ----------------------------------------------------------
   5. ≥768 (tablet) — hjælperække 2+2, kolonner 2+2 (master §23)
   ---------------------------------------------------------- */

@media (min-width: 768px) {

  .olb-footer-help {
    padding-block: var(--space-7);
  }

  .olb-footer-help__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap-block);
  }

  .olb-footer-help__item {
    grid-template-columns: auto minmax(0, 1fr);
    justify-items: start;
    column-gap: var(--gap-inline);
    padding-inline: 0;
    text-align: start;
  }

  .olb-footer-help__item + .olb-footer-help__item {
    border-inline-start: 0;
  }

  .olb-footer-help__item > .olb-icon {
    grid-row: span 6;
  }

  .olb-footer-help__item > :not(.olb-icon) {
    grid-column: 2;
  }

  .olb-footer-help__title {
    font-size: var(--font-size-body);
  }

  .olb-footer-help__action,
  .olb-footer-help__detail {
    font-size: var(--font-size-small);
  }

  .olb-footer-help__action {
    text-decoration: underline;
  }

  .olb-footer-help__item--phone .olb-footer-help__action {
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
  }

  .olb-footer-help__text--compact {
    display: none;
  }

  .olb-footer-links {
    padding-block: var(--space-8);
  }

  .olb-footer-links__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap-block);
  }

  .olb-footer-links__group {
    border-block-end: 0;
  }

  .olb-footer-links__heading {
    min-block-size: 0;
    margin-block-end: var(--space-3);
    font-family: var(--font-family-heading);
    font-size: var(--font-size-h3);
    font-weight: var(--font-weight-heading);
    letter-spacing: var(--tracking-heading);
  }

  .olb-footer-links__list {
    padding-block-end: 0;
  }

  .olb-footer-trust__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
  }

  .olb-footer-trust__payment {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  body.olb-has-bottom-nav .olb-footer-legal {
    padding-block-end: var(--space-6);
  }
}


/* ----------------------------------------------------------
   6. ≥1024 (desktop) — 4 kolonner, vandret trust, juridisk på én linje
   ---------------------------------------------------------- */

@media (min-width: 1024px) {

  .olb-footer-help__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .olb-footer-help__item + .olb-footer-help__item {
    padding-inline-start: var(--gap-block);
    border-inline-start: var(--border-divider);
  }

  .olb-footer-links__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .olb-footer-links__group + .olb-footer-links__group {
    padding-inline-start: var(--gap-block);
    border-inline-start: var(--border-divider);
  }

  .olb-footer-links__link {
    min-block-size: 0;
    padding-block: var(--space-1);
  }

  .olb-footer-trust {
    border-block-start: var(--border-divider);
  }

  .olb-footer-trust__inner {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--gap-block);
  }

  .olb-footer-trust__payment {
    grid-column: auto;
    grid-row: auto;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: var(--gap-block);
  }

  .olb-footer-trust__label,
  .olb-footer-trust__note {
    grid-column: 1;
  }

  .olb-footer-trust__methods {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .olb-footer-legal__inner {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: var(--gap-block);
  }

  .olb-footer-legal__nav {
    order: 0;
  }

  .olb-footer-legal__list {
    justify-content: center;
  }

  .olb-footer-legal__link {
    min-block-size: 0;
  }
}


/* ----------------------------------------------------------
   7. v0.3.0 — foldbare linkkolonner <768 (OLB Shell Behavior: toggle-mønster)
   ---------------------------------------------------------- */

.olb-footer-links__toggle {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap-inline);
  inline-size: 100%;
  min-block-size: var(--height-drawer-row);
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-align: start;
  cursor: pointer;
}

.olb-footer-links__toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.olb-footer-links__toggle .olb-icon {
  flex: 0 0 auto;
  transition: transform .2s;
}

.olb-footer-links__toggle[aria-expanded="true"] .olb-icon {
  transform: rotate(180deg);
}

@media (max-width: 767.98px) {
  .olb-footer-links__group:has(.olb-footer-links__toggle[aria-expanded="false"]) .olb-footer-links__list {
    display: none;
  }
}

@media (min-width: 768px) {
  .olb-footer-links__toggle {
    min-block-size: 0;
    cursor: default;
    pointer-events: none;
  }
  .olb-footer-links__toggle .olb-icon {
    display: none;
  }
}


/* ----------------------------------------------------------
   8. v0.3.0 — nyhedsbrev (øverst i linkzonen)
   ---------------------------------------------------------- */

.olb-footer-news {
  display: grid;
  gap: var(--space-4);
  padding-block: var(--space-4) var(--space-6);
  margin-block-end: var(--space-4);
  border-block-end: var(--border-divider);
}

.olb-footer-news__copy {
  display: grid;
  gap: var(--space-2);
}

.olb-footer-news__title {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-heading);
  letter-spacing: var(--tracking-heading);
}

.olb-footer-news__text {
  opacity: .9;
}

.olb-footer-news__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.olb-footer-news__input {
  flex: 1 1 14rem;
  min-inline-size: 0;
  min-block-size: var(--field-height);
  padding-inline: var(--space-4);
  border: 1px solid transparent;
  border-radius: var(--radius-field, var(--radius-button, 8px));
  background: var(--color-surface, #fff);
  color: var(--color-text, #16262E);
  font: inherit;
}

.olb-footer-news__input:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.olb-footer-news__button {
  flex: 0 0 auto;
}

.olb-footer-news__consent {
  margin-block-start: var(--space-2);
  font-size: var(--font-size-small);
  opacity: .85;
}

.olb-footer-news__consent a {
  text-decoration: underline;
  text-underline-offset: .15em;
}

.olb-footer-news__status:not(:empty) {
  margin-block-start: var(--space-2);
  font-weight: var(--font-weight-semibold);
}

.olb-footer-news__status[data-state="error"] {
  color: #FFD2C4;
}

.olb-footer-news__hp {
  position: absolute;
  inset-inline-start: -9999px;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}

@media (min-width: 768px) {
  .olb-footer-news {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    align-items: center;
    gap: var(--gap-block);
    padding-block: 0 var(--space-8);
    margin-block-end: var(--space-8);
  }
}


/* ----------------------------------------------------------
   9. v0.3.0 — Google-bedømmelse (stjerner udfyldes efter --olb-rating)
   ---------------------------------------------------------- */

.olb-footer-trust__rating {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.olb-footer-trust__score {
  font-size: var(--font-size-h4, 1.125rem);
}

.olb-footer-trust__stars {
  --olb-rating-p: calc(var(--olb-rating, 5) / 5 * 100%);
  display: inline-block;
  font-size: 1.05rem;
  line-height: 1;
  letter-spacing: 2px;
  background: linear-gradient(90deg, #FBBC04 var(--olb-rating-p), rgba(255, 255, 255, .35) var(--olb-rating-p));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.olb-footer-news__label {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
