/*
Theme Name: Studio Pampas
Theme URI: https://studiopampas.be/
Author: Studio Pampas
Description: Licht maatwerkthema voor websites die hun inhoud beheren met Studio Pampas Core.
Version: 1.13.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: studio-pampas
*/

:root {
  --sp-color-text: #1f2428;
  --sp-color-muted: #667078;
  --sp-color-background: #fff;
  --sp-color-surface: #f4f1ec;
  --sp-color-accent: #b63b32;
  --sp-color-primary: #b63b32;
  --sp-color-secondary: #1f2428;
  --sp-color-on-primary: #fff;
  --sp-color-on-dark: #fff;
  --sp-color-focus: #175cd3;
  --sp-color-border: #d7dadd;
  --sp-font-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --sp-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --sp-size-body: 17px;
  --sp-line-height-body: 1.65;
  --sp-heading-max: 5.5rem;
  --sp-content-width: 1200px;
  --sp-reading-width: 760px;
  --sp-radius: 4px;
  --sp-shadow: 0 18px 50px rgb(31 36 40 / 10%);
  --sp-space-section: clamp(4rem, 8vw, 8rem);
}

.sp-section-anchor,
.sp-home-hero,
.sp-highlights,
.sp-home-video {
  scroll-margin-top: 7rem;
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--sp-color-text);
  background: var(--sp-color-background);
  font-family: var(--sp-font-body);
  font-size: var(--sp-size-body);
  line-height: var(--sp-line-height-body);
}

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

a {
  color: var(--sp-color-accent);
}

a:hover {
  text-decoration-thickness: 2px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--sp-font-heading);
}

