/* VITSAE-2026 — Vitsoe Typographic System
 *
 * PROPORTIONAL SCALING: change --base-size once, everything adapts.
 * Vitsoe uses 17px base on desktop. We mirror all ratios using rem.
 *
 * Vitsoe desktop proportions (relative to 17px base):
 *   body p:        1.000rem / 24px(1.412 line)
 *   h1-h2:         1.529rem(26px) / 1.25lh → 1.882rem(32px) → 2.118rem(36px)
 *   h3-h6:         0.941rem / 1.25lh
 *   caption/small: 0.824rem / 1.429lh
 *   nav:           0.941rem / 1.176lh
 *ff
 * All spacing/margins also scale in rem (vitsoe spacing ÷ 17).
 */

:root {
  /*── Change this ONE value → all typography scales proportionally ──*/
  --base-size: 18px;

  /*── Palette ──*/
  --bg: #fff;
  --text: #000;
  --text-light: #666;
  --accent: #0073b1;
  --accent-hover: #09609c;
  --accent-dark: #002e6e;
  --border: #c2c2c2;
  --surface: #f0f0f0;
  --font: 'Inter', system-ui, -apple-system, sans-serif; /* overridden by customizer via inline <style> */
  --transition: 150ms ease;
}

/*── Reset ──*/
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: var(--base-size);
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.412;        /* vitsoe: 24px / 17px = 1.412 */
  font-weight: 400;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'kern', 'liga', 'clig';
  hyphens: auto;
  -webkit-hyphens: auto;
}

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

a {
  color: var(--text);
  text-decoration: none;
}
a:hover {
  color: var(--accent);
  text-decoration: underline;
}

.menu-primary, .header-menu, .footer-menu,
.nav-primary ul, .nav-primary ol { list-style: none; }

