
/* ============================================================
   GLOBAL SAFARI OVERFLOW FIX
   ============================================================ */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

.site.grid-container,
.site-content,
#content,
#page,
.grid-container {
  max-width: 100%;
  background: var(--gf-cream) !important;
}

.site-content,
#content {
  overflow-x: hidden;
}
/*
Theme Name:   GodtFirma Child
Theme URI:    https://godtfirma.dk
Description:  GeneratePress Premium Child Theme — GodtFirma virksomhedsportal med NGO-støtte
Author:       GodtFirma
Template:     generatepress
Version:      1.0.0
Text Domain:  godtfirma
*/

/* ============================================================
   CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
  --gf-ink:          #1a1a18;
  --gf-ink2:         #3d3d38;
  --gf-muted:        #7a7a72;
  --gf-cream:        #f5f2eb;
  --gf-cream2:       #edeae1;
  --gf-white:        #fefefe;
  --gf-green:        #1e5c3a;
  --gf-green-light:  #d4ead9;
  --gf-green-mid:    #3a8a58;
  --gf-amber:        #c8860a;
  --gf-amber-light:  #fdf0d5;
  --gf-coral:        #c94f30;
  --gf-border:       rgba(26,26,24,0.12);
  --gf-radius:       12px;
  --gf-radius-lg:    20px;
  --gf-shadow:       0 4px 24px rgba(0,0,0,0.06);
  --gf-shadow-hover: 0 8px 32px rgba(0,0,0,0.10);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
  font-family: 'DM Sans', sans-serif !important;
  background: var(--gf-cream) !important;
  color: var(--gf-ink) !important;
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', serif !important;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--gf-ink);
}

a { color: var(--gf-green); }
a:hover { color: #163f28; }

img { max-width: 100%; height: auto; display: block; }

/* ============================================================
   GENERATEPRESS OVERRIDES — KUN forsiden
   ============================================================ */
.gf-frontpage .site-content { padding: 0 !important; }
.gf-frontpage .content-area { width: 100% !important; float: none !important; }
.gf-frontpage .inside-article { padding: 0 !important; }
.gf-frontpage .entry-content { margin: 0 !important; }
.gf-frontpage .page-hero { display: none; }

/* Globalt: sikr fuld bredde */
.content-area { width: 100% !important; float: none !important; }

/* GeneratePress container override */
.container { max-width: 1200px; }

/* ============================================================
   NAVIGATION
   ============================================================ */
.site-header,
#site-header {
  position: fixed !important;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: rgba(245,242,235,0.94) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--gf-border) !important;
  box-shadow: none !important;
  transition: background 0.3s;
}

.site-header.gf-header--scrolled {
  background: rgba(245,242,235,0.98) !important;
}

.inside-header {
  padding: 0 40px !important;
  height: 66px;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  max-width: 100% !important;
}

/* Logo */
.site-branding {
  display: flex;
  align-items: center;
}

.site-title,
.site-title a {
  font-family: 'Playfair Display', serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--gf-green) !important;
  text-decoration: none !important;
  letter-spacing: -0.5px !important;
}

.site-title a span.gf-logo-light {
  color: var(--gf-ink);
}

/* Nav links */
.main-navigation .nav-menu > li > a {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--gf-ink2) !important;
  padding: 8px 16px !important;
  transition: color 0.2s !important;
  text-decoration: none !important;
}

.main-navigation .nav-menu > li > a:hover {
  color: var(--gf-green) !important;
  background: none !important;
}

/* CTA knap i nav */
.main-navigation .nav-menu > li.menu-item-cta > a {
  background: var(--gf-green) !important;
  color: #fff !important;
  border-radius: 100px !important;
  padding: 8px 22px !important;
  font-weight: 500 !important;
  transition: background 0.2s !important;
}

.main-navigation .nav-menu > li.menu-item-cta > a:hover {
  background: #163f28 !important;
  color: #fff !important;
}

/* Mobil menu */
.menu-toggle {
  background: none !important;
  border: 1px solid var(--gf-border) !important;
  border-radius: 8px !important;
  color: var(--gf-ink) !important;
  padding: 6px 12px !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  overflow: hidden !important;
  position: relative !important;
  z-index: 1 !important;
}

.menu-toggle:focus,
.menu-toggle:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(30,92,58,0.25) !important;
}

/* ============================================================
   KNAPPER
   ============================================================ */
.gf-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--gf-green);
  color: #fff !important;
  padding: 14px 28px;
  border-radius: 100px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.15s;
  border: none;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
}

.gf-btn-primary:hover {
  background: #163f28;
  transform: translateY(-1px);
  color: #fff !important;
}

.gf-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--gf-ink2) !important;
  font-size: 15px;
  font-weight: 400;
  text-decoration: none !important;
  transition: color 0.2s;
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
}

.gf-btn-secondary:hover { color: var(--gf-green) !important; }

.gf-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid var(--gf-green);
  color: var(--gf-green) !important;
  padding: 12px 24px;
  border-radius: 100px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s;
  font-family: 'DM Sans', sans-serif;
}

.gf-btn-outline:hover {
  background: var(--gf-green);
  color: #fff !important;
}

/* ============================================================
   FÆLLES SEKTION LAYOUT
   ============================================================ */
.gf-section {
  padding: 72px 40px;
}

.gf-section-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.gf-section-inner--wide {
  max-width: 1200px;
  margin: 0 auto;
}

.gf-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gf-green);
  margin-bottom: 12px;
  font-family: 'DM Sans', sans-serif;
}

.gf-section-title {
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--gf-ink);
}

.gf-section-intro {
  font-size: 17px;
  color: var(--gf-ink2);
  font-weight: 300;
  max-width: 560px;
  margin-bottom: 56px;
  line-height: 1.75;
}

/* ============================================================
   HERO — FORSIDE
   ============================================================ */

/* GeneratePress sætter padding-top på body via JS svarende til header-højden.
   Vi nulstiller det og håndterer header-offset selv via hero-padding. */
body.gf-frontpage {
  padding-top: 0 !important;
}

.gf-hero {
  min-height: 0;
  height: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  padding: 110px 40px 0;
  gap: 64px;
  position: relative;
  overflow: hidden;
  margin-top: 0;
}

.gf-hero::before {
  content: '';
  position: absolute;
  top: -120px; right: -80px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(30,92,58,0.07) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}

.gf-hero > * { position: relative; z-index: 1; }

.gf-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--gf-green-light);
  color: var(--gf-green);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 16px;
  border-radius: 100px;
  margin-bottom: 24px;
  font-family: 'DM Sans', sans-serif;
}

.gf-hero-eyebrow::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--gf-green);
  border-radius: 50%;
  flex-shrink: 0;
}

.gf-hero h1 {
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 700;
  letter-spacing: -2px;
  margin-bottom: 24px;
  line-height: 1.08;
}

.gf-hero h1 em {
  font-style: italic;
  color: var(--gf-green);
}

.gf-hero-desc {
  font-size: 18px;
  color: var(--gf-ink2);
  line-height: 1.75;
  max-width: 480px;
  margin-bottom: 40px;
  font-weight: 300;
}

.gf-hero-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Topliste preview-kort i hero */
.gf-preview-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: var(--gf-radius-lg);
  padding: 28px;
  box-shadow: var(--gf-shadow);
  position: relative;
}

