/*
 * Webhavn Modern v1.0.0
 * Drupal 11 theme modernization for dev.webhavn.dk.
 * Maritime identity, original Webhavn artwork, responsive layout and GDPR UI.
 */

:root {
  --wh-navy-950: #081827;
  --wh-navy-900: #10283f;
  --wh-navy-850: #17344f;
  --wh-navy-800: #1f4162;
  --wh-navy-700: #315b84;
  --wh-blue-600: #226da5;
  --wh-blue-500: #3289bd;
  --wh-cyan-500: #18a5b7;
  --wh-green-500: #78bd3f;
  --wh-yellow-400: #f0d83f;
  --wh-red-500: #e45465;
  --wh-bg: #f3f7fa;
  --wh-surface: #ffffff;
  --wh-surface-soft: #edf3f7;
  --wh-surface-blue: #eaf3f9;
  --wh-border: #d8e3eb;
  --wh-border-strong: #bdcedb;
  --wh-text: #172737;
  --wh-muted: #607286;
  --wh-link: #1d6196;
  --wh-link-hover: #103e64;
  --wh-success: #277a4c;
  --wh-danger: #a53843;
  --wh-radius-sm: 8px;
  --wh-radius-md: 14px;
  --wh-radius-lg: 22px;
  --wh-shadow-sm: 0 3px 14px rgb(8 32 54 / 8%);
  --wh-shadow-md: 0 16px 44px rgb(8 32 54 / 13%);
  --wh-container: 1280px;
}

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

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  color: var(--wh-text);
  background: var(--wh-bg);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

a {
  color: var(--wh-link);
  text-decoration-thickness: 1px;
  text-underline-offset: .16em;
}

a:hover,
a:focus-visible {
  color: var(--wh-link-hover);
}