:focus-visible {
  outline: 3px solid var(--sp-color-focus);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sp-skip-link {
  position: fixed;
  z-index: 100000;
  top: 10px;
  left: 10px;
  padding: .75rem 1rem;
  transform: translateY(-160%);
  background: #fff;
  color: #000;
  font-weight: 700;
}

.sp-skip-link:focus {
  transform: translateY(0);
}

.sp-container {
  width: min(calc(100% - 40px), var(--sp-content-width));
  margin-inline: auto;
}

.sp-reading-width {
  width: min(calc(100% - 40px), var(--sp-reading-width));
  margin-inline: auto;
}

.sp-site-header {
  position: relative;
  z-index: 100;
  border-bottom: 1px solid var(--sp-color-border);
  background: var(--sp-color-background);
}

.sp-has-sticky-header .sp-site-header {
  position: sticky;
  top: 0;
}

.admin-bar.sp-has-sticky-header .sp-site-header {
  top: 32px;
}

.sp-site-header__inner {
  display: flex;
  width: min(calc(100% - 40px), 1600px);
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.sp-header--centered .sp-site-header__inner {
  min-height: 118px;
  flex-direction: column;
  justify-content: center;
  gap: .8rem;
  padding-block: 1rem;
}

.sp-site-header__cta .sp-button {
  margin-top: 0;
  white-space: nowrap;
}

.sp-site-branding a {
  display: inline-flex;
  align-items: center;
  color: var(--sp-color-text);
  font-size: 1.2rem;
  font-weight: 800;
  text-decoration: none;
}

.sp-site-branding {
  flex: 0 1 auto;
  min-width: 0;
}

.sp-site-branding .sp-brand-logo-link,
.sp-site-footer__brand .sp-brand-logo-link,
.sp-site-branding .custom-logo-link,
.sp-site-footer__brand .custom-logo-link {
  display: inline-flex;
  align-items: center;
}

.sp-site-branding img,
.sp-site-footer__brand img {
  display: block;
  width: auto;
  height: auto;
  object-fit: contain;
}

.sp-site-branding img {
  max-width: min(28vw, 240px);
  max-height: 54px;
}

.sp-header-logo--small .sp-site-branding img { max-width: min(24vw, 180px); max-height: 42px; }
.sp-header-logo--large .sp-site-branding img { max-width: min(32vw, 300px); max-height: 66px; }

.sp-site-footer__brand img { max-width: 220px; max-height: 72px; }
.sp-footer-logo--small .sp-site-footer__brand img { max-width: 170px; max-height: 54px; }
.sp-footer-logo--large .sp-site-footer__brand img { max-width: 270px; max-height: 90px; }

.sp-primary-navigation {
  min-width: 0;
  margin-left: clamp(2rem, 4vw, 5rem);
}

.sp-primary-navigation__top,
.sp-primary-navigation__actions { display: none; }
body.sp-menu-is-open { overflow: hidden; }

.sp-site-header__tools,
.sp-header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .35rem;
}

.sp-site-header__tools { margin-left: auto; }

.sp-header-action {
  position: relative;
  display: inline-grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 999px;
  color: var(--sp-color-text);
  text-decoration: none;
}

.sp-header-actions .sp-header-action,
.sp-primary-navigation__actions .sp-header-action,
.sp-header-actions .sp-wishlist-menu-link,
.sp-primary-navigation__actions .sp-wishlist-menu-link {
  display: inline-flex !important;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
}

.sp-header-action:hover,
.sp-header-action:focus-visible { background: var(--sp-color-surface); color: var(--sp-color-accent); }
.sp-header-action svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sp-header-action__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sp-header-actions .sp-shop-cart-link__text,
.sp-header-actions .sp-wishlist-menu-link__text { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.sp-header-action__count { position: absolute; top: 1px; right: 0; display: grid; min-width: 18px; height: 18px; place-items: center; padding: 0 4px; border: 2px solid var(--sp-color-background); border-radius: 999px; background: var(--sp-color-accent); color: var(--sp-color-on-primary); font-size: 10px; font-weight: 800; line-height: 1; }
.sp-header-action__count.is-empty { display: none; }

.sp-menu-toggle {
  display: none;
  padding: .65rem .8rem;
  border: 1px solid currentcolor;
  background: transparent;
  color: var(--sp-color-text);
  font: inherit;
  font-weight: 700;
}
.sp-menu-toggle__icon { display: grid; width: 22px; gap: 4px; }
.sp-menu-toggle__icon span { display: block; height: 2px; background: currentcolor; }
.sp-menu-toggle__text { margin-left: .5rem; }
.sp-menu-close { display: none; }

.sp-primary-menu {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2.25rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.sp-primary-menu a {
  color: var(--sp-color-text);
  font-weight: 650;
  text-decoration: none;
}

.sp-primary-menu > .menu-item > a {
  white-space: nowrap;
}

.sp-site-header.is-menu-collapsed .sp-menu-toggle { display: inline-flex; }
.sp-site-header.is-menu-collapsed .sp-primary-navigation { position: fixed; z-index: 1000; inset: 0; display: none; overflow-y: auto; padding: clamp(1.25rem, 4vw, 3rem); background: var(--sp-color-background); }
.sp-site-header.is-menu-collapsed .sp-primary-navigation { margin-left: 0; }
.sp-site-header.is-menu-collapsed .sp-primary-navigation.is-open { display: flex; flex-direction: column; }
.sp-site-header.is-menu-collapsed .sp-primary-navigation__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(2rem, 7vh, 5rem); }
.sp-site-header.is-menu-collapsed .sp-primary-navigation__actions { display: flex; align-items: center; gap: .1rem; margin-left: auto; }
.sp-site-header.is-menu-collapsed .sp-menu-close { margin-left: .65rem; }
.sp-site-header.is-menu-collapsed .sp-primary-navigation__title { font-family: var(--sp-font-heading); font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; }
.sp-site-header.is-menu-collapsed .sp-menu-close { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid var(--sp-color-border); border-radius: 999px; background: transparent; color: var(--sp-color-text); font-size: 2rem; line-height: 1; }
.sp-site-header.is-menu-collapsed .sp-primary-menu { align-items: stretch; flex-direction: column; gap: 0; }
.sp-site-header.is-menu-collapsed .sp-primary-menu a { display: block; padding: .55rem 0; font-family: var(--sp-font-heading); font-size: clamp(1.65rem, 5vw, 3.5rem); line-height: 1.15; white-space: normal; }
.sp-site-header.is-menu-collapsed .sp-primary-menu .sub-menu { position: static; display: block; min-width: 0; margin: 0 0 .5rem 1rem; padding: 0 0 0 1rem; transform: none; border: 0; border-left: 2px solid var(--sp-color-border); border-radius: 0; box-shadow: none; }
.sp-site-header.is-menu-collapsed .sp-primary-menu .sub-menu a { padding: .55rem 0; font-size: clamp(1rem, 2.5vw, 1.35rem); white-space: normal; }
.sp-site-header.is-menu-collapsed .sp-primary-menu > .sp-menu-item--highlighted { order: 99; margin-top: clamp(1.5rem, 5vh, 3rem); }
.sp-site-header.is-menu-collapsed .sp-primary-menu > .sp-menu-item--highlighted > a { display: flex; min-height: 74px; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-radius: var(--sp-radius); background: var(--sp-color-accent); color: var(--sp-color-on-primary); font-size: clamp(1.25rem, 3vw, 1.75rem); }
.sp-site-header.is-menu-collapsed .sp-primary-menu > .sp-menu-item--highlighted > a::after { content: "\2192"; }

.sp-primary-menu > .menu-item { position: relative; }
.sp-primary-menu .sub-menu { position: absolute; z-index: 20; top: calc(100% + .75rem); left: 50%; display: none; min-width: 220px; margin: 0; padding: .55rem; transform: translateX(-50%); border: 1px solid var(--sp-color-border); border-radius: var(--sp-radius); background: var(--sp-color-background); box-shadow: var(--sp-shadow); list-style: none; }
.sp-primary-menu .sub-menu::before { position: absolute; right: 0; bottom: 100%; left: 0; height: .8rem; content: ""; }
.sp-primary-menu .menu-item:hover > .sub-menu, .sp-primary-menu .menu-item:focus-within > .sub-menu { display: block; }
.sp-primary-menu .sub-menu a { display: block; padding: .7rem .85rem; border-radius: max(2px, calc(var(--sp-radius) / 2)); white-space: nowrap; }
.sp-primary-menu .sub-menu a:hover, .sp-primary-menu .sub-menu a:focus-visible { background: var(--sp-color-surface); }

.sp-primary-menu .current-menu-item > a,
.sp-primary-menu a:hover {
  color: var(--sp-color-accent);
}

.sp-main {
  min-height: 60vh;
}

.sp-section {
  padding-block: var(--sp-space-section);
}

.sp-section--surface {
  background: var(--sp-color-surface);
}

.sp-home-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}

.sp-home-hero__grid--text-only {
  grid-template-columns: minmax(0, 820px);
}

.sp-eyebrow {
  margin: 0 0 .75rem;
  color: var(--sp-color-accent);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.sp-home-hero__title,
.sp-page-header__title {
  margin: 0 0 1.25rem;
  font-family: var(--sp-font-heading);
  font-size: clamp(2.4rem, 6vw, var(--sp-heading-max));
  line-height: .98;
  text-wrap: balance;
}

.sp-home-hero__text {
  max-width: 62ch;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
}

.sp-home-hero__text > :first-child,
.sp-entry-content > :first-child {
  margin-top: 0;
}

.sp-home-hero__text > :last-child,
.sp-entry-content > :last-child {
  margin-bottom: 0;
}

.sp-button {
  display: inline-flex;
  margin-top: 1.5rem;
  padding: .9rem 1.25rem;
  border: 2px solid var(--sp-color-primary);
  border-radius: var(--sp-radius);
  background: var(--sp-color-primary);
  color: var(--sp-color-on-primary);
  font-weight: 750;
  text-decoration: none;
}

.sp-button:hover {
  background: transparent;
  color: var(--sp-color-primary);
}

.sp-home-hero__media img {
  display: block;
  width: 100%;
  border-radius: var(--sp-radius);
  box-shadow: var(--sp-shadow);
}

.sp-video__embed {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #000;
}

.sp-video__embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.sp-video__transcript {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgb(31 36 40 / 18%);
}

.sp-video__transcript summary {
  cursor: pointer;
  font-weight: 750;
}

.sp-video__fallback {
  padding: 1rem;
  border-left: 4px solid var(--sp-color-accent);
  background: var(--sp-color-surface);
}

.sp-map {
  margin-top: 1.5rem;
}

.sp-map__embed {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: var(--sp-radius);
}

.sp-map__address {
  margin-top: 0.5rem;
  color: var(--sp-color-muted, inherit);
}

.sp-highlights__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.sp-highlight {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--sp-radius);
  background: #fff;
}

.sp-highlight__icon {
  width: 64px;
  margin-bottom: 1.25rem;
}

.sp-highlight__icon .sp-icon {
  width: 56px;
  height: 56px;
  padding: .65rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--sp-color-primary) 12%, transparent);
  color: var(--sp-color-primary);
}

