/**
 * GreenTogether Widgets — Styles
 *
 * Bruger CSS custom properties fra greentogether-child theme.
 * Signatur-form: afrundet top-left + bottom-right, skarpe top-right + bottom-left.
 *
 * Organiseret: Shared → Hero → CTA Banner → Category Cards → News Grid →
 *              Short News → Content Block → Social Feed
 */


/* ==========================================================================
   SHARED: Section Heading (accent h1 + heading h2)
   Bruges af alle widgets til konsistent overskrifts-stil.
   ========================================================================== */

.gt-sh {
  margin-bottom: var(--gt-space-lg);
}

.gt-sh--center {
  text-align: center;
}

/* Accent titel — lille grøn uppercase label (h1 for SEO) */
.gt-sh__accent {
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-label);
  font-weight: var(--gt-fw-semi);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gt-color-primary-light);
  margin: 0 0 var(--gt-space-2xs) 0;
}

/* Heading — stor grøn overskrift (h2) */
.gt-sh__heading {
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-h2);
  font-weight: var(--gt-fw-bold);
  color: var(--gt-color-primary);
  margin: 0 0 var(--gt-space-xs) 0;
  line-height: var(--gt-lh-tight);
}

/* Valgfri beskrivelse under heading */
.gt-sh__desc {
  font-size: var(--gt-fs-body-lg);
  color: var(--gt-color-text-light);
  line-height: var(--gt-lh-normal);
  margin: 0;
  max-width: 60ch;
}

.gt-sh--center .gt-sh__desc {
  margin-inline: auto;
}

/* Højrejusteret */
.gt-sh--right {
  text-align: right;
}

.gt-sh--right .gt-sh__desc {
  margin-left: auto;
}

/* On-dark variant (til CTA banner, footer etc.) */
.gt-sh--on-dark .gt-sh__accent {
  color: var(--gt-color-primary-subtle);
}

.gt-sh--on-dark .gt-sh__heading {
  color: var(--gt-color-text-on-dark);
}

.gt-sh--on-dark .gt-sh__desc {
  color: rgba(255, 255, 255, 0.8);
}


/* ==========================================================================
   SHARED: Section Padding Utilities
   Brug: gt-pad-top--sm/md/lg/xl og gt-pad-bot--sm/md/lg/xl
   ========================================================================== */

.gt-pad-top--sm  { padding-top: var(--gt-space-sm, 0.75rem) !important; }
.gt-pad-top--md  { padding-top: var(--gt-space-lg, 2rem) !important; }
.gt-pad-top--lg  { padding-top: var(--gt-space-xl, 3rem) !important; }
.gt-pad-top--xl  { padding-top: var(--gt-space-2xl, 4.5rem) !important; }

.gt-pad-bot--sm  { padding-bottom: var(--gt-space-sm, 0.75rem) !important; }
.gt-pad-bot--md  { padding-bottom: var(--gt-space-lg, 2rem) !important; }
.gt-pad-bot--lg  { padding-bottom: var(--gt-space-xl, 3rem) !important; }
.gt-pad-bot--xl  { padding-bottom: var(--gt-space-2xl, 4.5rem) !important; }


/* ==========================================================================
   HERO GREEN TOGETHER
   ========================================================================== */

.gt-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--gt-hero-min-h, 85vh);
  overflow: hidden;
  text-align: var(--gt-hero-align, center);
}

.gt-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.gt-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, calc(var(--gt-hero-overlay, 0.4) * 0.6)) 0%,
    rgba(0, 0, 0, var(--gt-hero-overlay, 0.4)) 100%
  );
  z-index: 1;
}

.gt-hero__content {
  position: relative;
  z-index: 2;
  max-width: var(--gt-content-narrow);
  padding-block: var(--gt-space-2xl);
}

.gt-hero__subtitle {
  display: inline-block;
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-label);
  font-weight: var(--gt-fw-semi);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--gt-color-primary-subtle);
  margin-bottom: var(--gt-space-sm);
}

.gt-hero__heading {
  font-size: var(--gt-fs-hero);
  font-weight: var(--gt-fw-bold);
  color: var(--gt-color-text-on-dark);
  margin-bottom: var(--gt-space-md);
  line-height: var(--gt-lh-tight);
}

.gt-hero__description {
  font-size: var(--gt-fs-body-lg);
  color: rgba(255, 255, 255, 0.85);
  line-height: var(--gt-lh-loose);
  margin-bottom: var(--gt-space-lg);
  max-width: 40ch;
  margin-inline: auto;
}

.gt-hero__cta {
  font-size: var(--gt-fs-body-lg);
  padding: var(--gt-space-sm) var(--gt-space-lg);
}

.gt-hero__wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  z-index: 3;
  line-height: 0;
}

.gt-hero__wave svg {
  width: 100%;
  height: clamp(3rem, 6vw, 7rem);
}


/* ==========================================================================
   CTA BANNER GREEN TOGETHER
   ========================================================================== */

.gt-cta-banner {
  padding-block: var(--gt-space-xl);
  text-align: center;
}

.gt-cta-banner__inner {
  max-width: var(--gt-content-narrow);
}

.gt-cta-banner__heading {
  font-size: var(--gt-fs-h2);
  margin-bottom: var(--gt-space-sm);
}

.gt-cta-banner__text {
  font-size: var(--gt-fs-body-lg);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-md);
}

.gt-cta-banner--green {
  background-color: var(--gt-color-primary);
}

.gt-cta-banner--green .gt-cta-banner__heading,
.gt-cta-banner--blue .gt-cta-banner__heading {
  color: var(--gt-color-text-on-dark);
}

.gt-cta-banner--green .gt-cta-banner__text,
.gt-cta-banner--blue .gt-cta-banner__text {
  color: rgba(255, 255, 255, 0.85);
}

.gt-cta-banner--blue {
  background-color: var(--gt-color-secondary);
}

.gt-cta-banner--light {
  background-color: var(--gt-color-bg-soft);
}

.gt-cta-banner--light .gt-cta-banner__heading {
  color: var(--gt-color-primary);
}

.gt-cta-banner--light .gt-cta-banner__text {
  color: var(--gt-color-text-light);
}

/* Outline-knap på mørk baggrund — øget specificitet så den vinder over
   .gt-btn--outline fra child theme (samme specificitet, men child theme loades sidst) */
.gt-btn.gt-btn--outline.gt-btn--on-dark {
  background-color: transparent;
  color: var(--gt-color-text-on-dark);
  border-color: var(--gt-color-text-on-dark);
}

.gt-btn.gt-btn--outline.gt-btn--on-dark:hover {
  background-color: var(--gt-color-text-on-dark);
  color: var(--gt-color-primary);
  border-color: var(--gt-color-text-on-dark);
}


/* ==========================================================================
   SHARED: Section Header — Ensartet overskrift på tværs af widgets
   Accent h1 (lille grøn uppercase) + Heading h2 (stor grøn)
   ========================================================================== */

.gt-section-header {
  margin-bottom: var(--gt-space-lg);
}

.gt-section-header--center {
  text-align: center;
}

/* Accent label — lille h1 over overskriften */
.gt-section-header__accent {
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-label);
  font-weight: var(--gt-fw-semi);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gt-color-primary-light);
  margin-bottom: var(--gt-space-xs);
}

/* Main heading — h2 */
.gt-section-header__heading {
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-h2);
  font-weight: var(--gt-fw-bold);
  color: var(--gt-color-primary);
  line-height: var(--gt-lh-tight);
}

/* Valgfri beskrivelse under heading */
.gt-section-header__desc {
  font-size: var(--gt-fs-body-lg);
  color: var(--gt-color-text-light);
  line-height: var(--gt-lh-normal);
  margin-top: var(--gt-space-xs);
  max-width: 55ch;
}

.gt-section-header--center .gt-section-header__desc {
  margin-inline: auto;
}


/* ==========================================================================
   CATEGORY CARDS GREEN TOGETHER
   ========================================================================== */

.gt-catcards {
  padding-block: var(--gt-space-xl);
}

.gt-catcards__grid {
  display: grid;
  grid-template-columns: repeat(var(--gt-catcards-cols, 3), 1fr);
  gap: var(--gt-space-md);
}

.gt-catcards__card {
  display: flex;
  flex-direction: column;
  background: var(--gt-color-bg);
  border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0;
  overflow: hidden;
  box-shadow: var(--gt-shadow-sm);
  text-decoration: none;
  color: inherit;
  transition:
    box-shadow var(--gt-transition-normal),
    transform var(--gt-transition-normal);
}

.gt-catcards__card:hover {
  box-shadow: var(--gt-shadow-lg);
  transform: translateY(-3px);
  color: inherit;
}

.gt-catcards__img-wrap {
  overflow: hidden;
}

.gt-catcards__img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform var(--gt-transition-slow);
}

.gt-catcards__card:hover .gt-catcards__img {
  transform: scale(1.04);
}

.gt-catcards__body {
  padding: var(--gt-space-md);
  flex: 1;
}

.gt-catcards__title {
  font-size: var(--gt-fs-h4);
  font-weight: var(--gt-fw-semi);
  color: var(--gt-color-primary);
  margin-bottom: var(--gt-space-xs);
}

.gt-catcards__text {
  font-size: var(--gt-fs-body);
  color: var(--gt-color-text-light);
  line-height: var(--gt-lh-normal);
}

/* Overlay-variant */
.gt-catcards__card--image-overlay {
  position: relative;
}

.gt-catcards__card--image-overlay .gt-catcards__img-wrap {
  position: absolute;
  inset: 0;
}

.gt-catcards__card--image-overlay .gt-catcards__img {
  height: 100%;
  aspect-ratio: auto;
}

.gt-catcards__card--image-overlay .gt-catcards__body {
  position: relative;
  z-index: 1;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  margin-top: auto;
  min-height: 10rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.gt-catcards__card--image-overlay .gt-catcards__title,
.gt-catcards__card--image-overlay .gt-catcards__text {
  color: var(--gt-color-text-on-dark);
}

@media (max-width: 767px) {
  .gt-catcards__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .gt-catcards__grid {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================================
   NEWS GRID GREEN TOGETHER
   ========================================================================== */

.gt-newsgrid {
  padding-block: var(--gt-space-xl);
}

/* Carousel wrapper */
.gt-newsgrid__carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--gt-space-sm);
}

.gt-newsgrid__track-wrapper {
  overflow: hidden;
  flex: 1;
}

.gt-newsgrid__track {
  display: flex;
  gap: var(--gt-space-md, 1.25rem);
  margin-left: 0;
  transition: margin-left 400ms ease;
}

/* Kortbredde styres via JS inline styles */
.gt-newsgrid__track > .gt-newsgrid__card {
  flex: none;
}

/* Arrows */
.gt-newsgrid__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  background: var(--gt-color-bg, #fff);
  border: 1.5px solid var(--gt-color-primary-subtle, #e8f5ec);
  border-top-left-radius: var(--gt-sig-sm, 0.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.75rem);
  border-bottom-left-radius: 0;
  color: var(--gt-color-primary, #1a6b3c);
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
  z-index: 2;
}

.gt-newsgrid__arrow:hover {
  background: var(--gt-color-primary, #1a6b3c);
  border-color: var(--gt-color-primary, #1a6b3c);
  color: #fff;
}

.gt-newsgrid__arrow:disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

/* Legacy grid fallback removed — now carousel */

.gt-newsgrid__card {
  display: flex;
  flex-direction: column;
  background: var(--gt-color-bg);
  border: 1px solid var(--gt-color-border);
  border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0;
  overflow: hidden;
  box-shadow: var(--gt-shadow-md);
  text-decoration: none;
  color: inherit;
  transition:
    box-shadow var(--gt-transition-normal),
    transform var(--gt-transition-normal),
    border-color var(--gt-transition-normal);
}

.gt-newsgrid__card:hover {
  box-shadow: var(--gt-shadow-lg);
  transform: translateY(-4px);
  border-color: var(--gt-color-primary-subtle);
  color: inherit;
}

.gt-newsgrid__img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform var(--gt-transition-normal);
}

.gt-newsgrid__card:hover .gt-newsgrid__img {
  transform: scale(1.04);
}

.gt-newsgrid__body {
  padding: var(--gt-space-md);
  flex: 1;
}

.gt-newsgrid__date {
  display: block;
  font-size: var(--gt-fs-small);
  color: var(--gt-color-text-muted);
  margin-bottom: var(--gt-space-2xs);
}

.gt-newsgrid__title {
  font-size: var(--gt-fs-h4);
  font-weight: var(--gt-fw-bold);
  margin-bottom: var(--gt-space-xs);
  color: var(--gt-color-text);
  transition: color var(--gt-transition-fast);
}

.gt-newsgrid__card:hover .gt-newsgrid__title {
  color: var(--gt-color-primary);
}

.gt-newsgrid__excerpt {
  display: none;
}

.gt-newsgrid__cta {
  margin-top: var(--gt-space-lg);
}

@media (max-width: 767px) {
  .gt-newsgrid__arrow {
    display: none;
  }

  .gt-newsgrid__img {
    aspect-ratio: 16 / 9;
  }

  .gt-newsgrid__body {
    padding: var(--gt-space-sm);
  }

  .gt-newsgrid__title {
    font-size: var(--gt-fs-body, 1rem);
  }

}


/* ==========================================================================
   SHORT NEWS GREEN TOGETHER — Opgraderet med ACF-support
   ========================================================================== */

.gt-shortnews {
  padding-block: var(--gt-space-xl);
  --gt-sn-accent: var(--gt-color-primary-light);
}

.gt-shortnews__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Dividers variant */
.gt-shortnews--dividers .gt-shortnews__item {
  border-bottom: 1px solid var(--gt-color-border-light);
}

.gt-shortnews--dividers .gt-shortnews__item:last-child {
  border-bottom: none;
}

/* Cards layout variant */
.gt-shortnews--cards .gt-shortnews__item {
  border-bottom: none;
  margin-bottom: var(--gt-space-sm);
}

.gt-shortnews--cards .gt-shortnews__link {
  background: var(--gt-color-bg);
  box-shadow: var(--gt-shadow-sm);
}

.gt-shortnews--cards .gt-shortnews__link:hover {
  box-shadow: var(--gt-shadow-md);
}

/* Timeline variant */
.gt-shortnews--timeline .gt-shortnews__list {
  border-left: 3px solid var(--gt-sn-accent, var(--gt-color-primary));
  margin-left: 7px;
  padding-left: 1.5rem;
  overflow: visible !important;
}

.gt-shortnews--timeline .gt-shortnews__item {
  position: relative;
  border-bottom: none;
  overflow: visible !important;
}

.gt-shortnews--timeline .gt-shortnews__item::before {
  content: '';
  position: absolute;
  left: calc( -1.5rem - 8px );
  top: 1.8rem;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--gt-sn-accent, var(--gt-color-primary));
  z-index: 1;
}

/* Forhindre Elementor ancestors i at klippe tidslinje-prikker */
.elementor-widget-gt-short-news .elementor-widget-container {
  overflow: visible !important;
}

/* Link / item */
.gt-shortnews__link {
  display: block;
  padding: var(--gt-space-md) var(--gt-space-sm);
  text-decoration: none;
  color: inherit;
  border-top-left-radius: var(--gt-sig-sm); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-sm); border-bottom-left-radius: 0;
  transition: background-color var(--gt-transition-fast), box-shadow var(--gt-transition-fast);
}

a.gt-shortnews__link:hover {
  background-color: var(--gt-color-bg-soft);
  color: inherit;
}

a.gt-shortnews__link { position: relative; }

/* Arrow indicator for links */
.gt-shortnews__arrow {
  position: absolute;
  right: var(--gt-space-sm);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--gt-fs-body-lg);
  color: var(--gt-color-primary);
  opacity: 0;
  transition: opacity var(--gt-transition-fast), transform var(--gt-transition-fast);
}

a.gt-shortnews__link:hover .gt-shortnews__arrow {
  opacity: 1;
  transform: translateY(-50%) translateX(3px);
}

/* Meta (dato + kategori) */
.gt-shortnews__meta {
  display: flex;
  align-items: center;
  gap: var(--gt-space-xs);
  margin-bottom: var(--gt-space-2xs);
  flex-wrap: wrap;
}

.gt-shortnews__date {
  font-size: var(--gt-fs-small);
  color: var(--gt-color-text-muted);
  font-weight: var(--gt-fw-medium);
}

.gt-shortnews__cat {
  display: inline-block;
  font-size: var(--gt-fs-label);
  font-weight: var(--gt-fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gt-sn-accent);
  background: color-mix(in srgb, var(--gt-sn-accent) 12%, transparent);
  padding: 0.15em 0.6em;
  border-radius: var(--gt-radius-sm);
}

.gt-shortnews__title {
  font-size: var(--gt-fs-h4);
  font-weight: var(--gt-fw-semi);
  margin-bottom: var(--gt-space-2xs);
  line-height: var(--gt-lh-tight);
}

.gt-shortnews__text {
  font-size: var(--gt-fs-body);
  color: var(--gt-color-text-light);
  line-height: var(--gt-lh-normal);
}

.gt-shortnews__time {
  font-size: var(--gt-fs-small);
  color: var(--gt-color-text-muted);
  font-weight: var(--gt-fw-medium);
}

.gt-shortnews__author {
  display: block;
  font-size: 0.85rem;
  color: var(--gt-color-text-light);
  margin-top: 0.15em;
  margin-bottom: 0.3em;
}

.gt-shortnews__sort {
  display: flex;
  justify-content: flex-start;
  margin-bottom: var(--gt-space-sm);
}

.gt-shortnews__sort-btn {
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0.4em 1em;
  color: var(--gt-sn-accent, var(--gt-color-primary));
  background: transparent;
  border: 1.5px solid var(--gt-sn-accent, var(--gt-color-primary));
  border-top-left-radius: var(--gt-sig-sm);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm);
  border-bottom-left-radius: 0;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.gt-shortnews__sort-btn:hover {
  background: var(--gt-sn-accent, var(--gt-color-primary));
  color: var(--gt-color-text-on-dark, #fff);
}

.gt-shortnews__image {
  display: block;
  width: auto;
  max-width: 16rem !important;
  height: auto;
  margin-top: var(--gt-space-sm);
  border-top-left-radius: var(--gt-sig-sm);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm);
  border-bottom-left-radius: 0;
  object-fit: cover;
}

/* Hidden items + toggle */
.gt-shortnews__item--hidden {
  display: none;
}

.gt-shortnews--expanded .gt-shortnews__item--hidden {
  display: list-item;
}

.gt-shortnews__toggle {
  margin-top: var(--gt-space-md);
}


/* ==========================================================================
   RICH CONTENT BOX GREEN TOGETHER
   ========================================================================== */

.gt-rcb {
  --gt-rcb-bg: transparent;
  --gt-rcb-accent: var(--gt-color-primary-light);
  --gt-rcb-heading: var(--gt-color-primary);
  --gt-rcb-text: var(--gt-color-text);
  --gt-rcb-border: var(--gt-color-primary);

  background: var(--gt-rcb-bg);
  color: var(--gt-rcb-text);
}

/* Padding — kun aktiv når boksen har border/shadow.
   border-none (default) har INGEN padding, så overskrifter flugter med kant. */
.gt-rcb--pad-sm { --gt-rcb-pad: var(--gt-space-sm); }
.gt-rcb--pad-md { --gt-rcb-pad: var(--gt-space-md); }
.gt-rcb--pad-lg { --gt-rcb-pad: var(--gt-space-lg); }
.gt-rcb--pad-xl { --gt-rcb-pad: var(--gt-space-xl); }

/* Uden border: ingen side-padding (headings flugter med venstre kant).
   Bruger padding-inline så gt-pad-top/bot utilities stadig virker. */
.gt-rcb--border-none { padding-inline: 0; }

/* Text align */
.gt-rcb--align-center { text-align: center; }
.gt-rcb--align-left   { text-align: left; }

/* Border variants — padding så indhold ikke klæber til border */
.gt-rcb--border-signature {
  border: 2px solid var(--gt-rcb-border);
  border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0;
  padding: var(--gt-rcb-pad, var(--gt-space-md));
}

.gt-rcb--border-full {
  border: 2px solid var(--gt-rcb-border);
  border-radius: var(--gt-radius-lg);
  padding: var(--gt-rcb-pad, var(--gt-space-md));
}

.gt-rcb--border-left {
  border-left: 4px solid var(--gt-rcb-border);
  padding-left: var(--gt-space-md);
}

/* Shadow */
.gt-rcb--shadow {
  box-shadow: var(--gt-shadow-md);
}

/* Image: top */
.gt-rcb--img-top .gt-rcb__media {
  margin-bottom: var(--gt-space-md);
}

.gt-rcb--img-top .gt-rcb__img {
  width: 100%;
  max-height: 14rem;
  object-fit: cover;
  border-top-left-radius: var(--gt-sig-md); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-md); border-bottom-left-radius: 0;
}