.gf-preview-card-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gf-muted);
  margin-bottom: 20px;
  font-family: 'DM Sans', sans-serif;
}

.gf-preview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--gf-border);
}

.gf-preview-footer-stat { text-align: center; }

.gf-preview-footer-num {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--gf-green);
  display: block;
  line-height: 1.2;
}

.gf-preview-footer-label {
  font-size: 11px;
  color: var(--gf-muted);
}

/* Topliste rækker */
.gf-tlr {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--gf-border);
}

.gf-tlr:last-of-type { border-bottom: none; }

.gf-tlr-rank {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  min-width: 24px;
  text-align: center;
  color: var(--gf-cream2);
}

.gf-tlr-rank.r1 { color: var(--gf-amber); }
.gf-tlr-rank.r2 { color: var(--gf-muted); }
.gf-tlr-rank.r3 { color: #8b6b3d; }

.gf-tlr-badge {
  width: 36px; height: 36px;
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px;
  flex-shrink: 0;
}

.gf-tlr-info { flex: 1; min-width: 0; }

.gf-tlr-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--gf-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gf-tlr-sub { font-size: 11px; color: var(--gf-muted); }

.gf-tlr-bar { flex: 1; }

.gf-tlr-bar-bg {
  background: var(--gf-cream2);
  border-radius: 4px;
  height: 5px;
  overflow: hidden;
}

.gf-tlr-bar-fill {
  height: 100%;
  border-radius: 4px;
  background: var(--gf-green-mid);
  transform-origin: left;
  transition: transform 1s ease;
}

.gf-tlr-amount {
  font-size: 12px;
  font-weight: 500;
  color: var(--gf-green);
  min-width: 76px;
  text-align: right;
  white-space: nowrap;
}

/* ============================================================
   STEPS — "Sådan virker det"
   ============================================================ */
.gf-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
}

.gf-step {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  padding: 32px 26px 28px;
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
}

.gf-step:first-child { border-radius: 16px 0 0 16px; }
.gf-step:last-child  { border-radius: 0 16px 16px 0; }

.gf-step:hover {
  transform: translateY(-5px);
  box-shadow: var(--gf-shadow-hover);
  z-index: 2;
}

.gf-step-num {
  font-family: 'Playfair Display', serif;
  font-size: 52px;
  font-weight: 700;
  color: var(--gf-green-light);
  line-height: 1;
  margin-bottom: 18px;
}

.gf-step-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--gf-green-light);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  margin-bottom: 16px;
}

.gf-step-title {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: var(--gf-ink);
  margin-bottom: 10px;
}

.gf-step-desc {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--gf-muted);
  line-height: 1.65;
}

/* ============================================================
   GENNEMSIGTIGHED — grøn sektion
   ============================================================ */
.gf-transp-section {
  background: var(--gf-green);
  padding: 72px 40px;
  position: relative;
  overflow: hidden;
  max-width: 100vw;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.gf-transp-section * {
  max-width: 100%;
  box-sizing: border-box;
}

.gf-transp-section::before {
  content: '';
  position: absolute;
  top: -40%; right: -8%;
  width: 40%; height: 560px;
  max-width: 560px;
  background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 65%);
  pointer-events: none;
  overflow: hidden;
}

.gf-transp-inner {
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 80px;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}

.gf-transp-section .gf-eyebrow   { color: var(--gf-green-light); }
.gf-transp-section .gf-section-title { color: #fff; }
.gf-transp-section .gf-section-intro {
  color: rgba(255,255,255,0.72);
  margin-bottom: 32px;
}

.gf-transp-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.gf-transp-stat {
  background: rgba(255,255,255,0.09);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  padding: 22px;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.gf-transp-stat-num {
  font-family: 'Playfair Display', serif;
  font-size: 34px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  margin-bottom: 6px;
  display: block;
  word-break: break-word;
  overflow-wrap: break-word;
}

.gf-transp-stat-label {
  font-size: 13px;
  color: rgba(255,255,255,0.6);
  font-family: 'DM Sans', sans-serif;
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Graf-wrapper i grøn sektion */
.gf-chart-wrap {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 20px;
  padding: 28px;
}

.gf-chart-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 20px;
  font-family: 'DM Sans', sans-serif;
}

/* ============================================================
   VIRKSOMHEDSKORT — grid
   ============================================================ */
.gf-companies-section {
  padding: 72px 40px;
  background: var(--gf-cream2);
}

.gf-companies-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 16px;
  margin-top: 40px;
}

.gf-company-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  padding: 22px;
  transition: transform 0.2s, box-shadow 0.2s;
  text-decoration: none !important;
  display: block;
  color: inherit !important;
}

.gf-company-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--gf-shadow-hover);
}

.gf-company-card-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.gf-company-logo {
  width: 44px; height: 44px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  font-weight: 700;
  flex-shrink: 0;
  overflow: hidden;
  font-family: 'DM Sans', sans-serif;
}

.gf-company-logo img {
  width: 100%; height: 100%;
  object-fit: cover;
}

.gf-company-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--gf-ink);
  margin-bottom: 2px;
  font-family: 'DM Sans', sans-serif;
}

.gf-company-branch {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
}

.gf-ngo-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--gf-green-light);
  border-radius: 100px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--gf-green);
  font-family: 'DM Sans', sans-serif;
}

.gf-ngo-badge img {
  width: 16px; height: 16px;
  border-radius: 3px;
  object-fit: cover;
}

.gf-ngo-badge-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gf-green-mid);
  flex-shrink: 0;
}

.gf-company-since {
  font-size: 11px;
  color: var(--gf-muted);
  margin-top: 10px;
  font-family: 'DM Sans', sans-serif;
}

/* ============================================================
   BLOG KORT — forsiden (front-page.php shortcode)
   ============================================================ */
.gf-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}

.gf-blog-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
  text-decoration: none !important;
  display: block;
  color: inherit !important;
}

.gf-blog-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--gf-shadow-hover);
}

.gf-blog-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}

.gf-blog-thumb-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  background: var(--gf-green-light);
}

.gf-blog-body { padding: 20px; }

.gf-blog-tag {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gf-green);
  margin-bottom: 8px;
  font-family: 'DM Sans', sans-serif;
}

.gf-blog-title {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--gf-ink);
  margin-bottom: 10px;
}

.gf-blog-card:not(.gf-blog-card--featured) .gf-blog-title {
  font-size: 15px;
}

.gf-blog-meta {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
}

/* ============================================================
   VIRKSOMHEDSPROFIL-SIDE
   ============================================================ */
.gf-profile-header {
  background: var(--gf-white);
  border-bottom: 1px solid var(--gf-border);
  padding: 100px 40px 0;
}

.gf-profile-header-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.gf-profile-cover {
  height: 220px;
  background: linear-gradient(135deg, var(--gf-green-light) 0%, var(--gf-cream2) 100%);
  border-radius: 16px 16px 0 0;
  position: relative;
  overflow: hidden;
}

.gf-profile-cover img {
  width: 100%; height: 100%;
  object-fit: cover;
}

.gf-profile-meta-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 0 28px;
  position: relative;
}

.gf-profile-logo-wrap {
  position: relative;
  margin-top: -40px;
}