.sp-highlight__title {
  margin: 0 0 .5rem;
  font-size: 1.35rem;
  line-height: 1.2;
  font-family: var(--sp-font-heading);
}

.sp-page-header {
  padding: clamp(3rem, 7vw, 6rem) 0;
  background: var(--sp-color-surface);
}

.sp-page-header__title {
  margin-bottom: 0;
  font-size: clamp(2.25rem, 5vw, 4.5rem);
}

.sp-entry {
  padding-block: clamp(3rem, 7vw, 6rem);
}

.sp-entry-content > * {
  max-width: var(--sp-reading-width);
  margin-inline: auto;
}

.sp-entry-content > .alignwide {
  max-width: var(--sp-content-width);
}

.sp-entry-content > .alignfull {
  max-width: none;
}

.sp-service-hero {
  padding-block: var(--sp-space-section);
  background: var(--sp-color-surface);
}

.sp-service-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .85fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}

.sp-service-layout--image-left .sp-service-media { order: -1; }
.sp-service-layout--centered .sp-service-split { grid-template-columns: minmax(0, 820px); justify-content: center; text-align: center; }
.sp-service-layout--centered .sp-service-media { max-width: 760px; margin-inline: auto; }
.sp-service-copy h1 { margin: 0 0 1.25rem; font-size: clamp(2.5rem, 6vw, var(--sp-heading-max)); line-height: 1; text-wrap: balance; }
.sp-service-copy h2, .sp-service-benefits h2, .sp-service-process h2, .sp-service-stats h2, .sp-service-faq h2, .sp-service-cta h2 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.08; text-wrap: balance; }
.sp-service-lead { font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.sp-service-media { margin: 0; }
.sp-service-media img { display: block; width: 100%; border-radius: var(--sp-radius); box-shadow: var(--sp-shadow); }
.sp-service-grid, .sp-service-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.sp-service-card { padding: clamp(1.4rem, 3vw, 2.25rem); background: var(--sp-color-background); border-radius: var(--sp-radius); }
.sp-icon { display: inline-block; width: 1.5em; height: 1.5em; flex: 0 0 auto; }
.sp-service-card .sp-icon.sp-service-card__icon { display: block; width: 76px; min-width: 76px; height: 76px; padding: 14px; overflow: visible; border-radius: 50%; background: color-mix(in srgb, var(--sp-color-primary) 14%, transparent); color: var(--sp-color-primary); stroke-width: 2; }
.sp-service-card__icon:not(.sp-icon) { width: 76px; height: 76px; object-fit: contain; }
.sp-service-layout--bordered .sp-service-grid { gap: 0; border: 1px solid var(--sp-color-border); }
.sp-service-layout--bordered .sp-service-card { border-right: 1px solid var(--sp-color-border); border-radius: 0; }
.sp-service-layout--list .sp-service-grid { grid-template-columns: 1fr; }
.sp-service-layout--list .sp-service-card { display: grid; grid-template-columns: 80px 1fr; gap: 0 1.25rem; }
.sp-service-layout--list .sp-service-card p { grid-column: 2; }
.sp-service-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; padding: 0; list-style: none; counter-reset: steps; }
.sp-service-steps li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; counter-increment: steps; }
.sp-service-steps li::before { content: counter(steps); display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 50%; background: var(--sp-color-primary); color: var(--sp-color-on-primary); font-weight: 800; }
.sp-service-layout--vertical .sp-service-steps, .sp-service-layout--compact .sp-service-steps { grid-template-columns: 1fr; max-width: 760px; }
.sp-service-stats.sp-service-layout--band { background: var(--sp-color-secondary); color: var(--sp-color-on-dark); }
.sp-service-stat-grid div { padding: 1.5rem; text-align: center; }
.sp-service-stat-grid dt { font: 800 clamp(2.3rem, 5vw, 4rem)/1 var(--sp-font-heading); }
.sp-service-stat-grid dd { margin: .6rem 0 0; }
.sp-service-layout--cards .sp-service-stat-grid div { border: 1px solid var(--sp-color-border); border-radius: var(--sp-radius); }
.sp-service-testimonial blockquote { margin: 0; font: 700 clamp(1.5rem, 3vw, 2.5rem)/1.3 var(--sp-font-heading); }
.sp-service-testimonial figure { margin: 0; }
.sp-service-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.sp-service-layout--card .sp-reading-width { padding: clamp(2rem, 5vw, 4rem); background: var(--sp-color-surface); border-radius: var(--sp-radius); }
.sp-service-faq-list { display: grid; gap: 1rem; }
.sp-service-faq details, .sp-service-faq article { padding: 1.25rem; border: 1px solid var(--sp-color-border); background: var(--sp-color-background); }
.sp-service-faq summary { cursor: pointer; font-weight: 750; }
.sp-service-layout--columns .sp-service-faq-list { grid-template-columns: 1fr 1fr; }
.sp-service-cta { background: var(--sp-color-primary); color: var(--sp-color-on-primary); }
.sp-service-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.sp-service-cta .sp-button { border-color: var(--sp-color-on-primary); background: var(--sp-color-on-primary); color: var(--sp-color-primary); }
.sp-service-layout--boxed.sp-service-cta { background: transparent; color: var(--sp-color-text); }
.sp-service-layout--boxed .sp-service-cta__inner { padding: clamp(2rem, 5vw, 4rem); background: var(--sp-color-surface); border-radius: var(--sp-radius); }