:focus-visible {
  outline: 3px solid rgb(240 216 63 / 78%);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection {
  color: #fff;
  background: var(--wh-navy-700);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  color: var(--wh-navy-950);
  font-weight: 760;
  line-height: 1.18;
  letter-spacing: -.024em;
}

h1 {
  font-size: clamp(2rem, 4vw, 3.15rem);
}

h2 {
  font-size: clamp(1.4rem, 2.3vw, 1.95rem);
}

h3 {
  font-size: clamp(1.12rem, 1.8vw, 1.42rem);
}

p {
  margin-top: 0;
}

.webhavn-container {
  width: min(calc(100% - 32px), var(--wh-container));
  margin-inline: auto;
}

.webhavn-site {
  min-height: 100vh;
  overflow-x: clip;
}

.webhavn-skip-link:focus {
  position: fixed !important;
  z-index: 100000;
  top: 12px;
  left: 12px;
  width: auto;
  height: auto;
  padding: 10px 14px;
  clip: auto;
  color: #fff;
  background: var(--wh-navy-950);
  border-radius: 9px;
  box-shadow: var(--wh-shadow-md);
}

/* Header / original Webhavn artwork. */
.webhavn-preheader {
  color: #dbe8f2;
  background: var(--wh-navy-950);
  border-bottom: 1px solid rgb(255 255 255 / 8%);
  font-size: .9rem;
}

.webhavn-preheader .webhavn-container {
  min-height: 36px;
  padding-block: 5px;
}

.webhavn-split {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
}

.webhavn-header {
  position: relative;
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(circle at 76% -20%, rgb(76 132 180 / 48%), transparent 40%),
    linear-gradient(118deg, var(--wh-navy-950) 0%, var(--wh-navy-850) 52%, var(--wh-navy-700) 100%);
  border: 0;
  box-shadow: 0 10px 32px rgb(8 32 54 / 20%);
}

.webhavn-header::after {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  content: "";
  background: linear-gradient(90deg, var(--wh-cyan-500), var(--wh-green-500), var(--wh-yellow-400), var(--wh-red-500));
}

.webhavn-header-grid {
  min-height: 144px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  padding-block: 18px;
}

.webhavn-branding {
  min-width: 0;
}

.webhavn-brand {
  display: grid;
  grid-template-columns: minmax(220px, 307px) minmax(320px, 1fr) auto;
  gap: clamp(22px, 4vw, 54px);
  align-items: center;
  width: 100%;
}

.webhavn-brand__logo {
  display: inline-flex;
  align-items: center;
  width: min(307px, 100%);
  text-decoration: none;
}

.webhavn-brand__logo img {
  display: block;
  width: 100%;
  filter: drop-shadow(0 9px 19px rgb(0 0 0 / 20%));
}

.webhavn-brand__slogan-art {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
}

.webhavn-brand__slogan-art img {
  display: block;
  width: min(600px, 100%);
  max-height: 80px;
  object-fit: contain;
  filter: drop-shadow(0 9px 19px rgb(0 0 0 / 20%));
}

.webhavn-brand__cta {
  display: inline-flex;
  min-height: 46px;
  gap: 8px;
  align-items: center;
  justify-content: center;
  padding: 10px 17px;
  color: var(--wh-navy-950);
  background: var(--wh-yellow-400);
  border: 1px solid rgb(255 255 255 / 20%);
  border-radius: 999px;
  box-shadow: 0 8px 22px rgb(0 0 0 / 14%);
  font-weight: 780;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.webhavn-brand__cta:hover,
.webhavn-brand__cta:focus-visible {
  color: var(--wh-navy-950);
  background: #f7e765;
  box-shadow: 0 12px 28px rgb(0 0 0 / 18%);
  transform: translateY(-1px);
}

.webhavn-header-extra:empty,
.webhavn-header-region:empty {
  display: none;
}

/* Navigation. */
.webhavn-navigation-shell {
  position: relative;
  z-index: 4;
  background: rgb(3 17 29 / 46%);
  border-top: 1px solid rgb(255 255 255 / 9%);
  backdrop-filter: blur(10px);
}

.webhavn-navigation-shell > .webhavn-container {
  position: relative;
}

.webhavn-menu-toggle {
  display: none;
  min-height: 44px;
  gap: 9px;
  align-items: center;
  justify-content: center;
  margin: 7px 0;
  padding: 8px 13px;
  color: #fff;
  background: rgb(255 255 255 / 10%);
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 10px;
  font: inherit;
  font-weight: 720;
  cursor: pointer;
}

.webhavn-menu-toggle__icon {
  font-size: 1.25rem;
  line-height: 1;
}

.webhavn-navigation {
  color: #fff;
  background: transparent;
}

.webhavn-navigation ul.menu {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  margin: 0;
  padding: 7px 0;
  list-style: none;
}

.webhavn-navigation li {
  margin: 0;
}

.webhavn-navigation a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 8px 12px;
  color: #f5faff;
  border-radius: 9px;
  font-weight: 680;
  text-decoration: none;
  transition: color 150ms ease, background 150ms ease;
}

.webhavn-navigation a:hover,
.webhavn-navigation a:focus-visible,
.webhavn-navigation a.is-active,
.webhavn-navigation .menu-item--active-trail > a {
  color: #fff;
  background: rgb(255 255 255 / 12%);
}

.webhavn-header-region {
  padding-block: 12px;
}

/* Main page shell. */
.webhavn-page-intro,
.webhavn-top-content,
.webhavn-highlighted,
.webhavn-promoted {
  margin-top: 20px;
}

.webhavn-banner {
  margin-top: 20px;
}

.webhavn-main {
  padding-block: 30px 52px;
}

.webhavn-layout {
  display: grid;
  grid-template-columns: minmax(185px, 230px) minmax(0, 1fr) minmax(210px, 270px);
  gap: 24px;
  align-items: start;
}

.webhavn-layout.no-left {
  grid-template-columns: minmax(0, 1fr) minmax(210px, 270px);
}

.webhavn-layout.no-right {
  grid-template-columns: minmax(185px, 230px) minmax(0, 1fr);
}

.webhavn-layout.no-left.no-right {
  grid-template-columns: minmax(0, 1fr);
}

.webhavn-content,
.webhavn-sidebar,
.webhavn-content .region,
.webhavn-sidebar .region {
  min-width: 0;
}

/* Breadcrumbs and messages. */
.breadcrumb {
  margin: 0 0 16px;
  color: var(--wh-muted);
  font-size: .9rem;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb li + li::before {
  margin-right: 7px;
  color: #9babb8;
  content: "/";
}

.messages {
  margin-bottom: 18px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--wh-border);
  border-left: 5px solid var(--wh-blue-500);
  border-radius: var(--wh-radius-md);
  box-shadow: var(--wh-shadow-sm);
}

.messages--status {
  border-left-color: var(--wh-success);
}

.messages--error {
  border-left-color: var(--wh-danger);
}

/* Cards / blocks. */
.webhavn-content .region-content > .block,
.webhavn-sidebar .block,
.webhavn-promoted .block,
.webhavn-top-content .block {
  min-width: 0;
  margin-bottom: 20px;
}

.webhavn-content .region-content > .block:not(.block-system-main-block),
.webhavn-sidebar .block,
.webhavn-promoted .block {
  padding: 20px;
  background: var(--wh-surface);
  border: 1px solid var(--wh-border);
  border-radius: var(--wh-radius-md);
  box-shadow: var(--wh-shadow-sm);
}

.webhavn-content .region-content > .block:not(.block-system-main-block) > h2,
.webhavn-sidebar .block > h2,
.webhavn-promoted .block > h2 {
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--wh-border);
  font-size: 1.17rem;
}

.webhavn-content .block-system-main-block {
  min-width: 0;
}