.gf-profile-logo {
  width: 88px; height: 88px;
  border-radius: 16px;
  border: 4px solid var(--gf-white);
  background: var(--gf-cream2);
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
  font-weight: 700;
  font-family: 'DM Sans', sans-serif;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.10);
}

.gf-profile-logo img { width: 100%; height: 100%; object-fit: cover; }

.gf-profile-info { flex: 1; padding: 0 24px; }

.gf-profile-name {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--gf-ink);
  margin-bottom: 4px;
}

.gf-profile-branch {
  font-size: 14px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
}

.gf-profile-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* Profil tabs */
.gf-profile-tabs {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--gf-border);
  margin-top: 16px;
}

.gf-profile-tab {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--gf-muted);
  padding: 14px 20px;
  border-bottom: 2px solid transparent;
  text-decoration: none;
  transition: color 0.2s, border-color 0.2s;
}

.gf-profile-tab:hover,
.gf-profile-tab.active {
  color: var(--gf-green);
  border-bottom-color: var(--gf-green);
}

/* Profil body */
.gf-profile-body {
  padding: 48px 40px 80px;
}

.gf-profile-body-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  align-items: start;
}

.gf-profile-desc {
  font-size: 16px;
  color: var(--gf-ink2);
  line-height: 1.8;
  margin-bottom: 32px;
  font-family: 'DM Sans', sans-serif;
}

/* Sidebar-kort */
.gf-profile-sidebar-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  padding: 22px;
  margin-bottom: 16px;
}

.gf-profile-sidebar-card h4 {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gf-muted);
  margin-bottom: 14px;
}

.gf-profile-contact-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--gf-border);
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
}

.gf-profile-contact-row:last-child { border-bottom: none; }

.gf-profile-contact-icon {
  width: 30px; height: 30px;
  border-radius: 8px;
  background: var(--gf-cream2);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

.gf-profile-contact-val {
  color: var(--gf-ink);
  flex: 1;
  word-break: break-all;
}

.gf-profile-contact-val a {
  color: var(--gf-green);
  text-decoration: none;
}

/* NGO badge på profil */
.gf-profile-ngo-card {
  background: var(--gf-green-light);
  border: 1px solid rgba(30,92,58,0.15);
  border-radius: 16px;
  padding: 22px;
  margin-bottom: 16px;
}

.gf-profile-ngo-card h4 {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gf-green);
  margin-bottom: 14px;
}

.gf-profile-ngo-inner {
  display: flex;
  align-items: center;
  gap: 12px;
}

.gf-profile-ngo-logo {
  width: 48px; height: 48px;
  border-radius: 10px;
  background: var(--gf-white);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  overflow: hidden;
}

.gf-profile-ngo-logo img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }

.gf-profile-ngo-name {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--gf-green);
  margin-bottom: 2px;
}

.gf-profile-ngo-since {
  font-size: 12px;
  color: var(--gf-green-mid);
  font-family: 'DM Sans', sans-serif;
}

/* ============================================================
   TOPLISTE-SIDE
   ============================================================ */
.gf-topliste-page {
  padding: 100px 40px 80px;
}

.gf-topliste-page-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.gf-topliste-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 48px;
  gap: 24px;
  flex-wrap: wrap;
}

.gf-year-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.gf-year-tab {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--gf-muted);
  padding: 8px 18px;
  border: 1px solid var(--gf-border);
  border-radius: 100px;
  text-decoration: none;
  transition: all 0.2s;
  background: var(--gf-white);
}

.gf-year-tab:hover,
.gf-year-tab.active {
  background: var(--gf-green);
  color: #fff;
  border-color: var(--gf-green);
}

.gf-topliste-full-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

.gf-topliste-table {
  width: 100%;
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  overflow: hidden;
}

.gf-topliste-table-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--gf-border);
  transition: background 0.15s;
}

.gf-topliste-table-row:last-child { border-bottom: none; }
.gf-topliste-table-row:hover { background: var(--gf-cream); }
a.gf-topliste-table-row:hover { background: var(--gf-cream); cursor: pointer; }

.gf-topliste-table-rank {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 700;
  min-width: 32px;
  text-align: center;
  color: var(--gf-cream2);
}

.gf-topliste-table-rank.r1 { color: var(--gf-amber); }
.gf-topliste-table-rank.r2 { color: var(--gf-muted); }
.gf-topliste-table-rank.r3 { color: #8b6b3d; }

.gf-topliste-table-logo {
  width: 42px; height: 42px;
  border-radius: 10px;
  background: var(--gf-cream2);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
  overflow: hidden;
}

.gf-topliste-table-logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }

.gf-topliste-table-info { flex: 1; min-width: 0; }

.gf-topliste-table-name {
  font-size: 15px;
  font-weight: 500;
  color: var(--gf-ink);
  margin-bottom: 2px;
  font-family: 'DM Sans', sans-serif;
}

.gf-topliste-table-count {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
}

.gf-topliste-table-amount {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--gf-green);
  white-space: nowrap;
}

/* ============================================================
   NGO-KATALOG
   ============================================================ */
.gf-ngo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 40px;
}

.gf-ngo-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  padding: 28px;
  transition: transform 0.2s, box-shadow 0.2s;
  text-decoration: none !important;
  display: block;
  color: inherit !important;
}

.gf-ngo-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--gf-shadow-hover);
}

.gf-ngo-card-logo {
  width: 60px; height: 60px;
  border-radius: 14px;
  background: var(--gf-cream2);
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
  margin-bottom: 16px;
  overflow: hidden;
}

.gf-ngo-card-logo img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }

.gf-ngo-card-name {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--gf-ink);
  margin-bottom: 8px;
}

.gf-ngo-card-desc {
  font-size: 14px;
  color: var(--gf-muted);
  line-height: 1.65;
  margin-bottom: 16px;
  font-family: 'DM Sans', sans-serif;
}

.gf-ngo-card-stats {
  display: flex;
  gap: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--gf-border);
}

.gf-ngo-card-stat { text-align: center; flex: 1; }

.gf-ngo-card-stat-num {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--gf-green);
  display: block;
}

.gf-ngo-card-stat-label {
  font-size: 11px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
}

/* ============================================================
   OPRET PROFIL — FLOW
   ============================================================ */
.gf-signup-wrap {
  padding: 120px 40px 60px;
  min-height: 100vh;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.gf-signup-inner {
  width: 100%;
  max-width: 680px;
}

.gf-signup-progress {
  display: flex;
  gap: 8px;
  margin-bottom: 48px;
}

.gf-signup-step-dot {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--gf-border);
  transition: background 0.3s;
}

.gf-signup-step-dot.done,
.gf-signup-step-dot.active {
  background: var(--gf-green);
}

.gf-signup-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 20px;
  padding: 40px;
  box-shadow: var(--gf-shadow);
}

.gf-signup-step-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gf-green);
  margin-bottom: 8px;
  font-family: 'DM Sans', sans-serif;
}

.gf-signup-title {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--gf-ink);
  margin-bottom: 8px;
}

.gf-signup-desc {
  font-size: 15px;
  color: var(--gf-muted);
  margin-bottom: 32px;
  font-family: 'DM Sans', sans-serif;
}

/* Form felter */
.gf-form-group {
  margin-bottom: 20px;
}