/* Globale stijlprofielen. Inhoud en sectiekeuzes blijven bij een wissel behouden. */
.sp-profile--clear { --sp-profile-card-border: 1px solid var(--sp-color-border); }
.sp-profile--clear .sp-service-card { border: var(--sp-profile-card-border); box-shadow: none; }
.sp-profile--clear .sp-service-media img { box-shadow: none; }
.sp-profile--clear .sp-button { border-radius: 2px; }
.sp-profile--clear .sp-highlight, .sp-profile--clear .sp-post-card { border: 1px solid var(--sp-color-border); box-shadow: none; }

.sp-profile--warm { --sp-radius: 24px; --sp-shadow: 0 22px 60px rgb(31 36 40 / 13%); --sp-space-section: clamp(4.5rem, 9vw, 9rem); }
.sp-profile--warm .sp-site-header { border-bottom: 0; }
.sp-profile--warm .sp-service-hero { background: linear-gradient(135deg, var(--sp-color-surface), var(--sp-color-background)); }
.sp-profile--warm .sp-service-media img { border-radius: min(12vw, 120px) var(--sp-radius) min(12vw, 120px) var(--sp-radius); }
.sp-profile--warm .sp-service-card { box-shadow: var(--sp-shadow); }
.sp-profile--warm .sp-service-card .sp-icon.sp-service-card__icon { border-radius: 45% 55% 52% 48%; }
.sp-profile--warm .sp-button { border-radius: 999px; padding-inline: 1.55rem; }
.sp-profile--warm .sp-service-stats.sp-service-layout--band { margin-inline: max(20px, 4vw); border-radius: var(--sp-radius); }
.sp-profile--warm .sp-home-hero__media img { border-radius: min(12vw, 120px) var(--sp-radius) min(12vw, 120px) var(--sp-radius); }
.sp-profile--warm .sp-highlight, .sp-profile--warm .sp-post-card { border: 0; border-radius: var(--sp-radius); box-shadow: var(--sp-shadow); }
.sp-profile--warm .sp-page-header { background: linear-gradient(135deg, var(--sp-color-surface), var(--sp-color-background)); }