/* Front page cleanup and hierarchy. */
.path-frontpage #block-webhavn-breadcrumbs,
.path-frontpage #block-webhavn-content {
  display: none;
}

.path-frontpage #block-webhavn-homepagetitle,
.path-frontpage [id*="homepagetitle"] {
  position: relative;
  overflow: hidden;
  padding: clamp(26px, 4vw, 42px);
  color: #fff;
  background:
    radial-gradient(circle at 90% 10%, rgb(95 157 204 / 36%), transparent 34%),
    linear-gradient(125deg, var(--wh-navy-950), var(--wh-navy-700));
  border: 0;
  border-radius: var(--wh-radius-lg);
  box-shadow: var(--wh-shadow-md);
}

.path-frontpage #block-webhavn-homepagetitle h1,
.path-frontpage #block-webhavn-homepagetitle h2,
.path-frontpage #block-webhavn-homepagetitle h3,
.path-frontpage [id*="homepagetitle"] h1,
.path-frontpage [id*="homepagetitle"] h2,
.path-frontpage [id*="homepagetitle"] h3 {
  color: #fff;
}

.path-frontpage #block-webhavn-homepagetitle a,
.path-frontpage [id*="homepagetitle"] a {
  color: #fff;
}

.path-frontpage #block-webhavn-homepagecontent,
.path-frontpage [id*="homepagecontent"] {
  padding: clamp(22px, 3vw, 30px);
  background: #fff;
  border: 1px solid var(--wh-border);
  border-radius: var(--wh-radius-lg);
  box-shadow: var(--wh-shadow-sm);
}