/* Image: left / right (side-by-side) */
.gt-rcb--img-left,
.gt-rcb--img-right {
  display: flex;
  gap: var(--gt-space-md);
}

.gt-rcb--img-right { flex-direction: row-reverse; }

.gt-rcb--valign-start  { align-items: flex-start; }
.gt-rcb--valign-center { align-items: center; }
.gt-rcb--valign-end    { align-items: flex-end; }

/* Image sizes for side layout */
.gt-rcb--imgsize-tiny .gt-rcb__media   { flex: 0 0 64px; }
.gt-rcb--imgsize-small .gt-rcb__media  { flex: 0 0 120px; }
.gt-rcb--imgsize-medium .gt-rcb__media { flex: 0 0 200px; }
.gt-rcb--imgsize-large .gt-rcb__media  { flex: 0 0 320px; }
.gt-rcb--imgsize-xl .gt-rcb__media     { flex: 0 0 480px; }
.gt-rcb--imgsize-half .gt-rcb__media   { flex: 0 0 50%; }

.gt-rcb--img-left .gt-rcb__img,
.gt-rcb--img-right .gt-rcb__img {
  width: 100%;
  height: auto;
  border-top-left-radius: var(--gt-sig-md); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-md); border-bottom-left-radius: 0;
  object-fit: cover;
}

.gt-rcb--img-left .gt-rcb__content,
.gt-rcb--img-right .gt-rcb__content {
  flex: 1;
  min-width: 0;
}

/* Background image variant */
.gt-rcb--img-bg {
  position: relative;
  overflow: hidden;
  border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0;
}

.gt-rcb__bg-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.15;
  z-index: 0;
}

.gt-rcb--img-bg .gt-rcb__content {
  position: relative;
  z-index: 1;
}

/* Image overlay — media wrapper klipper overlay til billedets border-radius */
.gt-rcb__media {
  position: relative;
  overflow: hidden;
  border-top-left-radius: var(--gt-sig-md); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-md); border-bottom-left-radius: 0;
}
.gt-rcb__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.gt-rcb__overlay--light  { background: rgba(0, 0, 0, 0.2); }
.gt-rcb__overlay--medium { background: rgba(0, 0, 0, 0.4); }
.gt-rcb__overlay--dark   { background: rgba(0, 0, 0, 0.6); }
.gt-rcb__overlay--heavy  { background: rgba(0, 0, 0, 0.8); }

/* Content elements — matcher .gt-sh styling for konsistens */
.gt-rcb__accent {
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-label);
  font-weight: var(--gt-fw-semi);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gt-rcb-accent);
  margin: 0 0 var(--gt-space-2xs) 0;
}

.gt-rcb__heading {
  font-family: var(--gt-font-heading);
  font-size: var(--gt-fs-h2);
  font-weight: var(--gt-fw-bold);
  line-height: var(--gt-lh-tight);
  color: var(--gt-rcb-heading);
  margin: 0 0 var(--gt-space-xs) 0;
}

.gt-rcb__body {
  font-size: var(--gt-fs-body);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-md);
}

.gt-rcb__body p:last-child {
  margin-bottom: 0;
}

.gt-rcb__cta {
  margin-top: var(--gt-space-sm);
}

/* Responsive */
@media (max-width: 767px) {
  .gt-rcb--img-left,
  .gt-rcb--img-right {
    flex-direction: column;
  }

  .gt-rcb--imgsize-tiny .gt-rcb__media,
  .gt-rcb--imgsize-small .gt-rcb__media,
  .gt-rcb--imgsize-medium .gt-rcb__media,
  .gt-rcb--imgsize-large .gt-rcb__media,
  .gt-rcb--imgsize-xl .gt-rcb__media,
  .gt-rcb--imgsize-half .gt-rcb__media {
    flex: none;
    max-width: 100%;
  }
}


/* ==========================================================================
   FEATURE CARDS GREEN TOGETHER — Zetland-inspireret
   ========================================================================== */

.gt-fcards {
  overflow: visible !important;
}

/* Desktop: Grid */
.gt-fcards__grid {
  display: grid;
  grid-template-columns: repeat(var(--gt-fcards-cols, 2), 1fr);
  gap: var(--gt-space-md);
}

/* Individual card — outer element, NO overflow hidden here (bryder mobil swipe) */
.gt-fcards__card {
  color: var(--gt-fcard-color, #1a1a1a);
  text-decoration: none;
  transition:
    transform var(--gt-transition-normal),
    box-shadow var(--gt-transition-normal);
}

/* Inner wrapper — visuel styling, border-radius klippes via inner ikke overflow */
.gt-fcards__card-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: var(--gt-fcards-min-h, 280px);
  padding: var(--gt-space-lg);
  background: var(--gt-fcard-bg, #e8f5ec);
}

/* Radius variants — på inner (overflow clip) + outer arver (box-shadow) */
.gt-fcards__card--signature { border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0; }
.gt-fcards__card--rounded   { border-radius: var(--gt-radius-xl); }
.gt-fcards__card--square    { border-radius: 0; }
.gt-fcards__card-inner { border-radius: inherit; }

a.gt-fcards__card:hover .gt-fcards__card-inner {
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.25), 0 8px 20px rgba(0, 0, 0, 0.15);
}
a.gt-fcards__card:hover {
  transform: translateY(-6px);
  color: var(--gt-fcard-color);
}

.gt-fcards__text {
  flex: 1;
}

.gt-fcards__label {
  display: inline-block;
  font-size: var(--gt-fs-small);
  font-weight: var(--gt-fw-bold);
  opacity: 0.6;
  margin-bottom: var(--gt-space-xs);
}

.gt-fcards__title {
  font-size: var(--gt-fs-h3);
  font-weight: var(--gt-fw-bold);
  margin-bottom: var(--gt-space-sm);
  color: inherit;
}

.gt-fcards__desc {
  font-size: var(--gt-fs-body);
  line-height: var(--gt-lh-normal);
  opacity: 0.85;
}

/* Illustration (lille billede i bunden) */
.gt-fcards__img {
  display: block;
  width: auto;
  height: auto;
  max-width: var(--gt-fcards-img-max, 120px);
  max-height: var(--gt-fcards-img-max, 120px);
  align-self: flex-end;
  margin-top: auto;
  padding-top: var(--gt-space-md);
  object-fit: contain;
  flex-shrink: 0;
}

/* Baggrundsbillede variant */
.gt-fcards__card-inner--has-bg {
  position: relative;
  overflow: hidden;
}

.gt-fcards__card-inner--has-bg .gt-fcards__text {
  position: relative;
  z-index: 2;
}

.gt-fcards__bg-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}

.gt-fcards__bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Scroll dots (mobile) */
.gt-fcards__dots {
  display: none;
}

/* Elementor wrappers klipper mobil card-deck — force overflow visible.
   Uden dette skærer Elementors containere toppen af kort.
   Matcher ALLE mulige Elementor ancestor-wrappere. */
.elementor-widget:has(.gt-fcards),
.elementor-widget:has(.gt-fcards) .elementor-widget-container,
.elementor-widget-wrap:has(.gt-fcards),
.elementor-column:has(.gt-fcards),
.elementor-section:has(.gt-fcards),
.elementor-container:has(.gt-fcards),
.e-con:has(.gt-fcards),
.e-con-inner:has(.gt-fcards),
.elementor-element:has(.gt-fcards) {
  overflow: visible !important;
}

/* ==========================================================================
   MOBILE: Stacked card deck (Zetland-stil — kort der ligger ovenpå hinanden)
   Swipe top card til venstre/højre for at se kortet nedenunder.
   ========================================================================== */

@media (max-width: 767px) {
  /* Stack variant: normal vertical stack */
  .gt-fcards__grid--stack {
    grid-template-columns: 1fr;
  }

  /* DEBUG: ingen clip/overflow — test om kort stadig klippes i toppen.
     Hvis problemet forsvinder her, er det clip-path/overflow.
     Hvis det stadig er der, er det noget helt andet. */

  /* Scroll variant → Card deck */
  .gt-fcards__grid--scroll {
    display: block;
    position: relative;
    min-height: var(--gt-fcards-min-h, 280px);
    padding-bottom: 3.5rem;
  }

  .gt-fcards__grid--scroll .gt-fcards__card {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    /* GPU-accelereret for smooth swipe */
    will-change: transform, opacity;
    transform: translateZ(0);
    transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), opacity 280ms ease;
    cursor: grab;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
  }

  .gt-fcards__grid--scroll .gt-fcards__card:active {
    cursor: grabbing;
  }

  /* Stacked offset — første kort i DOM = øverst synligt.
     Kort længere nede i DOM stikker ud nedenunder. */
  .gt-fcards__grid--scroll .gt-fcards__card:first-child {
    z-index: 10;
    transform: translateY(0) scale(1) translateZ(0);
    opacity: 1;
  }
  .gt-fcards__grid--scroll .gt-fcards__card:nth-child(2) {
    z-index: 4;
    transform: translateY(14px) scale(0.96) translateZ(0);
    opacity: 0.6;
  }
  .gt-fcards__grid--scroll .gt-fcards__card:nth-child(3) {
    z-index: 3;
    transform: translateY(28px) scale(0.92) translateZ(0);
    opacity: 0.35;
  }
  .gt-fcards__grid--scroll .gt-fcards__card:nth-child(4) {
    z-index: 2;
    transform: translateY(40px) scale(0.88) translateZ(0);
    opacity: 0.15;
  }
  .gt-fcards__grid--scroll .gt-fcards__card:nth-child(n+5) {
    z-index: 1;
    transform: translateY(44px) scale(0.86) translateZ(0);
    opacity: 0;
    pointer-events: none;
  }

  /* Kort der swipes ud — JS tilføjer disse klasser */
  .gt-fcards__grid--scroll .gt-fcards__card.gt-fcards__card--swiping-left {
    transform: translateX(-110%) rotate(-10deg) translateZ(0);
    opacity: 0;
    pointer-events: none;
    transition: transform 350ms cubic-bezier(0.22, 1, 0.36, 1), opacity 250ms ease;
  }

  .gt-fcards__grid--scroll .gt-fcards__card.gt-fcards__card--swiping-right {
    transform: translateX(110%) rotate(10deg) translateZ(0);
    opacity: 0;
    pointer-events: none;
    transition: transform 350ms cubic-bezier(0.22, 1, 0.36, 1), opacity 250ms ease;
  }

  /* Under swipe — INGEN transition for real-time tracking */
  .gt-fcards__grid--scroll .gt-fcards__card.gt-fcards__card--dragging,
  .gt-fcards__card.gt-fcards__card--dragging {
    transition: none !important;
    will-change: transform;
  }

  /* Tæller — "2 af 6" */
  .gt-fcards__dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding-top: var(--gt-space-sm);
    font-size: var(--gt-fs-small);
    color: var(--gt-color-text-muted);
  }

  .gt-fcards__dot {
    width: 8px;
    height: 8px;
    border-radius: var(--gt-radius-round);
    background: var(--gt-color-border);
    transition: background 200ms ease;
  }

  .gt-fcards__dot--active {
    background: var(--gt-color-primary);
  }
}


