/* Generated by scripts/bundle-css.mjs from base.css, header.css, mega-menu.css, footer.css, site.css, redesign.css, project-filter.css. Do not edit. */
/* base.css */
/* Base styles for the site's pages: a standard CSS reset (from the original
   theme) and the visually-hidden helper used by the skip link. */
/* Roboto (variable, weights 300-800, Latin), hosted with the site. Licence: Apache 2.0. */
@font-face{font-family:'Roboto';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(fonts/roboto-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}

.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;left:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}

/* header.css */
/* Site header (src/templates/global/header.html): white bar with the logo
   and the main menu. Measurements match the original Elementor / Max Mega Menu
   header. Mega menu panels: mega-menu.css. Phones use the drawer instead of
   the menu (src/scripts/vacc-menu.js). */
.vacc-header__topbar[hidden] { display: none; }

.vacc-header__bar { position: relative; padding: 5px 20px; border-bottom: 1px solid #d6d6d6; background: #fff; }
.vacc-header__inner { display: flex; max-width: 1140px; margin: 0 auto; }
.vacc-header__logo { display: flex; align-items: center; width: 23.466%; }
.vacc-header__logo a { display: block; width: 100%; }
.vacc-header__logo img { display: inline; width: 100%; height: auto; max-width: 100%; vertical-align: baseline; }

.vacc-nav { position: relative; display: flex; align-items: center; width: 76.534%; padding-bottom: 30px; box-sizing: border-box; }
.vacc-nav__menu { position: relative; flex: 1; margin: 0; padding: 0; list-style: none; text-align: right; }
.vacc-nav__item { display: inline-block; margin: 0; padding: 0; vertical-align: middle; box-sizing: border-box; }
.vacc-nav__item + .vacc-nav__item { border-left: 1px solid rgba(221, 209, 209, .1); box-shadow: inset 1px 0 0 0 rgba(255, 255, 255, .1); }
.vacc-nav__link {
  display: block;
  height: 80px;
  padding: 15px 10px 0;
  box-sizing: border-box;
  background: transparent;
  color: #121b53;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 80px;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  transition: background 200ms linear, color 200ms linear;
}
.vacc-nav__link:hover, .vacc-nav__link:focus { background: #fff; color: #ed1c24; text-decoration: none; }
.vacc-nav__link:focus { outline: none; }
.vacc-nav__link:focus-visible { outline: 3px solid #109cde; outline-offset: -3px; }
.vacc-nav__caret { display: inline-block; width: 14px; height: 14px; margin-left: 6px; fill: currentColor; vertical-align: -2px; }
.vacc-nav__burger { display: none; }

/* Tablets and phones: the full menu doesn't fit on one row, so the hamburger
   replaces it and opens the drawer. */
@media (min-width: 768px) and (max-width: 1024px) {
  .vacc-header__bar { padding: 14px 32px; }
  .vacc-header__inner { align-items: center; }
  .vacc-header__logo { width: 280px; }
  .vacc-nav { flex: 1; justify-content: flex-end; padding-bottom: 0; }
}
@media (max-width: 1024px) {
  .vacc-nav__menu { display: none; }
  .vacc-header .vacc-nav__burger,
  .vacc-header .vacc-nav__burger:hover,
  .vacc-header .vacc-nav__burger:focus {
    display: block;
    position: relative;
    flex: none;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    cursor: pointer;
    transform: scale(.8);
  }
  .vacc-header .vacc-nav__burger:focus { outline: none; }
  .vacc-header .vacc-nav__burger:focus-visible { outline: 3px solid #109cde; outline-offset: 2px; }
  .vacc-nav__burger span, .vacc-nav__burger span::before, .vacc-nav__burger span::after {
    position: absolute;
    left: 0;
    width: 40px;
    height: 4px;
    border-radius: 4px;
    background: #ddd;
  }
  .vacc-nav__burger span { top: 10px; }
  .vacc-nav__burger span::before, .vacc-nav__burger span::after { content: ""; display: block; }
  .vacc-nav__burger span::before { top: 10px; }
  .vacc-nav__burger span::after { top: 20px; }
}
@media (max-width: 767px) {
  .vacc-header__bar { padding: 5px; }
  .vacc-header__logo { width: 70%; }
  .vacc-nav { justify-content: center; width: 30%; }
  /* The plugin's toggle sat 3.4px right of the column centre. */
  .vacc-header .vacc-nav__burger, .vacc-header .vacc-nav__burger:hover, .vacc-header .vacc-nav__burger:focus { left: 23.431px; }
}

/* mega-menu.css */
/* Mega menu panels: feature photo with overlaid copy + icon grid of links.
   Markup: src/templates/global/header.html (.vacc-mega); opened by
   src/scripts/vacc-menu.js (.is-open on the menu item). Phones use the drawer
   further down instead. */
:root {
  --vacc-navy: #164271;
  --vacc-navy-deep: #0d2a4c;
  --vacc-red: #e3141c;
  --vacc-ink: #5a6676;
  --vacc-line: #e6ebf1;
  --vacc-tile: #ecf3fb;
  --vacc-icon: #1f66b3;
}

/* Plain block elements inside the panel. */
.vacc-mega, .vacc-mega ul, .vacc-mega li, .vacc-mega div, .vacc-mega a, .vacc-mega img {
  display: block;
  position: relative;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #666;
  font-family: inherit;
  font-size: 14px;
  line-height: 2.5;
  list-style: none;
  text-align: left;
  text-decoration: none;
}

/* Panel: wider than the menu, right-aligned with it, starting at the bottom
   of the white header bar (--vacc-mega-gap is measured by vacc-menu.js). */
.vacc-nav .vacc-mega {
  position: absolute;
  z-index: 999;
  top: calc(100% + var(--vacc-mega-gap, 0px));
  right: 0;
  display: grid;
  grid-template-columns: 40% 60%;
  width: min(960px, calc(100vw - 48px));
  border-radius: 0 0 10px 10px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(13, 42, 76, .16);
  visibility: hidden;
  opacity: 0;
  transform: translate(0, 10px);
  transition: opacity 200ms ease-in, transform 200ms ease-in, visibility 200ms ease-in;
}
.vacc-nav__item.is-open > .vacc-mega { visibility: visible; opacity: 1; transform: none; transition-duration: 200ms, 200ms, 0s; }
/* Invisible bridge over the gap between the menu label and the panel, so
   moving the pointer down into the panel never "leaves" the menu item. */
.vacc-nav .vacc-mega::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: calc(var(--vacc-mega-gap, 0px) + 2px);
}
/* Open top-level item: red label with underline, as in the design. */
.vacc-nav__item.is-open > .vacc-nav__link { background: #fff; color: var(--vacc-red); box-shadow: inset 0 -3px 0 var(--vacc-red); }

/* Feature photo with copy on top (no text in the image itself). */
.vacc-mega .vacc-mega__feature {
  position: relative;
  min-height: 320px;
  overflow: hidden;
  border-radius: 0 0 0 10px;
  background: var(--vacc-navy-deep);
}
.vacc-mega .vacc-mega__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}
.vacc-mega .vacc-mega__feature::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(13, 42, 76, .94) 0%, rgba(13, 42, 76, .82) 45%, rgba(22, 66, 113, .35) 100%);
}
.vacc-mega .vacc-mega__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 38px 34px;
  color: #fff;
  font-family: Roboto, Arial, sans-serif;
}
.vacc-mega .vacc-mega__eyebrow {
  display: inline-block;
  align-self: flex-start;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.6;
  background: linear-gradient(var(--vacc-red), var(--vacc-red)) left bottom / 18px 2px no-repeat;
  padding-bottom: 6px;
}
.vacc-mega .vacc-mega__title {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.01em;
}
.vacc-mega .vacc-mega__text {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .88);
}

/* Link grid: each link is a card with a navy icon tile; on hover the card
   lifts, the tile turns VACC red and the arrow slides in. */