.sp-profile--bold { --sp-radius: 0px; --sp-shadow: 10px 10px 0 var(--sp-color-secondary); --sp-space-section: clamp(4rem, 7vw, 7rem); --sp-heading-max: 7rem; }
.sp-profile--bold .sp-site-header { border-bottom: 4px solid var(--sp-color-secondary); }
.sp-profile--bold .sp-service-hero { border-bottom: 4px solid var(--sp-color-secondary); background: var(--sp-color-primary); color: var(--sp-color-on-primary); }
.sp-profile--bold .sp-service-hero .sp-eyebrow { color: inherit; }
.sp-profile--bold .sp-service-hero .sp-button,
.sp-profile--bold .sp-home-hero .sp-button { border-color: var(--sp-color-on-primary); background: var(--sp-color-secondary); color: var(--sp-color-on-dark); }
.sp-profile--bold .sp-service-hero .sp-button:hover,
.sp-profile--bold .sp-service-hero .sp-button:focus-visible,
.sp-profile--bold .sp-home-hero .sp-button:hover,
.sp-profile--bold .sp-home-hero .sp-button:focus-visible { border-color: var(--sp-color-on-primary); background: var(--sp-color-on-primary); color: var(--sp-color-primary); }
.sp-profile--bold .sp-service-copy h1, .sp-profile--bold .sp-service-copy h2, .sp-profile--bold .sp-service-benefits h2, .sp-profile--bold .sp-service-process h2, .sp-profile--bold .sp-service-stats h2, .sp-profile--bold .sp-service-faq h2, .sp-profile--bold .sp-service-cta h2 { letter-spacing: -.045em; text-transform: uppercase; }
.sp-profile--bold .sp-service-card { border: 3px solid var(--sp-color-secondary); box-shadow: 8px 8px 0 var(--sp-color-secondary); }
.sp-profile--bold .sp-service-card .sp-icon.sp-service-card__icon { border: 3px solid var(--sp-color-secondary); border-radius: 0; background: transparent; color: var(--sp-color-secondary); stroke-width: 2.5; }
.sp-profile--bold .sp-button { border-width: 3px; text-transform: uppercase; }
.sp-profile--bold .sp-section--surface { border-block: 3px solid var(--sp-color-secondary); }
.sp-profile--bold .sp-home-hero { border-bottom: 4px solid var(--sp-color-secondary); background: var(--sp-color-primary); color: var(--sp-color-on-primary); }
.sp-profile--bold .sp-home-hero .sp-eyebrow { color: inherit; }
.sp-profile--bold .sp-home-hero__title, .sp-profile--bold .sp-page-header__title, .sp-profile--bold .sp-highlight__title, .sp-profile--bold .sp-post-card__title { letter-spacing: -.045em; text-transform: uppercase; }
.sp-profile--bold .sp-highlight, .sp-profile--bold .sp-post-card { border: 3px solid var(--sp-color-secondary); box-shadow: 8px 8px 0 var(--sp-color-secondary); }
.sp-profile--bold .sp-page-header { border-bottom: 4px solid var(--sp-color-secondary); background: var(--sp-color-primary); color: var(--sp-color-on-primary); }
.sp-profile--bold .sp-site-footer { border-top: 4px solid var(--sp-color-primary); }

.sp-section-intro { max-width: 65ch; margin-bottom: 2rem; font-size: 1.1rem; }
.sp-card-link { display: inline-flex; margin-top: .75rem; font-weight: 750; }
.sp-modular-quote h2 { max-width: 20ch; margin: 0; font: 700 clamp(1.8rem, 3vw, 3rem)/1.18 var(--sp-font-heading); }
.sp-modular-quote p { max-width: 58ch; margin: 1.25rem 0 0; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.65; }
.sp-modular-quote.sp-service-layout--card .sp-reading-width, .sp-modular-quote.sp-service-layout--accent .sp-reading-width { padding: clamp(2rem, 5vw, 4rem); background: var(--sp-color-surface); }
.sp-modular-quote.sp-service-layout--accent .sp-reading-width { border-left: 8px solid var(--sp-color-primary); }
.sp-modular-links ul { display: grid; gap: .75rem; padding: 0; list-style: none; }
.sp-modular-links li { display: flex; align-items: center; gap: .8rem; padding: 1rem; border: 1px solid var(--sp-color-border); }
.sp-modular-links .sp-icon { color: var(--sp-color-primary); }
.sp-modular-links.sp-service-layout--cards ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sp-modular-links.sp-service-layout--compact li { padding: .55rem 0; border-width: 0 0 1px; }
.sp-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.sp-team-card { overflow: hidden; background: var(--sp-color-background); border-radius: var(--sp-radius); }
.sp-team-card > div { padding: 1.4rem; }
.sp-team-card .sp-service-media { aspect-ratio: 4 / 3; }
.sp-team-card .sp-service-media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; }
.sp-team-card h3 { margin: 0; font-size: 1.4rem; }
.sp-team-card__role { color: var(--sp-color-primary); font-weight: 700; }
.sp-modular-team.sp-service-layout--list .sp-team-grid { grid-template-columns: 1fr; }
.sp-modular-team.sp-service-layout--list .sp-team-card { display: grid; grid-template-columns: minmax(180px, 280px) 1fr; }
.sp-contact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.sp-contact-grid p { display: grid; grid-template-columns: 2rem 1fr; gap: .35rem .7rem; margin: 0; padding: 1.5rem; border: 1px solid var(--sp-color-border); }
.sp-contact-grid .sp-icon { grid-row: 1 / span 2; color: var(--sp-color-primary); }
.sp-contact-grid a, .sp-contact-grid span { grid-column: 2; }
.sp-modular-contact.sp-service-layout--minimal .sp-contact-grid { grid-template-columns: 1fr; }
.sp-modular-contact.sp-service-layout--split .sp-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sp-modular-hours dl { margin: 0; }
.sp-modular-hours dl div { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: .8rem 0; border-bottom: 1px solid var(--sp-color-border); }
.sp-modular-hours dt { font-weight: 700; }
.sp-modular-hours dd { margin: 0; text-align: right; }
.sp-modular-hours.sp-service-layout--cards dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.sp-modular-hours.sp-service-layout--cards dl div { display: block; padding: 1.25rem; border: 1px solid var(--sp-color-border); background: var(--sp-color-background); }
.sp-modular-hours.sp-service-layout--cards dd { margin-top: .4rem; text-align: left; }
.sp-modular-hours.sp-service-layout--compact .sp-reading-width { max-width: 600px; }
.sp-form-grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(320px, 1.25fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.sp-modular-form.sp-service-layout--boxed .sp-form-embed { padding: clamp(1.5rem, 4vw, 3rem); background: var(--sp-color-surface); border-radius: var(--sp-radius); }
.sp-modular-form.sp-service-layout--plain .sp-form-grid { grid-template-columns: 1fr; max-width: var(--sp-reading-width); }
.sp-profile--warm .sp-team-card, .sp-profile--warm .sp-contact-grid p, .sp-profile--warm .sp-modular-links li { border: 0; box-shadow: var(--sp-shadow); }
.sp-profile--bold .sp-team-card, .sp-profile--bold .sp-contact-grid p, .sp-profile--bold .sp-modular-links li { border: 3px solid var(--sp-color-secondary); box-shadow: 6px 6px 0 var(--sp-color-secondary); }

.sp-post-list {
  display: grid;
  grid-template-columns: repeat(var(--sp-news-columns, 3), minmax(0, 1fr));
  gap: 2rem;
  padding-block: clamp(3rem, 7vw, 6rem);
}

.sp-empty-state {
  padding-block: clamp(3rem, 7vw, 6rem);
}

.sp-post-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid var(--sp-color-border);
  border-radius: var(--sp-radius);
  background: var(--sp-color-background);
  overflow: hidden;
}