.gf-form-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: var(--gf-ink2);
  margin-bottom: 6px;
  font-family: 'DM Sans', sans-serif;
}

.gf-form-input,
.gf-form-textarea,
.gf-form-select {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--gf-border);
  border-radius: var(--gf-radius);
  font-size: 15px;
  font-family: 'DM Sans', sans-serif;
  color: var(--gf-ink);
  background: var(--gf-cream);
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  appearance: none;
}

.gf-form-input:focus,
.gf-form-textarea:focus,
.gf-form-select:focus {
  border-color: var(--gf-green);
  box-shadow: 0 0 0 3px rgba(30,92,58,0.10);
  background: var(--gf-white);
}

.gf-form-textarea { resize: vertical; min-height: 110px; }

.gf-form-hint {
  font-size: 12px;
  color: var(--gf-muted);
  margin-top: 5px;
  font-family: 'DM Sans', sans-serif;
}

.gf-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* NGO vælger */
.gf-ngo-picker {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  margin-top: 8px;
}

.gf-ngo-picker-item {
  border: 2px solid var(--gf-border);
  border-radius: 14px;
  padding: 16px 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s;
  background: var(--gf-cream);
}

.gf-ngo-picker-item:hover {
  border-color: var(--gf-green);
  background: var(--gf-green-light);
}

.gf-ngo-picker-item.selected {
  border-color: var(--gf-green);
  background: var(--gf-green-light);
  box-shadow: 0 0 0 3px rgba(30,92,58,0.12);
}

.gf-ngo-picker-emoji { font-size: 28px; margin-bottom: 8px; }

.gf-ngo-picker-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--gf-ink);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.3;
}

/* Signup navigation */
.gf-signup-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--gf-border);
}

/* ============================================================
   PAGE HERO — undersider
   ============================================================ */
.gf-page-hero {
  background: var(--gf-green);
  border-bottom: none;
  padding: 120px 40px 60px;
}

.gf-page-hero .gf-eyebrow {
  color: rgba(255,255,255,0.65);
}

.gf-page-hero .gf-section-title {
  color: #fff;
}

.gf-page-hero .gf-section-intro {
  color: rgba(255,255,255,0.8);
}

.gf-page-hero-inner {
  max-width: 1100px;
  margin: 0 auto;
}

/* ============================================================
   CTA SEKTION
   ============================================================ */
.gf-cta-section {
  padding: 72px 40px;
  text-align: center;
}

.gf-cta-inner { max-width: 600px; margin: 0 auto; }

.gf-cta-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 40px;
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer,
#site-footer {
  background: var(--gf-ink) !important;
  padding: 0 !important;
  color: rgba(255,255,255,0.65) !important;
}

.gf-footer-wrap {
  padding: 64px 40px 32px;
}

.gf-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.gf-footer-brand-name {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--gf-green-light) !important;
  text-decoration: none !important;
  display: block;
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}

.gf-footer-brand p {
  font-size: 13px;
  line-height: 1.75;
  max-width: 240px;
  color: rgba(255,255,255,0.55);
  font-family: 'DM Sans', sans-serif;
}

.gf-footer-5pct {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(30,92,58,0.35);
  border-radius: 100px;
  padding: 5px 14px;
  font-size: 12px;
  color: var(--gf-green-light);
  margin-top: 18px;
  font-family: 'DM Sans', sans-serif;
}

.gf-footer-col h4 {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  margin-bottom: 18px;
}

.gf-footer-col ul { list-style: none; margin: 0; padding: 0; }
.gf-footer-col li { margin-bottom: 10px; }

.gf-footer-col a {
  font-size: 13px;
  color: rgba(255,255,255,0.55) !important;
  text-decoration: none !important;
  transition: color 0.2s;
  font-family: 'DM Sans', sans-serif;
}