/* ==========================================================================
   CONTENT BLOCK GREEN TOGETHER
   ========================================================================== */

.gt-contentblock {
  padding-block: var(--gt-space-lg);
}

/* Sørg for at content block tekst flugter med andre widgets —
   Elementor container/section padding styrer horisontalt */
.gt-contentblock__content {
  padding-inline: 0;
}

.gt-contentblock--top .gt-contentblock__media {
  margin-bottom: var(--gt-space-md);
}

.gt-contentblock--left,
.gt-contentblock--right {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gt-space-lg);
  align-items: start;
}

.gt-contentblock--right .gt-contentblock__media {
  order: 2;
}

/* Billede — signatur-form */
.gt-contentblock__img {
  width: 100%;
  border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0;
  object-fit: cover;
}

.gt-contentblock__heading {
  font-size: var(--gt-fs-h2);
  color: var(--gt-color-primary);
  margin-bottom: var(--gt-space-xs);
}

.gt-contentblock__subtitle {
  font-size: var(--gt-fs-body-lg);
  color: var(--gt-color-text-light);
  font-weight: var(--gt-fw-medium);
  margin-bottom: var(--gt-space-md);
}

.gt-contentblock__body {
  font-size: var(--gt-fs-body);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-md);
}

.gt-contentblock__body p:last-child {
  margin-bottom: 0;
}

.gt-contentblock__ref {
  display: inline-block;
  font-size: var(--gt-fs-body);
  color: var(--gt-color-primary);
  font-weight: var(--gt-fw-medium);
  margin-bottom: var(--gt-space-md);
  transition: color var(--gt-transition-fast);
}

.gt-contentblock__ref:hover {
  color: var(--gt-color-primary-dark);
}

.gt-contentblock__cta {
  display: inline-flex;
}

@media (max-width: 767px) {
  .gt-contentblock--left,
  .gt-contentblock--right {
    grid-template-columns: 1fr;
  }

  .gt-contentblock--right .gt-contentblock__media {
    order: 0;
  }
}


/* ==========================================================================
   SOCIAL FEED GREEN TOGETHER
   ========================================================================== */

.gt-socialfeed {
  padding-block: var(--gt-space-xl);
}

.gt-socialfeed__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gt-space-lg);
  align-items: start;
}

.gt-socialfeed__block {
  background: var(--gt-color-bg-soft);
  border-top-left-radius: var(--gt-sig-lg); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-lg); border-bottom-left-radius: 0;
  padding: var(--gt-space-lg);
}

.gt-socialfeed__heading {
  font-size: var(--gt-fs-h3);
  color: var(--gt-color-primary);
  margin-bottom: var(--gt-space-md);
}

.gt-socialfeed__text {
  font-size: var(--gt-fs-body);
  color: var(--gt-color-text-light);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-md);
}

.gt-socialfeed__btn {
  gap: var(--gt-space-xs);
}

.gt-socialfeed__icon {
  flex-shrink: 0;
}

.gt-socialfeed__placeholder {
  padding: var(--gt-space-lg);
  text-align: center;
  color: var(--gt-color-text-muted);
  background: var(--gt-color-bg);
  border-top-left-radius: var(--gt-sig-md); border-top-right-radius: 0; border-bottom-right-radius: var(--gt-sig-md); border-bottom-left-radius: 0;
}

@media (max-width: 767px) {
  .gt-socialfeed__grid {
    grid-template-columns: 1fr;
  }
}

/* ---- Instagram Carousel ---- */
.gt-igcarousel {
  position: relative;
}

/* Skjul SB indhold før JS har bygget carousel */
.gt-igcarousel__track {
  min-height: 100px;
}

/* Profil-header */
.gt-igcarousel__header {
  display: flex;
  align-items: center;
  gap: var(--gt-space-sm, 0.75rem);
  margin-bottom: var(--gt-space-sm, 0.75rem);
}

.gt-igcarousel__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.gt-igcarousel__username {
  font-family: var(--gt-font-body, sans-serif);
  font-size: var(--gt-fs-small, 0.875rem);
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-color-text, #1a1a1a);
}