/* Category front page grid, including the legacy category_block markup. */
#block-webhavn-categoryblock .content > ul,
[id*="categoryblock"] .content > ul,
#block-webhavn-categoryblock ul:first-child,
[id*="categoryblock"] ul:first-child {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#block-webhavn-categoryblock li.parent-terms,
[id*="categoryblock"] li.parent-terms {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#block-webhavn-categoryblock li.parent-terms > a,
[id*="categoryblock"] li.parent-terms > a {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  padding: 14px 15px;
  color: var(--wh-text);
  background: var(--wh-surface-soft);
  border: 1px solid transparent;
  border-radius: 11px;
  font-weight: 720;
  text-decoration: none;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

#block-webhavn-categoryblock li.parent-terms > a:hover,
#block-webhavn-categoryblock li.parent-terms > a:focus-visible,
[id*="categoryblock"] li.parent-terms > a:hover,
[id*="categoryblock"] li.parent-terms > a:focus-visible {
  color: var(--wh-navy-950);
  background: #fff;
  border-color: var(--wh-border-strong);
  box-shadow: var(--wh-shadow-sm);
  transform: translateY(-1px);
}

/* Generic Views / link cards. */
.webhavn-content .views-row {
  position: relative;
  margin-bottom: 13px;
  padding: 17px 18px;
  background: var(--wh-surface);
  border: 1px solid var(--wh-border);
  border-radius: 12px;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.webhavn-content .views-row:hover {
  border-color: var(--wh-border-strong);
  box-shadow: var(--wh-shadow-sm);
  transform: translateY(-1px);
}

.webhavn-content .views-field-title,
.webhavn-content .views-field-title a {
  font-weight: 740;
}

.webhavn-content .views-field-title a {
  color: var(--wh-link);
}

/* Tag cloud should stay compact instead of becoming a stack of cards. */
.view-popular-view-tag .view-content {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.view-popular-view-tag .views-row,
.webhavn-content .view-popular-view-tag .views-row {
  display: inline-flex;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  transform: none;
}

.view-popular-view-tag .views-field-name {
  float: none !important;
  margin: 0 !important;
}

.view-popular-view-tag .views-field-name a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 6px 10px;
  color: var(--wh-navy-800);
  background: var(--wh-surface-soft);
  border: 1px solid var(--wh-border);
  border-radius: 999px;
  font-size: .9rem;
  text-decoration: none;
}

.view-popular-view-tag .views-field-name a:hover,
.view-popular-view-tag .views-field-name a:focus-visible {
  background: #fff;
  border-color: var(--wh-border-strong);
}

/* Sidebar treatments. */
.webhavn-sidebar .item-list ul,
.webhavn-sidebar ul:not(.menu):not(.contextual-links) {
  margin: 0;
  padding: 0;
  list-style: none;
}

.webhavn-sidebar .item-list li,
.webhavn-sidebar li:not(.menu-item) {
  margin: 0;
  padding: 8px 0;
  border-bottom: 1px solid #e8eef3;
}

.webhavn-sidebar .item-list li:last-child,
.webhavn-sidebar li:not(.menu-item):last-child {
  border-bottom: 0;
}

#block-webhavn-totalcountblock,
[id*="totalcountblock"] {
  color: #eaf5fc;
  background: linear-gradient(145deg, var(--wh-navy-900), var(--wh-navy-700));
  border: 0;
  box-shadow: var(--wh-shadow-md);
}

#block-webhavn-totalcountblock h2,
#block-webhavn-totalcountblock h3,
[id*="totalcountblock"] h2,
[id*="totalcountblock"] h3 {
  color: #fff;
  border-color: rgb(255 255 255 / 14%);
}

#block-webhavn-totalcountblock a,
[id*="totalcountblock"] a {
  color: #fff;
}

/* Forms, especially /tilmeld. */
form {
  max-width: 100%;
}

.form-item,
.form-actions,
fieldset,
details {
  margin-block: 0 20px;
}

label,
.form-item__label,
fieldset > legend {
  display: block;
  margin-bottom: 7px;
  color: var(--wh-navy-950);
  font-weight: 720;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="password"],
input[type="number"],
input[type="tel"],
select,
textarea {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  color: var(--wh-text);
  background: #fff;
  border: 1px solid #b9cbd8;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgb(8 32 54 / 4%) inset;
  font: inherit;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

textarea {
  min-height: 180px;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--wh-blue-500);
  outline: none;
  box-shadow: 0 0 0 3px rgb(50 137 189 / 16%);
}

.description,
.form-item__description {
  margin-top: 6px;
  color: var(--wh-muted);
  font-size: .9rem;
}

fieldset,
details {
  padding: 16px;
  background: #fff;
  border: 1px solid var(--wh-border);
  border-radius: var(--wh-radius-md);
}

details > summary {
  cursor: pointer;
  font-weight: 720;
}

button,
.button,
input[type="submit"],
input[type="button"] {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 9px 16px;
  color: #fff;
  background: var(--wh-navy-700);
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  font: inherit;
  font-weight: 720;
  text-decoration: none;
  transition: background 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

button:hover,
.button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
  color: #fff;
  background: var(--wh-navy-900);
  box-shadow: var(--wh-shadow-sm);
  transform: translateY(-1px);
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.ck-editor,
.text-format-wrapper {
  max-width: 100%;
}

/* Search. */
.block-search form,
.search-form {
  display: flex;
  gap: 8px;
  align-items: stretch;
}

.block-search input[type="search"],
.search-form input[type="search"] {
  min-width: 0;
}

/* Individual weblink pages. */
.node--type-weblink {
  overflow-wrap: anywhere;
}

.node--type-weblink .field {
  margin-bottom: 17px;
}

.node--type-weblink .field__label {
  margin-bottom: 5px;
  color: var(--wh-muted);
  font-size: .82rem;
  font-weight: 760;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.node--type-weblink .field--type-link a {
  display: inline-flex;
  min-height: 42px;
  gap: 8px;
  align-items: center;
  padding: 9px 13px;
  color: #fff;
  background: var(--wh-navy-700);
  border-radius: 9px;
  font-weight: 720;
  text-decoration: none;
}

.node--type-weblink .field--type-link a:hover,
.node--type-weblink .field--type-link a:focus-visible {
  color: #fff;
  background: var(--wh-navy-900);
}

/* Tables / pager. */
table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

th,
td {
  padding: 10px 11px;
  border-bottom: 1px solid var(--wh-border);
  text-align: left;
  vertical-align: top;
}

th {
  color: var(--wh-navy-900);
  background: var(--wh-surface-soft);
  font-size: .9rem;
  font-weight: 760;
}

.pager__items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.pager__item a,
.pager__item.is-active {
  display: inline-flex;
  min-width: 40px;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 7px 11px;
  background: #fff;
  border: 1px solid var(--wh-border);
  border-radius: 9px;
  text-decoration: none;
}

.pager__item.is-active {
  color: #fff;
  background: var(--wh-navy-700);
  border-color: var(--wh-navy-700);
  font-weight: 760;
}

/* Footer. */
.webhavn-footer {
  margin-top: 20px;
  color: #cbd9e4;
  background: var(--wh-navy-950);
  border-top: 4px solid var(--wh-navy-700);
}

.webhavn-footer a {
  color: #eff8ff;
}

.webhavn-footer a:hover,
.webhavn-footer a:focus-visible {
  color: var(--wh-yellow-400);
}

.webhavn-footer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  padding-block: 34px;
}

.webhavn-footer .block {
  min-width: 0;
}

.webhavn-footer .webhavn-brand {
  display: block;
}

.webhavn-footer .webhavn-brand__logo {
  width: min(220px, 100%);
}

.webhavn-footer .webhavn-brand__slogan-art,
.webhavn-footer .webhavn-brand__cta {
  display: none;
}

.webhavn-subfooter {
  padding-block: 14px;
  border-top: 1px solid rgb(255 255 255 / 12%);
  font-size: .9rem;
}

/* EU Cookie Compliance / GDPR: branded bottom sheet, not a giant overlay. */
#sliding-popup,
.eu-cookie-compliance-banner,
.eu-cookie-compliance-popup-open {
  font-family: inherit;
}

#sliding-popup {
  right: 14px !important;
  left: auto !important;
  width: min(calc(100% - 28px), 1000px) !important;
  max-height: calc(100vh - 28px);
  overflow: auto;
  color: var(--wh-text) !important;
  background: #fff !important;
  border: 1px solid var(--wh-border) !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 72px rgb(4 21 37 / 30%) !important;
}

#sliding-popup .eu-cookie-compliance-banner,
#sliding-popup .popup-content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 20px 22px !important;
  color: var(--wh-text) !important;
  background: transparent !important;
}

#sliding-popup .popup-content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px 22px;
  align-items: center;
}

#sliding-popup .eu-cookie-compliance-message {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

#sliding-popup .eu-cookie-compliance-message h1,
#sliding-popup .eu-cookie-compliance-message h2,
#sliding-popup .eu-cookie-compliance-message h3 {
  margin: 0 0 6px !important;
  color: var(--wh-navy-950) !important;
  font-size: 1.08rem !important;
  line-height: 1.28 !important;
}

#sliding-popup .eu-cookie-compliance-message p {
  margin: 0 !important;
  color: var(--wh-muted) !important;
  font-size: .92rem !important;
  line-height: 1.52 !important;
}