.gf-footer-col a:hover { color: #fff !important; }

.gf-footer-bottom {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  color: rgba(255,255,255,0.30);
  font-family: 'DM Sans', sans-serif;
}

/* ============================================================
   ANIMATIONER
   ============================================================ */
@keyframes gfFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes gfBarGrow {
  from { width: 0 !important; }
  to   { }
}

.gf-animate {
  opacity: 0;
  transform: translateY(18px);
}

.gf-animate.in-view {
  animation: gfFadeUp 0.65s ease both;
}

.gf-animate.delay-1 { animation-delay: 0.10s; }
.gf-animate.delay-2 { animation-delay: 0.20s; }
.gf-animate.delay-3 { animation-delay: 0.30s; }
.gf-animate.delay-4 { animation-delay: 0.40s; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .gf-steps-grid { grid-template-columns: 1fr 1fr; }
  .gf-step:first-child { border-radius: 16px 0 0 0; }
  .gf-step:last-child  { border-radius: 0 0 16px 0; }
  .gf-transp-inner { grid-template-columns: 1fr; gap: 48px; }
  .gf-transp-stats { width: 100%; max-width: 100%; overflow: hidden; box-sizing: border-box; }
  .gf-transp-stat { min-width: 0; box-sizing: border-box; }
  .gf-blog-grid { grid-template-columns: 1fr 1fr; }
  .gf-topliste-full-grid { grid-template-columns: 1fr; }
  .gf-footer-inner { grid-template-columns: 1fr 1fr; gap: 32px; }
  .gf-profile-body-inner { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  /* Forhindre intern scrollbar fra alle sektioner */
  .gf-hero,
  .gf-section,
  .gf-transp-section,
  .gf-companies-section,
  .gf-cta-section,
  .gf-upgrade-section,
  .gf-page-hero,
  .gf-preview-card,
  .gf-steps-grid,
  .gf-upgrade-grid,
  .gf-upgrade-kort {
    overflow: hidden;
  }

  .gf-hero {
    grid-template-columns: 1fr;
    padding: 120px 24px 32px;
    min-height: 0;
    height: auto;
  }
  .gf-hero-right { display: none; }
  .gf-section { padding: 40px 24px; }
  .gf-transp-section { padding: 40px 24px; }
  .gf-companies-section { padding: 40px 24px; }
  .gf-cta-section { padding: 40px 24px; }
  .gf-section-intro { margin-bottom: 32px; }
  .gf-topliste-page { padding: 100px 24px 64px; }
  .gf-page-hero { padding: 110px 24px 48px; }
  .gf-signup-wrap { padding: 110px 24px 64px; }
  .gf-profile-header { padding: 90px 24px 0; }
  .gf-profile-body { padding: 32px 24px 64px; }
  .gf-blog-grid { grid-template-columns: 1fr; }
  .gf-steps-grid { grid-template-columns: 1fr; }
  .gf-step { border-radius: 0 !important; }
  .gf-step:first-child { border-radius: 16px 16px 0 0 !important; }
  .gf-step:last-child  { border-radius: 0 0 16px 16px !important; }
  .gf-footer-inner { grid-template-columns: 1fr; }
  .gf-footer-wrap { padding: 48px 24px 24px; }
  .inside-header { padding: 0 24px !important; }
  .gf-form-row { grid-template-columns: 1fr; }
  .gf-signup-card { padding: 28px 22px; }
  .gf-profile-meta-bar { flex-direction: column; align-items: flex-start; gap: 16px; }
}
/* Fix: fjern GeneratePress container-padding på forsiden */
.gf-frontpage .site-content,
.gf-frontpage #content,
.gf-frontpage .hentry,
.gf-frontpage .entry-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

.gf-frontpage .site-content > .grid-container {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Fix: sektioner i kolonne, ikke grid */
.gf-frontpage .entry-content,
.gf-frontpage .site-content {
    display: block !important;
}

/* Sektioner skal flyde korrekt — men .gf-hero bruger display:grid og må IKKE overskrives globalt */
.gf-section,
.gf-transp-section,
.gf-companies-section,
.gf-cta-section {
    display: block !important;
    width: 100% !important;
    float: none !important;
    clear: both !important;
    position: relative !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
}

.gf-hero {
    width: 100% !important;
    float: none !important;
    clear: both !important;
    position: relative !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
    /* display:grid bevares — ikke overskrevet her */
}

/* Fix: fjern GeneratePress grid på .site */
.gf-frontpage #page {
    display: block !important;
}

.gf-frontpage .hfeed {
    display: block !important;
}
/* Fix: undersider — sektioner i kolonne */
.gf-page-hero,
.gf-page-hero + div,
.gf-page-hero + div + section,
.gf-page-hero + section {
    display: block !important;
    width: 100% !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
}

/* Fix: GeneratePress grid på alle sider, ikke kun forsiden */
.site-content,
#content,
.hentry,
.entry-content {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

#page {
    display: block !important;
}
/* Fix: NGO hero baggrund */
.gf-page-hero {
    background: var(--gf-green) !important;
    color: #fff !important;
}

.gf-page-hero * {
    color: inherit;
}

.gf-page-hero h1,
.gf-page-hero .gf-section-title {
    color: #fff !important;
}

.gf-page-hero .gf-section-intro {
    color: rgba(255,255,255,0.8) !important;
}

.gf-page-hero .gf-eyebrow {
    color: var(--gf-green-light) !important;
}
/* Fix: afstand mellem hero-actions og preview-kort */
.gf-hero-actions {
    margin-bottom: 40px;
}
/* Mobil: vis nøgletal i stedet for topliste-kort */
.gf-hero-mobile-stats {
    display: none;
}

@media (max-width: 768px) {
    .gf-hero-mobile-stats {
        display: flex;
        gap: 24px;
        margin-top: 24px;
        flex-wrap: wrap;
    }

    .gf-hero-mobile-stat {
        text-align: center;
        flex: 1;
        min-width: 80px;
    }

    .gf-hero-mobile-stat-num {
        font-family: 'Playfair Display', serif;
        font-size: 28px;
        font-weight: 700;
        color: var(--gf-green);
        display: block;
        line-height: 1.2;
    }

    .gf-hero-mobile-stat-label {
        font-size: 11px;
        color: var(--gf-muted);
        font-family: 'DM Sans', sans-serif;
    }
}
.site-branding .custom-logo-link {
    display: inline-block !important;
}

.site-branding .custom-logo-link img {
    display: block !important;
    max-height: 50px !important;
    width: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.main-title a {
    text-decoration: none !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 34px !important;
    font-weight: 700 !important;
    background: linear-gradient(to right, #1e5c3a 0%, #1e5c3a 50%, #3a8a58 50%, #3a8a58 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
/* ============================================================
   MOBIL RESPONSIVE — GRID KLASSER
   ============================================================ */

/* Generiske grid klasser med mobil breakpoints */
.gf-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.gf-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.gf-grid-kontakt {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 64px;
  align-items: start;
}

/* Seneste virksomheder — 3 kolonner desktop, 2 tablet, 1 mobil */
.gf-virksomhed-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* Topliste grid */
.gf-topliste-full-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

.gf-topliste-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 16px;
}

/* ============================================================
   TABLET (max 1024px)
   ============================================================ */
@media (max-width: 1024px) {
  .gf-grid-2 { gap: 48px; }
  .gf-grid-3 { grid-template-columns: 1fr 1fr; gap: 24px; }
  .gf-grid-kontakt { gap: 40px; }
  .gf-virksomhed-grid { grid-template-columns: 1fr 1fr; }
  .gf-topliste-full-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   MOBIL (max 768px)
   ============================================================ */
@media (max-width: 768px) {
  /* Generelle grid overrides */
  .gf-grid-2 {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  .gf-grid-3 {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .gf-grid-kontakt {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  .gf-virksomhed-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .gf-topliste-full-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .gf-topliste-header {
    flex-direction: column;
    align-items: flex-start;
  }

  /* Topliste side padding */
  .gf-topliste-page {
    padding: 40px 20px 64px !important;
  }

  /* Section padding */
  .gf-section {
    padding: 40px 20px !important;
  }

  .gf-page-hero {
    padding: 100px 20px 48px !important;
  }

  /* Footer */
  .gf-footer-wrap {
    padding: 48px 20px 24px !important;
    overflow: hidden;
  }

  .gf-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .gf-footer-bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
    padding: 16px 0 !important;
  }

  /* Kontakt formular grid */
  .gf-kontakt-navn-email {
    grid-template-columns: 1fr !important;
  }

  /* Topliste tabel */
  .gf-topliste-table-row {
    padding: 14px 16px !important;
  }

  .gf-topliste-table-amount {
    font-size: 13px !important;
  }

  /* Om konceptet target-typer grid */
  .gf-om-typer {
    grid-template-columns: 1fr !important;
  }

  /* Year tabs */
  .gf-year-tabs {
    flex-wrap: wrap;
    gap: 6px !important;
  }
}

/* Sikr ingen uønsket scrollbar på forsiden ved sideload */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}

/* Fjern GeneratePress body-padding der kan skabe vertikal scrollbar */
.gf-frontpage body,
body.gf-frontpage {
  padding-top: 0 !important;
}

@media (max-width: 768px) {
  .gf-section-inner,
  .gf-section-inner--wide,
  .gf-topliste-page-inner,
  .gf-page-hero-inner {
    max-width: 100% !important;
  }
}

/* 4-kolonne grid — fire trin på om-konceptet */
@media (max-width: 1024px) {
  .gf-grid-4 { grid-template-columns: 1fr 1fr !important; gap: 20px !important; }
}
@media (max-width: 768px) {
  .gf-grid-4 { grid-template-columns: 1fr !important; gap: 16px !important; }
}

/* ============================================================
   NGO KATALOG GRID
   ============================================================ */
.gf-ngo-katalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 1024px) {
  .gf-ngo-katalog-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .gf-ngo-katalog-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   BLOG MOBIL FIX
   ============================================================ */
@media (max-width: 768px) {
  /* Fremhævet indlæg — stack vertikalt */
  .gf-blog-featured {
    grid-template-columns: 1fr !important;
  }
  .gf-blog-featured .gf-blog-featured-img {
    min-height: 220px !important;
    max-height: 260px !important;
  }

  /* Blog grid — 1 kolonne */
  .gf-blog-grid-inner {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   BLOG PREVIEW — shortcode
   ============================================================ */
.gf-blog-preview-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Fremhævet kort — fylder hele bredden */
.gf-blog-card--featured {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  min-height: 340px;
}

.gf-blog-card--featured .gf-blog-card-img {
  overflow: hidden;
}

.gf-blog-card--featured .gf-blog-card-img img,
.gf-blog-card--featured .gf-blog-card-img .gf-blog-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gf-blog-card--featured .gf-blog-body {
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.gf-blog-card--featured .gf-blog-title {
  font-size: clamp(18px, 2vw, 26px) !important;
  margin-bottom: 12px;
}

/* Normalt kort */
.gf-blog-card {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, box-shadow 0.2s;
}

.gf-blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}

.gf-blog-card .gf-blog-card-img {
  aspect-ratio: 16/9;
  overflow: hidden;
  flex-shrink: 0;
}

.gf-blog-card .gf-blog-card-img img,
.gf-blog-card .gf-blog-card-img .gf-blog-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gf-blog-card .gf-blog-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.gf-blog-tag {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gf-green);
  font-family: 'DM Sans', sans-serif;
  margin-bottom: 8px;
}

.gf-blog-title {
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--gf-ink);
  line-height: 1.3;
  margin-bottom: 10px;
}

.gf-blog-excerpt {
  font-size: 14px;
  color: var(--gf-ink2);
  line-height: 1.7;
  font-family: 'DM Sans', sans-serif;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gf-blog-meta {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--gf-border);
}

.gf-blog-thumb-placeholder {
  width: 100%;
  height: 100%;
  min-height: 180px;
  background: var(--gf-cream2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 48px;
}

/* ============================================================
   BLOG MOBIL
   ============================================================ */
@media (max-width: 768px) {
  .gf-blog-preview-wrap {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .gf-blog-card--featured {
    grid-column: 1 !important;
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }

  .gf-blog-card--featured .gf-blog-card-img {
    aspect-ratio: 16/9;
    min-height: 200px;
    max-height: 240px;
  }

  .gf-blog-card--featured .gf-blog-body {
    padding: 20px !important;
  }
}

@media (max-width: 1024px) {
  .gf-blog-preview-wrap {
    grid-template-columns: 1fr 1fr;
  }

  .gf-blog-card--featured {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
  }
}

/* ============================================================
   BLOG — home.php klasser
   ============================================================ */

/* Kategori knapper i hero */
.gf-kat-btn {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 500;
  font-family: 'DM Sans', sans-serif;
  text-decoration: none;
  transition: all 0.2s;
  background: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.8);
  border: 1px solid rgba(255,255,255,0.2);
}
.gf-kat-btn--aktiv {
  background: rgba(255,255,255,0.95);
  color: var(--gf-green);
  border-color: transparent;
}

/* Fremhævet kort */
.gf-blog-featured-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  margin-bottom: 32px;
  transition: transform 0.2s, box-shadow 0.2s;
  min-height: 340px;
}
.gf-blog-featured-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.10);
}
.gf-blog-featured-img {
  overflow: hidden;
}
.gf-blog-featured-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gf-blog-featured-body {
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gf-blog-featured-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(20px, 2.5vw, 30px);
  font-weight: 700;
  color: var(--gf-ink);
  line-height: 1.2;
  margin-bottom: 16px;
  letter-spacing: -0.5px;
}
.gf-blog-featured-excerpt {
  font-size: 15px;
  color: var(--gf-ink2);
  line-height: 1.75;
  margin-bottom: 24px;
  font-family: 'DM Sans', sans-serif;
}

/* Blog grid */
.gf-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Normalt kort */
.gf-blog-kort {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, box-shadow 0.2s;
}
.gf-blog-kort:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.gf-blog-kort-img {
  aspect-ratio: 16/9;
  overflow: hidden;
  flex-shrink: 0;
}
.gf-blog-kort-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gf-blog-kort-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.gf-blog-kort-title {
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--gf-ink);
  line-height: 1.35;
  margin-bottom: 10px;
  flex: 1;
}
.gf-blog-tag {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--gf-green);
  font-family: 'DM Sans', sans-serif;
  margin-bottom: 8px;
}
.gf-blog-meta {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--gf-border);
}
.gf-blog-no-thumb {
  width: 100%;
  height: 100%;
  min-height: 180px;
  background: var(--gf-green-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Paginering */
.gf-page-btn {
  height: 38px;
  padding: 0 16px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
  text-decoration: none;
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  color: var(--gf-ink2);
}
.gf-page-num {
  width: 38px;
  height: 38px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
  text-decoration: none;
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  color: var(--gf-ink2);
}
.gf-page-num--aktiv {
  background: var(--gf-green);
  color: #fff;
  border-color: var(--gf-green);
}

/* ============================================================
   BLOG TABLET (max 1024px)
   ============================================================ */
@media (max-width: 1024px) {
  .gf-blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .gf-blog-featured-card {
    grid-template-columns: 1fr 1fr;
  }
}

/* ============================================================
   BLOG MOBIL (max 768px)
   ============================================================ */
@media (max-width: 768px) {
  /* Fremhævet — stack vertikalt */
  .gf-blog-featured-card {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  .gf-blog-featured-img {
    aspect-ratio: 16/9;
    min-height: 200px;
    max-height: 240px;
  }
  .gf-blog-featured-img img {
    height: 100%;
  }
  .gf-blog-featured-body {
    padding: 24px 20px !important;
  }
  .gf-blog-featured-title {
    font-size: 20px !important;
  }
  .gf-blog-featured-excerpt {
    font-size: 14px !important;
    -webkit-line-clamp: 3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Blog grid — 1 kolonne */
  .gf-blog-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

/* ============================================================
   NGO PROFIL — RESPONSIVE
   ============================================================ */
.gf-ngo-profil-grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: start;
}

.gf-ngo-hero-top {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}

.gf-ngo-hero-stats {
  display: flex;
  gap: 32px;
  margin-top: 40px;
  flex-wrap: wrap;
}

@media (max-width: 768px) {
  .gf-ngo-profil-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .gf-ngo-hero-stats {
    gap: 20px !important;
    margin-top: 28px !important;
  }

  .gf-ngo-hero-stats > div {
    flex: 1 1 40%;
  }

  .gf-ngo-stat-sep {
    display: none !important;
  }

  .gf-ngo-hero-top {
    gap: 16px !important;
  }
}

/* ============================================================
   UPGRADE SEKTION — forsiden
   ============================================================ */
.gf-upgrade-section > .gf-section-inner > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

@media (max-width: 1024px) {
  .gf-upgrade-section > .gf-section-inner > div {
    gap: 48px;
  }
}

@media (max-width: 768px) {
  .gf-upgrade-section > .gf-section-inner > div {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
}

/* ============================================================
   UPGRADE SEKTION
   ============================================================ */
.gf-upgrade-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.gf-upgrade-fordele {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.gf-upgrade-fordel {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.gf-upgrade-ikon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--gf-green-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}

.gf-upgrade-titel {
  font-size: 15px;
  font-weight: 500;
  color: var(--gf-ink);
  font-family: 'DM Sans', sans-serif;
  margin-bottom: 2px;
}

.gf-upgrade-tekst {
  font-size: 13px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.6;
}

.gf-upgrade-kort {
  background: var(--gf-cream);
  border: 1px solid var(--gf-border);
  border-radius: 24px;
  padding: 40px;
  position: relative;
  overflow: hidden;
}

.gf-upgrade-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gf-upgrade-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
  color: var(--gf-ink2);
}

.gf-upgrade-check {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--gf-green-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  flex-shrink: 0;
  color: var(--gf-green);
  font-weight: 700;
}

@media (max-width: 1024px) {
  .gf-upgrade-grid { gap: 48px; }
}

@media (max-width: 768px) {
  .gf-upgrade-grid {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
}

/* Blog-sektion — mindre padding i bund */
#gf-blog {
  padding-bottom: 40px;
}

/* ============================================================
   SENESTE VIRKSOMHEDER — mobil fix
   ============================================================ */
@media (max-width: 768px) {
  .gf-vk-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding: 0 !important;
  }

  .gf-vk-kort {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .gf-vk-navn {
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }

  .gf-vk-branche {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Søgefeltet på siden */
  #gf-soeg-input {
    font-size: 16px !important; /* Forhindrer zoom på iOS */
  }
}

/* ============================================================
   VIRKSOMHEDER DER STØTTER
   ============================================================ */
.gf-stoetter-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.gf-stoetter-kort {
  background: var(--gf-white);
  border: 1px solid var(--gf-border);
  border-radius: 20px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform 0.2s, box-shadow 0.2s;
}

.gf-stoetter-kort:hover {
  transform: translateY(-3px);
  box-shadow: var(--gf-shadow-hover);
}

.gf-stoetter-kort-top {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.gf-stoetter-logo {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  font-family: 'DM Sans', sans-serif;
  flex-shrink: 0;
  overflow: hidden;
}

.gf-stoetter-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gf-stoetter-info { flex: 1; min-width: 0; }

.gf-stoetter-navn {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--gf-ink);
  text-decoration: none;
  line-height: 1.3;
  display: block;
  margin-bottom: 4px;
}

.gf-stoetter-navn:hover { color: var(--gf-green); }

.gf-stoetter-branche {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.4;
}

.gf-stoetter-by {
  font-size: 12px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
  margin-top: 2px;
}

.gf-stoetter-desc {
  font-size: 13px;
  color: var(--gf-ink2);
  font-family: 'DM Sans', sans-serif;
  line-height: 1.65;
  margin: 0;
  flex: 1;
}

.gf-stoetter-ngo-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--gf-green-light);
  border-radius: 12px;
  padding: 12px 14px;
  text-decoration: none;
  transition: background 0.2s;
}

.gf-stoetter-ngo-badge:hover {
  background: #c2e0ca;
}

.gf-stoetter-ngo-emoji {
  font-size: 22px;
  flex-shrink: 0;
}

.gf-stoetter-ngo-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--gf-green-mid);
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
}

.gf-stoetter-ngo-navn {
  font-size: 13px;
  font-weight: 600;
  color: var(--gf-green);
  font-family: 'DM Sans', sans-serif;
}

.gf-stoetter-ngo-pct {
  margin-left: auto;
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--gf-green);
}

.gf-stoetter-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid var(--gf-border);
  margin-top: auto;
}