.sp-post-card__image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sp-color-surface); }
.sp-post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.sp-post-card:hover .sp-post-card__image img { transform: scale(1.025); }

.sp-post-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 1.5rem;
}

.sp-post-card__title {
  margin: 0 0 .6rem;
  font-size: 1.4rem;
  line-height: 1.2;
  font-family: var(--sp-font-heading);
}

.sp-post-card__title a {
  color: var(--sp-color-text);
  text-decoration: none;
}

.sp-post-card__more { margin-top: auto; padding-top: .75rem; font-weight: 750; }
.sp-news-overview--magazine .sp-post-card:first-child { grid-column: span 2; display: grid; grid-template-columns: 1.2fr .8fr; }
.sp-news-overview--magazine .sp-post-card:first-child .sp-post-card__image { aspect-ratio: auto; min-height: 360px; }
.sp-news-overview--magazine .sp-post-card:first-child .sp-post-card__content { justify-content: center; padding: clamp(1.75rem, 4vw, 3.5rem); }
.sp-news-overview--magazine .sp-post-card:first-child .sp-post-card__title { font-size: clamp(1.8rem, 3vw, 3rem); }
.sp-news-overview--list .sp-post-list { grid-template-columns: 1fr; max-width: 1040px; }
.sp-news-overview--list .sp-post-card { display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); }
.sp-news-overview--list .sp-post-card__image { aspect-ratio: 4 / 3; }
.sp-news-overview--list .sp-post-card__content { justify-content: center; padding: clamp(1.5rem, 3vw, 2.5rem); }
.sp-news-overview--list .sp-post-card__title { font-size: clamp(1.45rem, 2.5vw, 2.25rem); }

