/* ═══════════════════════════════════════════════════════════════════════════
   VIBORG MODELFLYVEKLUB – style.css
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── VARIABLER & RESET ────────────────────────────────────────────────────── */

:root {
  --p:   #2563eb;
  --p2:  #1d4ed8;
  --ps:  #dbeafe;
  --tx:  #0f172a;
  --mu:  #64748b;
  --li:  rgba(15,23,42,.08);
  --bor: rgba(15,23,42,.08);
  --bg2: #f8fafc;
  --promo-card-h: 360px;
  --sh:  0 32px 90px rgba(15,23,42,.16);
  --ss:  0 18px 42px rgba(15,23,42,.11);
}

*,*::before,*::after { box-sizing: border-box }

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--tx);
  background:
    radial-gradient(ellipse at 0% 0%,   rgba(37,99,235,.18),  transparent 42%),
    radial-gradient(ellipse at 100% 0%,  rgba(59,130,246,.20), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(99,102,241,.10), transparent 50%),
    linear-gradient(180deg, #f0f6ff, #f4f7fc 60%, #eef3fb);
  min-height: 100vh;
  overflow-x: hidden;
}

a                       { text-decoration: underline; color: inherit }
a:visited,a:hover,a:active { color: inherit }
img                     { max-width: 100%; display: block }
h1,h2,h3,h4             { margin: 0; letter-spacing: -.04em }

@keyframes fi { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:none } }

/* ── LAYOUT – SHELL & CONTAINER ──────────────────────────────────────────── */

.shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.c {
  width: min(96%, 1440px);
  margin: 0 auto;
}

main { flex: 1 }
.shell > main.embedded-portal-active { flex: 0 0 auto }

.site-recovery-notice {
  width: min(96%, 1440px);
  margin: 12px auto 0;
  padding: 11px 14px;
  border: 1px solid rgba(37,99,235,.22);
  border-radius: 14px;
  background: rgba(239,246,255,.94);
  color: #1e40af;
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.45;
}

.site-data-failure {
  display: grid;
  place-items: center;
  min-height: min(58vh, 560px);
  padding-top: 32px;
  padding-bottom: 70px;
}

.site-data-failure-card {
  width: min(100%, 640px);
  padding: clamp(24px, 5vw, 48px);
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 32px;
  background: rgba(255,255,255,.9);
  box-shadow: var(--sh);
  text-align: center;
}

.site-data-failure-card h1 {
  margin: 4px 0 14px;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
}

.site-data-failure-card p {
  max-width: 480px;
  margin: 0 auto;
  color: var(--mu);
  line-height: 1.7;
}

.pg     { display: none; padding: 32px 0 70px }
.pg.on  { display: block; animation: fi .3s ease }


/* Efter login udfylder RCHub Medlemssystem hele Admin-fladen fra toppen. */
.pg#pg-admin.admin-rchub-authenticated { padding-top: 0; }
.admin-rchub-intro[hidden] { display: none !important; }

.sec { padding: 24px 0 }

.shead   { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 20px; flex-wrap: wrap }
.shead > div:first-child { display: flex; flex-direction: column; align-items: flex-start; }
.shead > div:first-child .eyebrow { padding-left: 0; padding-right: 0; background: transparent; border-radius: 0; }
.shead h2 { font-size: 2.2rem; margin-top: 10px }
.shead p  { max-width: 660px; color: var(--mu); line-height: 1.7; margin: 0 }

/* ── HEADER & NAVIGATION ─────────────────────────────────────────────────── */

.bar {
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(18px);
  background: rgba(255,255,255,.88);
  border-bottom: 1px solid rgba(255,255,255,.6);
  box-shadow: 0 1px 0 rgba(15,23,42,.04);
}

.bar-in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  gap: 18px;
  min-width: 0;
  overflow: hidden;
}

.brand {
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  flex-shrink: 1;
  min-width: 0;
  text-decoration: none;
}

.brand-logo {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
  display: grid;
  place-items: center;
  box-shadow: var(--ss);
  overflow: hidden;
  flex-shrink: 0;
}
.brand-logo img { width: 80%; height: 80%; object-fit: contain; border-radius: 10% }

#bname      { font-weight: 800; font-size: 1.1rem; letter-spacing: -.03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0 }
#bname span { font-weight: 300; color: var(--p) }