.gf-stoetter-siden {
  font-size: 11px;
  color: var(--gf-muted);
  font-family: 'DM Sans', sans-serif;
}

.gf-stoetter-link {
  font-size: 13px;
  font-weight: 500;
  color: var(--gf-green);
  text-decoration: none;
  font-family: 'DM Sans', sans-serif;
}

.gf-stoetter-link:hover { color: #163f28; }

@media (max-width: 1024px) {
  .gf-stoetter-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .gf-stoetter-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    overflow: hidden;
  }

  .gf-stoetter-kort {
    padding: 20px;
  }
}

/* NGO profil — mobil rækkefølge: sidebar øverst, virksomheder nederst */
@media (max-width: 768px) {
  .gf-ngo-profil-grid {
    display: flex !important;
    flex-direction: column !important;
  }
  .gf-ngo-profil-grid > div[style*="order:1"] {
    order: 1 !important;
  }
  .gf-ngo-profil-grid > div[style*="order:2"] {
    order: 2 !important;
  }
}

@media (min-width: 769px) {
  .gf-ngo-profil-grid > div[style*="order:1"],
  .gf-ngo-profil-grid > div[style*="order:2"] {
    order: unset !important;
  }
}

/* Profil beskrivelse — formatering */
.gf-profile-desc p {
  margin-bottom: 1em;
  line-height: 1.75;
}
.gf-profile-desc h3 {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--gf-ink);
  margin: 1.2em 0 0.4em;
}
.gf-profile-desc h4 {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--gf-ink);
  margin: 1em 0 0.3em;
}
.gf-profile-desc ul,
.gf-profile-desc ol {
  padding-left: 1.4em;
  margin-bottom: 1em;
}
.gf-profile-desc li {
  margin-bottom: 0.3em;
  line-height: 1.65;
}
.gf-profile-desc strong { font-weight: 600; }
.gf-profile-desc em { font-style: italic; }
.gf-profile-desc a { color: var(--gf-green); }