.vacc-mega .vacc-mega__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* Every card is the same height in every panel (fits a three-line name). */
  grid-auto-rows: 88px;
  align-content: center;
  gap: 12px;
  padding: 26px;
  background: linear-gradient(180deg, #fff 0%, #f6f8fb 100%);
}
.vacc-mega .vacc-mega__item { min-width: 0; }
.vacc-mega .vacc-mega__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  height: 100%;
  padding: 14px 16px;
  overflow: hidden;
  border: 1px solid #e3e8ef;
  border-radius: 12px;
  background: #fff;
  color: var(--vacc-navy);
  font-family: Roboto, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.3;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.vacc-mega .vacc-mega__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--vacc-red);
  transform: scaleY(0);
  transition: transform .25s ease;
}
.vacc-mega .vacc-mega__link:hover, .vacc-mega .vacc-mega__link:focus-visible {
  border-color: #c9d5e3;
  background: #fff;
  color: var(--vacc-navy);
  box-shadow: 0 14px 28px -18px rgba(11, 37, 71, .45);
  transform: translateY(-2px);
}
.vacc-mega .vacc-mega__link:focus { outline: none; }
.vacc-mega .vacc-mega__link:focus-visible { outline: 2px solid var(--vacc-navy); outline-offset: 2px; }
.vacc-mega .vacc-mega__item.is-current .vacc-mega__link::before,
.vacc-mega .vacc-mega__link:hover::before { transform: scaleY(1); }
.vacc-mega .vacc-mega__item.is-current .vacc-mega__name { color: var(--vacc-red); }
.vacc-mega .vacc-mega__icon {
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #eaf0f7;
  box-shadow: inset 0 0 0 1px rgba(22, 66, 113, .06);
  color: var(--vacc-navy);
  font-size: 20px;
  transition: background .25s ease, box-shadow .25s ease, color .25s ease;
}
/* Hover: navy tile with a white icon. Current page: red tile. */
.vacc-mega .vacc-mega__link:hover .vacc-mega__icon {
  background: linear-gradient(140deg, var(--vacc-navy) 0%, var(--vacc-navy-deep) 100%);
  box-shadow: 0 8px 16px -8px rgba(11, 37, 71, .6);
  color: #fff;
}
.vacc-mega .vacc-mega__item.is-current .vacc-mega__icon {
  background: linear-gradient(140deg, #f0262e 0%, var(--vacc-red) 55%, #b80f16 100%);
  box-shadow: 0 8px 16px -8px rgba(227, 20, 28, .6);
  color: #fff;
}
.vacc-mega .vacc-mega__glyph { height: 1em; width: auto; fill: currentColor; }
.vacc-mega .vacc-mega__glyph--line { height: 1.15em; fill: none; stroke: currentColor; }
.vacc-mega .vacc-mega__glyph--line path { stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.vacc-mega .vacc-mega__label { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.vacc-mega .vacc-mega__name { color: var(--vacc-navy); font-size: 15px; font-weight: 700; letter-spacing: .005em; }
.vacc-mega .vacc-mega__arrow { flex: 0 0 auto; width: auto; height: 11px; fill: #9aa8b9; transition: transform .25s ease, fill .25s ease; }
.vacc-mega .vacc-mega__link:hover .vacc-mega__arrow { fill: var(--vacc-red); transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) {
  .vacc-mega .vacc-mega__link, .vacc-mega .vacc-mega__link::before, .vacc-mega .vacc-mega__arrow { transition: none; }
  .vacc-mega .vacc-mega__link:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .vacc-nav .vacc-mega { transition: none; } }

/* Phone menu drawer (built by src/scripts/vacc-menu.js). */
.vacc-drawer {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  flex-direction: column;
  padding: 24px 28px 32px;
  overflow-y: auto;
  overscroll-behavior: contain;
  color: #fff;
  font-family: "Roboto", sans-serif;
  background:
    linear-gradient(180deg, #0b2547 0%, #0e2d55 42%, rgba(14, 45, 85, .78) 68%, rgba(11, 37, 71, .55) 100%),
    url("/media/2022/03/oil-and-gas.jpg") center bottom / cover no-repeat,
    #0b2547;
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .25s ease, transform .25s ease;
}
.vacc-drawer.is-open { opacity: 1; transform: none; }
.vacc-drawer[hidden] { display: none; }
html.vacc-drawer-open, html.vacc-drawer-open body { overflow: hidden; }
.vacc-drawer svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.vacc-drawer__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 40px; }
.vacc-drawer__logo img { display: block; width: 172px; height: auto; }
.vacc-drawer__close { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -10px; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.vacc-drawer__close svg { width: 28px; height: 28px; stroke-width: 2.2; }
.vacc-drawer__nav ul { margin: 0; padding: 0; list-style: none; }
.vacc-drawer__nav > ul > li { position: relative; }
.vacc-drawer__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 0 12px 14px;
  border: 0;
  background: none;
  color: #fff !important;
  font: 400 17px/1.35 "Roboto", sans-serif;
  text-align: left;
  text-decoration: none !important;
  cursor: pointer;
}
.vacc-drawer__link svg { opacity: .85; transition: transform .2s ease; }
.vacc-drawer__link[aria-expanded="true"] svg { transform: rotate(90deg); }
.vacc-drawer__nav > ul > li.is-current > .vacc-drawer__link { font-weight: 700; }
.vacc-drawer__nav > ul > li.is-current::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 3px;
  height: 26px;
  border-radius: 2px;
  background: #e3141c;
}
.vacc-drawer__sub { margin: 0 0 8px 14px !important; padding: 4px 0 4px 14px !important; border-left: 1px solid rgba(255, 255, 255, .18); }
.vacc-drawer__sub[hidden] { display: none; }
.vacc-drawer__sub a { display: block; padding: 8px 0; color: rgba(255, 255, 255, .78) !important; font-size: 15px; text-decoration: none !important; }
.vacc-drawer__sub a[aria-current="page"] { color: #fff !important; font-weight: 600; }
.vacc-drawer__extra { display: grid; gap: 22px; margin-top: 24px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .16); }
.vacc-drawer__extra a { display: flex; align-items: center; gap: 16px; color: #fff !important; font-size: 14px; line-height: 1.4; text-decoration: none !important; }
.vacc-drawer__extra svg { width: 26px; height: 26px; stroke-width: 1.4; }
.vacc-drawer__social { display: flex; gap: 14px; margin-top: auto; padding-top: 48px; }
.vacc-drawer__social-link {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1.5px solid rgba(255, 255, 255, .85);
  border-radius: 50%;
  color: #fff !important;
  font-size: 15px;
  text-decoration: none !important;
}
.vacc-drawer__social-link .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.vacc-drawer__social-link svg { width: 16px; height: 16px; fill: currentColor; stroke: none; }
.vacc-drawer a:focus-visible, .vacc-drawer button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 4px; }
@media (prefers-reduced-motion: reduce) { .vacc-drawer, .vacc-drawer__link svg { transition: none; } }
/* The theme gives every button a coloured hover/focus background; not in the drawer. */
.vacc-drawer button, .vacc-drawer button:hover, .vacc-drawer button:focus, .vacc-drawer button:active { background: none !important; box-shadow: none !important; color: #fff !important; }

/* footer.css */
/* Site footer (src/templates/global/footer.html). Measurements match the
   original Elementor footer: 1140px grid, four columns, navy background. */
.vacc-footer { --vf-navy: #164271; --vf-dim: rgba(255, 255, 255, .38); font-family: Roboto, sans-serif; }
.vacc-footer *, .vacc-footer *::before, .vacc-footer *::after { box-sizing: border-box; }
.vacc-footer ul { margin: 0; padding: 0; list-style: none; }
.vacc-footer p { margin: 0; }
.vacc-footer img { display: block; max-width: 100%; height: auto; }
.vacc-footer .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.vacc-footer__main { padding: 50px 0; background: var(--vf-navy); }
.vacc-footer__grid { display: flex; max-width: 1140px; margin: 0 auto; }
.vacc-footer__col { padding: 10px; }
.vacc-footer__col--connect { width: 29.21%; }
.vacc-footer__col--services { width: 23.509%; }
.vacc-footer__col--footprint { width: 27.631%; }
.vacc-footer__col--rfq { width: 19.563%; }

.vacc-footer__logo { width: 74.437%; padding-bottom: 30px; }
.vacc-footer__logo img { width: 40%; }

.vacc-footer__heading { margin: 0 0 20px; color: #fff; font-family: Roboto, sans-serif; font-size: 18px; font-weight: 500; line-height: 1; }
.vacc-footer__heading--connect { margin-top: 100px; }
.vacc-footer__heading--footprint { line-height: 1.6em; }

.vacc-footer__social { display: flex; gap: 5px; }
.vacc-footer__social li { display: flex; }
.vacc-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #fff; color: var(--vf-navy); cursor: pointer; }
.vacc-footer .vacc-footer__social svg { width: 12px; height: 12px; fill: var(--vf-navy); }

.vacc-footer .vacc-footer__links { margin-bottom: 20px; }
.vacc-footer .vacc-footer__links:last-child { margin-bottom: 0; }
.vacc-footer__links li + li { margin-top: 2.5px; }
.vacc-footer__links li:not(:last-child) { padding-bottom: 2.5px; }
.vacc-footer__links a { display: block; color: var(--vf-dim); font-size: 14px; font-weight: 300; line-height: 1.5; text-decoration: none; transition: color .3s; }
.vacc-footer__links a:hover { color: #fff; }

.vacc-footer__countries { width: 103.379%; }
.vacc-footer__countries li { display: flex; align-items: center; color: var(--vf-dim); font-size: 16px; line-height: 24px; }
.vacc-footer__countries svg { flex: none; width: 14px; height: 14px; margin-right: 3.5px; }
.vacc-footer__countries span { padding-left: 5px; }

.vacc-footer__text { display: flow-root; margin-bottom: 20px; color: var(--vf-dim); font-size: 16px; font-weight: 400; line-height: 24px; }
.vacc-footer__text p { margin-bottom: 14.4px; }
.vacc-footer__text a { color: inherit; }
.vacc-footer__text a:hover, .vacc-footer__text a:focus { color: #fff; }
.vacc-footer__certs img { width: 100%; border-radius: 20px; }

.vacc-footer__bar { border-top: 1px solid rgba(255, 255, 255, .19); background: var(--vf-navy); }
.vacc-footer__bar-inner { display: flex; align-items: center; max-width: 1140px; min-height: 50px; margin: 0 auto; }
.vacc-footer__copy, .vacc-footer__credit { width: 50%; padding: 10px; font-weight: 300; }
.vacc-footer__copy { color: #adadad; font-size: 14px; line-height: 1; }
.vacc-footer__credit { font-size: 11px; letter-spacing: .02em; line-height: 1; text-align: right; }
.vacc-footer__credit a { color: rgba(255, 255, 255, .32); text-decoration: none; transition: color .2s; }
.vacc-footer__credit a:hover, .vacc-footer__credit a:focus-visible { color: #fff; text-decoration: none; }

@media (max-width: 1024px) {
  .vacc-footer__links a { font-size: 13px; }
  .vacc-footer__bar { padding: 10px 20px; }
}
@media (max-width: 767px) {
  .vacc-footer__main { padding: 50px 20px; }
  .vacc-footer__grid { flex-direction: column; }
  .vacc-footer__col { width: 100%; }
  .vacc-footer__heading--connect { margin-top: 50px; }
  .vacc-footer__certs { width: 226.771px; max-width: 226.771px; }
  .vacc-footer__bar { padding: 30px 20px 20px; }
  .vacc-footer__bar-inner { flex-wrap: wrap; }
  .vacc-footer__copy, .vacc-footer__credit { width: 100%; text-align: left; }
  .vacc-footer__copy { padding: 0; }
}

/* site.css */
/* Small site-wide adjustments on top of the recovered Elementor styles. */

/* Back-to-top button (markup and script: src/layouts/BaseLayout.astro). */
.vacc-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9999;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #164271;
  color: #fff;
  box-shadow: 0 6px 18px rgba(13, 42, 76, .28);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s, background-color .15s ease;
}
.vacc-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
/* Over dark sections (footer, blue bands, dark banners) the button turns red
   so it never disappears into the background. */
.vacc-to-top.on-dark { background: #e3141c; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); }
.vacc-to-top:hover, .vacc-to-top:focus-visible { background: #e3141c; }
.vacc-to-top.on-dark:hover, .vacc-to-top.on-dark:focus-visible { background: #c10f16; }
.vacc-to-top:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px #164271; }
.vacc-to-top svg { width: 20px; height: 20px; }
@media (max-width: 768px) { .vacc-to-top { right: 16px; bottom: 16px; width: 44px; height: 44px; } }
@media (prefers-reduced-motion: reduce) { .vacc-to-top { transition: none; } }

/* Capabilities page: modern bullets for the sub-items under each heading
   (the first item of each list is the heading and keeps its own style). */
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) {
  display: flex;
  align-items: flex-start;
  padding-inline-start: 4px;
}
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) > .elementor-icon-list-icon { display: none; }
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) > .elementor-icon-list-text {
  position: relative;
  padding-inline-start: 30px;
}
.elementor-727 :is(.elementor-element-b507cae, .elementor-element-a3e8d68, .elementor-element-44355b2,
  .elementor-element-e0f0699, .elementor-element-f10a21d, .elementor-element-8e21613)
  .elementor-icon-list-item:not(:first-child) > .elementor-icon-list-text:not(:empty)::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(0.75em - 9px);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #e3141c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
  box-shadow: 0 0 0 3px rgba(227, 20, 28, .18);
}

/* Capabilities page: no zigzag dividers between the groups. */
.elementor-727 .elementor-widget-divider--separator-type-pattern { display: none !important; }

/* "Other Projects" carousel on project pages, styled like the homepage
   Featured Projects cards (details added in src/lib/entries.ts). */
.fl-module-post-carousel .fl-post-carousel-post {
  background: #fff !important;
  /* White cards on a white page: a border (the carousel clips shadows). */
  border: 1px solid #dfe3e8 !important;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column;
}
.fl-module-post-carousel .fl-post-carousel-image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.fl-module-post-carousel .fl-post-carousel-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  padding: 18px 20px 24px !important;
  font-family: "Roboto", sans-serif;
}
.fl-module-post-carousel .vacc-card-badge {
  display: inline-block;
  margin-bottom: 12px;
  padding: 2px 8px;
  border-radius: 20px;
  background: #61ce70;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 12px;
  padding-block: 4px;
}
.fl-module-post-carousel .fl-post-carousel-title { margin: 0 0 14px !important; font-family: "Roboto", sans-serif !important; font-size: 20px !important; font-weight: 600 !important; line-height: 1.2 !important; }
.fl-module-post-carousel .fl-post-carousel-title a { color: #7a7a7a !important; }
.fl-module-post-carousel .fl-post-carousel-title a:hover { color: #164271 !important; }
.fl-module-post-carousel .vacc-card-meta { align-self: stretch; margin: 0 0 18px; padding: 0; list-style: none; }
.fl-module-post-carousel .vacc-card-meta li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 0 7px;
  margin: 0 0 7px;
  border-bottom: 1px solid #ddd;
  color: #7a7a7a;
  font-size: 16px;
  line-height: 24px;
}
.fl-module-post-carousel .vacc-card-meta li:last-child { margin-bottom: 0; }
.fl-module-post-carousel .vacc-card-meta svg { flex: none; width: 14px; height: 14px; fill: rgba(122, 122, 122, .31); }
.fl-module-post-carousel .fl-post-carousel-content { margin-top: auto; }
.fl-module-post-carousel .fl-post-carousel-more {
  display: inline-block;
  padding: 12px 24px;
  border: 1px solid #164271;
  border-radius: 20px;
  color: #164271 !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 15px;
  text-decoration: none !important;
  transition: background-color .2s, color .2s;
}
.fl-module-post-carousel .fl-post-carousel-more:hover { background: #164271; color: #fff !important; }
.fl-module-post-carousel .fl-post-carousel-navigation svg path,
.fl-module-post-carousel .fl-post-carousel-navigation a { color: #164271 !important; fill: #164271 !important; }

/* Video page banners (Services, Business Sectors, Projects, Our Commitment):
   brand blue under and over the video, same height as the other banners. */
.vacc-video-banner { position: relative; overflow: hidden; background-color: #164271; }
.vacc-video-banner > .elementor-container { min-height: 300px; }
.vacc-video-banner > .elementor-background-overlay { background-color: #164271cc !important; opacity: 1 !important; }
.vacc-video-banner > .elementor-background-video-container { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.vacc-video-banner > .elementor-background-video-container video { width: 100% !important; height: 100% !important; object-fit: cover; }
.vacc-video-banner > .elementor-container { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .vacc-video-banner > .elementor-background-video-container { display: none; } }
/* Services: the empty text section above the banner would leave a white strip. */
.elementor-element-3bd83002:not(:has(.elementor-widget-container *)) { display: none; }

/* Our Commitment: the four commitment pillars as cards on a light band. */
.elementor-321 .elementor-element-6647f2d {
  background: #f4f6f9;
  padding: 88px 0 !important;
  margin: 0 !important;
  counter-reset: pillar;
}
.elementor-321 .elementor-element-6647f2d > .elementor-container { gap: 24px; }
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap {
  counter-increment: pillar;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  height: 100%;
  padding: 44px 28px 40px !important;
  background: #fff;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  text-align: center;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
/* Red top edge, revealed on hover. */
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: #e3141c;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
/* Small index number in the corner. */
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap::after {
  content: counter(pillar, decimal-leading-zero);
  position: absolute;
  top: 18px;
  right: 22px;
  color: #e3141c;
  font: 600 13px/1 "Roboto", sans-serif;
  letter-spacing: .08em;
}
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap:hover {
  transform: translateY(-6px);
  border-color: transparent;
  box-shadow: 0 18px 40px rgba(13, 42, 76, .12);
}
.elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap:hover::before { transform: scaleX(1); }
.elementor-321 .elementor-element-6647f2d .elementor-widget-icon { width: auto !important; margin: 0 0 26px !important; }
.elementor-321 .elementor-element-6647f2d .elementor-icon {
  display: grid !important;
  place-items: center;
  width: 72px;
  height: 72px;
  padding: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, #1d5592, #123660) !important;
  color: #fff !important;
  font-size: 28px !important;
  box-shadow: 0 10px 22px rgba(22, 66, 113, .25);
}
.elementor-321 .elementor-element-6647f2d .elementor-icon i,
.elementor-321 .elementor-element-6647f2d .elementor-icon svg { color: #fff !important; fill: #fff !important; width: 1em; height: 1em; }
.elementor-321 .elementor-element-6647f2d .elementor-widget-heading { width: 100%; margin: 0 !important; }
.elementor-321 .elementor-element-6647f2d .elementor-heading-title {
  color: #164271 !important;
  font: 600 20px/1.3 "Roboto", sans-serif !important;
}
/* Short red accent under each title. */
.elementor-321 .elementor-element-6647f2d .elementor-heading-title::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  margin: 16px auto 0;
  border-radius: 2px;
  background: #e3141c;
}
@media (max-width: 1024px) {
  .elementor-321 .elementor-element-6647f2d > .elementor-container { flex-wrap: wrap; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column { width: calc(50% - 12px) !important; }
}
@media (max-width: 767px) {
  .elementor-321 .elementor-element-6647f2d { padding: 56px 16px !important; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container { gap: 16px; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column { width: 100% !important; }
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 36px 24px 32px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-321 .elementor-element-6647f2d > .elementor-container > .elementor-column > .elementor-widget-wrap { transition: none; }
}
.elementor-321 .elementor-element-6647f2d .elementor-widget-icon > .elementor-widget-container { margin: 0 !important; padding: 0 !important; background: none !important; }

/* Work Culture: space before the footer now that the photo row is gone. */
.elementor-element-7b58fca { padding-bottom: 80px !important; }

/* Community & Environment: wide stakeholder photo after the partnerships text. */
.vacc-feature-photo { padding: 0 0 96px; margin-top: -48px; }
.vacc-feature-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1800 / 766;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: 0 24px 48px rgba(13, 42, 76, .14);
}
@media (max-width: 767px) {
  .vacc-feature-photo { padding: 0 16px 56px; margin-top: -24px; }
  .vacc-feature-photo img { border-radius: 14px; }
}

/* Project card grids (homepage Featured / Regional Projects, sector pages):
   every card the same height, photos the same shape, button at the bottom. */
.elementor-widget-loop-grid .elementor-loop-container > .e-loop-item {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:first-child img {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child { flex: 1; display: flex; flex-direction: column; }
/* The recovered loop template limits the details container to its contents.
   Let titles, metadata and the action use the full width of each white card. */
.elementor-widget-loop-grid .elementor-5084 .elementor-element-620258f > .elementor-container {
  width: 100%;
  max-width: none !important;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child > .elementor-container,
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child > .elementor-container > .elementor-column { flex: 1; align-items: stretch !important; }
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child .elementor-widget-wrap {
  flex-direction: column;
  flex-wrap: nowrap !important;
  align-content: flex-start !important;
  justify-content: flex-start !important;
  height: 100%;
}
.elementor-widget-loop-grid .e-loop-item > .elementor-section:last-child .elementor-widget-wrap > .elementor-widget-button:last-child { margin-top: auto !important; }

/* Footer credit: small "Fineries Digital" link. */

/* redesign.css */
/* Redesigned page layouts (src/templates/redesign). Header and footer keep
   their own styles; everything inside <main class="vr"> is styled here. */
.vr {
  --vr-navy: #164271;
  --vr-deep: #0b2547;
  --vr-red: #e3141c;
  --vr-ink: #142235;
  --vr-text: #3d4a5c;
  --vr-muted: #6b7686;
  --vr-line: #e3e8ef;
  --vr-soft: #f4f6f9;
  --vr-radius: 14px;
  --vr-gutter: clamp(20px, 5vw, 40px);
  --vr-space: clamp(64px, 9vw, 112px);
  display: block;
  color: var(--vr-text);
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
.vr *, .vr *::before, .vr *::after { box-sizing: border-box; }
.vr img { display: block; max-width: 100%; height: auto; }
.vr p { margin: 0 0 1.1em; }
.vr p:last-child { margin-bottom: 0; }
.vr a { color: var(--vr-navy); }
.vr h1, .vr h2, .vr h3 { margin: 0; color: var(--vr-ink); font-family: inherit; letter-spacing: -.01em; }
.vr-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 var(--vr-gutter); }
.vr-section { padding: var(--vr-space) 0; }
.vr-section--soft { background: var(--vr-soft); }
.vr-section--navy { background: var(--vr-navy); color: rgba(255, 255, 255, .86); }
.vr-section--navy h2, .vr-section--navy h3 { color: #fff; }

/* Eyebrow label: small red rule + uppercase text. */
.vr-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
  color: var(--vr-red);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
}
.vr-section--navy .vr-eyebrow, .vr-hero .vr-eyebrow { color: #fff; }
.vr-h2 { font-size: clamp(28px, 3.4vw, 40px); font-weight: 700; line-height: 1.2; }
.vr-lead { font-size: clamp(18px, 1.6vw, 20px); line-height: 1.7; color: var(--vr-ink); }
.vr-lead-first > p:first-child { color: var(--vr-ink); font-size: clamp(19px, 1.7vw, 22px); font-weight: 500; line-height: 1.6; }

/* Page hero: photo under a navy gradient, title bottom-left. */
.vr-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: clamp(340px, 46vw, 520px);
  padding: 0 0 clamp(48px, 6vw, 80px);
  overflow: hidden;
  background: var(--vr-deep);
  color: #fff;
}
.vr-hero__media { position: absolute; inset: 0; }
.vr-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.vr-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(11, 37, 71, .92) 0%, rgba(22, 66, 113, .72) 55%, rgba(22, 66, 113, .35) 100%),
              linear-gradient(0deg, rgba(11, 37, 71, .6) 0%, rgba(11, 37, 71, 0) 50%);
}
.vr-hero .vr-wrap { position: relative; z-index: 1; }
.vr-hero h1 { max-width: 14ch; color: #fff; font-size: clamp(38px, 6vw, 68px); font-weight: 700; line-height: 1.05; }
.vr-hero__rule { width: 64px; height: 4px; margin: 0 0 22px; border-radius: 2px; background: var(--vr-red); }
.vr-hero .vr-eyebrow { margin-bottom: 20px; }

/* Two-column text + image. */
.vr-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.vr-split--reverse > :first-child { order: 2; }
.vr-split__media { position: relative; }
.vr-split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--vr-radius); box-shadow: 0 30px 60px -24px rgba(13, 42, 76, .35); }
.vr-split__media::before {
  content: "";
  position: absolute;
  inset: 22px -22px -22px 22px;
  z-index: -1;
  border-radius: var(--vr-radius);
  background: var(--vr-soft);
}
.vr-split--reverse .vr-split__media::before { inset: 22px 22px -22px -22px; }
.vr-split__text .vr-h2 { margin-bottom: 24px; }

/* Rich text: lists as a two-column checklist. */
.vr-prose ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin: 28px 0 0; padding: 0; list-style: none; }
/* Flex so the tick and the text stay centred together, even when a row is
   taller because the neighbouring item wraps onto two lines. */
.vr-prose li {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100%;
  padding: 14px 16px 14px 48px;
  border: 1px solid var(--vr-line);
  border-radius: 10px;
  background: #fff;
  color: var(--vr-ink);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.45;
}
.vr-prose li::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  border-radius: 50%;
  background: var(--vr-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* Statement / quote. */
.vr-quote { position: relative; max-width: 940px; }
.vr-quote__mark::before { content: "\201C"; }
.vr-quote__mark { display: block; height: 56px; margin-bottom: 8px; color: var(--vr-red); font: 700 120px/1 Georgia, serif; }
.vr-quote blockquote { margin: 0; color: var(--vr-ink); font-size: clamp(22px, 2.5vw, 31px); font-weight: 500; line-height: 1.5; letter-spacing: -.005em; white-space: pre-line; }
.vr-quote__by { display: flex; align-items: center; gap: 16px; margin-top: 36px; font-size: 16px; line-height: 1.5; }
.vr-quote__by p { margin: 0; color: var(--vr-muted); font-style: normal; }
.vr-quote__by, .vr-quote__by * { font-style: normal; }
.vr-quote__by strong { color: var(--vr-ink); font-weight: 700; }

/* Vision / mission panel next to a photo. */
.vr-duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 520px; }
.vr-duo__media img { width: 100%; height: 100%; object-fit: cover; }
.vr-duo__panel { display: grid; align-content: center; gap: 44px; padding: clamp(48px, 7vw, 96px) clamp(24px, 6vw, 88px); background: var(--vr-navy); }
.vr-duo__item h2 { margin-bottom: 12px; color: #fff; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.vr-duo__item p { margin: 0; color: #fff; font-size: clamp(21px, 2.1vw, 27px); font-weight: 500; line-height: 1.4; }

/* Value / feature cards. */
.vr-head { max-width: 720px; margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; }
.vr-head .vr-eyebrow { justify-content: center; }
.vr-head p { margin-top: 18px; color: var(--vr-muted); }
.vr-values { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.vr-values > .vr-value { flex: 0 0 calc((100% - 48px) / 3); }
.vr-value { position: relative; padding: 36px 32px; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.vr-value:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(13, 42, 76, .25); }
.vr-value__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 24px; border-radius: 14px; background: linear-gradient(135deg, #1d5592, #123660); color: #fff; }
.vr-value__icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vr-values { counter-reset: vr-value; }
.vr-value { counter-increment: vr-value; }
.vr-value__num::before { content: counter(vr-value, decimal-leading-zero); }
.vr-value__num { position: absolute; top: 30px; right: 30px; color: var(--vr-red); font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.vr-value h3 { margin-bottom: 12px; font-size: 21px; font-weight: 700; }
.vr-value p { margin: 0; color: var(--vr-text); font-size: 16px; line-height: 1.7; }

/* Project cards. */
.vr-cards { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; }
.vr-cards > .vr-card { flex: 0 0 calc((100% - 56px) / 3); }
.vr-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.vr-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(13, 42, 76, .25); }
.vr-card__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s ease; }
.vr-card:hover .vr-card__media img { transform: scale(1.04); }
.vr-card__media { overflow: hidden; }
.vr-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 24px 26px 28px; }
.vr-tag { display: inline-block; margin-bottom: 14px; padding: 4px 10px; border-radius: 20px; background: rgba(22, 66, 113, .08); color: var(--vr-navy); font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1.3; }
.vr-card__title { margin-bottom: 6px; font-size: 20px; font-weight: 700; line-height: 1.3; }
.vr-card__title a { color: var(--vr-ink); text-decoration: none; }
.vr-card__meta { margin: 0 0 20px !important; color: var(--vr-muted); font-size: 15px; }
.vr-link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--vr-navy); font-size: 15px; font-weight: 600; text-decoration: none; }
.vr-link::after { content: "→"; transition: transform .2s ease; }
.vr-link:hover::after { transform: translateX(4px); }

/* Tablet. */
@media (max-width: 1023px) {
  .vr-split { grid-template-columns: 1fr; }
  .vr-split--reverse > :first-child { order: 0; }
  .vr-split__media { max-width: 680px; }
  .vr-duo { grid-template-columns: 1fr; min-height: 0; }
  .vr-duo__media img { aspect-ratio: 16 / 9; height: auto; }
  .vr-values > .vr-value { flex-basis: calc((100% - 24px) / 2); }
  .vr-cards > .vr-card { flex-basis: calc((100% - 28px) / 2); }
}

/* Phone: bigger, easier-to-read paragraphs. */
@media (max-width: 767px) {
  .vr { font-size: 18px; line-height: 1.75; }
  .vr-value p, .vr-prose li { font-size: 17px; }
  .vr-hero { min-height: 320px; }
  .vr-split__media::before { inset: 14px -10px -14px 14px; }
  .vr-split--reverse .vr-split__media::before { inset: 14px 14px -14px -10px; }
  .vr-prose ul { grid-template-columns: 1fr; }
  .vr-cards > .vr-card { flex-basis: 100%; }
  .vr-values > .vr-value { flex-basis: 100%; }
  .vr-value { padding: 30px 24px; }
  .vr-quote__mark { height: 44px; font-size: 96px; }
}
@media (prefers-reduced-motion: reduce) {
  .vr-value, .vr-card, .vr-card__media img, .vr-link::after { transition: none; }
}

/* Hero for pages without a banner photo: brand navy only. */
.vr-hero--plain { padding-top: clamp(72px, 9vw, 120px); min-height: clamp(280px, 32vw, 400px); background: radial-gradient(120% 140% at 85% 0%, #1d5592 0%, #164271 45%, #0b2547 100%); }
.vr-hero--plain::after { display: none; }

/* Image animation. Photos rise and sharpen into view as they scroll in
   (src/scripts/vacc-reveal.js adds .is-in); hover zooms gently; the hero
   photo drifts slowly. All off for visitors who prefer reduced motion. */
@keyframes vr-drift { from { transform: scale(1.12); } to { transform: scale(1); } }
.vr-hero__media img { animation: vr-drift 9s ease-out both; }
.vr-split__media, .vr-duo__media, .vr-card__media { overflow: hidden; }
.vr-split__media { overflow: visible; }
.vr-split__media img, .vr-duo__media img { transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.vr-split__media:hover img, .vr-duo__media:hover img { transform: scale(1.03); }
.vr-js .vr-reveal { opacity: 0; transform: translateY(40px); clip-path: inset(12% 0 0 0 round var(--vr-radius)); transition: opacity .9s ease, transform 1s cubic-bezier(.2, .7, .2, 1), clip-path 1.1s cubic-bezier(.2, .7, .2, 1); }
.vr-js .vr-reveal.is-in { opacity: 1; transform: none; clip-path: inset(0 0 0 0 round var(--vr-radius)); }
.vr-js .vr-duo__media img.vr-reveal, .vr-js .vr-duo__media img.vr-reveal.is-in { clip-path: none; }
@media (prefers-reduced-motion: reduce) {
  .vr-hero__media img { animation: none; }
  .vr-split__media img, .vr-duo__media img { transition: none; }
  .vr-split__media:hover img, .vr-duo__media:hover img { transform: none; }
  .vr-js .vr-reveal { opacity: 1; transform: none; clip-path: none; transition: none; }
}

/* Hero intro line (pages whose intro sits under the title). */
.vr-hero__intro { max-width: 640px; margin-top: 18px; color: rgba(255, 255, 255, .88); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.6; }
.vr-hero__intro p { margin: 0; }

/* Centred text block. */
.vr-narrow { max-width: 780px; margin: 0 auto; }
.vr-narrow--center { text-align: center; }

/* Large statement line. */
.vr-statement { max-width: 900px; color: var(--vr-ink); font-size: clamp(22px, 2.4vw, 30px); font-weight: 500; line-height: 1.45; }

/* Photo galleries: one column count per list (2 or 3). */
.vr-gallery { display: grid; grid-template-columns: repeat(var(--vr-cols, 3), minmax(0, 1fr)); gap: 24px; }
.vr-gallery--2 { --vr-cols: 2; }
.vr-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--vr-radius); }
.vr-gap { margin-top: clamp(40px, 5vw, 64px); }

/* Wide feature photo. */
.vr-wide img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; border-radius: var(--vr-radius); box-shadow: 0 30px 60px -24px rgba(13, 42, 76, .3); }
.vr-wide--natural img { aspect-ratio: auto; }

@media (max-width: 767px) {
  .vr-gallery { grid-template-columns: 1fr; gap: 16px; }
  .vr-wide img { aspect-ratio: 4 / 3; }
  .vr-wide--natural img { aspect-ratio: auto; }
}

/* Video hero (Services, Business Sectors, Our Commitment). */
.vr-hero__media video { width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .vr-hero__media video { display: none; } }

/* Uniform card grids (one column width per list, short rows centred). */
.vr-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; }
.vr-grid > * { flex: 0 0 calc((100% - 56px) / 3); }
.vr-grid--4 > * { flex-basis: calc((100% - 84px) / 4); }

/* Link tiles (Services). */
.vr-tile { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; color: var(--vr-ink); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.vr-tile:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(13, 42, 76, .25); }
.vr-tile img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.vr-tile:hover img { transform: scale(1.04); }
.vr-tile__media { overflow: hidden; }
.vr-tile__body { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 26px; }
.vr-tile h3 { font-size: 20px; font-weight: 700; line-height: 1.3; }
.vr-tile__arrow { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--vr-soft); color: var(--vr-navy); transition: background .2s, color .2s; }
.vr-tile:hover .vr-tile__arrow { background: var(--vr-red); color: #fff; }
.vr-tile__arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Sector cards with a short checklist (Business Sectors). */
.vr-sectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.vr-sector { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); overflow: hidden; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; }
.vr-sector__media { overflow: hidden; }
.vr-sector__media img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; transition: transform .6s ease; }
.vr-sector:hover .vr-sector__media img { transform: scale(1.04); }
.vr-sector__body { display: flex; flex-direction: column; padding: 30px 28px; }
.vr-sector h3 { margin-bottom: 16px; font-size: 21px; font-weight: 700; line-height: 1.3; }
.vr-sector h3 a { color: var(--vr-ink); text-decoration: none; }
.vr-ticks { display: grid; gap: 10px; margin: 0 0 22px; padding: 0; list-style: none; }
.vr-ticks li { position: relative; padding-left: 28px; color: var(--vr-text); font-size: 16px; line-height: 1.5; }
.vr-ticks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--vr-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 11px no-repeat; }
.vr-sector .vr-link { margin-top: auto; }

/* Capability cards (Capabilities). */
.vr-cap { padding: 32px 30px; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; }
.vr-cap h3 { margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--vr-line); color: var(--vr-navy); font-size: 15px; font-weight: 700; letter-spacing: .04em; line-height: 1.4; }
.vr-feature img { width: 100%; max-width: 520px; margin: 0 auto; }

/* Team (Management Team). */
.vr-member { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; }
.vr-member__photo { overflow: hidden; background: var(--vr-soft); }
.vr-member__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; transition: transform .6s ease; }
.vr-member:hover .vr-member__photo img { transform: scale(1.03); }
.vr-member__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 22px 24px 24px; }
.vr-member__name { margin-bottom: 4px; font-size: 20px; font-weight: 700; line-height: 1.3; }
.vr-member__role { margin: 0 0 16px !important; color: var(--vr-muted); font-size: 15px; line-height: 1.5; }
button.vr-link { margin-top: auto; padding: 0; border: 0; background: none !important; color: var(--vr-navy) !important; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.vr-dialog, .vr-lightbox { padding: 0; border: 0; border-radius: var(--vr-radius); box-shadow: 0 40px 80px rgba(0, 0, 0, .35); }
.vr-dialog { width: min(720px, calc(100% - 32px)); max-height: calc(100% - 48px); color: var(--vr-text); font: 17px/1.75 "Roboto", sans-serif; }
.vr-dialog::backdrop, .vr-lightbox::backdrop { background: rgba(11, 37, 71, .72); }
.vr-dialog__head { display: flex; align-items: center; gap: 20px; padding: 32px 32px 0; }
.vr-dialog__head img { flex: none; width: 88px; height: 88px; border-radius: 50%; object-fit: cover; object-position: top; }
.vr-dialog__head h3 { margin: 0; color: var(--vr-ink); font-size: 22px; font-weight: 700; }
.vr-dialog__head p { margin: 2px 0 0; color: var(--vr-muted); font-size: 15px; }
.vr-dialog__body { padding: 20px 32px 34px; }
.vr-dialog__body p { margin: 0 0 1em; }
.vr-dialog__close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--vr-soft) !important; color: var(--vr-ink) !important; font-size: 26px; line-height: 1; cursor: pointer; }
.vr-lightbox { max-width: calc(100% - 32px); max-height: calc(100% - 32px); background: #fff; }
.vr-lightbox img { display: block; max-width: 100%; max-height: calc(100vh - 32px); object-fit: contain; }

/* Certificates gallery (Awards & Certifications). */
.vr-certs { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.vr-certs > * { flex: 0 0 calc((100% - 72px) / 4); }
.vr-cert { display: block; overflow: hidden; padding: 14px; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.vr-cert:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(13, 42, 76, .25); }
.vr-cert img { width: 100%; aspect-ratio: 5 / 7; object-fit: contain; background: var(--vr-soft); border-radius: 8px; }

/* Pillar cards (Our Commitment). */
.vr-pillar { position: relative; display: flex; flex-direction: column; align-items: center; padding: 44px 24px 40px; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; text-align: center; }
.vr-pillar h3 { font-size: 20px; font-weight: 700; line-height: 1.3; }
.vr-pillar .vr-value__icon { margin: 0 auto 24px; width: 64px; height: 64px; border-radius: 16px; }
.vr-pillar .vr-value__icon svg { width: 28px; height: 28px; }

/* Brochure download form. */
.vr-form { padding: clamp(28px, 4vw, 44px); border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; box-shadow: 0 30px 60px -30px rgba(13, 42, 76, .3); }
/* Contact and company-profile forms (sent by src/scripts/vacc-forms.js). */
.vr-fform { margin: 0; font-family: Roboto, sans-serif; }
.vr-fform input, .vr-fform select, .vr-fform textarea { display: block; width: 100%; min-height: 50px; margin: 0; padding: 12px 14px; border: 1px solid #cfd6e0; border-radius: 8px; background: #fff; color: #030609; font: 400 16px/1.4 Roboto, sans-serif; }
.vr-fform input:focus, .vr-fform select:focus, .vr-fform textarea:focus { border-color: var(--vr-navy); outline: 2px solid rgba(22, 66, 113, .18); outline-offset: 0; }
.vr-fform textarea { min-height: 140px; resize: vertical; }
.vr-fform select { appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23585e6a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center / 16px no-repeat; }
.vr-fform__submit { display: inline-block; min-height: 52px; padding: 14px 34px; border: 0; border-radius: 26px; background: var(--vr-navy); color: #fff; font: 600 16px/1.42 Roboto, sans-serif; cursor: pointer; transition: background-color .2s; }
.vr-fform__submit:hover, .vr-fform__submit:focus-visible { background: var(--vr-red); color: #fff; }
.vr-fform__submit[disabled] { opacity: .6; cursor: wait; }
.vr-fform__submit--full { width: 100%; margin-top: 12px; line-height: 1; }
/* Contact form: light labels directly above the fields. */
.vr-fform--contact .vr-fform__field { margin-bottom: 16px; }
.vr-fform--contact label { display: block; color: #7a7a7a; font-size: 17px; line-height: 1; }
.vr-fform--contact input, .vr-fform--contact textarea { background: transparent; color: #7a7a7a; }
/* Company-profile form: bold labels with a "(Required)" note. */
.vr-fform__group { margin: 0 0 40px; padding: 0; border: 0; min-width: 0; }
.vr-fform__label { display: block; margin: 0 0 8px; padding: 0; color: var(--vr-ink); font-size: 15px; font-weight: 600; line-height: 1.43; }
.vr-fform__req { margin-left: 4px; color: #c02b0a; font-size: 12px; font-weight: 500; }
.vr-fform__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.vr-fform__sub { display: block; margin-bottom: 8px; color: #585e6a; font-size: 13px; line-height: 1.43; }
.vr-fform--profile .vr-fform__submit { margin-top: -12px; }
.vr-fform__error { margin-top: 6px; color: #c02b0a; font-size: 14px; }
.vr-fform [aria-invalid="true"] { border-color: #c02b0a; }
.vr-fform__note { margin-top: 16px; padding: 12px 16px; border-radius: 8px; font-size: 15px; }
.vr-fform__note--ok { background: #e8f5ee; color: #17633a; }
.vr-fform__note--error { background: #fdecea; color: #a1260b; }
.vr-fform__trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
@media (max-width: 480px) { .vr-fform__pair { grid-template-columns: 1fr; } }

@media (max-width: 1023px) {
  .vr-grid > *, .vr-grid--4 > * { flex-basis: calc((100% - 28px) / 2); }
  .vr-sectors { grid-template-columns: 1fr; }
  .vr-certs > * { flex-basis: calc((100% - 48px) / 3); }
}
@media (max-width: 767px) {
  .vr-grid > *, .vr-grid--4 > * { flex-basis: 100%; }
  .vr-sector { grid-template-columns: 1fr; }
  .vr-sector__media img { aspect-ratio: 16 / 10; min-height: 0; }
  .vr-certs > * { flex-basis: calc((100% - 24px) / 2); }
  .vr-ticks li { font-size: 17px; }
  .vr-dialog__head { padding: 28px 22px 0; }
  .vr-dialog__body { padding: 16px 22px 28px; }
}

/* Team: photo and name open the biography. */
.vr-member__photo { display: block; width: 100%; padding: 0; border: 0; cursor: pointer; }
.vr-member__photo:disabled { cursor: default; }
.vr-member__name button { padding: 0; border: 0; background: none !important; color: var(--vr-ink) !important; font: inherit; text-align: left; cursor: pointer; }
.vr-member__name button:hover { color: var(--vr-navy) !important; }
.vr-member__name button:disabled { cursor: default; }
.vr-member__photo:focus-visible, .vr-member__name button:focus-visible { outline: 3px solid var(--vr-navy); outline-offset: 3px; }

/* Brochure form: room above the submit button. */

/* Buttons. */
.vr-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 30px; border: 2px solid var(--vr-red); border-radius: 100px; background: var(--vr-red); color: #fff !important; font-size: 16px; font-weight: 700; line-height: 1.2; text-decoration: none !important; box-shadow: 0 10px 24px rgba(223, 21, 41, .28); transition: background .2s, border-color .2s, color .2s, transform .2s; }
.vr-button:hover { background: #bc1023; border-color: #bc1023; transform: translateY(-2px); }
.vr-button--outline { border-color: var(--vr-navy); background: transparent; color: var(--vr-navy) !important; box-shadow: none; }
.vr-button--outline:hover { background: var(--vr-navy); border-color: var(--vr-navy); color: #fff !important; }
.vr-button--light { border-color: #fff; background: transparent; color: #fff !important; box-shadow: none; }
.vr-button--light:hover { background: #fff; border-color: #fff; color: var(--vr-navy) !important; }
.vr-more { margin: clamp(36px, 4vw, 52px) 0 0 !important; text-align: center; }
.vr-eyebrow--center { display: flex; justify-content: center; }

/* Homepage hero: video under a deep navy overlay, centred, sector strip below. */
.vr-hero--home { min-height: clamp(600px, 52vw, 720px); align-items: center; padding: 0; }
.vr-hero--home::after { background: linear-gradient(90deg, rgba(3, 28, 54, .9) 0%, rgba(5, 35, 65, .74) 45%, rgba(5, 35, 65, .45) 100%); }
.vr-hero__center { display: flex; flex-direction: column; align-items: center; padding-top: 72px; padding-bottom: 168px; text-align: center; }
.vr-hero--home .vr-eyebrow p { margin: 0; }
.vr-hero--home h1 { max-width: 16ch; font-size: clamp(46px, 6.6vw, 92px); font-weight: 800; letter-spacing: -.04em; line-height: 1.03; }
.vr-hero--home .vr-hero__intro { margin: 22px auto 34px; text-align: center; }
.vr-hero__strip { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0 max(var(--vr-gutter), calc((100% - 1200px) / 2)); border-top: 1px solid rgba(255, 255, 255, .14); background: rgba(5, 35, 65, .78); backdrop-filter: blur(6px); }
.vr-hero__strip a { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 96px; padding: 16px 18px; border-right: 1px solid rgba(255, 255, 255, .14); color: #fff !important; font-size: 15px; font-weight: 700; line-height: 1.3; text-decoration: none !important; transition: background .2s; }
.vr-hero__strip a:last-child { border-right: 0; }
.vr-hero__strip a:hover { background: rgba(255, 255, 255, .08); }
.vr-hero__strip svg { flex: none; width: 32px; height: 32px; fill: none; stroke: #fff; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* Why choose VACC list: one column with dividers. */
.vr-ticks--why { gap: 0; margin: 22px 0 32px; }
.vr-ticks--why li { padding: 11px 0 11px 30px; border-bottom: 1px solid var(--vr-line); color: var(--vr-ink); font-size: 16px; }
.vr-ticks--why li::before { top: 13px; }

/* Four-across project rows (homepage). */
.vr-cards--4 > .vr-card { flex-basis: calc((100% - 84px) / 4); }
.vr-section--navy .vr-card__title a { color: var(--vr-ink); }

/* Projects page: filter sidebar + grid. */
.vr-projects { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; align-items: start; }
.vr-projects__filter { position: sticky; top: 24px; }
.vr-projects__filter .wpc-filters-main-wrap { padding: 24px !important; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); background: #fff; }
.vr-cards--projects > .vr-card { flex-basis: calc((100% - 56px) / 3); }
.vr-cards--projects { justify-content: flex-start; }
.vr-filter-empty { width: 100%; padding: 48px 0; color: var(--vr-muted); text-align: center; }
.vr-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 48px; }
.vr-pagelink { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 14px; border: 1px solid var(--vr-line); border-radius: 22px; background: #fff; color: var(--vr-ink) !important; font-size: 15px; font-weight: 600; text-decoration: none !important; }
.vr-pagelink:hover { border-color: var(--vr-navy); }
.vr-pagelink.is-current { border-color: var(--vr-navy); background: var(--vr-navy); color: #fff !important; }

/* Contact. */
.vr-contact { align-items: start; }
.vr-contact__info p { margin: 0 0 .9em; color: var(--vr-ink); }
.vr-contact__info strong { display: block; color: var(--vr-navy); font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.vr-form__title { margin-bottom: 20px; font-size: clamp(24px, 2.4vw, 30px); }

@media (max-width: 1023px) {
  .vr-cards--4 > .vr-card, .vr-cards--projects > .vr-card { flex-basis: calc((100% - 28px) / 2); }
  .vr-projects { grid-template-columns: 1fr; }
  .vr-projects__filter { position: static; }
  .vr-hero__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vr-hero__strip a:nth-child(2) { border-right: 0; }
  .vr-hero__strip a:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .vr-hero__center { padding-bottom: 230px; }
}
@media (max-width: 767px) {
  .vr-cards--4 > .vr-card, .vr-cards--projects > .vr-card { flex-basis: 100%; }
  .vr-hero__strip a { flex-direction: column; gap: 8px; min-height: 92px; padding: 14px 10px; font-size: 14px; text-align: center; }
  .vr-hero__strip svg { width: 28px; height: 28px; }
  .vr-hero__center { padding-top: 56px; padding-bottom: 236px; }
  .vr-ticks--why li { font-size: 17px; }
}

/* Single project: facts list. */
.vr-project { align-items: start; }
.vr-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0 0 32px; }
.vr-fact { padding: 16px 0; border-bottom: 1px solid var(--vr-line); }
.vr-fact dt { margin-bottom: 4px; color: var(--vr-muted); font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.vr-fact dd { margin: 0; color: var(--vr-ink); font-size: 17px; font-weight: 500; line-height: 1.5; }

/* Horizontally scrolling card row with arrow buttons. */
.vr-row-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.vr-row-nav { display: flex; gap: 10px; }
.vr-row-btn { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid var(--vr-line); border-radius: 50%; background: #fff !important; color: var(--vr-navy) !important; cursor: pointer; transition: background .2s, color .2s; }
.vr-row-btn:hover { background: var(--vr-navy) !important; color: #fff !important; }
.vr-row-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vr-row { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 56px) / 3); gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.vr-row::-webkit-scrollbar { display: none; }
.vr-row > * { scroll-snap-align: start; }

/* News article. */
.vr-article { max-width: 780px; margin: 0 auto; color: var(--vr-text); font-size: 18px; line-height: 1.8; }
.vr-article h2, .vr-article h3, .vr-article h4 { margin: 1.6em 0 .6em; color: var(--vr-ink); font-weight: 700; line-height: 1.3; }
.vr-article h2 { font-size: 28px; }
.vr-article h3 { font-size: 23px; }
.vr-article img { margin: 28px auto; border-radius: var(--vr-radius); }
.vr-article ul, .vr-article ol { margin: 0 0 1.2em; padding-left: 1.3em; }
.vr-article.vr-prose ul { display: block; }
.vr-article.vr-prose li { display: list-item; min-height: 0; padding: 0; border: 0; background: none; font-size: inherit; font-weight: inherit; }
.vr-article.vr-prose li::before { content: none; }
.vr-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 780px; margin: 56px auto 0; }
.vr-step { display: block; padding: 22px 24px; border: 1px solid var(--vr-line); border-radius: var(--vr-radius); color: var(--vr-ink) !important; text-decoration: none !important; transition: border-color .2s, box-shadow .2s; }
.vr-step:hover { border-color: var(--vr-navy); box-shadow: 0 16px 32px -20px rgba(13, 42, 76, .3); }
.vr-step span { display: block; margin-bottom: 6px; color: var(--vr-red); font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.vr-step strong { font-size: 17px; line-height: 1.4; }
.vr-step--next { text-align: right; }

@media (max-width: 1023px) {
  .vr-row { grid-auto-columns: calc((100% - 28px) / 2); }
}
@media (max-width: 767px) {
  .vr-facts { grid-template-columns: 1fr; }
  .vr-row { grid-auto-columns: 85%; gap: 16px; }
  .vr-row-head { align-items: flex-start; flex-direction: column; }
  .vr-steps { grid-template-columns: 1fr; }
  .vr-step--next { text-align: left; }
  .vr-article { font-size: 18px; }
}


/* PDF shown page by page (src/scripts/vacc-pdf.js). */
.vr-pdf { max-width: 980px; margin: 0 auto; }
.vr-pdf__actions { margin: 0 0 28px; text-align: center; }
.vr-pdf__pages { display: grid; gap: 18px; }
.vr-pdf__page { display: block; width: 100%; height: auto; border-radius: 6px; background: #fff; box-shadow: 0 18px 40px -24px rgba(13, 42, 76, .35); }
.vr-pdf__loading { margin: 0; padding: 60px 0; color: var(--vr-muted); text-align: center; }
.vr-hero--brochure .vr-hero__media img { object-position: center 45%; }

/* Project without a photo yet: branded placeholder instead of a broken image. */
.vr-card__media--empty { aspect-ratio: 3 / 2; display: grid; place-items: center; background: linear-gradient(135deg, var(--vr-deep), var(--vr-navy)); }
.vr-card__media--empty .vr-card__mark { aspect-ratio: auto; width: 34%; max-width: 120px; height: auto; object-fit: contain; opacity: .55; }

/* project-filter.css */
/* Projects filter (markup: src/lib/lists.ts renderProjectFilter; behaviour:
   src/scripts/vacc-project-filter.js). Desktop: a card beside the grid.
   Phones: a "Filters" button opens the panel from the bottom of the screen. */
.vacc-project-filter ul { margin: 0; padding: 0; list-style: none; }
.vacc-project-filter .wpc-filters-widget-top-container,
.vacc-project-filter .wpc-widget-popup-title,
.vacc-project-filter .wpc-widget-close-container,
.vacc-project-filter .wpc-filters-widget-controls-container,
.vacc-project-filter .wpc-spinner,
.vacc-project-filter .wpc-posts-found:empty,
.wpc-filters-open-button-container { display: none; }
.vacc-project-filter .wpc-filter-set-widget-title .widgettitle,
.vacc-project-filter .wpc-filter-set-widget-title h2 { margin: 0 0 1px; color: var(--vr-ink); font-size: 32px; font-weight: 500; line-height: 1.2; }
.vacc-project-filter .wpc-filters-section { margin: 0 0 32px; }
.vacc-project-filter .wpc-filters-section:last-child { margin-bottom: 0; }
.vacc-project-filter .wpc-filter-title { display: flex; margin: 0 0 12px; color: var(--vr-text); font-size: 17px; line-height: 1.75; }
.vacc-project-filter .wpc-filters-ul-list { padding-top: 2px; }
.vacc-project-filter .wpc-checkbox-item { margin: 0 0 12px; }
.vacc-project-filter .wpc-term-item-content-wrapper { display: flex; align-items: center; }
.vacc-project-filter .wpc-term-item-content-wrapper input { flex: none; width: 13px; height: 13px; margin: 0 8px 0 0; accent-color: var(--vr-navy); }
.vacc-project-filter .wpc-term-item-content-wrapper label { display: flex; font-size: 17px; line-height: 1.3; cursor: pointer; }
.vacc-project-filter .wpc-filter-link { margin-right: 6px; color: var(--vr-navy); text-decoration: none; }
.vacc-project-filter .wpc-filter-link:hover { color: var(--vr-red); }
.vacc-project-filter .wpc-term-selected .wpc-filter-link { color: var(--vr-red); font-weight: 600; }
.vacc-project-filter .wpc-search-field-wrapper { position: relative; }
.vacc-project-filter .wpc-search-icon { position: absolute; top: 0; bottom: 0; left: 12px; display: flex; align-items: center; width: 24px; pointer-events: none; }
.vacc-project-filter .wpc-search-icon::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat; opacity: .55; }
.vacc-project-filter .wpc-search-field { display: block; width: 100%; height: 41px; padding: 8px 36px 8px 44px; border: 1px solid #c7d1e2; border-radius: 3px; background: #fff; color: #000; font: 16px/24px Roboto, sans-serif; }
.vacc-project-filter .wpc-search-field:focus { border-color: var(--vr-navy); outline: 2px solid rgba(22, 66, 113, .18); }
.vacc-project-filter .wpc-search-clear-icon-wrapper { position: absolute; top: 0; right: 10px; bottom: 0; display: none; align-items: center; }
.vacc-project-filter .wpc-search-active .wpc-search-clear-icon-wrapper { display: flex; }
.vacc-project-filter .wpc-search-clear-icon { color: var(--vr-muted); font-size: 20px; line-height: 1; text-decoration: none; }
.vacc-filter-empty { grid-column: 1 / -1; color: var(--vr-muted); }

@media (max-width: 767px) {
  .wpc-filters-open-button-container { display: block; margin: 0 0 20px; }
  .wpc-filters-open-widget { display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px; border: 1px solid var(--vr-line); border-radius: 24px; background: #fff; color: var(--vr-navy); font: 600 16px/1 Roboto, sans-serif; text-decoration: none; }
  .wpc-filters-open-widget .wpc-button-inner { display: inline-flex; align-items: center; gap: 10px; }
  .wpc-filters-open-widget .wpc-icon-html-wrapper { display: grid; gap: 3px; width: 16px; }
  .wpc-filters-open-widget .wpc-icon-html-wrapper span { display: block; height: 2px; border-radius: 2px; background: currentColor; }
  .wpc-filters-open-widget .wpc-icon-line-2 { width: 70%; }
  .wpc-filters-open-widget .wpc-icon-line-3 { width: 40%; }
  /* The card collapses; its panel opens as a sheet from the bottom. */
  .vr-projects__filter .vacc-project-filter, .vacc-project-filter { height: 0; min-height: 0; margin: 0 !important; padding: 0 !important; overflow: visible; border: 0 !important; background: none !important; }
  .vacc-project-filter .wpc-filters-widget-content { position: fixed; z-index: 100001; inset: auto 0 0; max-height: 85vh; padding: 20px 20px 0; overflow-y: auto; border-radius: 16px 16px 0 0; background: #fff; box-shadow: 0 -12px 40px rgba(11, 37, 71, .25); transform: translateY(105%); visibility: hidden; transition: transform .3s ease, visibility .3s; }
  .vacc-project-filter .wpc-filters-widget-content.wpc-filters-widget-opened { transform: none; visibility: visible; }
  .vacc-project-filter .wpc-filters-widget-top-container { display: block; }
  .vacc-project-filter .wpc-widget-top-inside { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; margin-bottom: 8px; }
  .vacc-project-filter .wpc-widget-popup-title { display: block; color: var(--vr-ink); font-size: 20px; font-weight: 700; }
  .vacc-project-filter .wpc-widget-close-container { display: block; }
  .vacc-project-filter .wpc-widget-close-icon { display: block; width: 32px; height: 32px; position: relative; cursor: pointer; }
  .vacc-project-filter .wpc-widget-close-icon::before, .vacc-project-filter .wpc-widget-close-icon::after { content: ""; position: absolute; left: 7px; right: 7px; top: 15px; height: 2px; background: var(--vr-ink); transform: rotate(45deg); }
  .vacc-project-filter .wpc-widget-close-icon::after { transform: rotate(-45deg); }
  .vacc-project-filter .wpc-widget-close-icon * { display: none; }
  .vacc-project-filter .wpc-filter-set-widget-title { display: none; }
  .vacc-project-filter .wpc-filters-widget-controls-container { position: sticky; bottom: 0; display: block; margin: 0 -20px; padding: 14px 20px 18px; background: #fff; border-top: 1px solid var(--vr-line); }
  .vacc-project-filter .wpc-filters-widget-controls-wrapper { display: flex; gap: 12px; }
  .vacc-project-filter .wpc-filters-widget-controls-item { flex: 1; }
  .vacc-project-filter .wpc-filters-apply-button, .vacc-project-filter .wpc-filters-close-button { display: block; padding: 13px 10px; border-radius: 24px; font: 600 16px/1 Roboto, sans-serif; text-align: center; text-decoration: none; }
  .vacc-project-filter .wpc-filters-apply-button { background: var(--vr-navy); color: #fff; }
  .vacc-project-filter .wpc-filters-close-button { border: 1px solid var(--vr-line); color: var(--vr-navy); }
  .wpc-filters-overlay { position: fixed; inset: 0; z-index: 100000; background: rgba(11, 37, 71, .45); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
  html.wpc-overlay-visible .wpc-filters-overlay { opacity: 1; visibility: visible; }
  html.wpc-overlay-visible { overflow: hidden; }
}