#sliding-popup .eu-cookie-compliance-message a {
  color: var(--wh-link) !important;
  font-weight: 680;
}

#sliding-popup .eu-cookie-compliance-buttons {
  display: flex !important;
  float: none !important;
  width: auto !important;
  max-width: none !important;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  margin: 0 !important;
}

#sliding-popup .eu-cookie-compliance-categories {
  grid-column: 1 / -1;
  width: 100% !important;
  margin: 0 !important;
  color: var(--wh-text) !important;
}

#sliding-popup .eu-cookie-compliance-category {
  color: var(--wh-text) !important;
}

#sliding-popup .eu-cookie-compliance-category label {
  color: var(--wh-text) !important;
}

#sliding-popup button,
#sliding-popup .agree-button,
#sliding-popup .decline-button,
#sliding-popup .find-more-button,
#sliding-popup .eu-cookie-compliance-default-button,
#sliding-popup .eu-cookie-compliance-secondary-button,
#sliding-popup .eu-cookie-compliance-save-preferences-button {
  min-height: 42px !important;
  margin: 0 !important;
  padding: 8px 14px !important;
  color: #fff !important;
  background: var(--wh-navy-700) !important;
  border: 1px solid var(--wh-navy-700) !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  font: inherit !important;
  font-size: .9rem !important;
  font-weight: 720 !important;
  text-shadow: none !important;
}

#sliding-popup .decline-button,
#sliding-popup .eu-cookie-compliance-secondary-button,
#sliding-popup .find-more-button,
#sliding-popup .reject-button {
  color: var(--wh-navy-800) !important;
  background: #fff !important;
  border-color: var(--wh-border-strong) !important;
}

#sliding-popup button:hover,
#sliding-popup button:focus-visible,
#sliding-popup .agree-button:hover,
#sliding-popup .agree-button:focus-visible {
  color: #fff !important;
  background: var(--wh-navy-900) !important;
  border-color: var(--wh-navy-900) !important;
}

#sliding-popup .decline-button:hover,
#sliding-popup .eu-cookie-compliance-secondary-button:hover,
#sliding-popup .find-more-button:hover,
#sliding-popup .reject-button:hover {
  color: var(--wh-navy-950) !important;
  background: var(--wh-surface-soft) !important;
}

.eu-cookie-withdraw-tab,
.eu-cookie-withdraw-button {
  color: #fff !important;
  background: var(--wh-navy-700) !important;
  border: 0 !important;
  border-radius: 10px 10px 0 0 !important;
  box-shadow: var(--wh-shadow-sm) !important;
}

/* Legacy selectors: neutralise old Bootstrap floats while retaining content. */
li.parent-terms.col-sm-4,
.col-sm-4.parent-terms,
.col-md-6.views-row {
  float: none;
}

.view-empty,
.feed-icons,
button.link.tabledrag-toggle-weight {
  display: none;
}