/* ============================================================
   BLOG HERO — grøn bar injected via PHP generate_after_header
   ============================================================ */
.gf-blog-hero {
    background: #1e5c3a;
    width: 100%;
    padding: 80px 0 72px;
    box-sizing: border-box;
}

.gf-blog-hero-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 48px;
    box-sizing: border-box;
}

.gf-blog-hero-eyebrow {
    display: block;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase;
    margin-bottom: 12px;
}

.gf-blog-hero-title {
    font-family: 'Playfair Display', serif !important;
    font-size: clamp(28px, 4vw, 52px) !important;
    font-weight: 700 !important;
    color: #fff !important;
    letter-spacing: -0.03em !important;
    line-height: 1.15 !important;
    margin: 0 !important;
}

.gf-blog-hero-meta {
    display: block;
    font-family: 'DM Sans', sans-serif;
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    margin-top: 14px;
}

.gf-blog-hero-desc {
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    color: rgba(255,255,255,0.75);
    line-height: 1.6;
    margin: 12px 0 0;
    max-width: 560px;
}

/* Fjern top-padding så hero sidder tæt under nav */
.single-post .site-content,
.category .site-content,
.tag .site-content,
.archive .site-content {
    padding-top: 0 !important;
}

/* Skjul GP's egne titler på single posts — vores hero viser dem */
.single-post .entry-header .entry-title,
.single-post .entry-header .entry-meta,
.single-post .post-image {
    display: none !important;
}

/* Skjul GP's page-header på kategori/arkiv — vores hero viser dem */
.category .page-header,
.tag .page-header,
.archive .page-header {
    display: none !important;
}

/* Artikel-titler i kategoriliste — MÅ IKKE skjules */
.category .entry-header,
.tag .entry-header,
.archive .entry-header {
    display: block !important;
}

.category .entry-header .entry-title,
.tag .entry-header .entry-title,
.archive .entry-header .entry-title {
    display: block !important;
    font-family: 'Playfair Display', serif !important;
    color: var(--gf-ink) !important;
}

/* Single post indhold */
.single-post .inside-article {
    padding: 40px !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
}

.single-post .entry-content {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 16px !important;
    line-height: 1.8 !important;
    color: var(--gf-ink2) !important;
    margin: 0 !important;
}

/* Kategori artikelliste */
.category .inside-article,
.tag .inside-article,
.archive .inside-article {
    padding: 20px 40px !important;
    max-width: 100% !important;
}