.sp-news-single { overflow: hidden; background: color-mix(in srgb, var(--sp-color-surface) 35%, var(--sp-color-background)); }
.sp-news-single__top { padding-top: clamp(1.5rem, 3vw, 2.75rem); }
.sp-news-single__back { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: clamp(1.75rem, 4vw, 3.5rem); color: inherit; font-size: .92rem; font-weight: 750; text-decoration: none; }
.sp-news-single__back span { transition: transform .2s ease; }
.sp-news-single__back:hover span { transform: translateX(-.25rem); }
.sp-news-single__hero { padding-bottom: clamp(2.5rem, 7vw, 6rem); }
.sp-news-single__heading { max-width: 1000px; }
.sp-news-single__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-bottom: 1.25rem; color: var(--sp-color-primary); font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sp-news-single__meta span { padding: .3rem .65rem; border: 1px solid currentColor; border-radius: 999px; }
.sp-news-single__heading h1 { max-width: 15ch; margin: 0; font-size: clamp(2.8rem, 7vw, 7rem); line-height: .95; letter-spacing: -.055em; text-wrap: balance; }
.sp-news-single__lead { max-width: 62ch; margin: 1.5rem 0 0; font-size: clamp(1.1rem, 1.8vw, 1.4rem); line-height: 1.6; opacity: .78; }
.sp-news-single__image { overflow: hidden; margin: clamp(2rem, 5vw, 4.5rem) 0 0; border-radius: clamp(.75rem, 2vw, 2rem); box-shadow: 0 28px 80px rgb(20 24 28 / 13%); }
.sp-news-single__image img { display: block; width: 100%; max-height: 720px; object-fit: cover; }
.sp-news-single__body { padding: clamp(3rem, 8vw, 7rem) 1rem; background: var(--sp-color-background); }
.sp-news-single__body .sp-entry-content { max-width: 760px; margin-inline: auto; font-size: 1.06rem; line-height: 1.8; }
.sp-news-single__body .sp-entry-content > * { max-width: none; }
.sp-news-single__body .sp-entry-content > h2, .sp-news-single__body .sp-entry-content > h3 { margin-top: 2em; line-height: 1.15; }
.sp-news-single--editorial .sp-news-single__heading { margin-inline: auto; text-align: center; }
.sp-news-single--editorial .sp-news-single__heading h1, .sp-news-single--editorial .sp-news-single__lead { margin-inline: auto; }
.sp-news-single--editorial .sp-news-single__meta { justify-content: center; }
.sp-news-single--split .sp-news-single__hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.sp-news-single--split .sp-news-single__image { margin: 0; aspect-ratio: 4 / 3; }
.sp-news-single--split .sp-news-single__image img { height: 100%; }
.sp-news-single--split .sp-news-single__heading h1 { font-size: clamp(2.7rem, 5vw, 5.3rem); }
.sp-news-single--minimal .sp-news-single__top { max-width: 900px; }
.sp-news-single--minimal .sp-news-single__heading h1 { font-size: clamp(2.6rem, 5vw, 5rem); }
.sp-news-single--minimal .sp-news-single__image { border-radius: var(--sp-radius); box-shadow: none; }
.sp-news-single--no-image .sp-news-single__hero { grid-template-columns: minmax(0, 900px); }
.sp-news-single--tone-contrast .sp-news-single__top { max-width: none; padding-inline: max(1rem, calc((100vw - var(--sp-content-width)) / 2)); background: var(--sp-color-secondary); color: var(--sp-color-on-dark); }
.sp-news-single--tone-contrast .sp-news-single__meta { color: var(--sp-color-accent); }
.sp-news-single__related { padding-block: clamp(4rem, 8vw, 7rem); }
.sp-news-single__section-label { margin: 0 0 .5rem; color: var(--sp-color-primary); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sp-news-single__related > h2 { margin: 0; font-size: clamp(2rem, 4vw, 4rem); letter-spacing: -.045em; }
.sp-news-single__related .sp-post-list { padding-bottom: 0; }

.sp-site-footer {
  background: var(--sp-color-secondary);
  color: var(--sp-color-on-dark);
}

.sp-site-footer__columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 2rem clamp(2rem, 5vw, 5rem);
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
}

.sp-site-footer a {
  color: var(--sp-color-on-dark);
}

.sp-site-footer h2 {
  margin: 0 0 .8rem;
  color: inherit;
  font-family: var(--sp-font-heading);
  font-size: 1.15rem;
}