button {
  font: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

strong { font-weight: 700; }
em { font-style: italic; }

/*── Skip Link ──*/
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.skip-link:focus {
  position: fixed;
  top: 0.588rem;    /* 10px / 17 */
  left: 0.588rem;
  width: auto;
  height: auto;
  padding: 0.588rem 1.176rem;  /* 10px 20px */
  background: var(--bg);
  color: var(--text);
  border: 1px solid var(--border);
  z-index: 9999;
  font-size: 0.824rem;  /* 14px / 17 */
  line-height: 1.429;
}

/*═══════════════════════════════════════════
 * BODY TEXT
 * Vitsoe: 17px / 24px = 1rem / 1.412 line-height
 *═══════════════════════════════════════════*/

p {
  font-size: 1rem;            /* 18px at our base, was 17px at vitsoe */
  line-height: 1.412;         /* always = 24/17 × base */
  margin: 0 0 1.412rem;      /* 24px / 17 */
}
p:last-child {
  margin-bottom: 0;
}

/*═══════════════════════════════════════════
 * HEADINGS — all sizes proportional to body
 *═══════════════════════════════════════════*/

h1, h2, h3, h4, h5, h6 {
  color: var(--text);
}

/* h1: 700, vitsoe mobile 26/17 = 1.529rem → tablet 32/17 = 1.882 → desktop 36/17 = 2.118 */
h1 {
  font-weight: 700;
  font-size: 1.529rem;
  line-height: 1.231;         /* 32 / 26 */
  margin: 0 0 0.588rem;      /* 10px / 17 */
}

/* h2: 400, same scale */
h2 {
  font-weight: 400;
  font-size: 1.529rem;
  line-height: 1.231;
  margin: 0 0 1.412rem;      /* 24px / 17 */
}
h2:empty { margin-bottom: 0; }

/* h3-h6: 16/17 = 0.941rem, line = 20/16 = 1.25 */
h3, h4, h5, h6 {
  font-weight: 400;
  font-size: 0.941rem;
  line-height: 1.25;
  margin: 0 0 1.176rem;      /* 20px / 17 */
}

@media (min-width: 620px) {
  h1 {
    font-size: 1.882rem;     /* 32px / 17 */
    line-height: 1.25;       /* 40 / 32 */
  }
  h2 {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}
@media (min-width: 860px) {
  h1 {
    font-size: 2.118rem;     /* 36px / 17 */
    line-height: 1.111;      /* 40 / 36 */
  }
  h2 {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}

/*── Two-Color Headings ──*/
h1 strong, h2 strong, h3 strong,
h4 strong, h5 strong, h6 strong {
  font-weight: 600;
  color: var(--accent);
}

/*═══════════════════════════════════════════
 * CAPTION / SMALL — 14/17 = 0.824rem
 *═══════════════════════════════════════════*/

figcaption,
figcaption p {
  font-size: 0.824rem;
  line-height: 1.429;         /* 20 / 14 */
  font-weight: 700;
  color: var(--text-light);
  margin-bottom: 1.412rem;
}
figcaption:after {
  clear: both;
  content: "";
  display: table;
}
figcaption:empty,
figcaption p:empty {
  margin-bottom: 0;
}

small {
  font-size: 0.824rem;
  line-height: 1.429;
}

/*═══════════════════════════════════════════
 * LINKS IN CONTENT
 *═══════════════════════════════════════════*/

.entry-content a,
.entry-summary a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.entry-content a:hover {
  color: var(--accent-hover);
}

/*═══════════════════════════════════════════
 * BLOCKQUOTE
 *═══════════════════════════════════════════*/

blockquote {
  font-size: 1rem;
  line-height: 1.412;
  margin: 1.412rem 0;
  padding: 1.176rem 0 1.176rem 1.765rem;  /* 20 0 20 30 */
  border-left: 1px solid var(--border);
  font-style: italic;
}
blockquote p:last-child {
  margin-bottom: 0;
}
blockquote cite {
  display: block;
  margin-top: 0.353rem;      /* 6px / 17 */
  font-size: 0.824rem;       /* 14 / 17 */
  line-height: 1.429;
  color: var(--text-light);
  font-style: normal;
  font-weight: 700;
}

/*═══════════════════════════════════════════
 * LISTS — body size proportional
 *═══════════════════════════════════════════*/

ul, ol {
  list-style-position: outside;
  margin-bottom: 1.412rem;
  padding-left: 0.588rem;    /* 10 / 17 */
}
ul { list-style-type: disc; }
ol { list-style-type: decimal; }

li {
  font-size: 1rem;
  line-height: 1.412;
  margin-bottom: 0.353rem;   /* 6 / 17 */
  padding-left: 0.353rem;
}
ul ul, ol ol, ul ol, ol ul {
  margin-bottom: 0;
  margin-top: 0.353rem;
}
ul li:last-child,
ol li:last-child {
  margin-bottom: 0;
}

/*═══════════════════════════════════════════
 * HORIZONTAL RULE
 *═══════════════════════════════════════════*/

hr {
  border: none;
  border-top: 1px solid var(--border);
  margin: 2.353rem 0;        /* 40 / 17 */
}

/*═══════════════════════════════════════════
 * CODE — 14/17 = 0.824rem
 *═══════════════════════════════════════════*/

code {
  font-family: 'SF Mono', 'Fira Code', monospace;
  font-size: 0.824rem;
  line-height: 1.429;
  background: var(--surface);
  padding: 0.125em 0.3em;
  border-radius: 2px;
}
pre {
  padding: 1.176rem;
  background: var(--text);
  color: var(--bg);
  border-radius: 2px;
  margin-bottom: 1.176rem;
  overflow-x: auto;
  line-height: 1.412;
  tab-size: 2;
}
pre code {
  background: none;
  padding: 0;
  color: inherit;
  font-size: inherit;
}

/*═══════════════════════════════════════════
 * MICROTYPOGRAPHY
 *═══════════════════════════════════════════*/

abbr {
  border-bottom: 1px dotted var(--border);
  text-decoration: none;
  font-variant: small-caps;
  letter-spacing: 0.05em;
}
sub, sup {
  font-size: 0.75em;         /* 75% of parent, matches vitsoe */
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup { top: -0.5em; }
sub { bottom: -0.25em; }

::selection {
  background: var(--accent);
  color: var(--bg);
}
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 0.118rem;  /* 2px / 17 */
}

.drop-cap::first-letter {
  float: left;
  font-size: 3em;
  line-height: 0.8;
  padding-right: 0.25em;
  padding-top: 0.25em;
  font-weight: 700;
}

/*═══════════════════════════════════════════
 * LAYOUT
 *═══════════════════════════════════════════*/

.container {
  width: 100%;
  max-width: 65.294rem;      /* 1110 / 17 */
  margin: 0 auto;
  padding: 0 0.882rem;       /* 15 / 17 */
}
@media (min-width: 620px) {
  .container {
    padding: 0 1.765rem;     /* 30 / 17 */
  }
}

/*═══════════════════════════════════════════
/*═══════════════════════════════════════════
 * HEADER / NAVIGATION — vitsoe.com exact
 * Row 1 (.nav-fixed): logo + secondary menu + burger
 * Row 2 (.nav-primary): main horizontal menu
 * Full-width grey border-bottom on nav-fixed
 *═══════════════════════════════════════════*/

.site-header {
  background: var(--bg);
}

/*── Row 1: Logo + Secondary Nav ──*/
.nav-fixed {
  max-width: 65.294rem;   /* 1110px / 17 */
  margin: 0 auto;
  padding: 1rem 0 0 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
@media (min-width: 620px) {
  .nav-fixed {
    padding: 1.882rem 0;   /* 32px / 17 */
  }
}
@media (min-width: 860px) {
  .nav-fixed {
    padding: 0.941rem 1.882rem;  /* 16px 32px / 17 */
  }
}

/*── Logo ──*/
.site-branding {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.site-logo {
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  text-decoration: none;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.site-logo:hover {
  text-decoration: none;
}
.custom-logo-link {
  display: inline-block;
  text-decoration: none;
  line-height: 1;
}

/*── Secondary nav (row 1, between logo and burger) ──*/
.header-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.882rem;  /* 32px / 17 */
}
.header-menu li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.header-menu > li > a {
  display: inline-block;
  padding: 0;
  font-size: 0.882rem;  /* 15px / 17 */
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  line-height: 1;
}
.header-menu > li > a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.header-menu > li.current-menu-item > a,
.header-menu > li.current-menu-ancestor > a {
  font-weight: 700;
}

/*── Burger ──*/
.button-menu-mobile {
  position: relative;
  width: 1.294rem;  /* 22px / 17 */
  height: 0.882rem; /* 15px / 17 */
  background-color: transparent;
  border: 0;
  padding: 0;
  outline: 0;
  cursor: pointer;
  display: none;
  flex-shrink: 0;
  margin-left: 1.471rem;  /* 25px / 17 */
}
@media (max-width: 859px) {
  .button-menu-mobile {
    display: block;
  }
}
@media (min-width: 860px) {
  .button-menu-mobile {
    margin-right: 1.882rem;  /* 32px / 17 */
    margin-left: auto;
  }
}
.button-menu-mobile > div {
  position: absolute;
  transition: all 0.2s cubic-bezier(0.55, 0.09, 0.68, 0.53);
  background: var(--text);
  height: 1.5px;
  width: 100%;
  border-radius: 0;
}
.button-menu-mobile > div:first-child {
  top: 0;
}
.button-menu-mobile > div:nth-child(2) {
  top: 0.412rem;  /* 7px / 17 */
  opacity: 1;
  transition: opacity 0.1s ease-in-out;
}
.button-menu-mobile > div:last-child {
  top: 0.824rem;  /* 14px / 17 */
}

body.menu-open .button-menu-mobile > div:first-child {
  transform: rotate(45deg);
  top: 0.412rem;
}
body.menu-open .button-menu-mobile > div:nth-child(2) {
  opacity: 0;
}
body.menu-open .button-menu-mobile > div:last-child {
  transform: rotate(-45deg);
  top: 0.412rem;
}

/*── Row 2: Primary Nav (horizontal) ──*/
.nav-primary {
  max-width: 65.294rem;
  margin: 0 auto;
  padding: 0.882rem 0.882rem;
  width: 100%;
  margin-bottom: 0;
  float: none;
  font-size: 0.882rem;
  letter-spacing: -0.02em;
  background: transparent;
}
@media (min-width: 860px) {
  .nav-primary {
    padding: 0.882rem 1.765rem;
  }
}
@media (min-width: 1200px) {
  .nav-primary {
    padding: 0.882rem 0;
  }
}

/*── Menu List ──*/
.menu-primary {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.882rem;  /* 32px / 17 between items */
}
.menu-primary > li {
  list-style: none;
  margin: 0;
  padding: 0 1.882rem 0 0;  /* 0 32px 0 0 */
  line-height: 0.941;  /* 16px / 17 */
  position: relative;
}
.menu-primary > li > a {
  display: inline-block;
  padding: 0.294rem 0;  /* 5px / 17 */
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  transition: all 150ms ease;
}
.menu-primary > li > a:hover,
.menu-primary > li > a:focus {
  color: var(--accent);
  text-decoration: underline;
}
.menu-primary > li.current-menu-item > a,
.menu-primary > li.current-menu-ancestor > a,
.menu-primary > li.current_page_item > a {
  font-weight: 700;
}
.menu-primary > li.current-menu-item > a:hover,
.menu-primary > li.current-menu-ancestor > a:hover {
  text-decoration: none;
}

/*── Submenu (inline indent) ──*/
.menu-primary .sub-menu {
  display: none;
  margin: 0.588rem 0;
  padding-left: 0.882rem;
  list-style: none;
}
.menu-primary .sub-menu li {
  margin: 0.588rem 0;
  padding: 0;
  list-style: none;
  line-height: 1.2;
}
.menu-primary .sub-menu a {
  padding: 0.294rem 0;
  font-weight: 400;
  font-size: 0.824rem;
  color: var(--text-light);
  text-decoration: none;
}
.menu-primary .sub-menu a:hover {
  color: var(--text);
  text-decoration: underline;
}
.menu-primary .sub-menu .sub-menu {
  padding-left: 0.882rem;
  margin-left: 0;
}

/*── Backdrop ──*/
.nav-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: 999;
}

/*──────────────────────────────
 * MOBILE MENU (max-width: 859px)
 *─────────────────────────────*/
@media (max-width: 859px) {
  .nav-primary {
    display: none;
    position: fixed;
    top: 4.353rem;   /* nav-fixed height (3.529 + padding) */
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(100vh - 4.353rem);
    overflow: hidden;
    z-index: 998;
    max-width: none;
    padding: 0.588rem 0.882rem;
  }
  .nav-primary.menu-open {
    display: block;
    overflow-y: auto;
  }

  .nav-backdrop.nav-open {
    display: block;
  }

  /* Mobile: vertical stacked menu */
  .menu-primary {
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
  }
  .menu-primary > li {
    padding: 0.882rem 0.882rem;
    list-style: none;
    margin-bottom: 0;
    border-bottom: 1px solid var(--border);
    line-height: 1;
  }
  .menu-primary > li:last-child {
    border-bottom: none;
  }
  .menu-primary > li > a {
    padding: 0;
    display: block;
    font-size: 1rem;
  }

  /* Mobile: click to expand submenus */
  .menu-primary a[aria-expanded] {
    cursor: pointer;
  }
  .menu-primary .sub-menu {
    display: none;
    margin: 0;
    padding: 0;
    margin-left: 0.882rem;
  }
  .menu-primary .sub-menu.submenu-open {
    display: block;
  }
  .menu-primary .sub-menu li {
    padding: 0.471rem 0.882rem;
    margin: 0;
    border-bottom: none;
  }
  .menu-primary .sub-menu a {
    font-size: 0.882rem;
  }
  .menu-primary .sub-menu .sub-menu {
    margin-left: 0.882rem;
  }

  body.menu-open {
    overflow: hidden;
  }
}

 * MAIN CONTENT
 *═══════════════════════════════════════════*/

main.site-content {
  min-height: 60vh;
  padding-top: 2.353rem;    /* 40 / 17 */
  padding-bottom: 3.765rem; /* 64 / 17 */
}

article {
  margin-bottom: 3.529rem;  /* 60 / 17 */
}
article:last-child {
  margin-bottom: 0;
}

.entry-title {
  margin-bottom: 0;
}
.entry-title a {
  color: var(--text);
  text-decoration: none;
}
.entry-title a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.entry-meta {
  font-size: 0.824rem;      /* 14 / 17 */
  color: var(--text-light);
  margin-bottom: 0.353rem;  /* 6 / 17 */
  line-height: 1.429;
}
.entry-meta a {
  color: inherit;
  text-decoration: none;
}
.entry-meta a:hover {
  color: var(--accent);
}

/*── Weiterlesen Link ──*/
.read-more {
  display: inline-block;
  font-size: 0.824rem;
  font-weight: 600;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  margin-top: 0.353rem;
}
.read-more:after {
  content: ' \2192';
  transition: margin-left var(--transition);
}
.read-more:hover:after {
  margin-left: 0.235rem;   /* 4px shift */
}
.read-more:hover {
  color: var(--accent-hover);
  text-decoration: underline;
}

/*── Pagination ──*/
.pagination {
  display: flex;
  gap: 0.353rem;
  margin-top: 2.353rem;
  justify-content: center;
}
.pagination a {
  padding: 0.353rem 1.176rem;
  border: 1px solid var(--border);
  text-decoration: none;
  font-size: 0.824rem;
  line-height: 1.429;
}
.pagination a:hover,
.pagination .current {
  background: var(--text);
  color: var(--bg);
  border-color: var(--text);
  text-decoration: none;
}

/*── Page Header ──*/
.page-header {
  margin-bottom: 3.529rem;
  padding-bottom: 2.353rem;
  border-bottom: 1px solid var(--border);
}
.page-title {
  margin-bottom: 0;
}
.archive-description {
  margin-top: 0.353rem;
}

/*═══════════════════════════════════════════
 * BUTTONS
 *═══════════════════════════════════════════*/

.btn {
  display: inline-block;
  padding: 0.353rem 0;
  font-size: 1rem;
  line-height: 1.412;
  font-weight: 400;
  text-decoration: none;
  cursor: pointer;
}
.btn.btn-level3 {
  font-size: 1rem;
  font-weight: 400;
  color: var(--text);
}
.btn.btn-arrow:after {
  content: ' \2192';
  transition: margin-left var(--transition);
}
.btn.btn-arrow:hover:after {
  margin-left: 0.235rem;
}
.btn.btn-arrow:hover {
  text-decoration: underline;
}

/*═══════════════════════════════════════════
 * CARDS — vitsoe card system
 *═══════════════════════════════════════════*/

.remove-underline {
  text-decoration: none;
}
.remove-underline:hover {
  text-decoration: none;
}

.card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--text);
  margin-bottom: 3.529rem;
}
@media (min-width: 620px) {
  .card.card--horizontal {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.882rem;         /* 32 / 17 */
  }
}
.card__media {
  flex: 1;
  overflow: hidden;
  margin-bottom: 1.176rem; /* 20 / 17 */
}
@media (min-width: 620px) {
  .card.card--horizontal .card__media {
    margin-bottom: 0;
  }
}
.card__media img {
  width: 100%;
  height: auto;
  display: block;
  transition: opacity var(--transition);
}
.card:hover .card__media img {
  opacity: 0.91;           /* matches vitsoe hover */
}

.card__content {
  flex: 1;
}

/* card__heading uses same proportions as h1 (700, 26/32/36px at breakpoints) */
.card__heading {
  font-weight: 700;
  font-size: 1.529rem;
  line-height: 1.231;
  color: var(--text);
  margin-bottom: 1.176rem;
}
@media (min-width: 620px) {
  .card__heading {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}

.card__content h2 {
  font-size: 1.529rem;
  line-height: 1.231;
  font-weight: 400;
  margin-bottom: 1.412rem;
}
@media (min-width: 620px) {
  .card__content h2 {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}

.card__content p {
  font-size: 1rem;
  line-height: 1.412;
  color: var(--text);
  margin: 0;
  margin-bottom: 0.353rem;
}
.card__content p:last-of-type {
  margin-bottom: 1.176rem;
}

.card__link {
  font-size: 1rem;
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  white-space: nowrap;
}
.card__link:hover {
  color: var(--accent);
  text-decoration: underline;
}
.card__link--arrow-after:after {
  content: ' \2192';
  transition: margin-left var(--transition);
}
.card__link--arrow-after:hover:after {
  margin-left: 0.235rem;
}

/*── Card Grid ──*/
.card-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}
.card-grid .card {
  flex: 1 1 17.647rem;     /* 300 / 17 */
  min-width: 16.471rem;    /* 280 / 17 */
  padding-right: 0;
  padding-bottom: 3.529rem;
}
@media (min-width: 620px) {
  .card-grid .card {
    padding-right: 1.882rem;
  }
}
.card-grid .card:last-child {
  padding-right: 0;
}

/*═══════════════════════════════════════════
 * HERO SECTION
 *═══════════════════════════════════════════*/

.hero-spacing {
  margin-bottom: 2.353rem;  /* 40 / 17 */
}
@media (min-width: 620px) {
  .hero-spacing {
    margin-bottom: 3.765rem;  /* 64 / 17 */
  }
}
.hero-with-columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.882rem;
  margin-bottom: 2.353rem;
}
@media (min-width: 620px) {
  .hero-with-columns--two {
    grid-template-columns: 1fr 1fr;
    gap: 1.882rem;
  }
}
.card--hero .card__heading {
  font-weight: 700;
  font-size: 1.529rem;
  line-height: 1.231;
}
@media (min-width: 620px) {
  .card--hero .card__heading {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}
@media (min-width: 860px) {
  .card--hero .card__heading {
    font-size: 2.118rem;
    line-height: 1.111;
  }
}

/*═══════════════════════════════════════════
 * 4-COLUMN SECTION (Why Vitsae)
 *═══════════════════════════════════════════*/

.layout-four {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-bottom: 1px solid var(--border);
  padding-bottom: 3.529rem;
}
@media (min-width: 620px) {
  .layout-four {
    grid-template-columns: 1fr 1fr;
    gap: 1.882rem;
  }
}
@media (min-width: 860px) {
  .layout-four {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 1.882rem;
  }
}
.layout-four h2 {
  font-weight: 700;
  font-size: 1.529rem;
  line-height: 1.231;
  margin-bottom: 0.353rem;
}
@media (min-width: 620px) {
  .layout-four h2 {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}
.layout-four p {
  font-size: 1rem;
  line-height: 1.412;
  color: var(--text);
  margin: 0;
}

/*═══════════════════════════════════════════
 * RELATED ITEMS
 *═══════════════════════════════════════════*/

.related-items {
  margin-bottom: 3.765rem;
}
.related-items-title {
  font-weight: 400;
  font-size: 1.529rem;
  line-height: 1.231;
  margin-bottom: 2.353rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.353rem;
}
@media (min-width: 620px) {
  .related-items-title {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}
.related-items-more {
  text-align: right;
}
.related-items .grid-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 1.882rem;
}
.related-items .grid-layout .related-items-item-imgwrap {
  flex: 1 1 16.471rem;
  min-width: 14.118rem;
  text-decoration: none;
  display: block;
}
.related-items-item-image {
  margin-bottom: 0.353rem;
  overflow: hidden;
}
.related-items-item-image img {
  width: 100%;
  height: auto;
  display: block;
  transition: opacity var(--transition);
}
.related-items-item-imgwrap:hover .related-items-item-image img {
  opacity: 0.91;
}
.related-items-item-content h3 {
  font-weight: 700;
  font-size: 0.941rem;      /* 16/17 — same as h3 */
  line-height: 1.25;
  margin-bottom: 0.353rem;
  color: var(--text);
}
.related-items-item-content h3:hover {
  text-decoration: underline;
}
.related-items-item-content p {
  font-size: 0.824rem;      /* 14/17 — caption size */
  line-height: 1.429;
  color: var(--text-light);
  margin: 0;
}

/*═══════════════════════════════════════════
 * TESTIMONIAL / COMMENT SECTION
 *═══════════════════════════════════════════*/

.comment-layout {
  padding: 3.529rem 0;
  margin-bottom: 3.765rem;
}
.comment-layout .title {
  font-size: 1.529rem;
  line-height: 1.231;
  font-weight: 400;
  margin-bottom: 2.353rem;
  padding-bottom: 2.353rem;
  border-bottom: 1px solid var(--border);
}
@media (min-width: 620px) {
  .comment-layout .title {
    font-size: 1.882rem;
    line-height: 1.25;
  }
}
.comment-layout blockquote {
  margin-bottom: 1.176rem;
  border-left: 1px solid var(--border);
  padding-left: 1.176rem;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.412;
}
.comment-layout blockquote p {
  margin-bottom: 0.588rem;
}

/*═══════════════════════════════════════════
 * TEXT BLOCK DYNAMIC
 *═══════════════════════════════════════════*/

.text-block-content-dynamic {
  margin-bottom: 3.765rem;
}
.text-block-content-dynamic-title h2 {
  font-size: 1.529rem;
  line-height: 1.231;
  font-weight: 400;
  margin-bottom: 1.176rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.353rem;
}
@media (min-width: 620px) {
  .text-block-content-dynamic {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.882rem;
    align-items: start;
  }
  .text-block-content-dynamic-title {
    text-align: right;
  }
  .text-block-content-dynamic-title h2 {
    margin-bottom: 0;
    border-bottom: 0;
    padding-bottom: 0;
  }
}
.text-block-content-dynamic-image {
  margin-bottom: 1.176rem;
}
.text-block-content-dynamic-image img {
  width: 100%;
  height: auto;
  display: block;
}
.width-80 {
  max-width: 40em;           /* ~72ch at body size */
}
.width-80 p {
  font-size: 1rem;
  line-height: 1.412;
}

/*── Focus Message ──*/
.focus-message {
  background: var(--surface);
  padding: 1.176rem 1.882rem;  /* 20 32 */
  margin: 2.353rem 0;
  text-align: center;
}
.focus-message p {
  font-size: 1rem;
  line-height: 1.412;
  margin-bottom: 0;
}

.margin-below {
  margin-bottom: 3.529rem;
}

/*═══════════════════════════════════════════
 * HEADER LINE — full-width grey below nav
 *═══════════════════════════════════════════*/

.header-line {
  border-top: 1px solid var(--border);
  margin-bottom: 3.529rem;  /* 60px / 17 */
}

/*═══════════════════════════════════════════
 * FOOTER — vitsoe.com style
 * Light grey background (var(--surface))
 * Two columns:
 *   Col 1: address (HTML allowed) + widget
 *   Col 2: 2 stacked widget rows
 * Bottom bar: copyright + menu
 *═══════════════════════════════════════════*/

.site-footer {
  background: var(--surface);
  margin-top: auto;
}

/*── Two-Column Layout ──*/
.footer-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 3.529rem 1.765rem;
  padding: 3.529rem 0 3.529rem 0.882rem;
  border-bottom: 1px solid var(--border);
}
@media (min-width: 620px) {
  .footer-columns {
    padding-right: 1.765rem;
  }
}
@media (min-width: 860px) {
  .footer-columns {
    flex-wrap: nowrap;
  }
}

/*── Column 1: Address ──*/
.footer-col--brand {
  flex: 1 1 300px;
  min-width: 250px;
}
.footer-address {
  font-size: 0.941rem;     /* 16/17 */
  line-height: 1.412;
  color: var(--text);
  margin: 0 0 1.765rem;
}
.footer-address a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.footer-address a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.site-footer p {
  font-size: 0.941rem;
  line-height: 1.412;
  color: var(--text);
  margin: 0;
}

/* Column 1 widget */
.footer-col--brand .footer-widget {
  margin-top: 1.765rem;
}
.footer-col--brand .footer-widget ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-col--brand .footer-widget li {
  margin: 0 0 0.588rem;
  padding: 0;
  list-style: none;
  line-height: 1.412;
}
.footer-col--brand .footer-widget li:last-child {
  margin-bottom: 0;
}
.footer-col--brand .footer-widget a {
  font-size: 0.882rem;
  color: var(--text-light);
  text-decoration: none;
}
.footer-col--brand .footer-widget a:hover {
  color: var(--accent);
  text-decoration: underline;
}

/*── Column 2: Two stacked widget rows ──*/
.footer-col--content {
  flex: 2 1 500px;
}
.footer-widget-area {
  margin-bottom: 2.353rem;  /* 40/17 */
}
.footer-widget-area:last-child {
  margin-bottom: 0;
}

/* Column 2 widgets */
.footer-col--content .footer-widget {
  margin: 0;
}
.footer-col--content .footer-widget ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-col--content .footer-widget li {
  margin: 0 0 0.588rem;
  padding: 0;
  list-style: none;
  line-height: 1.412;
}
.footer-col--content .footer-widget li:last-child {
  margin-bottom: 0;
}
.footer-col--content .footer-widget a {
  font-size: 0.882rem;
  color: var(--text-light);
  text-decoration: none;
  line-height: 1.5;
}
.footer-col--content .footer-widget a:hover {
  color: var(--accent);
  text-decoration: underline;
}
.footer-col--content .footer-widget h3 {
  font-size: 0.941rem;
  line-height: 1.412;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 0.882rem;
  text-transform: none;
  letter-spacing: 0;
}

/*── Bottom Bar ──*/
.footer-bottom {
  background: var(--surface);
}
.footer-bottom .container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1.176rem;
  padding: 1.765rem 0.882rem;
}
@media (min-width: 620px) {
  .footer-bottom .container {
    padding: 1.765rem 1.765rem;
  }
}
.footer-bottom p {
  font-size: 0.824rem;
  color: var(--text-light);
  margin: 0;
  line-height: 1.429;
}
.footer-bottom .footer-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 1.176rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-bottom .footer-menu li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-bottom .footer-menu a {
  font-size: 0.824rem;
  color: var(--text-light);
  text-decoration: none;
  line-height: 1.429;
}
.footer-bottom .footer-menu a:hover {
  color: var(--accent);
  text-decoration: underline;
}

/*═══ RESPONSIVE: reduce base for small screens ═══*/

@media print {
  .button-menu-mobile,
  .nav-backdrop,
  ,
  .skip-link {
    display: none !important;
  }
  .site-header {
    position: static;
  }
  .nav-fixed {
    max-width: 69.4rem;
    margin: 0 auto;
  }
  body {
    background: #fff;
    color: #000;
  }
  a {
    text-decoration: underline;
  }
}