@media (max-width: 768px) {
    .gf-blog-hero {
        padding: 48px 0 40px;
    }
    .gf-blog-hero-inner {
        padding: 0 20px;
    }
    .gf-blog-hero-title {
        font-size: 26px !important;
    }
    .single-post .inside-article {
        padding: 24px 20px !important;
    }
    .category .inside-article,
    .tag .inside-article,
    .archive .inside-article {
        padding: 16px 20px !important;
    }
}

/* ============================================================
   FORSIDE HERO — grid layout
   ============================================================ */
.gf-hero { display:block !important; padding:0 !important; }
.gf-hero-inner {
    display: grid;
    grid-template-columns: 3fr 2fr;
    align-items: start;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 120px 0 0;
    box-sizing: border-box;
}
.gf-frontpage .gf-section:first-of-type { padding-top:40px !important; }

/* ============================================================
   REDUCER STORT MELLEMRUM — blog/ngo sektion til CTA
   ============================================================ */
.gf-section { padding: 48px 40px !important; }
.gf-cta-section { padding: 48px 40px !important; }
.gf-topliste-page { padding: 48px 40px 64px !important; }

/* Blog hero padding */
.gf-blog-hero { padding-top:80px !important; }
.gf-blog-hero--single { padding-top:80px !important; }

/* Nav baggrund */
.main-navigation { background-color: #f3f2ea !important; }

/* Mobil */
@media (max-width: 768px) {
    .gf-hero-inner {
        grid-template-columns: 1fr !important;
        padding: 100px 20px 32px !important;
        gap: 24px !important;
    }
    .gf-section { padding: 32px 20px !important; }
    .gf-cta-section { padding: 32px 20px !important; }
    .gf-topliste-page { padding: 32px 20px 48px !important; }
    button.menu-toggle {
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
        margin: 0 !important;
        outline: none !important;
    }
    .mobile-menu-control-wrapper,
    #mobile-menu-control-wrapper {
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .main-navigation.toggled .main-nav,
    .main-navigation.toggled {
        background-color: #f3f2ea !important;
        z-index: 999 !important;
    }
    .gf-blog-hero { padding-top:80px !important; }
    .gf-blog-hero-inner { padding:0 20px !important; }
    .single-post .inside-article { padding:24px 20px 48px !important; }
}

/* ============================================================
   WOOCOMMERCE CHECKOUT — kompakt og centreret
   ============================================================ */

/* Max-width og centrering */
.woocommerce-page .entry-content,
.woocommerce-checkout .entry-content,
body.woocommerce-checkout #page,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout #content {
    max-width: 100% !important;
    background: var(--gf-cream) !important;
}

.woocommerce-checkout #content .woocommerce,
.woocommerce-checkout .woocommerce {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 40px 40px 80px !important;
}

/* To-kolonner layout */
.woocommerce-checkout #customer_details {
    max-width: 580px !important;
}

/* Felter */
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
    border: 1px solid var(--gf-border) !important;
    border-radius: 10px !important;
    padding: 10px 14px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    background: #fff !important;
    box-shadow: none !important;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus {
    border-color: var(--gf-green) !important;
    outline: none !important;
}

/* Labels */
.woocommerce-checkout label {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: var(--gf-ink) !important;
    margin-bottom: 4px !important;
}

/* Overskrifter */
.woocommerce-checkout h3 {
    font-family: 'Playfair Display', serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--gf-ink) !important;
    margin-bottom: 20px !important;
}

/* Ordreoversigt */
.woocommerce-checkout-review-order-table {
    background: #fff !important;
    border-radius: 16px !important;
    border: 1px solid var(--gf-border) !important;
    overflow: hidden !important;
    font-family: 'DM Sans', sans-serif !important;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    padding: 14px 20px !important;
    font-size: 14px !important;
    border-bottom: 1px solid var(--gf-border) !important;
}

.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total th {
    font-weight: 700 !important;
    font-size: 16px !important;
    color: var(--gf-ink) !important;
}

/* Rabatkupon */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .woocommerce-info {
    background: var(--gf-green-light) !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    margin-bottom: 24px !important;
    color: var(--gf-green) !important;
}

.woocommerce-checkout .woocommerce-form-coupon input {
    border: 1px solid var(--gf-border) !important;
    border-radius: 10px !important;
    padding: 10px 14px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
}

/* Bestil knap */
#place_order {
    background: var(--gf-green) !important;
    border-radius: 100px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 14px 32px !important;
    border: none !important;
    color: #fff !important;
    width: 100% !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
}

#place_order:hover {
    background: #164d30 !important;
}

/* Mobil */
@media (max-width: 768px) {
    .woocommerce-checkout .woocommerce {
        padding: 24px 20px 60px !important;
    }
}

/* ============================================================
   WOOCOMMERCE CHECKOUT — fix margins og layout
   ============================================================ */
body.woocommerce-checkout .site-main,
body.woocommerce-checkout #primary,
body.woocommerce-checkout article {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 40px 40px 80px !important;
    box-sizing: border-box !important;
}

body.woocommerce-checkout .woocommerce {
    max-width: 100% !important;
    padding: 0 !important;
}

@media (max-width: 768px) {
    body.woocommerce-checkout .site-main,
    body.woocommerce-checkout #primary,
    body.woocommerce-checkout article {
        padding: 24px 20px 60px !important;
    }
}

/* ============================================================
   SKJUL FEATURED IMAGE I INDHOLD — vises kun som OG-billede
   ============================================================ */
.featured-image.page-header-image {
    display: none !important;
}

.single-post .featured-image.page-header-image {
    display: none !important;
}

/* ============================================================
   WOOCOMMERCE PRODUKTBILLEDE — begræns størrelse
   ============================================================ */
.single-product .woocommerce-product-gallery {
    max-width: 320px !important;
    width: 40% !important;
}

.single-product .inside-article {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 40px !important;
}



/* ============================================================
   MOBILMENU FIX — GeneratePress bruger mobile-menu-open på html
   ============================================================ */
@media (max-width: 768px) {
    .main-navigation.toggled .main-nav,
    .mobile-menu-open .main-navigation .main-nav {
        display: block !important;
        width: 100% !important;
        position: absolute !important;
        top: 66px !important;
        left: 0 !important;
        right: 0 !important;
        background: #f3f2ea !important;
        border-bottom: 1px solid var(--gf-border) !important;
        box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
        padding: 12px 0 !important;
        z-index: 999 !important;
    }
    .mobile-menu-open .main-navigation .nav-menu {
        display: flex !important;
        flex-direction: column !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .mobile-menu-open .main-navigation .nav-menu > li > a {
        display: block !important;
        padding: 12px 24px !important;
        font-size: 15px !important;
        border-bottom: 1px solid rgba(0,0,0,0.05) !important;
    }
}

/* ============================================================
   MOBILMENU FIX — overflow-x hidden blokkerer menuen
   ============================================================ */
@media (max-width: 768px) {
    html.mobile-menu-open,
    html.mobile-menu-open body {
        overflow-x: visible !important;
        overflow-y: auto !important;
    }
    html.mobile-menu-open .main-navigation .main-nav {
        display: block !important;
        overflow: visible !important;
    }
}

/* ============================================================
   SKJUL FEATURED IMAGE PÅ BLOGINDLÆG
   ============================================================ */
.single-post .featured-image.page-header-image-single,
.single .featured-image.page-header-image-single {
    display: none !important;
}