.sp-footer-menu,
.sp-footer-legal-group,
.sp-footer-legal {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sp-footer-menu .sub-menu {
  margin: .35rem 0 0 1rem;
  padding: 0;
  list-style: none;
}

.sp-footer-menu a {
  display: inline-block;
}

.sp-footer-privacy { padding: 0; border: 0; background: transparent; color: var(--sp-color-on-dark); font: inherit; line-height: inherit; text-decoration: underline; cursor: pointer; }

.sp-site-footer__brand p {
  margin: 0 0 .35rem;
}

.sp-site-footer__contact p {
  margin: 0 0 .4rem;
}

.sp-site-footer__copyright {
  padding-block: .9rem;
}

.sp-site-footer__copyright p {
  margin: 0;
}

.sp-footer--copyright-bar.sp-footer-copyright-tone--darker .sp-site-footer__copyright {
  background: var(--sp-color-secondary);
  background: color-mix(in srgb, var(--sp-color-secondary), #000 18%);
}

.sp-footer--copyright-bar.sp-footer-copyright-tone--primary .sp-site-footer__copyright {
  background: var(--sp-color-primary);
  color: var(--sp-color-on-primary);
}

.sp-footer--copyright-inline .sp-site-footer__copyright {
  padding-top: 0;
  padding-bottom: 2rem;
}

.sp-footer-copyright-align--center .sp-site-footer__copyright {
  text-align: center;
}

.sp-footer-align--center .sp-site-footer__columns {
  text-align: center;
}

.sp-footer-align--center .sp-footer-menu,
.sp-footer-align--center .sp-footer-legal-group,
.sp-footer-align--center .sp-footer-legal {
  align-items: center;
}

@media (max-width: 782px) {
	.sp-site-branding img {
	  max-width: min(55vw, 190px);
	  max-height: 50px;
	}

	.sp-site-footer__columns {
	  grid-template-columns: 1fr;
	}

  .admin-bar.sp-has-sticky-header .sp-site-header {
    top: 46px;
  }

  .sp-header--centered .sp-site-header__inner {
    min-height: 82px;
    flex-direction: row;
    justify-content: space-between;
    padding-block: 0;
  }

  .sp-site-header__cta {
    display: none;
  }

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

  .sp-menu-toggle__text { display: inline; }

  .sp-primary-navigation {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: none;
    overflow-y: auto;
    padding: 1.25rem;
    background: var(--sp-color-background);
	margin-left: 0;
  }

  .sp-primary-navigation.is-open {
    display: flex;
    flex-direction: column;
  }

  .sp-primary-navigation__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(2rem, 8vh, 4rem); }
  .sp-primary-navigation__actions { display: flex; align-items: center; gap: .05rem; margin-left: auto; }
  .sp-primary-navigation__title { font-family: var(--sp-font-heading); font-size: 1.4rem; font-weight: 800; }
  .sp-menu-close { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid var(--sp-color-border); border-radius: 999px; background: transparent; color: var(--sp-color-text); font-size: 2rem; line-height: 1; }
  .sp-menu-close { margin-left: .5rem; }

  .sp-primary-menu {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
  }

  .sp-primary-menu a {
    display: block;
	padding: .55rem 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.65rem, 9vw, 3rem);
	line-height: 1.15;
	white-space: normal;
  }

  .sp-site-header__inner { gap: .65rem; }
  .sp-site-header__tools { gap: .6rem; }
  .sp-header-actions { gap: .2rem; }
  .sp-header-action { width: 44px; height: 44px; }
  .sp-header-action svg { width: 20px; height: 20px; }

  .sp-primary-menu .sub-menu { position: static; display: block; min-width: 0; margin: 0 0 .5rem 1rem; padding: 0 0 0 1rem; transform: none; border: 0; border-left: 2px solid var(--sp-color-border); border-radius: 0; box-shadow: none; }
  .sp-primary-menu .sub-menu a { padding: .55rem 0; font-size: 1.1rem; white-space: normal; }
  .sp-primary-menu > .sp-menu-item--highlighted { order: 99; margin-top: clamp(1.5rem, 7vh, 3rem); }
  .sp-primary-menu > .sp-menu-item--highlighted > a { display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 1rem 1.2rem; border-radius: var(--sp-radius); background: var(--sp-color-accent); color: var(--sp-color-on-primary); font-size: 1.25rem; }
  .sp-primary-menu > .sp-menu-item--highlighted > a::after { content: "\2192"; }

  .sp-home-hero__grid,
  .sp-highlights__grid,
  .sp-post-list,
  .sp-service-split,
  .sp-service-grid,
  .sp-service-stat-grid,
  .sp-service-steps,
  .sp-service-layout--columns .sp-service-faq-list {
    grid-template-columns: 1fr;
  }

  .sp-team-grid,
  .sp-contact-grid,
  .sp-form-grid,
  .sp-modular-links.sp-service-layout--cards ul { grid-template-columns: 1fr; }

  .sp-modular-team.sp-service-layout--list .sp-team-card { grid-template-columns: 1fr; }

  .sp-modular-contact.sp-service-layout--split .sp-contact-grid,
  .sp-modular-hours.sp-service-layout--cards dl { grid-template-columns: 1fr; }

  .sp-service-layout--image-left .sp-service-media { order: initial; }
  .sp-service-cta__inner { align-items: flex-start; flex-direction: column; }
  .sp-news-overview--magazine .sp-post-card:first-child,
  .sp-news-overview--list .sp-post-card { grid-column: auto; grid-template-columns: 1fr; }
  .sp-news-overview--magazine .sp-post-card:first-child .sp-post-card__image { min-height: 0; aspect-ratio: 4 / 3; }
  .sp-news-single--split .sp-news-single__hero { grid-template-columns: 1fr; }
  .sp-news-single--split .sp-news-single__image { margin-top: 2rem; }
}

@media (max-width: 480px) {
  .sp-site-header__inner { width: min(calc(100% - 24px), 1600px); gap: .25rem; }
  .sp-site-branding img,
  .sp-header-logo--small .sp-site-branding img,
  .sp-header-logo--large .sp-site-branding img { max-width: min(28vw, 90px); max-height: 40px; }
  .sp-site-header__tools { gap: 0; }
  .sp-site-header__tools { gap: .3rem; }
  .sp-header-actions { gap: .05rem; }
  .sp-header-action { width: 36px; height: 40px; }
  .sp-header-actions .sp-header-action,
  .sp-primary-navigation__actions .sp-header-action,
  .sp-header-actions .sp-wishlist-menu-link,
  .sp-primary-navigation__actions .sp-wishlist-menu-link { flex-basis: 36px; }
  .sp-header-action svg { width: 18px; height: 18px; }
  .sp-menu-toggle { min-height: 40px; padding: .45rem .5rem; font-size: .82rem; }
  .sp-menu-toggle__icon { width: 18px; }
  .sp-menu-toggle__text { margin-left: .35rem; }
  .sp-primary-navigation__title { font-size: 1.2rem; }
  .sp-primary-navigation__actions .sp-header-action { width: 34px; }
  .sp-menu-close { width: 42px; height: 42px; margin-left: .25rem; }
}

@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;
  }
}

/* Taalbalk van Studio Pampas Vertalingen: dezelfde breedte als de header,
   zodat de taalkeuze recht boven de icoontjes rechts in de header staat. */
.sp-lang-bar .sp-lang-bar__inner { width: min(calc(100% - 40px), 1600px); }
@media (max-width: 480px) {
  .sp-lang-bar .sp-lang-bar__inner { width: min(calc(100% - 24px), 1600px); }
}