/* Slides container */
.gt-igcarousel__slides {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-top-left-radius: var(--gt-sig-md, 1.25rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-md, 1.25rem);
  border-bottom-left-radius: 0;
  background: var(--gt-color-bg, #fff);
}

/* Individuelle slides */
.gt-igcarousel__slide {
  position: absolute;
  inset: 0;
  display: none;
  text-decoration: none;
}

.gt-igcarousel__slide--active {
  display: block;
}

.gt-igcarousel__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Pile */
.gt-igcarousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gt-color-bg, #fff);
  border: none;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  color: var(--gt-color-primary, #1a6b3c);
  transition: background-color 200ms, color 200ms, box-shadow 200ms;
}

.gt-igcarousel__arrow:hover {
  background: var(--gt-color-primary, #1a6b3c);
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.gt-igcarousel__arrow--prev {
  left: var(--gt-space-xs, 0.5rem);
}

.gt-igcarousel__arrow--next {
  right: var(--gt-space-xs, 0.5rem);
}

/* Dots */
.gt-igcarousel__dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  padding-top: var(--gt-space-sm, 0.75rem);
}

.gt-igcarousel__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: var(--gt-color-primary-subtle, #e8f5ec);
  cursor: pointer;
  padding: 0;
  transition: background-color 200ms;
}

.gt-igcarousel__dot--active {
  background: var(--gt-color-primary, #1a6b3c);
}

.gt-igcarousel__dot:hover {
  background: var(--gt-color-primary-light, #2d8a4e);
}

/* ---- LinkedIn Carousel (SociableKIT) ---- */
.gt-licarousel {
  position: relative;
}

.gt-licarousel__track {
  position: relative;
  min-height: 100px;
}

/* Slides container — same pattern as Instagram */
.gt-licarousel__slides {
  position: relative;
}

.gt-licarousel__slide {
  display: none;
  padding: var(--gt-space-md, 1rem) var(--gt-space-lg, 1.5rem);
  background: var(--gt-color-bg, #fff);
  border-top-left-radius: var(--gt-sig-md, 1.25rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-md, 1.25rem);
  border-bottom-left-radius: 0;
  overflow: hidden;
}

.gt-licarousel__slide--active {
  display: block;
}

/* Post-tekst */
.gt-licarousel__text {
  font-size: var(--gt-fs-body, 1rem);
  line-height: 1.6;
  color: var(--gt-color-text, #1a1a1a);
  overflow: hidden;
}

/* Tekst-kun slides: vis mere tekst */
.gt-licarousel__slide--text-only .gt-licarousel__text {
  max-height: 18em;
}

/* Slides med billede: kort tekst */
.gt-licarousel__slide--has-image .gt-licarousel__text {
  max-height: 4.8em; /* ca. 3 linjer */
}

.gt-licarousel__text a {
  color: var(--gt-color-primary, #1a6b3c);
  text-decoration: none;
}

.gt-licarousel__text a:hover {
  text-decoration: underline;
}

/* Post-billede */
.gt-licarousel__image {
  margin-top: var(--gt-space-sm, 0.75rem);
  border-top-left-radius: var(--gt-sig-sm, 0.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.75rem);
  border-bottom-left-radius: 0;
  overflow: hidden;
}

.gt-licarousel__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Slide som klikbart link */
a.gt-licarousel__slide {
  display: none;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: box-shadow 200ms;
}

a.gt-licarousel__slide:hover {
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

a.gt-licarousel__slide--active {
  display: block;
}

/* Pile — venstre/højre som Instagram */
.gt-licarousel__arrow--prev {
  left: var(--gt-space-xs, 0.5rem);
}

.gt-licarousel__arrow--next {
  right: var(--gt-space-xs, 0.5rem);
}

/* Dots */
.gt-licarousel__dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  padding-top: var(--gt-space-sm, 0.75rem);
}



/* ==========================================================================
   MINI HERO GREEN TOGETHER — Til menusider/undersider
   ========================================================================== */

/* Tving Elementor-ancestors til fuld bredde + overflow visible for mini-hero */
.elementor-widget:has(.gt-minihero),
.elementor-widget:has(.gt-minihero) .elementor-widget-container,
.elementor-section:has(.gt-minihero),
.elementor-section:has(.gt-minihero) > .elementor-container,
.e-con:has(.gt-minihero) {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
}

.gt-minihero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: var(--gt-mh-min-h, 45vh);
  overflow: hidden;
  text-align: var(--gt-mh-align, left);
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.gt-minihero__bg {
  position: absolute;
  inset: 0;
  background: var(--gt-mh-bg) center / cover no-repeat;
  z-index: 0;
}

.gt-minihero__overlay {
  position: absolute;
  inset: 0;
  background: var(--gt-mh-overlay-color, #000000);
  opacity: var(--gt-mh-overlay, 0.45);
  z-index: 1;
}

.gt-minihero__content {
  position: relative;
  z-index: 2;
  padding-block: var(--gt-space-xl) var(--gt-space-lg);
  padding-inline: clamp(1.5rem, 5vw, 5rem);
  max-width: var(--gt-content-width);
}

.gt-minihero__label {
  display: inline-block;
  font-size: var(--gt-fs-label);
  font-weight: var(--gt-fw-semi);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gt-color-primary-subtle);
  margin-bottom: var(--gt-space-xs);
}

.gt-minihero__heading {
  font-size: var(--gt-fs-h1);
  color: #fff;
  margin-bottom: var(--gt-space-xs);
}

.gt-minihero__desc {
  font-size: var(--gt-fs-body-lg);
  color: rgba(255, 255, 255, 0.85);
  line-height: var(--gt-lh-loose);
  max-width: 50ch;
  margin-bottom: var(--gt-space-md);
}

.gt-minihero__cta {
  margin-top: var(--gt-space-sm);
}

.gt-minihero__wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  z-index: 3;
  line-height: 0;
}

.gt-minihero__wave svg {
  width: 100%;
  height: clamp(2rem, 4vw, 4.5rem);
}


/* ==========================================================================
   STORY CARDS GREEN TOGETHER — Zetland-stil stakkede historiekort
   ========================================================================== */

.gt-storycards {
  padding-block: var(--gt-space-xl);
}

/* Card list */
.gt-storycards__list {
  display: grid;
  grid-template-columns: 1fr;
}

/* Sikre at overflow ikke bryder sticky positioning i Elementor.
   KRITISK: sticky virker KUN hvis INGEN ancestor har overflow:hidden/auto/scroll */
.gt-storycards,
.gt-storycards__list {
  overflow: visible !important;
}

/* Elementor wrappers der kan bryde sticky — force overflow visible.
   Bruger :has() + specifik class-matching for Elementor containere */
.elementor-widget:has(.gt-storycards--gap-overlap) .elementor-widget-container,
.elementor-section:has(.gt-storycards--gap-overlap),
.elementor-container:has(.gt-storycards--gap-overlap),
.e-con:has(.gt-storycards--gap-overlap),
.elementor-element:has(.gt-storycards--gap-overlap) {
  overflow: visible !important;
}

.gt-storycards--gap-gap .gt-storycards__list {
  gap: var(--gt-space-md);
}

.gt-storycards--gap-tight .gt-storycards__list {
  gap: var(--gt-space-xs);
}

/* ==========================================================================
   OVERLAP / STICKY VARIANT
   Zetland-stil: kortene starter med afstand og glider over hinanden ved scroll.
   Nøglen er at grid gap giver initial spacing, og sticky + stigende top-værdier
   skaber overlap-effekten. Kortet SELV har INGEN border-radius eller overflow
   — det håndteres udelukkende af __card-inner.
   ========================================================================== */

.gt-storycards--gap-overlap .gt-storycards__list {
  /* Grid gap giver initial afstand mellem kort — det er denne afstand
     der "forsvinder" når brugeren scroller og kortene overlapper */
  gap: clamp(2rem, 4vw, 3rem);
}

.gt-storycards--gap-overlap .gt-storycards__card {
  position: sticky;
  top: calc(var(--gt-sc-top, 5rem));
  z-index: var(--gt-sc-z, 1);
}

/* Sticky-elementet er usynligt — ingen baggrund, border-radius, skygge eller overflow */
.gt-storycards__card {
  background: transparent;
  color: var(--gt-sc-color, #ffffff);
}

/* Inner wrapper — AL visuel formgivning sker her:
   baggrund, border-radius og overflow-clipping */
.gt-storycards__card-inner {
  border-top-left-radius: var(--gt-sig-xl);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-xl);
  border-bottom-left-radius: 0;
  overflow: hidden;
  background: var(--gt-sc-bg, #1a3a6b);
  color: inherit;
}

/* Skygge via filter på __card — drop-shadow følger __card-inner's
   visuelle form (inkl. border-radius), i modsætning til box-shadow */
.gt-storycards--gap-overlap .gt-storycards__card {
  filter: drop-shadow(0 -4px 12px rgba(0, 0, 0, 0.2));
}

.gt-storycards--gap-overlap .gt-storycards__card:hover {
  filter: drop-shadow(0 -4px 16px rgba(0, 0, 0, 0.3));
}

/* Image left / right layout — flexbox på inner wrapper.
   align-items: stretch (default) får begge children til at have samme højde,
   som er den højeste af de to (eller min-height). */
.gt-storycards__card--img-left > .gt-storycards__card-inner,
.gt-storycards__card--img-right > .gt-storycards__card-inner {
  display: flex;
  flex-direction: row;
  align-items: stretch;
}

.gt-storycards__card--img-right > .gt-storycards__card-inner {
  flex-direction: row-reverse;
}

.gt-storycards__card--img-left > .gt-storycards__card-inner > .gt-storycards__media,
.gt-storycards__card--img-right > .gt-storycards__card-inner > .gt-storycards__media {
  flex: 0 0 45%;
  align-self: stretch;
}

.gt-storycards__card--img-left > .gt-storycards__card-inner > .gt-storycards__body,
.gt-storycards__card--img-right > .gt-storycards__card-inner > .gt-storycards__body {
  flex: 1 1 auto;
}

/* Image top and none — block stack */
.gt-storycards__card--img-top > .gt-storycards__card-inner,
.gt-storycards__card--img-none > .gt-storycards__card-inner {
  display: block;
}

/* Height variants — min-height på __card (sticky-elementet) sikrer at det
   har en eksplicit højde, og __card-inner med height:100% fylder den.
   Det er nødvendigt for at flex-stretch på children (media + body) skal
   fungere konsistent på tværs af browsere. */
.gt-storycards__card--h-md { min-height: 350px; }
.gt-storycards__card--h-lg { min-height: 450px; }
.gt-storycards__card--h-xl { min-height: 550px; }

.gt-storycards__card--h-md > .gt-storycards__card-inner,
.gt-storycards__card--h-lg > .gt-storycards__card-inner,
.gt-storycards__card--h-xl > .gt-storycards__card-inner {
  height: 100%;
  min-height: inherit;
}

/* Media — position: relative wrapper med absolut positioneret img.
   Dette tvinger billedet til at fylde HELE flex-cellens dimensioner
   uanset cellens størrelse, og uanset billedets intrinsic størrelse. */
.gt-storycards__media {
  position: relative;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
}

/* !important nødvendig for at overskrive globale img { height: auto } regler
   fra child theme / Hello Elementor / WordPress lazy-loading width/height attrs */
.gt-storycards__media img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
}

/* Image-top variant: media er ikke i flex, så den skal have eksplicit højde */
.gt-storycards__card--img-top .gt-storycards__media {
  height: 300px;
}

/* Body */
.gt-storycards__body {
  padding: clamp(1.5rem, 4vw, 3rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.gt-storycards__label {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-size: var(--gt-fs-small);
  font-weight: var(--gt-fw-bold);
  opacity: 0.8;
  margin-bottom: var(--gt-space-sm);
}

.gt-storycards__title {
  font-size: clamp(1.25rem, 3vw, 2.25rem);
  font-weight: var(--gt-fw-bold);
  color: inherit;
  margin-bottom: var(--gt-space-sm);
  line-height: var(--gt-lh-tight);
}

.gt-storycards__desc {
  font-size: var(--gt-fs-body);
  line-height: var(--gt-lh-normal);
  opacity: 0.85;
  margin-bottom: var(--gt-space-md);
}

.gt-storycards__author {
  font-size: var(--gt-fs-small);
  opacity: 0.7;
  margin-bottom: var(--gt-space-md);
}

.gt-storycards__actions {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: var(--gt-space-md);
}

.gt-storycards__cta {
  font-size: var(--gt-fs-body);
  font-weight: var(--gt-fw-semi);
  color: inherit;
  text-decoration: none;
  opacity: 0.9;
  transition: opacity 150ms ease;
}

.gt-storycards__cta:hover {
  opacity: 1;
  color: inherit;
}

/* Responsive — på mobil stables billede (top) og body (bottom) i kolonne.
   Billedet får eksplicit højde og fuld bredde, body får sin egen højde. */
@media (max-width: 767px) {
  /* Skift flex-retning til kolonne på mobil — billede øverst, tekst nederst */
  .gt-storycards__card--img-left > .gt-storycards__card-inner,
  .gt-storycards__card--img-right > .gt-storycards__card-inner {
    flex-direction: column;
  }

  /* Media fylder fuld bredde, eksplicit højde fordi der er ingen stretch i kolonne */
  .gt-storycards__card--img-left > .gt-storycards__card-inner > .gt-storycards__media,
  .gt-storycards__card--img-right > .gt-storycards__card-inner > .gt-storycards__media {
    flex: 0 0 auto;
    width: 100%;
    height: clamp(200px, 45vw, 280px);
  }

  /* Body fylder resten med sin egen padding */
  .gt-storycards__card--img-left > .gt-storycards__card-inner > .gt-storycards__body,
  .gt-storycards__card--img-right > .gt-storycards__card-inner > .gt-storycards__body {
    flex: 1 1 auto;
    padding: clamp(1.25rem, 5vw, 2rem);
  }

  /* Reducer min-height varianter på mobil så de ikke får tom plads */
  .gt-storycards__card--h-md > .gt-storycards__card-inner { min-height: auto; }
  .gt-storycards__card--h-lg > .gt-storycards__card-inner { min-height: auto; }
  .gt-storycards__card--h-xl > .gt-storycards__card-inner { min-height: auto; }

  /* Sticky overlap virker også på mobil — reducer top-offset og gap */
  .gt-storycards--gap-overlap .gt-storycards__card {
    top: calc(var(--gt-sc-top, 5rem) * 0.6);
  }

  .gt-storycards--gap-overlap .gt-storycards__list {
    gap: clamp(1.5rem, 3vw, 2rem);
  }
}


/* ==========================================================================
   HEADER GREEN TOGETHER — v2 (fullscreen overlay)
   ========================================================================== */

.gt-hdr {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  color: var(--gt-hdr-color, #ffffff);
  transition: color 300ms ease;
  padding: clamp(0.75rem, 2vw, 1.5rem) 0;
}

/* Elementor wrappers kan klippe dropdown — tvang overflow:visible */
.elementor-widget-container:has(.gt-hdr),
.elementor-widget:has(.gt-hdr),
.elementor-element:has(.gt-hdr),
.elementor-section:has(.gt-hdr),
.elementor-container:has(.gt-hdr),
.e-con:has(.gt-hdr),
.e-con-inner:has(.gt-hdr) {
  overflow: visible !important;
}

.gt-hdr__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding-inline: clamp(1.5rem, 4vw, 4rem);
}

/* ---- Logo ---- */
.gt-hdr__logo {
  display: flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
  flex-shrink: 0;
}

.gt-hdr__logo-img {
  height: var(--gt-hdr-logo-h, 45px);
  width: auto;
  display: block;
}

.gt-hdr__logo-svg {
  display: block;
  height: var(--gt-hdr-logo-h, 45px);
  width: auto;
}

.gt-hdr__logo-svg svg {
  display: block;
  height: 100%;
  width: auto;
}

/* Mobile logo variant — hidden on desktop, shown on mobile */
.gt-hdr__logo-img--mobile.gt-hdr__logo-img {
  display: none;
  height: var(--gt-hdr-mobile-logo-h, 36px);
}

.gt-hdr__logo-img--mobile.gt-hdr__logo-svg {
  display: none;
  height: var(--gt-hdr-mobile-logo-h, 36px);
}

@media (max-width: 767px) {
  .gt-hdr__logo-img--desktop {
    display: none;
  }
  .gt-hdr__logo-img--mobile.gt-hdr__logo-img,
  .gt-hdr__logo-img--mobile.gt-hdr__logo-svg {
    display: block;
  }
}

/* ---- Right side — margin-left:auto sikrer at den altid sidder til højre,
   også når logoet er skjult på mobil ---- */
.gt-hdr__right {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2rem);
  margin-left: auto;
}

.gt-hdr__desktop-only {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2rem);
}

/* Social ikoner — farveshift ved hover */
.gt-hdr__icon {
  display: flex;
  align-items: center;
  color: inherit;
  opacity: 0.85;
  transition: opacity 150ms ease, color 150ms ease;
}

.gt-hdr__icon:hover {
  opacity: 1;
  color: var(--gt-color-primary-light);
}

.gt-hdr--on-light .gt-hdr__icon:hover {
  color: var(--gt-color-primary-dark);
}

/* ---- Medlem toggle-knap ---- */
.gt-hdr__member-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5em 1.4em;
  font-family: var(--gt-font-body, sans-serif);
  font-size: clamp(0.85rem, 1vw, 1rem);
  font-weight: 600;
  color: inherit;
  background: none;
  border: 1.5px solid currentColor;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;

  border-radius: 100vmax;
}

/* Hvid header hover */
.gt-hdr:not(.gt-hdr--on-light) .gt-hdr__member-btn:hover {
  background-color: rgba(255, 255, 255, 0.2);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.5);
}

/* Grøn header hover */
.gt-hdr--on-light .gt-hdr__member-btn:hover {
  background-color: var(--gt-hdr-active, #1a6b3c);
  color: #fff;
  border-color: var(--gt-hdr-active, #1a6b3c);
}

/* Overlay-variant (mobil) */
.gt-hdr__member-btn--overlay {
  color: var(--gt-hdr-overlay-text, #fff);
  border-color: var(--gt-hdr-overlay-text, #fff);
  width: 100%;
  justify-content: center;
}

.gt-hdr__member-btn--overlay:hover {
  background-color: rgba(255, 255, 255, 0.15);
}

/* ---- Menu-wrap visibility ---- */
.gt-hdr-overlay__menu-wrap--hidden {
  display: none;
}

/* ---- Login Modal ---- */
.gt-login-modal {
  position: fixed;
  inset: 0;
  z-index: 100001;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 300ms ease, visibility 300ms ease;
}

.gt-login-modal--open {
  opacity: 1;
  visibility: visible;
}

.gt-login-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}

.gt-login-modal__dialog {
  position: relative;
  background: var(--gt-color-bg, #fff);
  padding: var(--gt-space-lg, 2rem);
  width: 90%;
  max-width: 400px;

  border-top-left-radius: var(--gt-sig-lg, 1.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg, 1.75rem);
  border-bottom-left-radius: 0;
}

.gt-login-modal__close {
  position: absolute;
  top: var(--gt-space-sm, 0.75rem);
  right: var(--gt-space-sm, 0.75rem);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--gt-color-text-light, #5a5a5a);
  line-height: 1;
  padding: 4px;
}

.gt-login-modal__close:hover {
  color: var(--gt-color-text, #1a1a1a);
}

.gt-login-modal__title {
  font-family: var(--gt-font-heading, sans-serif);
  font-size: var(--gt-fs-h3, 1.5rem);
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-color-primary, #1a6b3c);
  margin: 0 0 var(--gt-space-md, 1.25rem);
}

.gt-login-modal__label {
  display: block;
  font-size: var(--gt-fs-small, 0.875rem);
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-color-text, #1a1a1a);
  margin-bottom: var(--gt-space-sm, 0.75rem);
}

.gt-login-modal__input {
  display: block;
  width: 100%;
  padding: 0.6em 0.8em;
  margin-top: 0.3em;
  border: 1.5px solid #ccc;
  font-family: var(--gt-font-body, sans-serif);
  font-size: var(--gt-fs-body, 1rem);
  box-sizing: border-box;
  transition: border-color 200ms ease;

  border-top-left-radius: var(--gt-sig-sm, 0.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.75rem);
  border-bottom-left-radius: 0;
}

.gt-login-modal__input:focus {
  outline: none;
  border-color: var(--gt-color-primary, #1a6b3c);
}

.gt-login-modal__error {
  color: #c0392b;
  font-size: var(--gt-fs-small, 0.875rem);
  min-height: 1.4em;
  margin-bottom: var(--gt-space-xs, 0.5rem);
}

.gt-login-modal__error:empty {
  margin-bottom: 0;
}

.gt-login-modal__submit {
  width: 100%;
  margin-top: var(--gt-space-xs, 0.5rem);
}

.gt-login-modal__footer {
  text-align: center;
  margin-top: var(--gt-space-sm, 0.75rem);
  margin-bottom: 0;
  font-size: var(--gt-fs-small, 0.875rem);
}

.gt-login-modal__footer a {
  color: var(--gt-color-primary, #1a6b3c);
  text-decoration: none;
}

.gt-login-modal__footer a:hover {
  text-decoration: underline;
}

/* ---- Søgeikon i header ---- */
.gt-hdr__search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  padding: 6px;
  opacity: 0.85;
  transition: opacity 150ms ease;
  -webkit-appearance: none;
  appearance: none;
}

.gt-hdr__search-btn:hover {
  opacity: 1;
}

/* ---- Søge-bar (under header) ---- */
.gt-hdr-search {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  background: var(--gt-hdr-active, #1a6b3c);
  color: #fff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  transition: transform 300ms ease, opacity 300ms ease, visibility 300ms ease;
}

.gt-hdr-search--open {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

/* Når header er grøn (over lys sektion) → søgebar hvid */
.gt-hdr-search--light {
  background: var(--gt-color-bg, #fff);
  color: var(--gt-color-text, #1a1a1a);
}

.gt-hdr-search__inner {
  max-width: 480px;
  margin: 0 auto;
  padding: 0.6rem clamp(1rem, 3vw, 2rem);
  padding-top: calc(0.6rem + 56px);
}

.gt-hdr-search__form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255, 255, 255, 0.15);
  padding: 0.5em 1em;
  border-top-left-radius: var(--gt-sig-sm, 0.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.75rem);
  border-bottom-left-radius: 0;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  transition: border-color 150ms ease;
}

.gt-hdr-search__form:focus-within {
  border-color: rgba(255, 255, 255, 0.5);
}

/* Lys variant (hvid søgebar) */
.gt-hdr-search--light .gt-hdr-search__form {
  background: var(--gt-color-bg-soft, #f7faf8);
  border-color: var(--gt-color-primary-subtle, #e8f5ec);
}

.gt-hdr-search--light .gt-hdr-search__form:focus-within {
  border-color: var(--gt-color-primary, #1a6b3c);
}

.gt-hdr-search__icon {
  flex-shrink: 0;
  color: inherit;
  opacity: 0.6;
}

.gt-hdr-search__input {
  flex: 1;
  border: none;
  background: none;
  font-family: var(--gt-font-body, sans-serif);
  font-size: 0.95rem;
  color: inherit;
  outline: none;
}

.gt-hdr-search__input::placeholder {
  color: inherit;
  opacity: 0.5;
}

.gt-hdr-search__close {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  padding: 4px;
  opacity: 0.6;
  transition: opacity 150ms ease;
  -webkit-appearance: none;
  appearance: none;
}

.gt-hdr-search__close:hover {
  opacity: 1;
}

/* Live søgeresultater */
.gt-hdr-search__results {
  max-width: 480px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2rem) 0.6rem;
}

.gt-hdr-search__results:empty {
  display: none;
}

.gt-hdr-search__results-list {
  list-style: none;
  margin: 0.4rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.gt-hdr-search--light .gt-hdr-search__results-list {
  border-top-color: var(--gt-color-primary-subtle, #e8f5ec);
}

.gt-hdr-search__result-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gt-hdr-search--light .gt-hdr-search__result-item {
  border-bottom-color: rgba(0, 0, 0, 0.05);
}

.gt-hdr-search__result-item a {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.2rem;
  text-decoration: none;
  color: inherit;
  transition: background-color 100ms ease;
}

.gt-hdr-search__result-item a:hover {
  background: rgba(255, 255, 255, 0.1);
}

.gt-hdr-search--light .gt-hdr-search__result-item a:hover {
  background: var(--gt-color-primary-subtle, #e8f5ec);
}

.gt-hdr-search__result-thumb {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}

.gt-hdr-search__result-text {
  flex: 1;
  min-width: 0;
}

.gt-hdr-search__result-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gt-hdr-search__result-type {
  font-size: 0.75rem;
  color: inherit;
  opacity: 0.6;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.gt-hdr-search__no-results {
  padding: 0.6rem 0.2rem;
  font-size: 0.85rem;
  color: inherit;
  opacity: 0.6;
  font-style: italic;
}

/* Overlay mobil member-knap */
.gt-hdr-overlay__mobile-actions .gt-hdr__member-btn--overlay {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
}

/* ---- Hamburger — signatur-form hover, ingen default baggrund ---- */
.gt-hdr__burger,
.gt-hdr__burger:focus,
.gt-hdr__burger:active,
.gt-hdr .gt-hdr__burger,
.elementor-widget .gt-hdr__burger,
button.gt-hdr__burger {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  background-color: transparent;
  border: none;
  box-shadow: none;
  outline: none;
  color: inherit;
  cursor: pointer;
  padding: 6px;
  margin: 0;
  line-height: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  /* Signatur-form for hover-baggrund */
  border-top-left-radius: var(--gt-sig-sm, 0.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.75rem);
  border-bottom-left-radius: 0;
  transition: background-color 150ms ease;
}

.gt-hdr__burger:hover,
button.gt-hdr__burger:hover {
  background-color: rgba(255, 255, 255, 0.15);
}

.gt-hdr--on-light .gt-hdr__burger:hover,
.gt-hdr--on-light button.gt-hdr__burger:hover {
  background-color: rgba(26, 107, 60, 0.1);
}

.gt-hdr__burger svg {
  width: 34px;
  height: 34px;
  color: inherit;
}

/* ---- Farveskift over .gron sektioner ---- */
.gt-hdr--on-light {
  color: var(--gt-hdr-active, #1a6b3c);
}


/* ==========================================================================
   FULLSCREEN MENU OVERLAY
   ========================================================================== */

.gt-hdr-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: var(--gt-hdr-overlay-bg, #1a6b3c);
  color: var(--gt-hdr-overlay-text, #ffffff);
  opacity: 0;
  visibility: hidden;
  transition: opacity 400ms ease, visibility 400ms ease;
  overflow-x: hidden;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

.gt-hdr-overlay--open {
  opacity: 1;
  visibility: visible;
}

.gt-hdr-overlay__inner {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  width: 100%;
  padding: clamp(1rem, 3vw, 2rem) clamp(2rem, 5vw, 5rem);
  padding-bottom: clamp(2rem, 4vw, 4rem);
}

/* Top: logo + close */
.gt-hdr-overlay__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  flex-shrink: 0;
}

.gt-hdr-overlay__logo {
  color: inherit;
  text-decoration: none;
}

.gt-hdr-overlay__logo svg {
  height: var(--gt-hdr-logo-h, 45px);
  width: auto;
}

.gt-hdr-overlay__close,
.gt-hdr-overlay__close:hover,
.gt-hdr-overlay__close:focus,
button.gt-hdr-overlay__close {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  background-color: transparent;
  border: none;
  box-shadow: none;
  outline: none;
  color: inherit;
  cursor: pointer;
  padding: 4px;
  opacity: 0.8;
  transition: opacity 150ms ease;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

.gt-hdr-overlay__close:hover {
  opacity: 1;
}

/* ---- Navigation ---- */
.gt-hdr-overlay__nav {
  flex: 1;
}

.gt-hdr-overlay__menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gt-hdr-overlay__menu > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.gt-hdr-overlay__menu > li > a {
  display: inline-block;
  padding: clamp(0.6rem, 1.5vw, 1rem) 0;
  font-family: var(--gt-font-heading, sans-serif);
  font-size: clamp(1.1rem, 2.5vw, 1.75rem);
  font-weight: 600;
  color: inherit;
  text-decoration: none;
  transition: opacity 150ms ease;
}

/* Parent-links med undersider — vis som klikbar men ikke som link */
.gt-hdr-overlay__menu > li.menu-item-has-children > a {
  cursor: pointer;
}

.gt-hdr-overlay__menu > li > a:hover {
  opacity: 0.7;
}

/* Sub-menu toggle */
.gt-hdr-overlay__submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  padding: 0.25em 0.75em;
  vertical-align: middle;
  transition: transform 250ms ease;
}

.gt-hdr-overlay__item--open > .gt-hdr-overlay__submenu-toggle {
  transform: rotate(180deg);
}

/* Sub-menu */
.gt-hdr-overlay__menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0 0 0 clamp(1rem, 2vw, 2rem);
}

.gt-hdr-overlay__menu .sub-menu a {
  display: block;
  padding: clamp(0.4rem, 0.8vw, 0.6rem) 0;
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  font-weight: 400;
  color: inherit;
  text-decoration: none;
  opacity: 0.75;
  transition: opacity 150ms ease;
}

.gt-hdr-overlay__menu .sub-menu a:hover {
  opacity: 1;
}

/* Sub-menu items med children — flex-layout for toggle-knap */
.gt-hdr-overlay__menu .sub-menu li.menu-item-has-children {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.gt-hdr-overlay__menu .sub-menu li.menu-item-has-children > a {
  display: inline-block;
  flex: 0 1 auto;
}
.gt-hdr-overlay__menu .sub-menu li.menu-item-has-children > .sub-menu {
  flex-basis: 100%;
}

/* Nested sub-menus (niveau 2+) */
.gt-hdr-overlay__menu .sub-menu .sub-menu {
  padding-left: clamp(0.75rem, 1.5vw, 1.5rem);
}
.gt-hdr-overlay__menu .sub-menu .sub-menu a {
  font-size: clamp(0.9rem, 1.3vw, 1.1rem);
  opacity: 0.6;
}
.gt-hdr-overlay__menu .sub-menu .sub-menu a:hover {
  opacity: 1;
}

/* Mobile-only actions inside overlay */
.gt-hdr-overlay__mobile-actions {
  display: none;
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

/* (member-btn replaced by compact overlay dropdown) */

.gt-hdr-overlay__social-row {
  display: flex;
  gap: clamp(1rem, 2vw, 1.5rem);
  justify-content: center;
}

.gt-hdr-overlay__social-row a {
  color: inherit;
  opacity: 0.8;
  transition: opacity 150ms ease;
}

.gt-hdr-overlay__social-row a:hover {
  opacity: 1;
  color: inherit;
}

/* Footer */
.gt-hdr-overlay__footer {
  margin-top: auto;
  padding-top: clamp(2rem, 4vw, 3rem);
  display: flex;
  justify-content: center;
  gap: 0.75em;
  font-size: clamp(0.75rem, 1vw, 0.875rem);
  opacity: 0.5;
}

.gt-hdr-overlay__footer a {
  color: inherit;
  text-decoration: none;
}

.gt-hdr-overlay__footer a:hover {
  text-decoration: underline;
  color: inherit;
}


/* ==========================================================================
   HEADER — RESPONSIVE
   ========================================================================== */

@media (max-width: 767px) {
  .gt-hdr__desktop-only {
    display: none;
  }

  .gt-hdr-overlay__mobile-actions {
    display: block;
  }

  /* Skjul logo på mobil (valgfri kontrol i widget) */
  .gt-hdr__logo--hide-mobile {
    display: none;
  }
}


/* ==========================================================================
   NEWS ARCHIVE GREEN TOGETHER — Fuld grid nyhedsarkiv
   ========================================================================== */

.gt-narc {
  --gt-narc-cols: 3;
  --gt-narc-overlay: 0.45;
  --gt-narc-overlay-color: #000000;
  --gt-narc-fallback: var(--gt-color-primary, #1a6b3c);
  --gt-narc-title: #ffffff;
  --gt-narc-meta: rgba(255, 255, 255, 0.75);
  --gt-narc-excerpt: rgba(255, 255, 255, 0.7);
}

/* ---- Category filter buttons ---- */
.gt-narc__filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gt-space-xs);
  margin-bottom: var(--gt-space-md);
}

.gt-narc__filter {
  display: inline-flex;
  align-items: center;
  padding: 0.4em 1.1em;
  font-family: var(--gt-font-body);
  font-size: var(--gt-fs-small);
  font-weight: var(--gt-fw-semi);
  line-height: 1;
  color: var(--gt-color-primary);
  background: transparent;
  border: 1.5px solid var(--gt-color-primary);
  border-radius: var(--gt-radius-pill);
  cursor: pointer;
  transition:
    background-color var(--gt-transition-fast),
    color var(--gt-transition-fast);
}

.gt-narc__filter:hover {
  background-color: var(--gt-color-primary-subtle);
}

.gt-narc__filter--active {
  background-color: var(--gt-color-primary);
  color: var(--gt-color-text-on-dark);
}

.gt-narc__filter--active:hover {
  background-color: var(--gt-color-primary-dark);
}

/* ---- Filtered cards ---- */
.gt-narc__card--filtered {
  display: none !important;
}

/* ---- Grid ---- */
.gt-narc__grid {
  display: grid;
  grid-template-columns: repeat(var(--gt-narc-cols, 3), 1fr);
}

/* Gap sizes */
.gt-narc--gap-sm .gt-narc__grid { gap: var(--gt-space-xs); }
.gt-narc--gap-md .gt-narc__grid { gap: var(--gt-space-sm); }
.gt-narc--gap-lg .gt-narc__grid { gap: var(--gt-space-md); }

/* ---- Card ---- */
.gt-narc__card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  background: var(--gt-narc-card-bg, none) center / cover no-repeat,
              var(--gt-narc-fallback);
  text-decoration: none;
  border-top-left-radius: var(--gt-sig-md);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-md);
  border-bottom-left-radius: 0;
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.gt-narc__card:hover {
  transform: translateY(-3px);
  box-shadow: var(--gt-shadow-md);
}

/* Card heights */
.gt-narc--h-sm .gt-narc__card { min-height: 220px; }
.gt-narc--h-md .gt-narc__card { min-height: 280px; }
.gt-narc--h-lg .gt-narc__card { min-height: 360px; }

/* Hidden cards (row limit) */
.gt-narc__card--hidden {
  display: none;
}

.gt-narc--expanded .gt-narc__card--hidden {
  display: flex;
}

/* ---- Overlay ---- */
.gt-narc__card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 30%,
    var(--gt-narc-overlay-color) 100%
  );
  opacity: var(--gt-narc-overlay, 0.45);
  transition: opacity 200ms ease;
  z-index: 1;
}

.gt-narc__card:hover .gt-narc__card-overlay {
  opacity: calc(var(--gt-narc-overlay, 0.45) + 0.1);
}

/* ---- Card content ---- */
.gt-narc__card-content {
  position: relative;
  z-index: 2;
  padding: var(--gt-space-sm) var(--gt-space-md);
}

.gt-narc__card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gt-space-xs);
  margin-bottom: var(--gt-space-2xs);
}

.gt-narc__card-cat {
  font-size: var(--gt-fs-label, 0.7rem);
  font-weight: var(--gt-fw-bold, 700);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gt-color-primary-subtle, #e8f5ec);
}

.gt-narc__card-date {
  font-size: var(--gt-fs-small, 0.8rem);
  color: var(--gt-narc-meta);
}

.gt-narc__card-cat + .gt-narc__card-date::before {
  content: '·';
  margin-right: var(--gt-space-xs);
  color: var(--gt-narc-meta);
}

.gt-narc__card-title {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-narc-title);
  line-height: var(--gt-lh-tight, 1.2);
  margin: 0;
}

.gt-narc__card-excerpt {
  font-size: var(--gt-fs-small, 0.85rem);
  color: var(--gt-narc-excerpt);
  line-height: 1.4;
  margin-top: var(--gt-space-2xs);
  margin-bottom: 0;
}

/* ---- Show more / toggle ---- */
.gt-narc__show-more {
  display: flex;
  justify-content: center;
  margin-top: var(--gt-space-lg);
}

/* ---- Pagination ---- */
.gt-narc__pagination {
  margin-top: var(--gt-space-lg);
}

.gt-narc__pagination .page-numbers {
  display: flex;
  justify-content: center;
  gap: var(--gt-space-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.gt-narc__pagination .page-numbers li {
  display: inline;
}

.gt-narc__pagination .page-numbers a,
.gt-narc__pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding-inline: 0.5em;
  font-size: var(--gt-fs-small, 0.875rem);
  font-weight: var(--gt-fw-semi, 600);
  text-decoration: none;
  border: 1.5px solid var(--gt-color-border, rgba(0, 0, 0, 0.12));
  border-radius: var(--gt-radius-sm, 4px);
  color: var(--gt-color-text, #1a1a1a);
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.gt-narc__pagination .page-numbers a:hover {
  border-color: var(--gt-color-primary, #1a6b3c);
  color: var(--gt-color-primary, #1a6b3c);
}

.gt-narc__pagination .page-numbers .current {
  background-color: var(--gt-color-primary, #1a6b3c);
  border-color: var(--gt-color-primary, #1a6b3c);
  color: #ffffff;
}

/* ---- Empty state ---- */
.gt-narc__empty {
  text-align: center;
  color: var(--gt-color-text-light, #5a5a5a);
  padding: var(--gt-space-xl);
}

/* ---- Responsive ---- */
@media (max-width: 991px) {
  .gt-narc__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .gt-narc__grid {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================================
   ARTICLE GREEN TOGETHER — Single post display
   ========================================================================== */

.gt-art {
  --gt-art-bg:      transparent;
  --gt-art-accent:  var(--gt-color-primary-light, #2d8a4e);
  --gt-art-heading: var(--gt-color-primary, #1a6b3c);
  --gt-art-text:    var(--gt-color-text, #1a1a1a);
  --gt-art-border:  var(--gt-color-primary, #1a6b3c);

  background: var(--gt-art-bg);
  color: var(--gt-art-text);
}

/* ---- Padding ---- */
.gt-art--pad-sm { --gt-art-pad: var(--gt-space-sm); }
.gt-art--pad-md { --gt-art-pad: var(--gt-space-md); }
.gt-art--pad-lg { --gt-art-pad: var(--gt-space-lg); }
.gt-art--pad-xl { --gt-art-pad: var(--gt-space-xl); }

.gt-art--border-none { padding-inline: 0; }

/* ---- Text align ---- */
.gt-art--align-center { text-align: center; }
.gt-art--align-left   { text-align: left; }

/* ---- Border varianter (identisk med RCB) ---- */
.gt-art--border-signature {
  border: 2px solid var(--gt-art-border);
  border-top-left-radius: var(--gt-sig-lg);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg);
  border-bottom-left-radius: 0;
  padding: var(--gt-art-pad, var(--gt-space-md));
}

.gt-art--border-full {
  border: 2px solid var(--gt-art-border);
  border-radius: var(--gt-radius-lg);
  padding: var(--gt-art-pad, var(--gt-space-md));
}

.gt-art--border-left {
  border-left: 4px solid var(--gt-art-border);
  padding-left: var(--gt-space-md);
}

.gt-art--shadow { box-shadow: var(--gt-shadow-md); }

/* ---- Content width ---- */
.gt-art--width-narrow .gt-art__content { max-width: 65ch; }
.gt-art--width-medium .gt-art__content { max-width: 80ch; }
.gt-art--width-full .gt-art__content   { max-width: none; }

.gt-art--align-center .gt-art__content { margin-inline: auto; }

/* ---- Back button ---- */
.gt-art__back {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-size: var(--gt-fs-small, 0.875rem);
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-art-accent);
  text-decoration: none;
  margin-bottom: var(--gt-space-md);
  transition: opacity 150ms ease;
}

.gt-art__back:hover {
  opacity: 0.7;
}

/* ============================================
   HERO image variant
   ============================================ */

.gt-art__hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: clamp(20rem, 50vh, 36rem);
  overflow: hidden;
}

.gt-art__hero-bg {
  position: absolute;
  inset: 0;
  background: var(--gt-art-hero-bg) center / cover no-repeat;
  z-index: 0;
}

.gt-art__hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.gt-art__hero-overlay--light  { background: rgba(0, 0, 0, 0.2); }
.gt-art__hero-overlay--medium { background: rgba(0, 0, 0, 0.4); }
.gt-art__hero-overlay--dark   { background: rgba(0, 0, 0, 0.6); }
.gt-art__hero-overlay--heavy  { background: rgba(0, 0, 0, 0.8); }

.gt-art__hero-content {
  position: relative;
  z-index: 2;
  padding: var(--gt-space-xl) clamp(1.5rem, 5vw, 5rem) var(--gt-space-lg);
  width: 100%;
}

.gt-art__hero-content .gt-art__heading {
  color: #ffffff;
  font-size: var(--gt-fs-h1);
  margin-bottom: var(--gt-space-xs);
}

.gt-art__hero-content .gt-art__meta--on-dark .gt-art__cat {
  color: var(--gt-color-primary-subtle, #e8f5ec);
  border-color: rgba(255, 255, 255, 0.3);
}

.gt-art__hero-content .gt-art__meta--on-dark .gt-art__date,
.gt-art__hero-content .gt-art__meta--on-dark .gt-art__read-time {
  color: rgba(255, 255, 255, 0.75);
}

.gt-art__author--on-dark {
  color: rgba(255, 255, 255, 0.85);
}

/* ============================================
   ABOVE image variant
   ============================================ */

.gt-art__media {
  margin-bottom: var(--gt-space-md);
  overflow: hidden;
  border-top-left-radius: var(--gt-sig-lg);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg);
  border-bottom-left-radius: 0;
}

.gt-art__img {
  width: 100%;
  display: block;
  object-fit: cover;
}

/* Image heights for above variant */
.gt-art--imgh-sm .gt-art__img { height: 200px; }
.gt-art--imgh-md .gt-art__img { height: 350px; }
.gt-art--imgh-lg .gt-art__img { height: 500px; }
.gt-art--imgh-auto .gt-art__img { height: auto; }

/* ============================================
   META (kategori, dato, læsetid)
   ============================================ */

.gt-art__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gt-space-xs) var(--gt-space-sm);
  margin-bottom: var(--gt-space-xs);
}

.gt-art__cat {
  font-size: var(--gt-fs-label, 0.75rem);
  font-weight: var(--gt-fw-bold, 700);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gt-art-accent);
}

.gt-art__date,
.gt-art__read-time {
  font-size: var(--gt-fs-small, 0.875rem);
  color: var(--gt-color-text-light, #5a5a5a);
}

/* Separator dot between meta items */
.gt-art__date::before,
.gt-art__read-time::before {
  content: '·';
  margin-right: var(--gt-space-sm);
  color: var(--gt-color-text-light, #5a5a5a);
}

/* ============================================
   HEADING, AUTHOR, EXCERPT
   ============================================ */

.gt-art__heading {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h1);
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-art-heading);
  line-height: var(--gt-lh-tight, 1.15);
  margin-bottom: var(--gt-space-xs);
}

.gt-art__author {
  display: block;
  font-size: var(--gt-fs-small, 0.875rem);
  color: var(--gt-color-text-light, #5a5a5a);
  margin-bottom: var(--gt-space-md);
}

.gt-art__excerpt {
  font-size: var(--gt-fs-body-lg, 1.125rem);
  font-weight: var(--gt-fw-medium, 500);
  color: var(--gt-color-text-light, #5a5a5a);
  line-height: var(--gt-lh-loose, 1.7);
  margin-bottom: var(--gt-space-md);
}

/* ============================================
   SHARE BUTTONS
   ============================================ */

.gt-art__share {
  display: flex;
  align-items: center;
  gap: var(--gt-space-sm);
  padding-block: var(--gt-space-sm);
  border-top: 1px solid var(--gt-color-border, rgba(0, 0, 0, 0.08));
  border-bottom: 1px solid var(--gt-color-border, rgba(0, 0, 0, 0.08));
  margin-bottom: var(--gt-space-lg);
}

.gt-art__share--bottom {
  margin-top: var(--gt-space-lg);
  margin-bottom: 0;
}

.gt-art__share-label {
  font-size: var(--gt-fs-small, 0.875rem);
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-color-text-light, #5a5a5a);
}

.gt-art__share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  background: none;
  border: 1.5px solid var(--gt-color-border, rgba(0, 0, 0, 0.12));
  border-radius: 50%;
  color: var(--gt-color-text-light, #5a5a5a);
  cursor: pointer;
  transition: color 150ms ease, border-color 150ms ease, background-color 150ms ease;
  position: relative;
}

.gt-art__share-btn:hover {
  color: var(--gt-art-accent);
  border-color: var(--gt-art-accent);
  background-color: var(--gt-color-primary-subtle, #e8f5ec);
}

.gt-art__share-copied {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.75rem;
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-art-accent);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}

.gt-art__share-copied--visible {
  opacity: 1;
}

/* ============================================
   BODY — Gutenberg content styling
   ============================================ */

.gt-art__body {
  font-size: var(--gt-fs-body, 1rem);
  line-height: var(--gt-lh-loose, 1.7);
  color: var(--gt-art-text);
}

.gt-art__body > *:last-child { margin-bottom: 0; }

.gt-art__body p {
  margin-bottom: 1.5em;
}

.gt-art__body h2 {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h2);
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-art-heading);
  margin-top: 2em;
  margin-bottom: 0.6em;
  line-height: var(--gt-lh-tight, 1.2);
}

.gt-art__body h3 {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h3, 1.375rem);
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-art-heading);
  margin-top: 1.75em;
  margin-bottom: 0.5em;
  line-height: var(--gt-lh-tight, 1.2);
}

.gt-art__body h4 {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, 1.125rem);
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-art-heading);
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}

.gt-art__body ul,
.gt-art__body ol {
  margin-bottom: 1.5em;
  padding-left: 1.5em;
}

.gt-art__body li {
  margin-bottom: 0.4em;
}

.gt-art__body blockquote {
  border-left: 4px solid var(--gt-art-accent);
  padding: var(--gt-space-sm) var(--gt-space-md);
  margin: 1.5em 0;
  font-style: italic;
  color: var(--gt-color-text-light, #5a5a5a);
  background: var(--gt-color-bg-soft, #f7faf8);
}

.gt-art__body blockquote p:last-child { margin-bottom: 0; }

.gt-art__body img {
  max-width: 100%;
  height: auto;
  border-top-left-radius: var(--gt-sig-md);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-md);
  border-bottom-left-radius: 0;
}

.gt-art__body figure {
  margin: 1.5em 0;
}

.gt-art__body figcaption {
  font-size: var(--gt-fs-small, 0.875rem);
  color: var(--gt-color-text-light, #5a5a5a);
  margin-top: var(--gt-space-xs);
  text-align: center;
}

.gt-art__body a {
  color: var(--gt-art-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gt-art__body a:hover {
  color: var(--gt-color-primary-dark, #145530);
}

/* Gutenberg-specifikke blokke */
.gt-art__body .wp-block-image {
  margin: 1.5em 0;
}

.gt-art__body .wp-block-gallery {
  margin: 1.5em 0;
}

.gt-art__body .wp-block-separator {
  border: none;
  border-top: 1px solid var(--gt-color-border, rgba(0, 0, 0, 0.08));
  margin: 2em 0;
}

/* ============================================
   TAGS
   ============================================ */

.gt-art__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gt-space-xs);
  margin-top: var(--gt-space-lg);
}

.gt-art__tag {
  display: inline-block;
  padding: 0.25em 0.75em;
  font-size: var(--gt-fs-small, 0.875rem);
  color: var(--gt-art-accent);
  border: 1px solid var(--gt-art-accent);
  border-radius: 100vmax;
  text-decoration: none;
  transition: background-color 150ms ease, color 150ms ease;
}

.gt-art__tag:hover {
  background-color: var(--gt-art-accent);
  color: #fff;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 767px) {
  .gt-art__hero {
    min-height: clamp(14rem, 50vh, 24rem);
  }

  .gt-art__hero-content .gt-art__heading {
    font-size: var(--gt-fs-h2);
  }

  .gt-art__meta {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gt-space-2xs);
  }

  .gt-art__date::before,
  .gt-art__read-time::before {
    display: none;
  }

  .gt-art--align-center .gt-art__meta {
    align-items: center;
  }
}


/* ==========================================================================
   FAQ GREEN TOGETHER
   ========================================================================== */

.gt-faq {
  --gt-faq-bg:       transparent;
  --gt-faq-accent:   var(--gt-color-primary-light, #2d8a4e);
  --gt-faq-heading:  var(--gt-color-primary, #1a6b3c);
  --gt-faq-question: var(--gt-color-text, #1a1a1a);
  --gt-faq-answer:   var(--gt-color-text, #1a1a1a);
  --gt-faq-icon:     var(--gt-color-primary, #1a6b3c);
  --gt-faq-divider:  var(--gt-color-primary-subtle, #e8f5ec);
  --gt-faq-border:   var(--gt-color-primary, #1a6b3c);

  background: var(--gt-faq-bg);
}

/* Padding tokens — identisk med RCB */
.gt-faq--pad-sm { --gt-faq-pad: var(--gt-space-sm); }
.gt-faq--pad-md { --gt-faq-pad: var(--gt-space-md); }
.gt-faq--pad-lg { --gt-faq-pad: var(--gt-space-lg); }
.gt-faq--pad-xl { --gt-faq-pad: var(--gt-space-xl); }

/* Text align */
.gt-faq--align-center { text-align: center; }
.gt-faq--align-left   { text-align: left; }

/* Border varianter — samme system som RCB */
.gt-faq--border-none { padding-inline: 0; }

.gt-faq--border-signature {
  border: 2px solid var(--gt-faq-border);
  border-top-left-radius: var(--gt-sig-lg);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg);
  border-bottom-left-radius: 0;
  padding: var(--gt-faq-pad, var(--gt-space-md));
}

.gt-faq--border-full {
  border: 2px solid var(--gt-faq-border);
  border-radius: var(--gt-radius-lg);
  padding: var(--gt-faq-pad, var(--gt-space-md));
}

/* Skygge */
.gt-faq--shadow { box-shadow: var(--gt-shadow-md); }

/* Mindre afstand mellem overskrift og FAQ-items */
.gt-faq .gt-section-header {
  margin-bottom: var(--gt-space-sm);
}

/* ---- FAQ liste ---- */
.gt-faq__list {
  margin: 0;
  padding: 0;
}

/* 2-kolonne layout */
.gt-faq--cols-2 .gt-faq__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 clamp(2rem, 4vw, 4rem);
  align-items: start;
}

/* ---- FAQ item ---- */
.gt-faq__item {
  border-bottom: 1px solid var(--gt-faq-divider);
}

.gt-faq__item:first-child {
  border-top: 1px solid var(--gt-faq-divider);
}

/* I 2-kolonne: venstre kolonne-items har ikke nødvendigvis en "top-nabo",
   men alle items har bottom-border — det ser konsistent ud. */
.gt-faq--cols-2 .gt-faq__list .gt-faq__item:first-child,
.gt-faq--cols-2 .gt-faq__list .gt-faq__item:nth-child(2) {
  border-top: 1px solid var(--gt-faq-divider);
}

/* ---- Spørgsmål-knap ---- */
.gt-faq__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gt-space-sm);
  width: 100%;
  background: none;
  border: none;
  padding: var(--gt-space-sm) 0;
  cursor: pointer;
  text-align: inherit;
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-body, 1rem);
  font-weight: var(--gt-fw-semi, 600);
  color: var(--gt-faq-question);
  line-height: var(--gt-lh-normal, 1.5);
  transition: color 150ms ease;
}

.gt-faq__btn:hover {
  color: var(--gt-faq-icon);
}

.gt-faq__question-text {
  flex: 1;
}

/* ---- Plus/minus ikon ---- */
.gt-faq__icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--gt-faq-icon);
  transition: transform 200ms ease;
}

.gt-faq__icon-minus {
  display: none;
}

.gt-faq__item--open .gt-faq__icon-plus {
  display: none;
}

.gt-faq__item--open .gt-faq__icon-minus {
  display: block;
}

/* ---- Svar (animeret slide) ---- */
.gt-faq__answer {
  display: grid;
  grid-template-rows: 1fr;
  overflow: hidden;
  transition: grid-template-rows 300ms ease;
}

.gt-faq__answer[hidden] {
  display: grid;
  grid-template-rows: 0fr;
}

.gt-faq__answer[hidden] > .gt-faq__answer-inner {
  visibility: hidden;
}

.gt-faq__answer-inner {
  min-height: 0;
  overflow: hidden;
  padding-bottom: var(--gt-space-sm);
  font-size: var(--gt-fs-body, 1rem);
  color: var(--gt-faq-answer);
  line-height: var(--gt-lh-normal, 1.6);
}

.gt-faq__answer-inner p:last-child {
  margin-bottom: 0;
}

/* ---- Responsive ---- */
@media (max-width: 767px) {
  .gt-faq--cols-2 .gt-faq__list {
    grid-template-columns: 1fr;
  }

  .gt-faq--cols-2 .gt-faq__list .gt-faq__item:nth-child(2) {
    border-top: none;
  }
}


/* ==========================================================================
   FOOTER GREEN TOGETHER
   ========================================================================== */

/* ==========================================================================
   FOOTER GREEN TOGETHER — v2
   ========================================================================== */

/* Bølge over footer */
.gt-ftr-wave {
  line-height: 0;
  margin-bottom: -1px;
}

.gt-ftr-wave svg {
  width: 100%;
  height: clamp(2.5rem, 5vw, 5rem);
  display: block;
}

.gt-ftr-wave--dark-green { color: var(--gt-color-primary, #1a6b3c); }
.gt-ftr-wave--dark-blue  { color: var(--gt-color-secondary, #1a4a6b); }
.gt-ftr-wave--light      { color: var(--gt-color-bg-soft, #f7faf8); }

/* Footer base */
.gt-ftr {
  --gt-ftr-bg: var(--gt-color-primary, #1a6b3c);
  --gt-ftr-text: #ffffff;
  --gt-ftr-muted: rgba(255, 255, 255, 0.55);
  --gt-ftr-accent: rgba(255, 255, 255, 0.85);
  --gt-ftr-border: rgba(255, 255, 255, 0.12);

  background: var(--gt-ftr-bg);
  color: var(--gt-ftr-text);
}

.gt-ftr--dark-blue {
  --gt-ftr-bg: var(--gt-color-secondary, #1a4a6b);
}

.gt-ftr--light {
  --gt-ftr-bg: var(--gt-color-bg-soft, #f7faf8);
  --gt-ftr-text: var(--gt-color-text, #1a1a1a);
  --gt-ftr-muted: var(--gt-color-text-light, #5a5a5a);
  --gt-ftr-accent: var(--gt-color-primary, #1a6b3c);
  --gt-ftr-border: rgba(0, 0, 0, 0.08);
}

/* Main content area — delt base */
.gt-ftr__main {
  padding: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 5vw, 5rem);
  max-width: 90rem;
  margin-inline: auto;
}

/* --- Layout: 2 kolonner (brand | indhold) --- */
.gt-ftr__main--2col {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: clamp(2rem, 4vw, 3.5rem) clamp(2rem, 4vw, 5rem);
  align-items: start;
}

/* Indhold-wrapper: auto-fit så 1 sektion = 1 kolonne, 2+ = side om side */
.gt-ftr__main--2col .gt-ftr__content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}

/* --- Layout: flydende (alle side om side) --- */
.gt-ftr__main--flow {
  display: grid;
  grid-template-columns: 1.5fr repeat(auto-fit, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 3rem);
}

.gt-ftr__main--flow .gt-ftr__content {
  display: contents; /* lader children gå direkte ind i parent-grid */
}

/* ---- Brand kolonne ---- */
.gt-ftr__brand {
  max-width: 28ch;
}

.gt-ftr__logo {
  margin-bottom: var(--gt-space-sm);
}

.gt-ftr__logo-svg,
.gt-ftr__logo-img {
  height: clamp(32px, 4vw, 45px);
  width: auto;
  display: block;
  color: inherit;
}

.gt-ftr__tagline {
  font-size: var(--gt-fs-body);
  color: var(--gt-ftr-muted);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-md);
}

/* Social ikoner */
.gt-ftr__social {
  display: flex;
  gap: var(--gt-space-sm);
}

.gt-ftr__social-icon {
  display: flex;
  align-items: center;
  color: var(--gt-ftr-muted);
  transition: color 150ms ease;
}

.gt-ftr__social-icon:hover {
  color: var(--gt-ftr-text);
}

/* ---- Nav group ---- */
.gt-ftr__nav-group {
  display: flex;
  gap: clamp(1.5rem, 3vw, 3rem);
}

/* Kolonne-labels */
.gt-ftr__label {
  font-size: var(--gt-fs-small);
  font-weight: var(--gt-fw-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gt-ftr-text);
  margin-bottom: var(--gt-space-sm);
}

/* Nav links */
.gt-ftr__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gt-ftr__links li {
  margin-bottom: var(--gt-space-2xs);
}

.gt-ftr__links a {
  font-size: var(--gt-fs-body);
  color: var(--gt-ftr-muted);
  text-decoration: none;
  transition: color 150ms ease;
}

.gt-ftr__links a:hover {
  color: var(--gt-ftr-text);
}

/* ---- Kontakt ---- */
.gt-ftr__addr {
  font-size: var(--gt-fs-body);
  color: var(--gt-ftr-muted);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-xs);
}

.gt-ftr__clink {
  display: block;
  font-size: var(--gt-fs-body);
  color: var(--gt-ftr-accent);
  text-decoration: none;
  margin-bottom: var(--gt-space-2xs);
  transition: opacity 150ms ease;
}

.gt-ftr__clink:hover {
  opacity: 0.75;
  color: var(--gt-ftr-accent);
}

/* ---- Nyhedsbrev ---- */
.gt-ftr__nl-text {
  font-size: var(--gt-fs-body);
  color: var(--gt-ftr-muted);
  line-height: var(--gt-lh-normal);
  margin-bottom: var(--gt-space-sm);
}

.gt-ftr__nl-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5em 1.3em;
  font-size: var(--gt-fs-small);
  font-weight: var(--gt-fw-semi);
  color: var(--gt-ftr-text);
  border: 1.5px solid var(--gt-ftr-muted);
  border-radius: 100vmax;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.gt-ftr__nl-btn:hover {
  background-color: rgba(255, 255, 255, 0.12);
  border-color: var(--gt-ftr-text);
  color: var(--gt-ftr-text);
}

.gt-ftr--light .gt-ftr__nl-btn {
  color: var(--gt-ftr-accent);
  border-color: var(--gt-ftr-accent);
}

.gt-ftr--light .gt-ftr__nl-btn:hover {
  background-color: var(--gt-ftr-accent);
  color: #fff;
}

/* ---- Bundlinje ---- */
.gt-ftr__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--gt-space-xs) var(--gt-space-md);
  padding: var(--gt-space-sm) clamp(2rem, 5vw, 5rem);
  border-top: 1px solid var(--gt-ftr-border);
  font-size: var(--gt-fs-small);
  color: var(--gt-ftr-muted);
  max-width: 90rem;
  margin-inline: auto;
}

.gt-ftr__legal {
  display: flex;
  gap: var(--gt-space-sm);
}

.gt-ftr__legal a,
.gt-ftr__credit a {
  color: var(--gt-ftr-muted);
  text-decoration: none;
  transition: color 150ms ease;
}

.gt-ftr__legal a:hover,
.gt-ftr__credit a:hover {
  color: var(--gt-ftr-text);
}

.gt-ftr__credit {
  margin-left: auto;
}

/* ---- Responsive ---- */
@media (max-width: 991px) {
  /* 2col: brand fylder fuld bredde, indhold falder ned */
  .gt-ftr__main--2col {
    grid-template-columns: 1fr;
  }

  /* flow: to kolonner, brand spænder fuld bredde */
  .gt-ftr__main--flow {
    grid-template-columns: 1fr 1fr;
  }

  .gt-ftr__main--flow .gt-ftr__brand {
    grid-column: 1 / -1;
    max-width: none;
  }
}

@media (max-width: 767px) {
  .gt-ftr__main--2col .gt-ftr__content,
  .gt-ftr__main--flow {
    grid-template-columns: 1fr;
  }

  .gt-ftr__brand {
    max-width: none;
  }

  .gt-ftr__nav-group {
    flex-direction: column;
    gap: var(--gt-space-lg);
  }

  .gt-ftr__bar {
    flex-direction: column;
    text-align: center;
  }

  .gt-ftr__credit {
    margin-left: 0;
  }
}


/* =====================================================================
   CONTACT — Kontakt Green Together (.gt-contact)
   ===================================================================== */

.gt-contact {
  background: var(--gt-ct-bg, transparent);
  color: var(--gt-ct-text, var(--gt-color-text));
}

/* Sub-headings (Priser, Tilmelding, Kontakt os) */
.gt-contact__sub-heading {
  font-family: var(--gt-ff-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h3, clamp(1.25rem, 2vw, 1.75rem));
  font-weight: 700;
  color: var(--gt-ct-heading, var(--gt-color-primary));
  margin: 0 0 var(--gt-space-sm);
}

/* --- Layout: stacked --- */
.gt-contact--stacked .gt-contact__pricing,
.gt-contact--stacked .gt-contact__form-wrap,
.gt-contact--stacked .gt-contact__info {
  margin-bottom: var(--gt-space-xl);
}
.gt-contact--stacked .gt-contact__pricing:last-child,
.gt-contact--stacked .gt-contact__form-wrap:last-child,
.gt-contact--stacked .gt-contact__info:last-child {
  margin-bottom: 0;
}

/* --- Layout: side-by-side --- */
.gt-contact__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
}
.gt-contact--gap-sm .gt-contact__grid { gap: var(--gt-space-sm); }
.gt-contact--gap-md .gt-contact__grid { gap: var(--gt-space-lg); }
.gt-contact--gap-lg .gt-contact__grid { gap: var(--gt-space-2xl); }

.gt-contact__col-left > * + *,
.gt-contact__col-right > * + * {
  margin-top: var(--gt-space-xl);
}

/* Order: form-left swaps columns */
.gt-contact--order-form-left .gt-contact__col-left  { order: 1; }
.gt-contact--order-form-left .gt-contact__col-right { order: 0; }

/* --- Pricing cards --- */
.gt-contact__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--gt-space-md);
}

.gt-contact__card {
  background: var(--gt-ct-card-bg, var(--gt-color-bg-soft, #f7faf8));
  padding: var(--gt-space-lg);
  border-top-left-radius: var(--gt-sig-md);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-md);
  border-bottom-left-radius: 0;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.gt-contact__card:hover {
  transform: translateY(-2px);
  box-shadow: var(--gt-shadow-md, 0 4px 20px rgba(0,0,0,.08));
}

.gt-contact__card--highlight {
  background: var(--gt-ct-card-hl, var(--gt-color-primary));
  color: var(--gt-color-text-on-dark, #fff);
}
.gt-contact__card--highlight .gt-contact__card-title,
.gt-contact__card--highlight .gt-contact__card-price {
  color: var(--gt-color-text-on-dark, #fff);
}

.gt-contact__card-title {
  font-family: var(--gt-ff-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, clamp(1rem, 1.5vw, 1.25rem));
  font-weight: 700;
  color: var(--gt-ct-heading, var(--gt-color-primary));
  margin: 0 0 var(--gt-space-xs);
}

.gt-contact__card-price {
  font-size: var(--gt-fs-h2, clamp(1.5rem, 3vw, 2.25rem));
  font-weight: 800;
  color: var(--gt-ct-accent, var(--gt-color-primary));
  margin-bottom: var(--gt-space-sm);
}

.gt-contact__card-features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--gt-space-md);
  flex: 1;
}
.gt-contact__card-features li {
  padding: var(--gt-space-xs) 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
  font-size: 0.95rem;
}
.gt-contact__card-features li::before {
  content: '\2713';
  margin-right: 0.5em;
  color: var(--gt-ct-accent, var(--gt-color-primary));
  font-weight: 700;
}
.gt-contact__card--highlight .gt-contact__card-features li {
  border-bottom-color: rgba(255,255,255,.15);
}
.gt-contact__card--highlight .gt-contact__card-features li::before {
  color: var(--gt-color-text-on-dark, #fff);
}

.gt-contact__card-cta {
  margin-top: auto;
  align-self: flex-start;
}
.gt-contact__card--highlight .gt-contact__card-cta {
  background: var(--gt-color-bg, #fff);
  color: var(--gt-color-primary);
}
.gt-contact__card--highlight .gt-contact__card-cta:hover {
  background: var(--gt-color-bg-soft, #f7faf8);
}

/* --- Pricing text --- */
.gt-contact__pricing-text {
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  line-height: 1.7;
}

/* --- Form --- */
.gt-contact__form-wrap {
  background: var(--gt-ct-form-bg, transparent);
  border-top-left-radius: var(--gt-sig-md);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-md);
  border-bottom-left-radius: 0;
  padding: var(--gt-space-lg);
}

/* Form card variant — colored bg, white content */
.gt-contact__form-wrap--card {
  background: var(--gt-ct-form-bg, var(--gt-color-primary));
  color: var(--gt-color-text-on-dark, #fff);
}
.gt-contact__form-wrap--card .gt-contact__sub-heading {
  color: var(--gt-color-text-on-dark, #fff);
}
.gt-contact__form-wrap--card .gt-contact__form-desc {
  color: rgba(255,255,255,.85);
}
.gt-contact__form-wrap--card .gt-contact__label {
  color: var(--gt-color-text-on-dark, #fff);
}
.gt-contact__form-wrap--card .gt-contact__input,
.gt-contact__form-wrap--card .gt-contact__textarea {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.25);
  color: var(--gt-color-text-on-dark, #fff);
}
.gt-contact__form-wrap--card .gt-contact__input::placeholder,
.gt-contact__form-wrap--card .gt-contact__textarea::placeholder {
  color: rgba(255,255,255,.5);
}
.gt-contact__form-wrap--card .gt-contact__input:focus,
.gt-contact__form-wrap--card .gt-contact__textarea:focus {
  border-color: rgba(255,255,255,.6);
  box-shadow: 0 0 0 3px rgba(255,255,255,.15);
}
.gt-contact__form-wrap--card .gt-contact__submit {
  background: var(--gt-color-bg, #fff);
  color: var(--gt-color-primary);
}
.gt-contact__form-wrap--card .gt-contact__submit:hover {
  background: var(--gt-color-bg-soft, #f7faf8);
}
.gt-contact__form-wrap--card .gt-contact__status--success {
  color: rgba(255,255,255,.9);
}
.gt-contact__form-wrap--card .gt-contact__status--error {
  color: #ffc9c9;
}

.gt-contact__form-desc {
  color: var(--gt-ct-text, var(--gt-color-text-light));
  margin-bottom: var(--gt-space-md);
}

.gt-contact__field {
  margin-bottom: var(--gt-space-sm);
}

.gt-contact__label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 0.35em;
  color: var(--gt-ct-heading, var(--gt-color-text));
}

.gt-contact__input,
.gt-contact__textarea {
  width: 100%;
  padding: 0.7em 1em;
  font-family: inherit;
  font-size: 1rem;
  border: 1px solid rgba(0,0,0,.15);
  border-top-left-radius: var(--gt-sig-sm);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm);
  border-bottom-left-radius: 0;
  background: var(--gt-color-bg, #fff);
  color: var(--gt-color-text);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}
.gt-contact__input:focus,
.gt-contact__textarea:focus {
  outline: none;
  border-color: var(--gt-ct-accent, var(--gt-color-primary));
  box-shadow: 0 0 0 3px var(--gt-color-primary-subtle, rgba(26,107,60,.12));
}

.gt-contact__textarea {
  resize: vertical;
  min-height: 6rem;
}

.gt-contact__submit {
  margin-top: var(--gt-space-sm);
  background: var(--gt-ct-btn, var(--gt-color-primary));
  min-width: 12rem;
  position: relative;
}
.gt-contact__submit--loading {
  color: transparent !important;
}
.gt-contact__submit--loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.2em;
  height: 1.2em;
  margin: -0.6em 0 0 -0.6em;
  border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: gt-ct-spin 0.6s linear infinite;
}
@keyframes gt-ct-spin {
  to { transform: rotate(360deg); }
}

/* Status messages */
.gt-contact__status {
  margin-top: var(--gt-space-sm);
  font-size: 0.95rem;
  min-height: 1.4em;
}
.gt-contact__status--success {
  color: var(--gt-color-primary, #1a6b3c);
  font-weight: 600;
}
.gt-contact__status--error {
  color: #c0392b;
  font-weight: 600;
}

/* --- Contact info --- */
.gt-contact__info-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.gt-contact__info-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75em;
  padding: var(--gt-space-xs) 0;
  font-size: clamp(0.95rem, 1.3vw, 1.05rem);
}
.gt-contact__info-item a {
  color: var(--gt-ct-accent, var(--gt-color-primary));
  text-decoration: none;
}
.gt-contact__info-item a:hover {
  text-decoration: underline;
}
.gt-contact__info-icon {
  flex-shrink: 0;
  color: var(--gt-ct-accent, var(--gt-color-primary));
  margin-top: 0.15em;
}
.gt-contact__info-extra {
  margin-top: var(--gt-space-md);
  font-size: 0.95rem;
  color: var(--gt-ct-text, var(--gt-color-text-light));
}

/* --- Padding --- */
.gt-contact--pad-sm { padding: var(--gt-space-sm); }
.gt-contact--pad-md { padding: var(--gt-space-md); }
.gt-contact--pad-lg { padding: var(--gt-space-lg); }
.gt-contact--pad-xl { padding: var(--gt-space-xl); }

/* --- Border --- */
.gt-contact--border-signature {
  border: 2px solid var(--gt-ct-border, var(--gt-color-primary));
  border-top-left-radius: var(--gt-sig-lg);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg);
  border-bottom-left-radius: 0;
}
.gt-contact--border-full {
  border: 2px solid var(--gt-ct-border, var(--gt-color-primary));
  border-radius: var(--gt-sig-sm);
}
.gt-contact--border-left {
  border-left: 4px solid var(--gt-ct-border, var(--gt-color-primary));
}

/* --- Shadow --- */
.gt-contact--shadow {
  box-shadow: var(--gt-shadow-md, 0 4px 20px rgba(0,0,0,.08));
}

/* --- Gap (stacked) --- */
.gt-contact--stacked.gt-contact--gap-sm > .gt-contact__pricing,
.gt-contact--stacked.gt-contact--gap-sm > .gt-contact__form-wrap,
.gt-contact--stacked.gt-contact--gap-sm > .gt-contact__info { margin-bottom: var(--gt-space-sm); }
.gt-contact--stacked.gt-contact--gap-lg > .gt-contact__pricing,
.gt-contact--stacked.gt-contact--gap-lg > .gt-contact__form-wrap,
.gt-contact--stacked.gt-contact--gap-lg > .gt-contact__info { margin-bottom: var(--gt-space-2xl); }

/* --- Responsive: side-by-side → stacked on mobile --- */
@media (max-width: 767px) {
  .gt-contact__grid {
    grid-template-columns: 1fr;
  }
  .gt-contact--order-form-left .gt-contact__col-left,
  .gt-contact--order-form-left .gt-contact__col-right {
    order: unset;
  }
  .gt-contact__col-right > * + * {
    margin-top: var(--gt-space-lg);
  }
  .gt-contact__form-wrap {
    padding: var(--gt-space-md);
  }
}


/* ==========================================================================
   PULL QUOTE BLOCK — Citat-boks i artikeltekst (Gutenberg)
   ========================================================================== */

.gt-pullquote {
  margin: var(--gt-space-lg) 0;
  padding: var(--gt-space-lg) var(--gt-space-md);
  background: var(--gt-color-bg-soft);
  text-align: center;
  border-top-left-radius: var(--gt-sig-lg);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg);
  border-bottom-left-radius: 0;
}

.gt-pullquote__icon {
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1;
  color: var(--gt-pullquote-accent, var(--gt-color-primary));
  font-family: Georgia, serif;
  margin-bottom: var(--gt-space-sm);
}

.gt-pullquote__text {
  font-size: var(--gt-fs-h3);
  font-weight: var(--gt-fw-bold);
  font-family: var(--gt-font-heading);
  line-height: var(--gt-lh-tight);
  color: var(--gt-color-text);
  margin: 0 auto var(--gt-space-md);
  max-width: 65ch;
}

.gt-pullquote__text p { margin: 0; }

.gt-pullquote__attribution {
  font-size: var(--gt-fs-small);
  font-weight: var(--gt-fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gt-color-text-light);
}

@media (max-width: 767px) {
  .gt-pullquote {
    padding: var(--gt-space-md) var(--gt-space-sm);
  }
}

/* Editor preview */
.editor-styles-wrapper .gt-pullquote {
  margin: var(--gt-space-lg) 0;
}


/* ==========================================================================
   GDPR COOKIE CONSENT BANNER
   Fixed bottom bar + indstillinger modal + cookie-tabel
   ========================================================================== */

/* --- Banner (fixed bottom bar) --- */

.gt-cookie {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9997;
  background: var(--gt-color-bg, #ffffff);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(100%);
  opacity: 0;
  visibility: hidden;
  transition: transform 400ms ease, opacity 400ms ease, visibility 400ms ease;
}

.gt-cookie--visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.gt-cookie__inner {
  max-width: var(--gt-content-wide, 75rem);
  margin: 0 auto;
  padding: var(--gt-space-md, 1.5rem) var(--gt-space-lg, 2rem);
  display: flex;
  align-items: center;
  gap: var(--gt-space-lg, 2rem);
}

.gt-cookie__content {
  flex: 1;
  min-width: 0;
}

.gt-cookie__heading {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, clamp(1.05rem, 0.9rem + 0.5vw, 1.25rem));
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-color-text, #1a1a1a);
  margin: 0 0 var(--gt-space-2xs, 0.25rem);
  line-height: var(--gt-lh-tight, 1.2);
}

.gt-cookie__text {
  font-size: var(--gt-fs-body-sm, clamp(0.825rem, 0.78rem + 0.2vw, 0.875rem));
  color: var(--gt-color-text-light, #5a5a5a);
  margin: 0;
  line-height: var(--gt-lh-normal, 1.6);
}

.gt-cookie__actions {
  display: flex;
  gap: var(--gt-space-xs, 0.5rem);
  flex-shrink: 0;
  flex-wrap: wrap;
}

.gt-cookie__accept-all,
.gt-cookie__reject-all,
.gt-cookie__settings-btn {
  font-family: inherit;
  font-size: var(--gt-fs-body-sm, 0.875rem);
  font-weight: 600;
  padding: var(--gt-space-xs, 0.5rem) var(--gt-space-md, 1rem);
  border: 2px solid transparent;
  cursor: pointer;
  transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease;
  border-top-left-radius: var(--gt-sig-sm, 0.5rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.5rem);
  border-bottom-left-radius: 0;
  white-space: nowrap;
}

.gt-cookie__accept-all {
  background: var(--gt-color-primary, #1a6b3c);
  color: var(--gt-color-text-on-dark, #ffffff);
  border-color: var(--gt-color-primary, #1a6b3c);
}

.gt-cookie__accept-all:hover {
  background: var(--gt-color-primary-dark, #145530);
  border-color: var(--gt-color-primary-dark, #145530);
}

.gt-cookie__reject-all {
  background: transparent;
  color: var(--gt-color-text, #1a1a1a);
  border-color: var(--gt-color-text-light, #5a5a5a);
}

.gt-cookie__reject-all:hover {
  border-color: var(--gt-color-text, #1a1a1a);
}

.gt-cookie__settings-btn {
  background: transparent;
  color: var(--gt-color-primary, #1a6b3c);
  border-color: transparent;
  text-decoration: underline;
  padding-left: var(--gt-space-xs, 0.5rem);
  padding-right: var(--gt-space-xs, 0.5rem);
}

.gt-cookie__settings-btn:hover {
  color: var(--gt-color-primary-dark, #145530);
}

@media (max-width: 767px) {
  .gt-cookie__inner {
    flex-direction: column;
    padding: var(--gt-space-md, 1.5rem);
    gap: var(--gt-space-sm, 0.75rem);
  }
  .gt-cookie__actions {
    width: 100%;
    justify-content: stretch;
  }
  .gt-cookie__accept-all,
  .gt-cookie__reject-all {
    flex: 1;
  }
}


/* --- Settings Modal --- */

.gt-cookie-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 300ms ease, visibility 300ms ease;
}

.gt-cookie-modal--open {
  opacity: 1;
  visibility: visible;
}

.gt-cookie-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}

.gt-cookie-modal__dialog {
  position: relative;
  background: var(--gt-color-bg, #ffffff);
  max-width: 36rem;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  border-top-left-radius: var(--gt-sig-lg, 1.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg, 1.75rem);
  border-bottom-left-radius: 0;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
  transform: translateY(20px);
  transition: transform 300ms ease;
}

.gt-cookie-modal--open .gt-cookie-modal__dialog {
  transform: translateY(0);
}

.gt-cookie-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--gt-space-md, 1.5rem) var(--gt-space-lg, 2rem);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.gt-cookie-modal__title {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, clamp(1.05rem, 0.9rem + 0.5vw, 1.25rem));
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-color-text, #1a1a1a);
  margin: 0;
}

.gt-cookie-modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--gt-color-text-light, #5a5a5a);
  transition: color 200ms ease;
  border-top-left-radius: var(--gt-sig-sm, 0.5rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.5rem);
  border-bottom-left-radius: 0;
}

.gt-cookie-modal__close:hover {
  color: var(--gt-color-text, #1a1a1a);
}

.gt-cookie-modal__body {
  padding: var(--gt-space-md, 1.5rem) var(--gt-space-lg, 2rem);
}

.gt-cookie-modal__category {
  padding: var(--gt-space-sm, 0.75rem) 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.gt-cookie-modal__category:last-child {
  border-bottom: none;
}

.gt-cookie-modal__cat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gt-space-sm, 0.75rem);
}

.gt-cookie-modal__cat-label {
  display: flex;
  align-items: center;
  gap: var(--gt-space-xs, 0.5rem);
  cursor: pointer;
  font-weight: 600;
  color: var(--gt-color-text, #1a1a1a);
  font-size: var(--gt-fs-body, 1rem);
}

/* Hide default checkbox */
.gt-cookie-modal__cat-label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Custom toggle track */
.gt-cookie-modal__toggle {
  display: inline-block;
  width: 2.75rem;
  height: 1.5rem;
  background: rgba(0, 0, 0, 0.15);
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
  border-bottom-right-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
  position: relative;
  flex-shrink: 0;
  transition: background 200ms ease;
}

/* Toggle knob */
.gt-cookie-modal__toggle::after {
  content: '';
  position: absolute;
  top: 0.2rem;
  left: 0.2rem;
  width: 1.1rem;
  height: 1.1rem;
  background: #fff;
  border-radius: 50%;
  transition: transform 200ms ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

/* Checked state */
.gt-cookie-modal__cat-label input:checked + .gt-cookie-modal__toggle {
  background: var(--gt-color-primary, #1a6b3c);
}

.gt-cookie-modal__cat-label input:checked + .gt-cookie-modal__toggle::after {
  transform: translateX(1.25rem);
}

/* Disabled state (necessary) */
.gt-cookie-modal__cat-label input:disabled + .gt-cookie-modal__toggle {
  background: var(--gt-color-primary, #1a6b3c);
  opacity: 0.6;
  cursor: not-allowed;
}

.gt-cookie-modal__cat-badge {
  font-size: var(--gt-fs-label, 0.75rem);
  font-weight: 600;
  color: var(--gt-color-primary, #1a6b3c);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gt-cookie-modal__cat-desc {
  font-size: var(--gt-fs-body-sm, 0.875rem);
  color: var(--gt-color-text-light, #5a5a5a);
  line-height: var(--gt-lh-normal, 1.6);
  margin: var(--gt-space-2xs, 0.25rem) 0 0;
}

.gt-cookie-modal__footer {
  padding: var(--gt-space-md, 1.5rem) var(--gt-space-lg, 2rem);
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  text-align: right;
}

.gt-cookie-modal__save {
  font-family: inherit;
  font-size: var(--gt-fs-body, 1rem);
  font-weight: 600;
  padding: var(--gt-space-xs, 0.5rem) var(--gt-space-lg, 2rem);
  background: var(--gt-color-primary, #1a6b3c);
  color: var(--gt-color-text-on-dark, #ffffff);
  border: none;
  cursor: pointer;
  transition: background-color 200ms ease;
  border-top-left-radius: var(--gt-sig-sm, 0.5rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-sm, 0.5rem);
  border-bottom-left-radius: 0;
}

.gt-cookie-modal__save:hover {
  background: var(--gt-color-primary-dark, #145530);
}


/* ==========================================================================
   COOKIE TABLE (shortcode + widget)
   ========================================================================== */

.gt-cookie-table {
  margin-top: var(--gt-space-lg, 2rem);
}

.gt-cookie-table__category {
  margin-bottom: var(--gt-space-lg, 2rem);
}

.gt-cookie-table__cat-heading {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, clamp(1.05rem, 0.9rem + 0.5vw, 1.25rem));
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-pol-heading, var(--gt-color-primary, #1a6b3c));
  margin: 0 0 var(--gt-space-2xs, 0.25rem);
}

.gt-cookie-table__cat-desc {
  font-size: var(--gt-fs-body-sm, 0.875rem);
  color: var(--gt-color-text-light, #5a5a5a);
  margin: 0 0 var(--gt-space-sm, 0.75rem);
  line-height: var(--gt-lh-normal, 1.6);
}

.gt-cookie-table__wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.gt-cookie-table__table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--gt-fs-body-sm, 0.875rem);
}

.gt-cookie-table__table th {
  background: var(--gt-pol-table-header, var(--gt-color-primary-subtle, #e8f5ec));
  color: var(--gt-color-primary, #1a6b3c);
  font-weight: 600;
  text-align: left;
  padding: var(--gt-space-xs, 0.5rem) var(--gt-space-sm, 0.75rem);
  white-space: nowrap;
}

.gt-cookie-table__table td {
  padding: var(--gt-space-xs, 0.5rem) var(--gt-space-sm, 0.75rem);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  color: var(--gt-pol-text, var(--gt-color-text, #1a1a1a));
  vertical-align: top;
}

.gt-cookie-table__table td code {
  font-size: 0.85em;
  background: rgba(0, 0, 0, 0.04);
  padding: 0.1em 0.35em;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}

.gt-cookie-table__table tr:last-child td {
  border-bottom: none;
}

@media (max-width: 767px) {
  .gt-cookie-table__table thead {
    display: none;
  }
  .gt-cookie-table__table tbody,
  .gt-cookie-table__table tr {
    display: block;
  }
  .gt-cookie-table__table tr {
    margin-bottom: var(--gt-space-sm, 0.75rem);
    padding: var(--gt-space-xs, 0.5rem);
    background: rgba(0, 0, 0, 0.02);
    border-top-left-radius: var(--gt-sig-sm, 0.5rem);
    border-top-right-radius: 0;
    border-bottom-right-radius: var(--gt-sig-sm, 0.5rem);
    border-bottom-left-radius: 0;
  }
  .gt-cookie-table__table td {
    display: flex;
    justify-content: space-between;
    gap: var(--gt-space-xs, 0.5rem);
    padding: var(--gt-space-2xs, 0.25rem) var(--gt-space-xs, 0.5rem);
    border-bottom: none;
  }
  .gt-cookie-table__table td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--gt-color-text, #1a1a1a);
    flex-shrink: 0;
    min-width: 5rem;
  }
}


/* ==========================================================================
   POLICY WIDGETS (Privatlivspolitik + Cookiepolitik)
   Fælles base: .gt-policy — med varianter --privacy og --cookie
   ========================================================================== */

.gt-policy {
  background: var(--gt-pol-bg, transparent);
  color: var(--gt-pol-text, var(--gt-color-text, #1a1a1a));
}

/* --- Padding --- */
.gt-policy--pad-sm { padding: var(--gt-space-sm, 0.75rem); }
.gt-policy--pad-md { padding: var(--gt-space-md, 1.5rem); }
.gt-policy--pad-lg { padding: var(--gt-space-lg, 2rem); }
.gt-policy--pad-xl { padding: var(--gt-space-xl, 3rem); }

/* --- Border --- */
.gt-policy--border-signature {
  border: 1px solid var(--gt-pol-border, var(--gt-color-primary-subtle, #e8f5ec));
  border-top-left-radius: var(--gt-sig-lg, 1.75rem);
  border-top-right-radius: 0;
  border-bottom-right-radius: var(--gt-sig-lg, 1.75rem);
  border-bottom-left-radius: 0;
}

.gt-policy--border-full {
  border: 1px solid var(--gt-pol-border, rgba(0, 0, 0, 0.1));
  border-top-left-radius: var(--gt-sig-sm, 0.5rem);
  border-top-right-radius: var(--gt-sig-sm, 0.5rem);
  border-bottom-right-radius: var(--gt-sig-sm, 0.5rem);
  border-bottom-left-radius: var(--gt-sig-sm, 0.5rem);
}

.gt-policy--border-left {
  border-left: 4px solid var(--gt-pol-border, var(--gt-color-primary, #1a6b3c));
}

/* --- Shadow --- */
.gt-policy--shadow {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* --- Content --- */
.gt-policy__intro,
.gt-policy__consent,
.gt-policy__extra {
  margin-bottom: var(--gt-space-lg, 2rem);
  line-height: var(--gt-lh-normal, 1.6);
}

.gt-policy__intro h3,
.gt-policy__consent h3,
.gt-policy__extra h3 {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, clamp(1.05rem, 0.9rem + 0.5vw, 1.25rem));
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-pol-heading, var(--gt-color-primary, #1a6b3c));
  margin: var(--gt-space-lg, 2rem) 0 var(--gt-space-xs, 0.5rem);
}

.gt-policy__intro p,
.gt-policy__consent p,
.gt-policy__extra p {
  margin: 0 0 var(--gt-space-sm, 0.75rem);
}

/* --- Sections (Privacy Policy) --- */
.gt-policy__section {
  margin-bottom: var(--gt-space-lg, 2rem);
}

.gt-policy__section-heading {
  font-family: var(--gt-font-heading, 'DM Sans', sans-serif);
  font-size: var(--gt-fs-h4, clamp(1.05rem, 0.9rem + 0.5vw, 1.25rem));
  font-weight: var(--gt-fw-bold, 700);
  color: var(--gt-pol-heading, var(--gt-color-primary, #1a6b3c));
  margin: 0 0 var(--gt-space-xs, 0.5rem);
}

.gt-policy__section p {
  margin: 0 0 var(--gt-space-sm, 0.75rem);
  line-height: var(--gt-lh-normal, 1.6);
}

.gt-policy__section ul {
  margin: 0 0 var(--gt-space-sm, 0.75rem);
  padding-left: 1.25em;
  line-height: var(--gt-lh-normal, 1.6);
}

.gt-policy__section li {
  margin-bottom: var(--gt-space-2xs, 0.25rem);
}

.gt-policy__section a {
  color: var(--gt-color-primary, #1a6b3c);
  text-decoration: underline;
}

.gt-policy__section a:hover {
  color: var(--gt-color-primary-dark, #145530);
}

/* --- Link / Updated / CTA --- */
.gt-policy__link {
  margin-top: var(--gt-space-lg, 2rem);
}

.gt-policy__link a {
  color: var(--gt-color-primary, #1a6b3c);
  text-decoration: underline;
}

.gt-policy__updated {
  margin-top: var(--gt-space-lg, 2rem);
  font-size: var(--gt-fs-body-sm, 0.875rem);
  color: var(--gt-color-text-light, #5a5a5a);
  font-style: italic;
}

.gt-policy__cta {
  display: inline-block;
  margin-top: var(--gt-space-md, 1.5rem);
}