/* Responsive. */
@media (max-width: 1120px) {
  .webhavn-brand {
    grid-template-columns: minmax(210px, 280px) minmax(300px, 1fr);
  }

  .webhavn-brand__cta {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .webhavn-layout,
  .webhavn-layout.no-left,
  .webhavn-layout.no-right {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  }

  .webhavn-content {
    order: 1;
  }

  .webhavn-sidebar-first {
    order: 2;
  }

  .webhavn-sidebar-second {
    order: 3;
  }

  .webhavn-layout:not(.no-left):not(.no-right) .webhavn-sidebar-first {
    grid-column: 2;
  }

  .webhavn-layout:not(.no-left):not(.no-right) .webhavn-sidebar-second {
    grid-column: 2;
  }

  .webhavn-layout:not(.no-left):not(.no-right) .webhavn-content {
    grid-row: 1 / span 2;
  }

  .webhavn-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .webhavn-container {
    width: min(calc(100% - 24px), var(--wh-container));
  }

  .webhavn-header-grid {
    min-height: auto;
    grid-template-columns: 1fr;
    padding-block: 16px;
  }

  .webhavn-brand {
    grid-template-columns: minmax(180px, 245px) minmax(0, 1fr);
    gap: 16px 22px;
  }

  .webhavn-brand__cta {
    grid-column: 1 / -1;
  }

  .webhavn-menu-toggle {
    display: inline-flex;
  }

  .webhavn-header.webhavn-nav-enhanced .webhavn-navigation {
    display: none;
  }

  .webhavn-header.webhavn-nav-enhanced .webhavn-navigation.is-open {
    display: block;
  }

  .webhavn-navigation ul.menu {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0 0 10px;
  }

  .webhavn-navigation a {
    display: flex;
    width: 100%;
  }

  .webhavn-layout,
  .webhavn-layout.no-left,
  .webhavn-layout.no-right,
  .webhavn-layout.no-left.no-right {
    grid-template-columns: minmax(0, 1fr);
  }

  .webhavn-layout .webhavn-content,
  .webhavn-layout .webhavn-sidebar-first,
  .webhavn-layout .webhavn-sidebar-second {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .webhavn-content {
    order: 1;
  }

  .webhavn-sidebar-first {
    order: 2;
  }

  .webhavn-sidebar-second {
    order: 3;
  }

  #block-webhavn-categoryblock .content > ul,
  [id*="categoryblock"] .content > ul,
  #block-webhavn-categoryblock ul:first-child,
  [id*="categoryblock"] ul:first-child {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #sliding-popup .popup-content {
    grid-template-columns: 1fr;
  }

  #sliding-popup .eu-cookie-compliance-buttons {
    justify-content: flex-start;
  }
}

@media (max-width: 600px) {
  .webhavn-brand {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .webhavn-brand__logo {
    width: min(250px, 78vw);
  }

  .webhavn-brand__slogan-art {
    justify-content: flex-start;
  }

  .webhavn-brand__slogan-art img {
    width: min(520px, 100%);
  }

  .webhavn-brand__cta {
    grid-column: auto;
    width: 100%;
  }

  .webhavn-navigation ul.menu {
    grid-template-columns: 1fr;
  }

  .webhavn-content .region-content > .block:not(.block-system-main-block),
  .webhavn-sidebar .block,
  .webhavn-promoted .block {
    padding: 17px;
  }

  #block-webhavn-categoryblock .content > ul,
  [id*="categoryblock"] .content > ul,
  #block-webhavn-categoryblock ul:first-child,
  [id*="categoryblock"] ul:first-child {
    grid-template-columns: 1fr;
  }

  .block-search form,
  .search-form {
    flex-direction: column;
  }

  .webhavn-footer-grid {
    grid-template-columns: 1fr;
  }

  .webhavn-split {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }

  #sliding-popup {
    right: 8px !important;
    width: calc(100% - 16px) !important;
    max-height: calc(100vh - 16px);
  }

  #sliding-popup .eu-cookie-compliance-banner,
  #sliding-popup .popup-content {
    padding: 16px !important;
  }

  #sliding-popup .eu-cookie-compliance-buttons {
    display: grid !important;
    grid-template-columns: 1fr;
    width: 100% !important;
  }

  #sliding-popup button,
  #sliding-popup .agree-button,
  #sliding-popup .decline-button,
  #sliding-popup .find-more-button,
  #sliding-popup .eu-cookie-compliance-default-button,
  #sliding-popup .eu-cookie-compliance-secondary-button,
  #sliding-popup .eu-cookie-compliance-save-preferences-button {
    width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Webhavn design v1.2.0 - popular tags wrap + wider footer content. */
#block-webhavn-views-block-popular-view-tag-block-1 .view-content {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
}
#block-webhavn-views-block-popular-view-tag-block-1 .views-row {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
#block-webhavn-views-block-popular-view-tag-block-1 .views-field-name {
  float: none !important;
  margin: 0 !important;
}
@media (min-width: 1051px) {
  .webhavn-footer-grid {
    grid-template-columns: minmax(180px, 1fr) minmax(0, 3fr);
  }
}

