:root {
  --vw-blue-dark: #001e50;
  --vw-blue: #0040c5;
  --vw-cyan: #00b0f0;
  --vw-white: #ffffff;
  --vw-black: #000e26;
  --vw-gray: #dfe4e8;
  --vw-text: #1b1f23;
  --vw-ease: cubic-bezier(.16, 1, .3, 1);
  --vw-ease-out: cubic-bezier(.16, 1, .3, 1);
  --iruna-container-max: 1440px;
  --iruna-gutter: clamp(24px, 4vw, 64px);
  --iruna-section-space: clamp(48px, 6vw, 96px);
  --iruna-header-height: 78px;
}

@font-face {
  font-family: 'vw-head';
  src: url('../fonts/vwhead-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'vw-head';
  src: url('../fonts/vwhead-bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'vw-head';
  src: url('../fonts/vwhead-light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'vw-text';
  src: url('../fonts/vwtext-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'vw-text';
  src: url('../fonts/vwtext-bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html {
  box-sizing: border-box;
  scroll-behavior: smooth;
  max-width: 100%;
}
*, *::before, *::after {
  box-sizing: inherit;
}

body {
  margin: 0;
  font-family: var(--iruna-font-text, 'vw-text', system-ui, sans-serif);
  font-size: var(--iruna-p-size, 1rem);
  color: var(--iruna-color-text, var(--vw-text));
  background: var(--iruna-color-bg, var(--vw-white));
  line-height: 1.5;
  min-width: 320px;
  max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--iruna-font-head, 'vw-head', sans-serif);
  color: var(--iruna-color-secondary, var(--vw-blue-dark));
  font-weight: var(--iruna-strong-weight, 700);
  line-height: 1.1;
}

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

h2 {
  font-size: var(--iruna-h2-size, clamp(1.8rem, 4vw, 3rem));
}

h3,
h4,
h5,
h6 {
  font-size: var(--iruna-h3-size, 1.5rem);
}

p {
  font-family: var(--iruna-font-text, 'vw-text', system-ui, sans-serif);
  font-size: var(--iruna-p-size, 1rem);
  color: var(--iruna-color-text, var(--vw-text));
}

span,
small {
  font-size: var(--iruna-small-size, .875rem);
}

strong,
b {
  font-weight: var(--iruna-strong-weight, 700);
}

img, picture, video, canvas, svg {
  max-width: 100%;
  display: block;
}

iframe {
  max-width: 100%;
}

table {
  border-collapse: collapse;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

textarea {
  width: 100%;
  resize: vertical;
}

:where(h1, h2, h3, h4, h5, h6, p, li, a, button, label) {
  overflow-wrap: break-word;
}

a {
  color: inherit;
  text-decoration: none;
}

@media screen and (max-width: 768px) {
  h1 {
    font-size: var(--iruna-h1-size-mobile, var(--iruna-h1-size, clamp(2rem, 6vw, 4rem)));
  }

  h2 {
    font-size: var(--iruna-h2-size-mobile, var(--iruna-h2-size, clamp(1.8rem, 4vw, 3rem)));
  }

  h3,
  h4,
  h5,
  h6 {
    font-size: var(--iruna-h3-size-mobile, var(--iruna-h3-size, 1.5rem));
  }

  p {
    font-size: var(--iruna-p-size-mobile, var(--iruna-p-size, 1rem));
  }
}

button, input, textarea, select {
  font: inherit;
}

button {
  cursor: pointer;
}

.site-wrapper {
  min-height: 100vh;
}

/* ============================================
   VW HEADER
   ============================================ */

.vw-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 1000;
  color: var(--vw-blue-dark);
  border-bottom: 1px solid rgba(0, 29, 80, 0.08);
  background: var(--vw-white);
  transition:
    background-color 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease,
    box-shadow 0.25s ease;
}

.vw-header__overlay {
  position: absolute;
  inset: 0;
  height: 130px;
  background: linear-gradient(
    180deg,
    rgba(0, 14, 38, 0.78) 0%,
    rgba(0, 14, 38, 0.45) 58%,
    rgba(0, 14, 38, 0) 100%
  );
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: none;
  opacity: 0;
  transition:
    opacity 0.25s ease,
    background 0.25s ease;
}

.vw-header--overlay:not(.is-scrolled) {
  color: #ffffff;
  border-bottom-color: transparent;
  background: transparent;
}

.vw-header--overlay:not(.is-scrolled) .vw-header__overlay {
  opacity: 1;
}

.vw-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.5rem;
  max-width: 100%;
  position: relative;
  z-index: 10;
}

.vw-header__left {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.vw-header__logo {
  display: flex;
  align-items: center;
}

.vw-logo {
  font-family: var(--iruna-font-head, 'vw-head', sans-serif);
  font-size: clamp(1rem, 2.5vw, 1.5rem);
  font-weight: var(--iruna-strong-weight, 700);
  color: inherit;
  display: flex;
  align-items: center;
  text-decoration: none;
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    opacity 0.25s ease;
}

.vw-logo:hover {
  opacity: 0.85;
}

.vw-logo img {
  max-height: 2.5rem;
  width: auto;
}

.vw-logo--svg {
  height: var(--iruna-header-logo-height, 40px);
  max-width: var(--iruna-header-logo-max-width, 180px);
}

.vw-logo__svg {
  display: flex;
  width: auto;
  height: 100%;
  max-width: 100%;
  align-items: center;
  color: inherit;
}

.vw-logo__svg svg {
  display: block;
  width: auto;
  max-width: 100%;
  height: 100%;
  color: inherit;
  fill: currentColor;
}

.vw-logo__svg svg [fill]:not([fill="none"]):not([fill="transparent"]) {
  fill: currentColor;
}

.vw-logo__svg svg [stroke]:not([stroke="none"]):not([stroke="transparent"]) {
  stroke: currentColor;
}

.vw-logo span,
.vw-menu-toggle__text {
  font-size: inherit;
}

.vw-menu-toggle {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  background: transparent;
  border: none;
  color: inherit;
  cursor: pointer;
  padding: 0.5rem 0;
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    opacity 0.25s ease;
  font-family: var(--iruna-font-text, 'vw-text', system-ui, sans-serif);
  font-size: 0.9rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.vw-menu-toggle:hover {
  opacity: 0.8;
}

.vw-menu-toggle__icon {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 1.3rem;
  height: 1rem;
  justify-content: center;
}

.vw-menu-toggle__icon::before,
.vw-menu-toggle__icon::after {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  background: currentColor;
  transition:
    background-color 0.25s ease,
    opacity 0.25s ease,
    transform 0.25s ease,
    width 0.25s ease;
}

.vw-menu-toggle__icon {
  position: relative;
}

.vw-menu-toggle__icon::before {
  width: 100%;
  transform-origin: center;
}

.vw-menu-toggle__icon::after {
  width: 70%;
  transform-origin: center;
}

.vw-menu-toggle[aria-expanded="true"] .vw-menu-toggle__icon::before {
  transform: rotate(45deg) translate(0.5rem, 0.5rem);
}

.vw-menu-toggle[aria-expanded="true"] .vw-menu-toggle__icon::after {
  transform: rotate(-45deg) translate(-0.3rem, 0.3rem);
  width: 100%;
}

.vw-header__right {
  display: flex;
  align-items: center;
}

.vw-header__search {
  background: transparent;
  border: none;
  color: inherit;
  cursor: pointer;
  padding: 0.5rem;
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    opacity 0.25s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.vw-header__search:hover {
  opacity: 0.8;
}

.vw-header__search svg {
  stroke: currentColor;
}

/* Transparent state over a visual hero. */
.vw-header--overlay:not(.is-scrolled) .vw-logo,
.vw-header--overlay:not(.is-scrolled) .vw-menu-toggle,
.vw-header--overlay:not(.is-scrolled) .vw-header__search {
  color: #ffffff;
}

.vw-header--overlay:not(.is-scrolled) .vw-menu-toggle__icon::before,
.vw-header--overlay:not(.is-scrolled) .vw-menu-toggle__icon::after {
  background: #ffffff;
}

/* Single scrolled state for every header variant. */
.vw-header.is-scrolled {
  color: var(--vw-blue-dark);
  border-bottom: 1px solid rgba(0, 29, 80, 0.08);
  background: var(--vw-white);
  box-shadow: 0 2px 10px rgba(0, 29, 80, 0.04);
}

.vw-header.is-scrolled .vw-header__overlay {
  opacity: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.vw-header.is-scrolled .vw-logo,
.vw-header.is-scrolled .vw-menu-toggle,
.vw-header.is-scrolled .vw-header__search {
  color: var(--vw-blue-dark);
}

.vw-header.is-scrolled .vw-menu-toggle__icon::before,
.vw-header.is-scrolled .vw-menu-toggle__icon::after {
  background: currentColor;
}