.nav  { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; justify-content: center }
.nbtn { border: 0; background: transparent; color: #475569; cursor: pointer; padding: 10px 14px; border-radius: 999px; font-weight: 600; font-size: .9rem; font-family: inherit; transition: .18s; white-space: nowrap; text-decoration: none }
.nbtn:hover,.nbtn.on { background: var(--ps); color: var(--p) }
.nbtn-logout { background: rgba(147,51,234,.16); color: #6d28d9 }
.nbtn-logout:hover { background: rgba(147,51,234,.24); color: #581c87 }

.mob-logout-btn { background: rgba(147,51,234,.16); color: #6d28d9; border-radius: 999px; margin: 10px 14px 0; width: calc(100% - 28px) }
.mob-nav li .mob-logout-btn:hover { background: rgba(147,51,234,.24); color: #581c87 }

.cta-group { display: flex; align-items: center; gap: 10px; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end }
.ctabtn      { border: 0; flex-shrink: 0; background: linear-gradient(135deg,var(--tx),#1e293b); color: #fff; padding: 11px 20px; border-radius: 999px; font-weight: 700; cursor: pointer; font-family: inherit; font-size: .9rem; text-decoration: none }
.ctabtn-blue { background: linear-gradient(135deg,var(--p),var(--p2)); box-shadow: 0 16px 40px rgba(37,99,235,.22) }

/* ── BURGER & MOBIL DRAWER ────────────────────────────────────────────────── */

.burger { display: none; flex-direction: column; justify-content: space-between; width: 36px; height: 26px; background: none; border: 0; cursor: pointer; padding: 0; flex-shrink: 0 }
.burger span { display: block; height: 3px; border-radius: 2px; background: var(--tx); transition: transform .22s, opacity .18s }
.burger.open span:nth-child(1) { transform: translateY(11.5px) rotate(45deg) }
.burger.open span:nth-child(2) { opacity: 0 }
.burger.open span:nth-child(3) { transform: translateY(-11.5px) rotate(-45deg) }

.mob-overlay    { display: none; position: fixed; inset: 0; background: rgba(15,23,42,.45); z-index: 299; backdrop-filter: blur(4px) }
.mob-overlay.on { display: block }

.mob-drawer      { position: fixed; top: 0; right: 0; bottom: 0; width: min(80vw,320px); background: #fff; z-index: 300; transform: translateX(100%); transition: transform .28s cubic-bezier(.4,0,.2,1); display: flex; flex-direction: column; box-shadow: -8px 0 40px rgba(15,23,42,.18); overflow-y: auto }
.mob-drawer.open { transform: translateX(0) }

.mob-head  { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--li) }
.mob-brand { font-weight: 800; font-size: 1rem; letter-spacing: -.02em; color: var(--tx) }
.mob-close { border: 0; background: #f1f5f9; width: 36px; height: 36px; border-radius: 10px; cursor: pointer; font-size: 1rem; color: var(--tx); flex-shrink: 0 }

.mob-nav { list-style: none; margin: 0; padding: 12px 0; flex: 1 }
.mob-nav li a,
.mob-nav li button         { display: block; width: 100%; text-align: left; padding: 13px 20px; font: 600 1rem/1 'Inter',sans-serif; color: #475569; background: none; border: 0; cursor: pointer; transition: background .14s, color .14s; text-decoration: none }
.mob-nav li a.on,
.mob-nav li button.on,
.mob-nav li a:hover,
.mob-nav li button:hover   { background: #eff6ff; color: var(--p) }

.mob-cta { padding: 16px 20px; border-top: 1px solid var(--li) }

/* ── HERO-SEKTION ─────────────────────────────────────────────────────────── */

.hero {
  position: relative;
  overflow: hidden;
  border-radius: 38px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(239,246,255,.97), rgba(255,255,255,.98));
  box-shadow: 0 36px 100px rgba(15,23,42,.18), 0 6px 20px rgba(15,23,42,.08);
  border: 1px solid rgba(255,255,255,.85);
}
.hero::before {
  content: ""; position: absolute; width: 280px; height: 280px; border-radius: 999px;
  filter: blur(30px); opacity: .6; right: -50px; top: -60px;
  background: rgba(59,130,246,.18); pointer-events: none;
}
.hero::after {
  content: ""; position: absolute; width: 250px; height: 250px; border-radius: 999px;
  filter: blur(30px); opacity: .6; left: -70px; bottom: -80px;
  background: rgba(16,185,129,.12); pointer-events: none;
}

.hgrid   { display: grid; grid-template-columns: 1.05fr .95fr; gap: 34px; align-items: center; position: relative; z-index: 1 }
.eyebrow { display: inline-flex; padding: 8px 14px; border-radius: 999px; background: #eff6ff; color: var(--p); font-weight: 700; font-size: .84rem; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 14px }
.hero h1 { font-size: clamp(2.2rem,4.5vw,4.4rem); line-height: .98; margin: 0 0 14px }
.hero-p  { font-size: 1.03rem; line-height: 1.8; color: #475569; margin: 0 }

.hacts      { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px }

.hcard     { position: relative; border-radius: 32px; overflow: hidden; box-shadow: var(--sh); min-height: 500px; background: #0f172a }
.hcard img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0 }
.hov       { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(15,23,42,.06),rgba(15,23,42,.6)) }

.hbadge { position: absolute; right: 18px; bottom: 18px; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-radius: 20px; padding: 16px; display: flex; gap: 12px; align-items: center; box-shadow: var(--sh); max-width: 270px }
.hbico  { width: 48px; height: 48px; border-radius: 14px; background: #dcfce7; display: grid; place-items: center; font-size: 1.3rem; flex-shrink: 0 }

.stats      { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 20px }
.stat       { background: rgba(255,255,255,.84); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.9); padding: 15px; border-radius: 22px; box-shadow: var(--ss) }
.stat strong { display: block; margin-bottom: 4px; font-size: .97rem }
.stat span   { color: var(--mu); font-size: .87rem; line-height: 1.55 }

/* ── BREAKING NEWS ─────────────────────────────────────────────────────────── */

.breaking-news-wrap {
  margin-top: 20px;
}

.breaking-news-card {
  position: relative;
  overflow: hidden;
  border-radius: 32px;
  padding: 18px;
  background: linear-gradient(135deg, rgba(239,246,255,.97), rgba(255,255,255,.98));
  box-shadow: 0 28px 80px rgba(15,23,42,.15), 0 5px 18px rgba(15,23,42,.07);
  border: 1px solid rgba(255,255,255,.86);
}

.breaking-news-card::before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  border-radius: 999px;
  filter: blur(28px);
  opacity: .55;
  right: -70px;
  top: -90px;
  background: rgba(59,130,246,.18);
  pointer-events: none;
}

.breaking-news-card::after {
  content: "";
  position: absolute;
  width: 210px;
  height: 210px;
  border-radius: 999px;
  filter: blur(28px);
  opacity: .45;
  left: -80px;
  bottom: -90px;
  background: rgba(16,185,129,.12);
  pointer-events: none;
}


.breaking-news-body {
  position: relative;
  z-index: 1;
  min-width: 0;
  flex: 1;
}

.breaking-news-title {
  color: var(--p);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.2;
  margin-bottom: 6px;
}

.breaking-news-content {
  color: #334155;
  font-size: .98rem;
  line-height: 1.75;
}

.breaking-news-content p:last-child,
.breaking-news-content ul:last-child,
.breaking-news-content ol:last-child {
  margin-bottom: 0;
}

.breaking-news-content a {
  color: var(--p);
  font-weight: 700;
  text-decoration: underline;
}

.breaking-news-content img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: var(--ss);
}

/* ── KNAPPER ──────────────────────────────────────────────────────────────── */

.btn      { display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 999px; padding: 13px 22px; font-weight: 700; cursor: pointer; transition: .2s; font-family: inherit; font-size: .93rem; text-decoration: none }
.btn-p    { background: linear-gradient(135deg,var(--p),var(--p2)); color: #fff; box-shadow: 0 16px 40px rgba(37,99,235,.22) }
.btn-s    { background: #fff; color: var(--tx); border: 1px solid var(--li); box-shadow: var(--ss) }
.btn:hover { transform: translateY(-1px) }

.tbtn        { border: 1px solid var(--li); background: #fff; border-radius: 999px; padding: 8px 14px; font-weight: 700; cursor: pointer; font-size: .84rem; font-family: inherit; transition: .15s }
.tbtn:hover  { background: var(--ps); border-color: var(--p); color: var(--p) }
.tbtn.on     { background: var(--p); color: #fff; border-color: var(--p) }

.gfbtn          { border: 1.5px solid var(--li); background: #fff; border-radius: 999px; padding: 8px 16px; font-weight: 700; font-size: .86rem; cursor: pointer; font-family: inherit; transition: .16s; color: #475569 }
.gfbtn.on,
.gfbtn:hover    { background: var(--p); color: #fff; border-color: var(--p) }

.otab           { border: 1.5px solid var(--li); background: #fff; border-radius: 999px; padding: 9px 18px; font-weight: 700; font-size: .86rem; cursor: pointer; font-family: inherit; transition: .16s; color: #475569 }
.otab.on,
.otab:hover     { background: var(--p); color: #fff; border-color: var(--p) }

.otabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; justify-content: center }
.osec     { display: none }
.osec.on  { display: block; animation: fi .3s ease }

/* ── PANEL & GRIDS ────────────────────────────────────────────────────────── */

.panel { background: rgba(255,255,255,.88); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.78); border-radius: 32px; padding: 26px; box-shadow: 0 22px 60px rgba(15,23,42,.13), 0 4px 14px rgba(15,23,42,.06) }

.g2 { display: grid; grid-template-columns: 1fr 1fr;         gap: 22px }
.g3 { display: grid; grid-template-columns: repeat(3,1fr);   gap: 20px }
.g4 { display: grid; grid-template-columns: repeat(4,1fr);   gap: 20px }
.rg { display: grid; grid-template-columns: 1fr 1fr;         gap: 14px; margin-top: 14px }

/* ── KORT ─────────────────────────────────────────────────────────────────── */

.card        { background: #fff; border: 1px solid var(--li); border-radius: 26px; overflow: hidden; box-shadow: 0 20px 52px rgba(15,23,42,.13), 0 4px 12px rgba(15,23,42,.06); transition: transform .22s, box-shadow .22s }
.card:hover  { transform: translateY(-5px); box-shadow: 0 32px 72px rgba(15,23,42,.18), 0 6px 18px rgba(15,23,42,.08) }

.cthumb          { height: 210px; overflow: hidden }
.cthumb img      { width: 100%; height: 100%; object-fit: cover; transition: transform .6s }
.card:hover .cthumb img { transform: scale(1.06) }

.cbody    { padding: 20px }
.cbody h3 { font-size: 1.05rem; margin-bottom: 5px }
.cbody p  { color: var(--mu); line-height: 1.72; margin: 0; font-size: .9rem }

.ibox  { width: 52px; height: 52px; border-radius: 16px; background: #eff6ff; color: var(--p); display: grid; place-items: center; font-size: 1.25rem; margin-bottom: 12px }

.clist { display: grid; gap: 12px }
.citem { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--li); border-radius: 22px; padding: 14px 16px }
.dot   { width: 44px; height: 44px; border-radius: 12px; background: #eff6ff; color: var(--p); display: grid; place-items: center; font-size: 1rem; flex: 0 0 auto }


/* ── KOM I GANG: RCHUB-MEDLEMSTYPER ────────────────────────────────────── */
.komiggang-heading { justify-content:flex-start; }
.komiggang-info-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content;
  gap:22px;
  margin-top:26px;
  align-items:stretch;
}
.komiggang-info-grid > .panel { min-width:0; }
.rchub-member-types-card__head { margin-bottom:16px; }
.rchub-member-types-card h3,
.komiggang-contact-card h3 { font-size:1.3rem; margin:0; }
.komiggang-contact-card { display:flex; flex-direction:column; }
.komiggang-contact-card > h3 { margin-bottom:14px; }
.rchub-member-types__list { display:grid; gap:10px; }
.rchub-member-type {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
  padding:14px 16px;
  border:1px solid var(--li);
  border-radius:22px;
  background:#fff;
}
.rchub-member-type__main { min-width:0; }
.rchub-member-type h4 { margin:0 0 6px; font-size:1rem; }
.rchub-member-type p { margin:0; color:var(--mu); font-size:.9rem; line-height:1.55; overflow-wrap:anywhere; }
.rchub-member-type p span,
.rchub-member-type__fee span { display:block; margin-bottom:3px; color:#64748b; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.rchub-member-type__fee { min-width:118px; text-align:right; color:var(--p); }
.rchub-member-type__fee strong { display:block; font-size:.96rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.rchub-member-types__status { margin:0; padding:18px 4px; color:var(--mu); font-size:.92rem; }

/* ── GALLERI ──────────────────────────────────────────────────────────────── */

.gfolders { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px }

.ggrid     { display: grid; grid-template-columns: repeat(auto-fill,minmax(230px,1fr)); gap: 14px }
.gitem     { display:block; width:100%; border:0; padding:0; font:inherit; color:inherit; text-align:left; border-radius: 18px; overflow: hidden; box-shadow: var(--ss); cursor: pointer; aspect-ratio: 4/3; background: #e2e8f0; position: relative }
.gitem img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s }
.gitem:hover img { transform: scale(1.06) }
.gcap      { position: absolute; bottom: 0; left: 0; right: 0; padding: 26px 12px 10px; background: linear-gradient(transparent,rgba(15,23,42,.68)); color: #fff; font-size: .84rem; font-weight: 600; opacity: 0; transition: .22s }
.gitem:hover .gcap { opacity: 1 }
.gph       { border-radius: 30px; border: 2px dashed #cbd5e1; padding: 54px 20px; text-align: center; color: var(--mu) }

.galbgrid  { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: 16px }
.galb      { border-radius: 18px; overflow: hidden; box-shadow: 0 16px 44px rgba(15,23,42,.13), 0 3px 10px rgba(15,23,42,.06); cursor: pointer; background: #fff; transition: transform .22s, box-shadow .22s; text-decoration: none }
.galb:hover { transform: translateY(-7px); box-shadow: 0 30px 70px rgba(15,23,42,.20), 0 6px 18px rgba(15,23,42,.08) }
.galb-thumb     { aspect-ratio: 4/3; background: #e2e8f0; overflow: hidden }
.galb-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s }
.galb:hover .galb-thumb img { transform: scale(1.07) }
.galb-info        { padding: 10px 14px 12px; display: flex; flex-direction: column; gap: 2px }
.galb-info strong { font-size: .9rem; color: var(--tx); white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.galb-info span   { font-size: .78rem; color: var(--mu) }

/* Feature-kort – ét pr. mappe */
.galfeatgrid { display: grid; grid-template-columns: repeat(auto-fill,minmax(320px,1fr)); gap: 20px }
.galfeat     { display:block; width:100%; border:0; padding:0; font:inherit; color:inherit; text-align:left; position: relative; border-radius: 24px; overflow: hidden; cursor: pointer; box-shadow: 0 24px 64px rgba(15,23,42,.18), 0 4px 14px rgba(15,23,42,.08); aspect-ratio: 16/9; background: #e2e8f0; transition: transform .22s, box-shadow .22s; text-decoration: none }
.galfeat:hover { transform: translateY(-6px); box-shadow: 0 36px 90px rgba(15,23,42,.24), 0 8px 22px rgba(15,23,42,.10) }
.galfeat-img     { position: absolute; inset: 0 }
.galfeat-img.image-load-failed { background: #cbd5e1 }
.galfeat:focus-visible,.gitem:focus-visible { outline: 3px solid var(--p); outline-offset: 3px }
.galfeat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s }
.galfeat:hover .galfeat-img img { transform: scale(1.06) }
.galfeat-over    { position: absolute; inset: 0; background: linear-gradient(to top,rgba(10,15,30,.82) 0%,rgba(10,15,30,.18) 55%,transparent 100%); display: flex; align-items: flex-end; justify-content: space-between; padding: 22px 24px; transition: background .3s }
.galfeat:hover .galfeat-over { background: linear-gradient(to top,rgba(10,15,30,.92) 0%,rgba(10,15,30,.3) 55%,transparent 100%) }
.galfeat-info        { display: flex; flex-direction: column; gap: 3px }
.galfeat-info strong { color: #fff; font-size: 1.15rem; font-weight: 700; text-shadow: 0 1px 6px rgba(0,0,0,.4) }
.galfeat-info span   { color: rgba(255,255,255,.7); font-size: .82rem }
.galfeat-arr         { color: #fff; font-size: 1.6rem; opacity: .7; transition: transform .25s, opacity .25s }
.galfeat:hover .galfeat-arr { transform: translateX(5px); opacity: 1 }

/* ── LIGHTBOX ─────────────────────────────────────────────────────────────── */

.lb     { position: fixed; inset: 0; background: rgba(15,23,42,.92); z-index: 500; display: none; align-items: center; justify-content: center; backdrop-filter: blur(16px) }
.lb.on  { display: flex }
.lb img { width: auto; height: auto; max-width: 95vw; max-height: 95vh; border-radius: 16px; box-shadow: 0 40px 100px rgba(0,0,0,.55) }
.lbc    { position: absolute; top: 18px; right: 22px; color: #fff; font-size: 1.9rem; cursor: pointer; background: none; border: 0; line-height: 1 }
.lbp,
.lbn    { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.12); color: #fff; border: 0; width: 58px; height: 58px; border-radius: 50%; font-size: 1.45rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: .16s }
.lbp { left: 14px } .lbn { right: 14px }
.lbp:hover,
.lbn:hover { background: rgba(255,255,255,.26) }
.lbcap { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.8); font-size: .88rem; background: rgba(15,23,42,.5); padding: 6px 14px; border-radius: 999px; max-width: 80vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }

/* ── NYHEDSTICKER ─────────────────────────────────────────────────────────── */

#newsTickerWrap { margin-bottom: 20px }

.nt-bar     { display: flex; align-items: stretch; background: linear-gradient(90deg,#0f172a 0%,#1e3a5f 100%); border-radius: 18px; overflow: hidden; height: 52px; min-height: 52px; max-height: 52px; box-shadow: 0 4px 22px rgba(15,23,42,.22), 0 1px 0 rgba(255,255,255,.06) inset }
.nt-label   { flex-shrink: 0; background: var(--p); color: #fff; font-weight: 800; font-size: 1.14rem; letter-spacing: .08em; padding: 0 22px; display: flex; align-items: center; white-space: nowrap; text-transform: uppercase; border-right: 2px solid rgba(255,255,255,.15); text-shadow: 0 1px 2px rgba(0,0,0,.2) }
.nt-track   { flex: 1; overflow: hidden; display: flex; align-items: center; min-width: 0; position: relative; height: 100% }
.nt-content { white-space: nowrap; color: #f1f5f9; font-size: 1.05rem; line-height: 1; will-change: transform; display: inline-block; padding: 0 }
.nt-content a             { color: #93c5fd !important; text-decoration: underline }
.nt-content strong,
.nt-content b             { font-weight: 700 }
.nt-content em,
.nt-content i             { font-style: italic }
/* <font size="N"> elementer fra execCommand('fontSize') bruger absolutte HTML-størrelser
   der er immune over for CSS-arv. Denne regel tvinger dem til at arve containerens
   font-size, så JS-styret størrelse (font-size på .nt-content) slår igennem. */
.nt-content font          { font-size: inherit !important; }

/* ── PROMO-RAMME (samme visuelle frame som hero) ──────────────────────────── */

.promo-frame {
  position: relative;
  overflow: hidden;
  border-radius: 38px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(239,246,255,.97), rgba(255,255,255,.98));
  box-shadow: 0 36px 100px rgba(15,23,42,.18), 0 6px 20px rgba(15,23,42,.08);
  border: 1px solid rgba(255,255,255,.85);
}
.promo-frame::before {
  content: ""; position: absolute; width: 280px; height: 280px; border-radius: 999px;
  filter: blur(30px); opacity: .6; right: -50px; top: -60px;
  background: rgba(59,130,246,.18); pointer-events: none;
}
.promo-frame::after {
  content: ""; position: absolute; width: 250px; height: 250px; border-radius: 999px;
  filter: blur(30px); opacity: .6; left: -70px; bottom: -80px;
  background: rgba(16,185,129,.12); pointer-events: none;
}
.promo-frame .g2promo { position: relative; z-index: 1; }

/* Fjern kortets hover-løft i promo-sektionen – kun indhold animerer */
.g2promo .card:hover { transform: none; box-shadow: 0 20px 52px rgba(15,23,42,.13), 0 4px 12px rgba(15,23,42,.06); }

/* ── PROMO-SEKTION (forside) ──────────────────────────────────────────────── */

.g2promo { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 0px 0; align-items: stretch }

.promo-wrap       { display: flex; flex-direction: column; height: 100% }
.promo-card-title { display: block; padding: 0; background: transparent; color: var(--p); font-weight: 700; font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 10px; text-align: center }
.promo-card-fixed { height: var(--promo-card-h) }

.promo-img-card,
.promo-event-card,
.promo-links-card,
.promo-map-card,
.promo-mdk-card,
.promo-dealers-card      { height: var(--promo-card-h); min-height: var(--promo-card-h); overflow: hidden; max-width: 100%; box-sizing: border-box }
.promo-img-card .cthumb,
.promo-slide-wrap        { height: 100%; min-height: 0; position: relative; overflow: hidden }
.promo-map-card          { border-radius: 26px; overflow: hidden }

.promo-fit       { position: relative; height: 100%; overflow: hidden }
.promo-fit-inner { width: 100%; transform-origin: top left; will-change: transform }

/* ── NÆSTE ARRANGEMENTER (forside) ───────────────────────────────────────── */

.promo-event-body { display: flex; flex-direction: column; gap: 14px; padding: 22px; }
.promo-event-status { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; color: var(--mu); font-size: .88rem; padding: 12px 0; }
.promo-event-list { display: grid; gap: 0; }
.promo-event-item {
  width: 100%;
  display: grid;
  grid-template-columns: 56px minmax(0,1fr);
  gap: 14px;
  align-items: start;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tx);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.promo-event-item + .promo-event-item { border-top: 1px solid var(--li); margin-top: 10px; padding-top: 10px; }
.promo-event-item:hover .promo-event-title { color: var(--p); }
.promo-event-item:focus-visible { outline: 2px solid var(--p); outline-offset: 4px; border-radius: 12px; }
.promo-event-date {
  min-width: 56px;
  padding: 9px 6px;
  border-radius: 10px;
  background: #eff6ff;
  color: var(--p);
  text-align: center;
  line-height: 1;
}
.promo-event-day { display: block; font-size: 1.36rem; font-weight: 800; }
.promo-event-month { display: block; margin-top: 2px; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.promo-event-year { display: block; margin-top: 2px; color: var(--mu); font-size: .62rem; }
.promo-event-content { min-width: 0; display: flex; flex-direction: column; gap: 3px; padding-top: 1px; }
.promo-event-label { color: var(--mu); font-size: .65rem; font-weight: 700; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.promo-event-title { overflow: hidden; color: var(--tx); font-size: 1rem; font-weight: 700; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; transition: color .18s; }
.promo-event-meta-row { display: flex; align-items: center; gap: 7px; min-width: 0; }
.promo-event-meta { min-width: 0; flex: 1 1 auto; overflow: hidden; color: var(--mu); font-size: .79rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.promo-event-count { flex: 0 0 auto; border: 1px solid rgba(37,99,235,.16); border-radius: 999px; background: #eff6ff; color: var(--p); font-size: .69rem; font-weight: 700; line-height: 1.2; padding: 3px 7px; white-space: nowrap; }
.promo-event-calendar-button { align-self: flex-start; margin-top: 2px; font-size: .82rem; }

/* ── ARRANGEMENTMODAL ─────────────────────────────────────────────────────── */

body.event-detail-modal-open { overflow: hidden; }
.mcard.event-detail-modal-card { width: min(100%, 840px); display: flex; flex-direction: column; max-height: calc(100dvh - 36px); }
.event-detail-modal-head { flex: 0 0 auto; }
.event-detail-title { margin: 8px 0 0; font-size: clamp(1.35rem, 3vw, 1.7rem); line-height: 1.25; }
.event-detail-body { overflow: auto; padding-right: 4px; }
.event-detail-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0; }
.event-detail-list--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.event-detail-item { min-width: 0; padding: 13px 14px; border: 1px solid var(--li); border-radius: 14px; background: var(--bg2); }
.event-detail-item dt { margin: 0 0 4px; color: var(--mu); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.event-detail-item dd { margin: 0; color: var(--tx); font-size: .93rem; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.event-detail-description { margin-top: 18px; }
.event-detail-description h4 { margin: 0 0 7px; font-size: 1rem; }
.event-detail-description p { margin: 0; color: #334155; font-size: .94rem; line-height: 1.72; overflow-wrap: anywhere; white-space: pre-wrap; }

/* ── FORHANDLERE ──────────────────────────────────────────────────────────── */

.dealer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; padding: 20px 24px }

.dealer-item       { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 14px; background: var(--bg2); border: 1px solid var(--bor); transition: all .2s; min-height: 62px }
.dealer-item:hover { border-color: rgba(37,99,235,.3); box-shadow: 0 6px 20px rgba(37,99,235,.1); transform: translateY(-1px) }

.dealer-left { display: flex; gap: 9px; align-items: center; min-width: 0; flex: 1 }
.dealer-logo { width: 38px; height: 38px; min-width: 38px; max-width: 38px; border-radius: 999px; border: 1px solid var(--bor); background: #fff; overflow: hidden; flex-shrink: 0; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.07) }
.dealer-logo img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; display: block }
.dealer-txt  { min-width: 0; display: flex; flex-direction: column; gap: 2px }
.dealer-name { font-weight: 700; font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tx) }
.dealer-host { font-size: .74rem; color: var(--mu); overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.dealer-go   { flex-shrink: 0; font-weight: 700; font-size: .75rem; padding: 5px 10px; border-radius: 999px; border: 1px solid rgba(15,23,42,.2); background: transparent; color: var(--tx); text-decoration: none; white-space: nowrap; transition: all .18s }
.dealer-go:hover { background: rgba(15,23,42,.06); border-color: rgba(15,23,42,.35) }

/* ── NYTTIGE LINKS ────────────────────────────────────────────────────────── */

.link-btn-grid { display: flex; flex-direction: column; gap: 6px }

.link-btn        { display: flex; align-items: center; gap: 12px; color: var(--tx); text-decoration: none; font-weight: 600; font-size: .88rem; padding: 11px 14px; border-radius: 12px; transition: all .2s; background: var(--bg2); border: 1px solid var(--bor); position: relative; overflow: hidden }
.link-btn::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(37,99,235,.06),transparent); opacity: 0; transition: opacity .2s }
.link-btn:hover   { border-color: rgba(37,99,235,.35); transform: translateX(3px); box-shadow: 0 4px 16px rgba(37,99,235,.12) }
.link-btn:hover::before { opacity: 1 }

.link-btn-icon     { width: 32px; height: 32px; min-width: 32px; max-width: 32px; border-radius: 8px; background: #eff6ff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; border: 1px solid rgba(37,99,235,.12) }
.link-btn-icon img { width: 20px; height: 20px; object-fit: contain; display: block }
.link-btn-label    { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.link-btn-arr      { font-size: .8rem; color: var(--p); opacity: .6; transition: all .2s; flex-shrink: 0 }
.link-btn:hover .link-btn-arr { opacity: 1; transform: translate(2px,-2px) }

/* ── MDK KALENDER ─────────────────────────────────────────────────────────── */

.mdk-list { list-style: none; margin: 0; padding: 20px 24px; display: flex; flex-direction: column; gap: 10px }

.mdk-item a       { display: flex; gap: 12px; text-decoration: none; color: var(--tx); border: 1px solid var(--bor); border-radius: 14px; padding: 11px 14px; background: var(--bg2); transition: all .2s; align-items: center }
.mdk-item a:hover { border-color: rgba(37,99,235,.3); box-shadow: 0 6px 20px rgba(37,99,235,.1); transform: translateX(3px) }

.mdk-thumb      { width: 52px; height: 52px; min-width: 52px; max-width: 52px; border-radius: 10px; border: 1px solid var(--bor); background: #fff; overflow: hidden; flex-shrink: 0; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.07) }
.mdk-thumb img  { width: 100%; height: 100%; object-fit: cover; display: block }
.mdk-thumb .mdk-fav, .mdk-thumb .mdk-logo { width: 100%; height: 100%; object-fit: contain; display: block; padding: 6px }

.mdk-txt   { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 3px }
.mdk-title { font-size: .87rem; font-weight: 700; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--tx) }
.mdk-meta  { font-size: .76rem; color: var(--mu); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.mdk-arr   { font-size: .8rem; color: var(--p); opacity: .5; flex-shrink: 0; transition: opacity .2s }
.mdk-item a:hover .mdk-arr { opacity: 1 }

/* ── OM KLUBBEN – PROSE, REGLER & TABELLER ────────────────────────────────── */

.prose        { line-height: 1.85; color: #334155; font-size: .95rem }
.prose h3     { font-size: 1.2rem; margin: 24px 0 8px; color: var(--tx) }
.prose h3:first-child { margin-top: 0 }
.prose p      { margin: 0 0 11px }
.prose ul     { padding-left: 20px; margin: 0 0 12px }
.prose li     { margin-bottom: 6px }
.prose a      { color: var(--p) }

.ruleg { display: grid; grid-template-columns: 1fr 1fr; gap: 20px }
.rulec { background: #fff; border: 1px solid var(--li); border-radius: 26px; padding: 20px; box-shadow: var(--ss) }
.rulec p { color: var(--mu); line-height: 1.72; margin: 6px 0 0; font-size: .9rem }

.ic  { background: #fff; border: 1px solid var(--li); border-radius: 26px; overflow: hidden; box-shadow: var(--ss) }
.icb { padding: 20px }
.icb p { color: var(--mu); line-height: 1.72; margin: 6px 0 0; font-size: .9rem }

.rc    { background: #fff; border: 1px solid var(--li); border-radius: 18px; padding: 14px }
.rc h4 { font-size: .97rem; margin: 0 0 5px }
.rc p  { color: var(--mu); font-size: .88rem; line-height: 1.6; margin: 0 }

.tt               { width: 100%; border-collapse: collapse; margin-top: 12px }
.tt th,.tt td     { padding: 10px 13px; text-align: left; border-bottom: 1px solid var(--li); font-size: .9rem }
.tt th            { font-weight: 700; background: #f8fafc }
.tt tr:last-child td { border: 0 }

.calmodes { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px }

.map        { overflow: hidden; border-radius: 26px; margin-top: 20px; box-shadow: var(--ss); border: 1px solid var(--li); background: #fff }
.map iframe { width: 100%; height: 280px; border: 0; display: block }

/* ── FORMULARER & MODAL ───────────────────────────────────────────────────── */

.fgrid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px }
.field  { display: grid; gap: 6px; margin-bottom: 12px }
.full   { grid-column: 1 / -1 }

label                         { font-size: .87rem; font-weight: 700; color: #334155 }
input,select,textarea         { width: 100%; padding: 12px 14px; border-radius: 13px; border: 1.5px solid #e2e8f0; background: #f8fafc; font: inherit; color: var(--tx); transition: .14s }
input:focus,select:focus,
textarea:focus                { outline: none; border-color: var(--p); background: #fff }
textarea                      { min-height: 110px; resize: vertical }

.ok     { display: none; margin-top: 10px; padding: 11px 15px; border-radius: 13px; background: #dcfce7; color: #166534; font-weight: 700 }
.ok.on  { display: block }

.modal    { position: fixed; inset: 0; background: rgba(15,23,42,.46); display: none; align-items: center; justify-content: center; padding: 18px; z-index: 400; backdrop-filter: blur(8px) }
.modal.on { display: flex }
.mcard    { width: min(100%,600px); background: #fff; border-radius: 30px; padding: 26px; box-shadow: var(--sh) }
.mhead    { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px }
.xbtn     { border: 0; background: #f1f5f9; width: 40px; height: 40px; border-radius: 12px; cursor: pointer; font-size: .95rem }

/* ── FOOTER ───────────────────────────────────────────────────────────────── */

.footer    { background: #0f172a; color: #cbd5e1; padding: 52px 0; margin-top: 26px }
.fgr       { display: grid; grid-template-columns: 1.2fr .9fr .9fr .9fr; gap: 22px }
.footer h4 { color: #fff; font-size: .97rem; margin: 0 0 12px }
.footer p,
.footer li { color: #94a3b8; line-height: 1.75; margin: 0; font-size: .9rem }
.footer ul { padding: 0; margin: 0; list-style: none; display: grid; gap: 7px }
.footer a  { color: #94a3b8; transition: .14s; text-decoration: underline }
.footer a:hover { color: #fff }

/* ── ADMIN-LINK ───────────────────────────────────────────────────────────── */

#adml        { position: fixed; bottom: 16px; right: 16px; z-index: 999; background: linear-gradient(135deg,#7c3aed,#6d28d9); color: #fff; border-radius: 999px; padding: 10px 18px; font-weight: 700; font-size: .83rem; box-shadow: 0 8px 28px rgba(124,58,237,.44); display: flex; align-items: center; gap: 7px; text-decoration: none; transition: .18s }
#adml:hover  { transform: translateY(-2px) }

/* ── LINK-REGLER: knap-lignende elementer uden understregning ─────────────── */

.card,.citem,.gitem,.galb,.galfeat,.mdk-item a,.link-btn,.dealer-go,.dealer-item a,
.nbtn,.btn,.ctabtn,.mob-cta a,.mob-nav a,.hbadge,.tbtn,.gfbtn,.otab,
#adml,.promo-card-title,a.btn { text-decoration: none !important }

/* Inline prosa-links beholder understregning */
.prose a { text-decoration: underline }

/* ═══════════════════════════════════════════════════════════════════════════
   MOBIL – ≤ 700 px
   ═══════════════════════════════════════════════════════════════════════════ */


@media (max-width: 700px) {

  /* ── Container: 95% bredde ─────────────────────────────────────────────── */
  .c { width: 95% }

  /* ── Sektioner & sider ─────────────────────────────────────────────────── */
  .pg  { padding: 16px 0 52px }
  .sec { padding: 16px 0 }

  /* ── HEADER ────────────────────────────────────────────────────────────── */
  .bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
  }
  .bar-in {
    height: 62px;
    gap: 8px;
  }
  /* Skub indhold ned så det ikke gemmes bag den faste header */
  body { padding-top: 62px; }

  /* Skjul desktop-navigation og vis burger */
  .nav          { display: none !important }
  .burger       { display: flex !important }
  #indmeldbtn   { display: none !important }   /* Indmeldelse findes i drawer */

  /* Logo & klubnavn */
  .brand-logo   { width: 40px; height: 40px }
  #bname        { font-size: .92rem }

  /* ── HERO ──────────────────────────────────────────────────────────────── */
  .hero {
    padding: 8px;
    border-radius: 22px;
  }

  /* Sæt hero til én kolonne – tekst øverst, billede nedenunder */
  .hgrid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .hero h1 {
    font-size: clamp(1.85rem, 8vw, 2.6rem);
  }

  .hero-p { font-size: .95rem }

  .hacts { gap: 8px; margin-top: 18px }
  .hacts .btn { font-size: .85rem; padding: 11px 16px }

  /* Billedkortet i hero */
  .hcard {
    min-height: 240px;
    border-radius: 20px;
  }

  /* Promo-ramme: reduceret padding og border-radius på mobil */
  .promo-frame {
    border-radius: 22px;
    padding: 8px;
  }

  /* Skjul hero-badge på mobil */
  .hbadge { display: none !important; }


  .breaking-news-wrap { margin-top: 14px }
  .breaking-news-card {
    border-radius: 22px;
    padding: 14px;
  }
  .breaking-news-title { font-size: 1.02rem }
  .breaking-news-content { font-size: .92rem; line-height: 1.68 }

  /* Stats-boks */
  .stats {
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin-top: 14px;
  }
  .stat         { padding: 10px 8px; border-radius: 16px }
  .stat strong  { font-size: .82rem; margin-bottom: 2px }
  .stat span    { font-size: .74rem }

  /* ── SEKTIONSOVERSKRIFT ────────────────────────────────────────────────── */
  .shead          { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 14px }
  .shead h2       { font-size: 1.55rem; margin-top: 4px }
  .shead p        { font-size: .9rem }

  /* ── PROMO-GRID: 2 → 1 kolonne ─────────────────────────────────────────── */
  .g2promo {
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 6px 0;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
  }

  /* CSS Grid-items har som standard min-width:auto og kan sprænge ud af gridden */
  .promo-wrap {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    width: 100%;
    height: auto;          /* Ophæv desktop height:100% – ellers kollapser kortet i én-kolonne grid */
  }

  /* JS-funktionen fitPromoCards() sætter inline width + transform på .promo-fit-inner.
     På mobil er indholdet allerede 1-kolonne og skalering er unødvendig – den brede
     inline-width får siden til at udvide sig udover 95%. Vi nulstiller med !important
     for at vinde over JS inline-styles. */
  .promo-fit {
    max-width: 100%;
    overflow: hidden;
  }
  .promo-fit-inner {
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    overflow: hidden;
  }

  /* På mobil: billedslideshow-kortet SKAL have fast højde, da billederne er
     position:absolute (de kollapser til 0 ved height:auto). De øvrige kort
     tilpasser sig indholdet. */
  .promo-img-card {
    height: 260px !important;
    min-height: 260px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .promo-event-card,
  .promo-links-card,
  .promo-mdk-card,
  .promo-dealers-card {
    height: auto !important;
    min-height: unset !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* "Find os" Google Maps-kort: ekstra høj så kortet er brugbart */
  .promo-map-card {
    height: 240px !important;
    min-height: 240px !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 20px !important;
  }

  /* ── FORHANDLERE & NYTTIGE LINKS: 2 → 1 kolonne ───────────────────────── */
  .dealer-grid {
    grid-template-columns: 1fr;
    padding: 14px 16px;
    gap: 8px;
  }

  #promoEventBody {
    padding: 14px 16px !important;
    gap: 8px !important;
  }
  .promo-event-item { grid-template-columns: 52px minmax(0,1fr); gap: 11px; }
  .promo-event-date { min-width: 52px; }
  .promo-event-day { font-size: 1.25rem; }
  .promo-event-title { font-size: .95rem; }
  .promo-event-meta-row { align-items: flex-start; flex-wrap: wrap; gap: 4px 7px; }
  .promo-event-meta { flex-basis: 100%; }
  .event-detail-modal-card { max-height: calc(100dvh - 24px); }
  .event-detail-list,
  .event-detail-list--three { grid-template-columns: 1fr; }

  /* Dealer-items lidt luftigere i enkelt-kolonne */
  .dealer-item  { min-height: 56px; padding: 10px 12px }
  .dealer-name  { font-size: .86rem }

  /* ── GENERELLE GRIDS ───────────────────────────────────────────────────── */
  .g2, .g3, .g4  { grid-template-columns: 1fr; gap: 14px }
  .rg             { grid-template-columns: 1fr; gap: 10px }
  .ruleg          { grid-template-columns: 1fr; gap: 14px }

  /* ── PANEL & KORT ──────────────────────────────────────────────────────── */
  .panel  { padding: 16px 16px; border-radius: 22px }
  .card   { border-radius: 18px }

  /* ── KALENDER-KNAPPER ──────────────────────────────────────────────────── */
  .calmodes { gap: 5px }
  .tbtn     { font-size: .78rem; padding: 7px 11px }

  /* ── OM KLUBBEN – TABS ─────────────────────────────────────────────────── */
  .otabs { gap: 5px; justify-content: flex-start }
  .otab  { font-size: .8rem; padding: 7px 13px }

  /* ── KOM I GANG ────────────────────────────────────────────────────────── */
  .icb { padding: 16px }
  .komiggang-info-grid { grid-template-columns:1fr; gap:14px; margin-top:14px; }
  .rchub-member-type { grid-template-columns:1fr; gap:10px; padding:13px 14px; border-radius:18px; }
  .rchub-member-type__fee { min-width:0; text-align:left; }

  /* ── FORMULARER ────────────────────────────────────────────────────────── */
  .fgrid2       { grid-template-columns: 1fr }
  .field.full   { grid-column: 1 }
  .mcard        { padding: 18px; border-radius: 22px }

  /* ── GOOGLE MAPS ───────────────────────────────────────────────────────── */
  .map iframe { height: 240px }

  /* ── AKTIVITET & MEDLEM iFrames: 95% bredde på mobil ──────────────────── */
  #aktivitetFrame {
    width: 100% !important;
    max-width: 100% !important;
  }
  #medlemFrame {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* ── FOOTER: 1 kolonne – Viborg Modelflyveklub øverst, Kontakt nederst ── */
  .fgr {
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
  }
  #fgr > div {
    width: 100%;
  }
  /* Skjul "Adresse" (c2) og "Navigation" (c3) */
  #fgr > div:nth-child(2),
  #fgr > div:nth-child(3) { display: none !important }
  .footer { padding: 32px 0 28px }

  /* ── NYHEDSTICKER ──────────────────────────────────────────────────────── */
  .nt-bar    { border-radius: 12px; height: 44px; min-height: 44px; max-height: 44px }
  .nt-label  { font-size: .9rem; padding: 0 14px; letter-spacing: .05em }
  .nt-content { font-size: .92rem }

  /* ── GALLERI ───────────────────────────────────────────────────────────── */
  .ggrid     { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px }
  .galfeatgrid { grid-template-columns: 1fr }
  .galbgrid  { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px }

  /* ── PROMO-FRAME: fjern kort-skygger og dekorative blobs på mobil ──────── */
  /* Kortenes box-shadow lækker farvet lys mod promo-frame baggrunden og    */
  /* ser ud som farvede skygger i hjørnerne. Fjern begge.                   */
  .promo-frame::before,
  .promo-frame::after { display: none; }
  .g2promo .card      { box-shadow: none; border: 1px solid var(--li); }

  /* ── NYTTIGE LINKS: indhold må ikke overskride rammen ──────────────────── */
  /* 1) Nulstil padding på dealer-grid – padding adderes til width:100%     */
  /*    og giver overflow til højre.                                        */
  /* 2) Sæt overflow:hidden på kortet selv så ingenting stikker ud.        */
  .promo-links-card,
  .promo-dealers-card,
  .promo-mdk-card {
    overflow: hidden !important;
  }
  .promo-links-card .promo-fit,
  .promo-dealers-card .promo-fit,
  .promo-mdk-card .promo-fit { overflow: hidden !important; }
  .promo-links-card .promo-fit-inner,
  .promo-dealers-card .promo-fit-inner,
  .promo-mdk-card .promo-fit-inner {
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    overflow: hidden !important;
  }
  .promo-links-card .dealer-grid,
  .promo-dealers-card .dealer-grid,
  .promo-mdk-card .mdk-list {
    padding: 12px 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .promo-links-card .dealer-grid,
  .promo-dealers-card .dealer-grid {
    grid-template-columns: 1fr !important;
  }
  .promo-links-card .dealer-item,
  .promo-dealers-card .dealer-item,
  .promo-mdk-card .mdk-item a {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  /* Klip lange navne, men behold "Åbn"-knapperne i mobilvisning */
  .promo-links-card .dealer-go,
  .promo-dealers-card .dealer-go { display: inline-flex; }
  .promo-links-card .dealer-left,
  .promo-dealers-card .dealer-left,
  .promo-mdk-card .mdk-txt { min-width: 0; overflow: hidden; }

  /* ── MOBILMENU – lidt ekstra polering ──────────────────────────────────── */
  .mob-drawer { width: min(88vw, 320px) }
  .mob-nav li a,
  .mob-nav li button { padding: 15px 20px; font-size: 1.05rem }
}


/* ── FORSIDE: fælles rytme mellem hero, nyheder og promo-ramme ─────────── */
.home-priority-stack {
  display: grid;
  gap: 20px;
  margin-top: 20px;
}
.home-priority-stack > .breaking-news-wrap { margin-top: 0; }
.home-priority-stack > #promoSec { padding: 0; margin: 0; }

@media (max-width:700px) {
  .home-priority-stack { gap:14px; margin-top:14px; }
}

/* Kalender: offentlig gæstevisning og eksisterende RCHub-medlemskalender. */
.calendar-page{max-width:1180px;margin:0 auto;}
.calendar-page-header{text-align:center;max-width:720px;margin:0 auto 18px;}
.calendar-page-header .eyebrow{margin-bottom:8px;}
.calendar-page-header h2{font-size:clamp(1.8rem,4vw,2.35rem);margin:0;}
.calendar-login-bar{display:flex;justify-content:flex-end;margin:0 0 18px;}
.calendar-member-login-prompt{display:flex;flex-direction:column;align-items:center;gap:0;}
.calendar-member-label{position:relative;left:0;margin-bottom:12px;display:flex;flex-direction:column;align-items:center;color:#3156d9;font-family:ui-rounded,'Arial Rounded MT Bold','Trebuchet MS','Inter',system-ui,sans-serif;font-size:1.05rem;font-weight:800;line-height:1;letter-spacing:.01em;transform-origin:center bottom;animation:calendar-member-nudge 2s ease-in-out infinite;will-change:transform;}
.calendar-member-arrow{margin-top:6px;font-size:1.05rem;}
.calendar-login-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:144px;}
@keyframes calendar-member-nudge{
  0%,55%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1);}
  59%{transform:translate3d(-7px,-4px,0) rotate(-6deg) scale(1.08);}
  63%{transform:translate3d(8px,2px,0) rotate(7deg) scale(1.13);}
  67%{transform:translate3d(-6px,-2px,0) rotate(-5deg) scale(1.1);}
  71%{transform:translate3d(6px,1px,0) rotate(5deg) scale(1.12);}
  75%{transform:translate3d(-3px,-1px,0) rotate(-3deg) scale(1.06);}
  80%{transform:translate3d(2px,0,0) rotate(2deg) scale(1.03);}
  86%{transform:translate3d(0,0,0) rotate(0deg) scale(1);}
}
@media (prefers-reduced-motion:reduce){.calendar-member-label{animation:none;}}
.public-calendar-view[hidden],.calendar-login-bar[hidden]{display:none!important;}
.public-calendar-loading{display:flex;align-items:center;justify-content:center;gap:11px;min-height:180px;color:var(--mu);}
.public-calendar-grid{display:grid;gap:14px;}

/* Design 1: kompakt, moderne og horisontalt. */
.public-calendar-card{background:rgba(255,255,255,.96);border:1px solid rgba(148,163,184,.24);border-radius:20px;box-shadow:0 12px 30px rgba(15,23,42,.065);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;}
.public-calendar-card:hover{border-color:rgba(37,99,235,.28);box-shadow:0 18px 38px rgba(15,23,42,.09);transform:translateY(-1px);}
.public-calendar-card[open]{border-color:rgba(37,99,235,.34);box-shadow:0 20px 44px rgba(37,99,235,.12);}
.public-calendar-card--next{border-color:rgba(37,99,235,.32);box-shadow:0 16px 36px rgba(37,99,235,.105);}
.public-calendar-card__summary{list-style:none;display:grid;grid-template-columns:92px minmax(220px,1.15fr) minmax(190px,.95fr) minmax(190px,.95fr) minmax(128px,.55fr) 48px;column-gap:18px;align-items:center;padding:16px 18px;cursor:pointer;}
.public-calendar-card__summary::-webkit-details-marker{display:none;}
.public-calendar-card__summary:focus-visible{outline:3px solid rgba(59,130,246,.35);outline-offset:-3px;}
.public-calendar-card__date{grid-column:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:92px;padding:10px 8px;border-radius:16px;background:linear-gradient(160deg,var(--p),var(--p2));color:#fff;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 8px 18px rgba(37,99,235,.16);}
.public-calendar-card__weekday,.public-calendar-card__month{text-transform:capitalize;font-size:.72rem;font-weight:800;letter-spacing:.04em;opacity:.94;}
.public-calendar-card__day{font-size:1.65rem;line-height:1;margin:7px 0 5px;}
.public-calendar-card__main{display:contents;}
.public-calendar-next-label{grid-column:2;align-self:end;justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:#eff6ff;color:#3156d9;font-size:.68rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;}
.public-calendar-card__title{grid-column:2;align-self:start;display:block;margin-top:7px;font-size:1.08rem;font-weight:800;line-height:1.32;color:var(--tx);overflow-wrap:anywhere;}
.public-calendar-card:not(.public-calendar-card--next) .public-calendar-card__title{align-self:center;margin-top:0;}
.public-calendar-card__meta{display:contents;}
.public-calendar-card__meta-pill{display:flex;align-items:center;gap:11px;min-width:0;padding:0;background:transparent;border:0;color:var(--tx);}
.public-calendar-card__meta-pill:nth-child(1){grid-column:3;}
.public-calendar-card__meta-pill:nth-child(2){grid-column:4;}
.public-calendar-card__meta-pill:nth-child(3){grid-column:5;justify-self:end;padding:10px 13px;border:1px solid rgba(37,99,235,.15);border-radius:15px;background:linear-gradient(135deg,#f7f9ff,#eef4ff);}
.public-calendar-card__meta-pill i{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:999px;background:#f1f5f9;color:#4f6288;font-size:1rem;}
.public-calendar-card__meta-pill--count i{background:#eaf0ff;color:#3457d5;}
.public-calendar-card__meta-pill>span{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:.84rem;line-height:1.35;overflow-wrap:anywhere;}
.public-calendar-card__meta-pill strong{font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mu);}
.public-calendar-card__toggle{grid-column:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--mu);white-space:nowrap;}
.public-calendar-card__toggle i{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:#f1f5f9;color:#506284;transition:transform .2s ease,background .2s ease,color .2s ease;}
.public-calendar-card__toggle-text{font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.public-calendar-card[open] .public-calendar-card__toggle i{transform:rotate(180deg);background:#eaf0ff;color:#3156d9;}
.public-calendar-card__body{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.6fr);gap:24px;padding:18px 22px 20px 128px;border-top:1px solid rgba(226,232,240,.95);background:linear-gradient(180deg,rgba(248,250,252,.72),rgba(255,255,255,.95));}
.public-calendar-card__details{display:grid;grid-template-columns:1fr;gap:14px;margin:0;}
.public-calendar-card__details div{min-width:0;}
.public-calendar-card__details dt{display:flex;align-items:center;gap:8px;margin-bottom:5px;color:var(--mu);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.public-calendar-card__details dt i{width:16px;color:#4f6288;text-align:center;}
.public-calendar-card__details dd{margin:0;font-size:.91rem;font-weight:650;line-height:1.45;overflow-wrap:anywhere;}
.public-calendar-description{margin:0;padding:0 0 0 24px;border:0;border-left:1px solid rgba(203,213,225,.8);}
.public-calendar-description h3{margin:0 0 8px;font-size:.7rem;color:var(--mu);font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.public-calendar-description p{margin:0;color:var(--tx);font-size:.92rem;line-height:1.6;white-space:normal;overflow-wrap:anywhere;}
.public-calendar-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;padding:36px;text-align:center;border:1px dashed var(--li);border-radius:22px;background:rgba(255,255,255,.55);}
.public-calendar-empty i{font-size:2rem;color:var(--p);margin-bottom:13px;}
.public-calendar-empty h3{margin:0 0 7px;}
.public-calendar-empty p{margin:0;color:var(--mu);}
.public-calendar-empty--error i{color:#b45309;}
.member-calendar-view iframe{width:100%;height:600px;min-height:50px;border:0;display:block;background:transparent;overflow:auto;}
.calendar-public-back-link-wrap{display:flex;justify-content:center;padding:2px 0 14px;}
.calendar-public-back-link-wrap[hidden]{display:none!important;}
.calendar-public-back-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:8px 4px;border:0;background:transparent;color:var(--p);font:inherit;font-size:.9rem;font-weight:400;cursor:pointer;text-decoration:none;}
.calendar-public-back-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.12rem;line-height:1;font-weight:400;}
.calendar-public-back-link:hover{text-decoration:underline;}
.calendar-public-back-link:focus-visible{outline:3px solid rgba(59,130,246,.3);outline-offset:4px;border-radius:8px;}

@media (max-width:1080px){
  .public-calendar-card__summary{grid-template-columns:84px minmax(180px,1fr) minmax(170px,.9fr) minmax(170px,.9fr) 48px;gap:14px;}
  .public-calendar-card__meta-pill:nth-child(3){grid-column:2 / 5;grid-row:2;justify-self:start;margin-left:0;}
  .public-calendar-card__toggle{grid-column:5;grid-row:1 / 3;}
  .public-calendar-card__body{padding-left:116px;}
}

@media (max-width:820px){
  .calendar-login-bar{justify-content:stretch;}
  .calendar-member-login-prompt{width:100%;}
  .calendar-login-button{width:100%;}
  .public-calendar-card__summary{grid-template-columns:76px minmax(0,1fr) 44px;row-gap:12px;padding:14px;}
  .public-calendar-card__date{grid-column:1;grid-row:1 / 3;min-height:82px;}
  .public-calendar-next-label,.public-calendar-card__title{grid-column:2;}
  .public-calendar-card__meta{display:flex;grid-column:1 / 4;grid-row:3;flex-wrap:wrap;gap:10px;padding-top:12px;border-top:1px solid rgba(226,232,240,.9);}
  .public-calendar-card__meta-pill,.public-calendar-card__meta-pill:nth-child(n){grid-column:auto;flex:1 1 210px;justify-self:stretch;}
  .public-calendar-card__meta-pill:nth-child(3){margin:0;}
  .public-calendar-card__toggle{grid-column:3;grid-row:1 / 3;}
  .public-calendar-card__body{grid-template-columns:1fr;padding:16px 18px 18px;gap:16px;}
  .public-calendar-description{padding:16px 0 0;border-left:0;border-top:1px solid rgba(203,213,225,.8);}
}

@media (max-width:520px){
  .public-calendar-card{border-radius:18px;}
  .public-calendar-card__summary{grid-template-columns:64px minmax(0,1fr) 38px;gap:10px;padding:12px;}
  .public-calendar-card__date{min-height:72px;border-radius:13px;}
  .public-calendar-card__day{font-size:1.35rem;}
  .public-calendar-card__title{font-size:1rem;}
  .public-calendar-card__toggle-text{display:none;}
  .public-calendar-card__toggle i{width:34px;height:34px;}
  .public-calendar-card__meta-pill,.public-calendar-card__meta-pill:nth-child(n){flex-basis:100%;}
}


/* Kalenderkort – Design 1: kompakt, moderne og vandret. */
.public-calendar-grid--design-one{gap:14px;}
.calendar-d1{
  overflow:hidden;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(148,163,184,.24);
  border-radius:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.065);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.calendar-d1:hover{
  transform:translateY(-1px);
  border-color:rgba(37,99,235,.28);
  box-shadow:0 18px 38px rgba(15,23,42,.09);
}
.calendar-d1[open]{
  border-color:rgba(37,99,235,.34);
  box-shadow:0 20px 44px rgba(37,99,235,.12);
}
.calendar-d1--next{border-color:rgba(37,99,235,.32);}
.calendar-d1__summary{
  display:grid;
  grid-template-columns:82px minmax(190px,1fr) 190px 112px 72px;
  gap:18px;
  align-items:center;
  padding:16px 18px;
  list-style:none;
  cursor:pointer;
}
.calendar-d1__summary::-webkit-details-marker{display:none;}
.calendar-d1__summary:focus-visible{outline:3px solid rgba(59,130,246,.34);outline-offset:-3px;}
.calendar-d1__date{
  display:flex;
  min-height:88px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:linear-gradient(160deg,var(--p),var(--p2));
  color:#fff;
  text-align:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 8px 18px rgba(37,99,235,.16);
}
.calendar-d1__month,.calendar-d1__weekday{
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
  opacity:.94;
}
.calendar-d1__day{margin:5px 0 4px;font-size:1.7rem;line-height:1;}
.calendar-d1__identity{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:7px;}
.calendar-d1__badge{
  display:inline-flex;
  padding:4px 9px;
  border-radius:999px;
  background:#eff6ff;
  color:#3156d9;
  font-size:.67rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.calendar-d1__title{font-size:1.08rem;font-weight:800;line-height:1.35;color:var(--tx);overflow-wrap:anywhere;}
.calendar-d1__meta{display:contents;}
.calendar-d1__period{display:flex;min-width:0;align-items:center;}
.calendar-d1__time{display:flex;min-width:0;align-items:center;gap:10px;}
.calendar-d1__time>i{
  display:grid;
  width:34px;
  height:34px;
  flex:0 0 34px;
  place-items:center;
  border-radius:999px;
  background:#f1f5f9;
  color:#4f6288;
}
.calendar-d1__time>span{display:flex;min-width:0;flex-direction:column;gap:3px;font-size:.84rem;line-height:1.35;}
.calendar-d1__time strong{font-size:.67rem;color:var(--mu);letter-spacing:.05em;text-transform:uppercase;}
.calendar-d1__count{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:10px 12px;
  border:1px solid rgba(37,99,235,.15);
  border-radius:15px;
  background:linear-gradient(135deg,#f7f9ff,#eef4ff);
  color:#3156d9;
}
.calendar-d1__count>i{font-size:1rem;}
.calendar-d1__count>span{display:flex;flex-direction:column;font-size:.74rem;line-height:1.2;color:#64748b;}
.calendar-d1__count strong{font-size:1rem;color:#243b83;}
.calendar-d1__toggle{display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--mu);}
.calendar-d1__toggle>span{font-size:.64rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.calendar-d1__toggle>i{
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  border-radius:999px;
  background:#f1f5f9;
  color:#506284;
  transition:transform .2s ease,background .2s ease,color .2s ease;
}
.calendar-d1[open] .calendar-d1__toggle>i{transform:rotate(180deg);background:#eaf0ff;color:#3156d9;}
.calendar-d1__body{
  display:grid;
  grid-template-columns:minmax(240px,.75fr) minmax(0,1.65fr);
  gap:28px;
  padding:18px 22px 20px 118px;
  border-top:1px solid rgba(226,232,240,.95);
  background:linear-gradient(180deg,rgba(248,250,252,.72),rgba(255,255,255,.98));
}
.calendar-d1__detail{display:flex;min-width:0;align-items:flex-start;gap:12px;}
.calendar-d1__detail>i{width:18px;margin-top:2px;color:#4f6288;text-align:center;}
.calendar-d1__detail>span{display:flex;min-width:0;flex-direction:column;gap:6px;font-size:.92rem;line-height:1.55;overflow-wrap:anywhere;}
.calendar-d1__detail strong{font-size:.7rem;color:var(--mu);letter-spacing:.05em;text-transform:uppercase;}
.calendar-d1__detail--description{padding-left:26px;border-left:1px solid rgba(203,213,225,.8);}

@media (max-width:1050px){
  .calendar-d1__summary{grid-template-columns:76px minmax(180px,1fr) 180px 106px 48px;gap:14px;}
  .calendar-d1__toggle>span{display:none;}
}
@media (max-width:820px){
  .calendar-d1__summary{grid-template-columns:72px minmax(0,1fr) 44px;row-gap:13px;padding:14px;}
  .calendar-d1__date{grid-row:1 / 3;}
  .calendar-d1__identity{grid-column:2;grid-row:1 / 3;align-self:center;}
  .calendar-d1__toggle{grid-column:3;grid-row:1 / 3;}
  .calendar-d1__meta{
    display:grid;
    grid-column:1 / 4;
    grid-row:3;
    grid-template-columns:minmax(0,1fr) max-content;
    gap:12px;
    padding-top:12px;
    border-top:1px solid rgba(226,232,240,.9);
  }
  .calendar-d1__period{min-width:0;width:100%;}
  .calendar-d1__count{width:auto;min-width:0;box-sizing:border-box;justify-self:end;justify-content:flex-end;}
  .calendar-d1__count>i{order:2;}
  .calendar-d1__count>span{order:1;align-items:flex-end;text-align:right;}
  .calendar-d1__body{grid-template-columns:1fr;padding:16px 18px 18px;gap:16px;}
  .calendar-d1__detail--description{padding:16px 0 0;border-left:0;border-top:1px solid rgba(203,213,225,.8);}
}
@media (max-width:520px){
  .calendar-d1{border-radius:17px;}
  .calendar-d1__summary{grid-template-columns:62px minmax(0,1fr) 38px;gap:10px;padding:12px;}
  .calendar-d1__date{min-height:70px;border-radius:13px;}
  .calendar-d1__day{font-size:1.35rem;}
  .calendar-d1__title{font-size:1rem;}
  .calendar-d1__count{justify-content:flex-end;}
}

/* ── VEJR: kompakt 4-kolonne vejrstribe øverst i promo-frame ─────────────── */
.promo-weather-card {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: calc(var(--promo-card-h) / 2);
  margin: 0 0 20px;
  border-radius: 24px;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid #dce6f1;
  background:
    radial-gradient(circle at 96% 10%, rgba(186,230,253,.46), transparent 22%),
    linear-gradient(105deg, #fff 0%, #fff 72%, #f5fbff 100%);
  box-shadow: 0 12px 30px rgba(15,23,42,.08);
}
.weather-card-body { min-height: calc(var(--promo-card-h) / 2); padding: 0; box-sizing:border-box; }
.weather-strip {
  min-height: calc(var(--promo-card-h) / 2);
  display:grid;
  grid-template-columns:1.55fr repeat(3,1fr);
  align-items:stretch;
}
.weather-current,
.weather-forecast-day {
  min-width:0;
  padding:18px 20px 16px;
  box-sizing:border-box;
}
.weather-forecast-day { border-left:1px solid #e1e8f0; }
.weather-club { display:flex; align-items:flex-start; gap:9px; min-width:0; }
.weather-pin { color:#14233b; font-size:1.12rem; line-height:1.2; margin-top:1px; }
.weather-club div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.weather-club strong { color:#152238; font-size:.86rem; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.weather-club small { color:#79889c; font-size:.66rem; font-weight:650; }
.weather-current-main { display:flex; align-items:center; gap:16px; margin-top:12px; }
.weather-current-icon { flex:0 0 auto; font-size:3.45rem; line-height:1; filter:drop-shadow(0 6px 8px rgba(15,23,42,.12)); }
.weather-current-temp { min-width:0; display:flex; flex-direction:column; gap:2px; }
.weather-current-temp strong { color:#10213c; font-size:2.8rem; line-height:.95; font-weight:850; letter-spacing:-.04em; }
.weather-current-temp span { color:#1a2942; font-size:.88rem; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.weather-current-facts,
.weather-forecast-facts { display:grid; align-items:start; }
.weather-current-facts { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:15px; }
.weather-current-facts>div,
.weather-forecast-facts>div { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:6px; row-gap:1px; align-items:center; }
.weather-current-facts>div>span,
.weather-forecast-facts>div>span { grid-row:1 / 3; font-size:.9rem; line-height:1; }
.weather-current-facts strong,
.weather-forecast-facts strong { min-width:0; color:#1c2b43; font-size:.69rem; font-weight:850; white-space:nowrap; }
.weather-current-facts small,
.weather-forecast-facts small { min-width:0; color:#77869a; font-size:.63rem; font-weight:700; white-space:nowrap; }
.weather-forecast-head { display:flex; flex-direction:column; gap:2px; }
.weather-forecast-head strong { color:#14233b; font-size:.85rem; font-weight:850; text-transform:capitalize; }
.weather-forecast-head small { color:#7b899b; font-size:.66rem; font-weight:650; text-transform:capitalize; }
.weather-forecast-main { display:flex; align-items:center; gap:12px; margin-top:18px; min-width:0; }
.weather-forecast-icon { flex:0 0 auto; font-size:2.55rem; line-height:1; filter:drop-shadow(0 5px 7px rgba(15,23,42,.1)); }
.weather-forecast-main>div { min-width:0; }
.weather-range { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
.weather-range strong { color:#ff513e; font-size:1.3rem; line-height:1; font-weight:850; }
.weather-range span { color:#2f7de1; font-size:1.03rem; line-height:1; font-weight:850; }
.weather-forecast-main p { margin:6px 0 0; color:#52627a; font-size:.73rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.weather-forecast-facts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:22px; }
.weather-unavailable { min-height:calc(var(--promo-card-h) / 2); display:grid; place-items:center; padding:18px; color:var(--mu); font-size:.88rem; text-align:center; }

@media (max-width: 980px) {
  .weather-strip { grid-template-columns:1.2fr repeat(3,1fr); }
  .weather-current,.weather-forecast-day { padding:16px 14px 14px; }
  .weather-current-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .weather-current-icon { font-size:3rem; }
  .weather-current-temp strong { font-size:2.45rem; }
}
@media (max-width: 760px) {
  .promo-weather-card { min-height:0; border-radius:20px; }
  .weather-card-body { min-height:0; }
  .weather-strip { min-height:0; grid-template-columns:1fr; }
  .weather-current,.weather-forecast-day { padding:15px 16px; }
  .weather-forecast-day { border-left:0; border-top:1px solid #e1e8f0; }
  .weather-current-facts { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .weather-forecast-main { margin-top:10px; }
  .weather-forecast-facts { margin-top:12px; }
}
@media (max-width: 460px) {
  .weather-current-main { gap:12px; }
  .weather-current-icon { font-size:2.7rem; }
  .weather-current-temp strong { font-size:2.25rem; }
  .weather-current-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .weather-forecast-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
}


/* Embedded RCHub portals are kept out of the paint tree while their browsing
   context navigates. This avoids exposing the browser's transient default
   canvas (which can be black in Chromium) between iframe documents. */
.embedded-portal-frame{
  background:transparent!important;
  color-scheme:light;
  opacity:1;
  visibility:visible;
  transition:none!important;
}
.embedded-portal-frame.is-loading{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none;
}