/* Webhavn design v1.3.0 - modern /tilmeld form, styling only. */
#node-weblink-form {
  width: 100%;
  max-width: 920px;
  margin: 0 auto 28px;
  padding: clamp(18px, 3vw, 30px);
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
  border: 1px solid var(--wh-border);
  border-radius: 18px;
  box-shadow: var(--wh-shadow-sm);
}
#node-weblink-form > .form-wrapper {
  margin-block: 0 18px;
}
#node-weblink-form label,
#node-weblink-form .form-item__label {
  margin-bottom: 8px;
  font-size: .96rem;
  font-weight: 760;
}
#node-weblink-form input[type="text"],
#node-weblink-form input[type="url"],
#node-weblink-form select,
#node-weblink-form textarea {
  background: #fff;
  border-radius: 10px;
}
#node-weblink-form textarea {
  min-height: 220px;
}
#node-weblink-form .description,
#node-weblink-form .form-item__description {
  margin-top: 8px;
  padding: 10px 12px;
  background: #f1f7fb;
  border-left: 3px solid var(--wh-blue-500);
  border-radius: 8px;
  line-height: 1.5;
}
#node-weblink-form .description ul,
#node-weblink-form .form-item__description ul {
  margin: 0;
  padding-left: 18px;
}
#node-weblink-form .form-actions {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--wh-border);
}
#node-weblink-form .form-actions .button--primary {
  min-width: 150px;
}
#node-weblink-form .form-actions .button:not(.button--primary) {
  color: var(--wh-navy-900);
  background: #eaf2f7;
}
#node-weblink-form .form-actions .button:not(.button--primary):hover,
#node-weblink-form .form-actions .button:not(.button--primary):focus-visible {
  color: #fff;
  background: var(--wh-navy-900);
}
@media (max-width: 700px) {
  #node-weblink-form {
    padding: 16px;
    border-radius: 14px;
  }
  #node-weblink-form .form-actions .button {
    width: 100%;
  }
}

/* Webhavn design v1.5.0 - homepage link lists. */
#block-webhavn-views-block-toplinks-block-3 .views-element-container > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
#block-webhavn-views-block-toplinks-block-3 .views-row {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
#block-webhavn-views-block-toplinks-block-3 .views-field-title a {
  display: flex;
  min-height: 52px;
  align-items: center;
  padding: 12px 14px;
  color: var(--wh-link);
  background: #fff;
  border: 1px solid var(--wh-border);
  border-radius: 11px;
  font-weight: 740;
  line-height: 1.35;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease, background 150ms ease;
}
#block-webhavn-views-block-toplinks-block-3 .views-field-title a:hover,
#block-webhavn-views-block-toplinks-block-3 .views-field-title a:focus-visible {
  background: #f8fbfd;
  border-color: var(--wh-border-strong);
  box-shadow: var(--wh-shadow-sm);
  transform: translateY(-1px);
}
#block-webhavn-views-block-toplinks-block-2 .item-list ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
#block-webhavn-views-block-toplinks-block-2 .item-list li {
  margin: 0;
  padding: 0;
  list-style: none;
}
#block-webhavn-views-block-toplinks-block-2 .item-list li::marker {
  content: '';
}
#block-webhavn-views-block-toplinks-block-2 .views-field-title a {
  display: block;
  padding: 10px 11px;
  color: var(--wh-link);
  background: #fff;
  border: 1px solid var(--wh-border);
  border-radius: 9px;
  font-weight: 680;
  line-height: 1.38;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
#block-webhavn-views-block-toplinks-block-2 .views-field-title a:hover,
#block-webhavn-views-block-toplinks-block-2 .views-field-title a:focus-visible {
  background: #f8fbfd;
  border-color: var(--wh-border-strong);
  box-shadow: var(--wh-shadow-sm);
}
@media (max-width: 700px) {
  #block-webhavn-views-block-toplinks-block-3 .views-element-container > div {
    grid-template-columns: 1fr;
  }
}

/* Webhavn design v1.6.0 - category name and count inside one card. */
#block-webhavn-categoryblock li.parent-terms {
  display: flex !important;
  min-height: 62px;
  align-items: center;
  gap: 4px;
  padding: 14px 15px !important;
  background: var(--wh-surface-soft);
  border: 1px solid transparent;
  border-radius: 11px;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}
#block-webhavn-categoryblock li.parent-terms > a {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  color: var(--wh-text);
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-weight: 720;
  text-decoration: none;
  transform: none !important;
}
#block-webhavn-categoryblock li.parent-terms > span {
  display: inline !important;
  flex: 0 0 auto;
  margin: 0;
  color: var(--wh-muted);
  font-size: .92rem;
  font-weight: 680;
  white-space: nowrap;
}
#block-webhavn-categoryblock li.parent-terms:hover,
#block-webhavn-categoryblock li.parent-terms:focus-within {
  background: #fff;
  border-color: var(--wh-border-strong);
  box-shadow: var(--wh-shadow-sm);
  transform: translateY(-1px);
}
#block-webhavn-categoryblock li.parent-terms > a:hover,
#block-webhavn-categoryblock li.parent-terms > a:focus-visible {
  color: var(--wh-navy-950);
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Webhavn design v1.7.0 - compact responsive search block. */
#block-webhavn-search form,
#block-webhavn-search #search-block-form {
  display: flex;
  gap: 8px;
  align-items: stretch;
  margin: 0;
}
#block-webhavn-search .form-item {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 !important;
}
#block-webhavn-search input[type="search"],
#block-webhavn-search input[name="keys"] {
  width: 100%;
  min-height: 46px;
  margin: 0;
  padding: 10px 12px;
  color: var(--wh-text);
  background: #fff;
  border: 1px solid var(--wh-border-strong);
  border-radius: 10px;
  box-shadow: inset 0 1px 2px rgb(4 21 37 / 4%);
}
#block-webhavn-search input[type="search"]:focus,
#block-webhavn-search input[name="keys"]:focus {
  border-color: var(--wh-navy-700);
  outline: 3px solid rgb(36 83 122 / 14%);
  outline-offset: 1px;
}
#block-webhavn-search input[type="submit"],
#block-webhavn-search button[type="submit"] {
  flex: 0 0 auto;
  min-height: 46px;
  margin: 0;
  padding: 9px 15px;
  color: #fff;
  background: var(--wh-navy-700);
  border: 1px solid var(--wh-navy-700);
  border-radius: 10px;
  box-shadow: none;
  font: inherit;
  font-weight: 760;
  cursor: pointer;
}
#block-webhavn-search input[type="submit"]:hover,
#block-webhavn-search input[type="submit"]:focus-visible,
#block-webhavn-search button[type="submit"]:hover,
#block-webhavn-search button[type="submit"]:focus-visible {
  background: var(--wh-navy-900);
  border-color: var(--wh-navy-900);
}
@media (max-width: 700px) {
  #block-webhavn-search form,
  #block-webhavn-search #search-block-form {
    flex-direction: column;
  }
  #block-webhavn-search input[type="submit"],
  #block-webhavn-search button[type="submit"] {
    width: 100%;
  }
}

/* Webhavn design v1.8.0 - consistent sidebar Toplinks cards. */
#block-webhavn-views-block-toplinks-block-1 .item-list ul,
#block-webhavn-views-block-toplinks-block-4 .item-list ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
#block-webhavn-views-block-toplinks-block-1 .item-list li,
#block-webhavn-views-block-toplinks-block-1 .views-row,
#block-webhavn-views-block-toplinks-block-4 .item-list li,
#block-webhavn-views-block-toplinks-block-4 .views-row {
  margin: 0;
  padding: 10px 12px;
  background: var(--wh-surface-soft);
  border: 1px solid transparent;
  border-radius: 10px;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}
#block-webhavn-views-block-toplinks-block-1 .item-list li:hover,
#block-webhavn-views-block-toplinks-block-1 .views-row:hover,
#block-webhavn-views-block-toplinks-block-4 .item-list li:hover,
#block-webhavn-views-block-toplinks-block-4 .views-row:hover {
  background: #fff;
  border-color: var(--wh-border-strong);
  box-shadow: var(--wh-shadow-sm);
  transform: translateY(-1px);
}
#block-webhavn-views-block-toplinks-block-1 a,
#block-webhavn-views-block-toplinks-block-4 a {
  color: var(--wh-link);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
}
#block-webhavn-views-block-toplinks-block-1 a:hover,
#block-webhavn-views-block-toplinks-block-1 a:focus-visible,
#block-webhavn-views-block-toplinks-block-4 a:hover,
#block-webhavn-views-block-toplinks-block-4 a:focus-visible {
  color: var(--wh-navy-950);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Webhavn design v1.9.0 - sidebar heading spacing from visual QA. */
#block-webhavn-views-block-toplinks-block-1 h2,
#block-webhavn-views-block-toplinks-block-2 > h2 {
  margin: 28px 0 4px !important;
}

/* Webhavn design v2.0.0 - total count inner spacing. */
#block-webhavn-totalcountblock .content > p {
  padding-left: 10px;
  padding-right: 8px;
}

/* Webhavn design v2.2.0 - consistent section heading spacing. */
#block-webhavn-categoryblock h2,
#block-webhavn-views-block-toplinks-block-3 h2,
#block-webhavn-views-block-popular-view-tag-block-1 h2,
#block-webhavn-search h2,
#block-webhavn-tools h2,
#block-webhavn-views-block-toplinks-block-4 h2 {
  margin: 28px 0 4px !important;
}
