:root {
  --c-primary: #006d9b;
  --c-primary-dark: #00577c;
  --c-dark: #102634;
  --c-muted: #536773;
  --c-bg-alt: #eef1f2;
  --font-main: Arial, Helvetica, sans-serif;
}

body { font-family: var(--font-main); color: #111; background: #fff; }
.header { background: #006d9b; color: #fff; border: 0; box-shadow: 0 6px 20px rgba(9,31,43,.24); }
.header__inner { min-height: 64px; }
.header__logo-text, .header__logo-text span { color: #fff; font-weight: 800; }
.nav a, .header__right, .lang-switcher__btn { color: #fff; }
.btn-primary, .gw-btn-solid { background: #e8492f; border-color: #e8492f; }
.footer { background: #006d9b; }

.gw-hero { min-height: 70vh; position: relative; overflow: hidden; background-color: #173a4a; background-size: cover; background-position: center; }
.gw-hero__inner { position: relative; z-index: 3; min-height: 70vh; align-items: center; }
.gw-hero__title, .gw-hero__subtitle { color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,.35); }
.vm-hero-video { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; }
.vm-hero-video iframe { position: absolute; width: 177.78vh; min-width: 100%; height: 56.25vw; min-height: 100%; left: 50%; top: 50%; transform: translate(-50%,-50%); border: 0; }
.vm-hero-video__mobile { display: none; }
.vm-hero-overlay { position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, rgba(0,0,0,.70) 0%, rgba(0,0,0,.50) 100%); }

.gw-section { padding: 72px 0; }
.gw-section--alt { background: #eef1f2; }
.page-hero { background: #006d9b; color: #fff; }
.page-hero__title, .page-hero__subtitle, .breadcrumbs, .breadcrumbs a { color: #fff; }
.page-content { max-width: 1120px; margin: 0 auto; font-size: 17px; line-height: 1.65; }
.page-content h2 { margin: 2.4rem 0 1rem; font-size: clamp(28px, 3vw, 42px); line-height: 1.12; }
.page-content h3 { margin: 1.8rem 0 .7rem; font-size: clamp(21px, 2vw, 28px); }
.page-content p, .page-content li { color: #31434e; }
.page-content a { color: #006d9b; }
.vm-content-section { padding: 34px 0; border-bottom: 1px solid #dce3e6; }
.vm-content-copy { max-width: 900px; }
.vm-content-gallery { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 18px; margin-top: 25px; }
.vm-content-gallery figure { margin: 0; overflow: hidden; background: #e7ecee; }
.vm-content-gallery img { width: 100%; height: 260px; object-fit: cover; display: block; }

@media (max-width: 980px) {
  .vm-hero-video__desktop { display: none; }
  .vm-hero-video__mobile { display: block; }
  .gw-hero, .gw-hero__inner { min-height: 70vh; }
  .gw-hero__inner { padding-top: 90px; padding-bottom: 50px; }
  .vm-hero-overlay { background: linear-gradient(90deg, rgba(0,0,0,.70) 0%, rgba(0,0,0,.50) 100%); }
}

@media (max-width: 640px) {
  .gw-section { padding: 48px 0; }
  .page-content { font-size: 16px; }
  .vm-content-gallery { grid-template-columns: 1fr; }
  .vm-content-gallery img { height: auto; max-height: 440px; }
}

/* Patch 002 — common grid and responsive content */
:root{--container:min(calc(100% - 40px),1160px);--c-primary:#006d9b;--header-h:116px}
.container,.gw-wrap{width:var(--container);max-width:1160px;margin-inline:auto}
.page-content{width:100%;max-width:1160px;min-width:0;overflow-wrap:anywhere}
.vm-content-copy{max-width:100%;min-width:0}
.page-content img,.page-content video{max-width:100%!important;height:auto}
.page-content iframe{max-width:100%!important}
.page-content iframe[src*="youtube"],.page-content iframe[src*="vimeo"]{width:100%;height:auto;aspect-ratio:16/9}
.page-content figure{max-width:100%;margin-inline:0}
.page-content pre{max-width:100%;overflow:auto;white-space:pre-wrap}
.page-content [style*="width"]{max-width:100%}
.vmc-table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.vmc-table-scroll table{min-width:600px;width:100%}
.vm-content-gallery{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.vm-content-gallery img{height:auto;aspect-ratio:auto;object-fit:contain}
.page-hero__title{overflow-wrap:anywhere;font-size:clamp(28px,4vw,48px)}
.header{height:auto;min-height:64px;display:block}
.header__inner{width:100%;max-width:none;padding:12px clamp(16px,2vw,40px) 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px}
.header__logo{grid-column:1;grid-row:1;min-width:0;max-width:100%;justify-self:start}
.header__logo-img{max-width:min(280px,40vw);height:auto;max-height:48px;object-fit:contain}
.header__right{grid-column:2;grid-row:1;justify-self:end;min-width:0}
.header .nav{grid-column:1/-1;grid-row:2;width:100%;min-width:0;margin:0;border-top:1px solid #ffffff30}
.header .nav__list{display:flex;flex-wrap:wrap;justify-content:center;gap:0 16px}
.header .nav__link{white-space:normal;padding:12px 8px}
.header .nav__dropdown{max-width:min(320px,calc(100vw - 40px))}
.header .nav__item:last-child .nav__dropdown{right:0;left:auto}
.header .nav__dropdown a{overflow-wrap:anywhere}
/* A level-3 dropdown belongs beside its level-2 row, not below it. This later
   theme rule also prevents the generic last-child alignment above from
   pulling nested menus back inside the first dropdown. */
.header .nav__dropdown .nav__item > .nav__dropdown{right:auto;left:calc(100% - 1px)}
/* Compact level-2/3 rows and make the nested navigation state unmistakable:
   right while idle, left while the level-3 branch is open. */
.header .nav__dropdown>.nav__item>.nav__link{flex:1 1 auto;min-width:0;padding:7px 12px;line-height:1.25}
.header .nav__dropdown>.nav__item>.nav__arrow-btn{flex:0 0 32px;align-self:stretch;margin-left:0;padding:0;color:var(--c-primary)}
.header .nav__dropdown .nav__dropdown>.nav__item>.nav__link{padding-top:6px;padding-bottom:6px}
.header .nav__dropdown .nav__item--has-dropdown>.nav__arrow-btn>.nav__arrow{transform:rotate(-45deg)}
.header .nav__dropdown .nav__item--has-dropdown:hover>.nav__arrow-btn>.nav__arrow,
.header .nav__dropdown .nav__item--has-dropdown:focus-within>.nav__arrow-btn>.nav__arrow{transform:rotate(135deg)}
@media(max-width:1024px){
 :root{--header-h:72px}
 .header__inner{padding:12px 16px;gap:8px}
 .header .nav{display:none}
 .header__right{gap:8px}
 .header__logo-text{font-size:clamp(20px,4vw,28px)}
 .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .container>div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:700px){
 :root{--container:calc(100% - 32px)}
 .page-content h2{font-size:28px}.page-content h3{font-size:22px}
 .page-content [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
 .page-content [style*="display:flex"],.page-content [style*="display: flex"]{flex-wrap:wrap}
 .form-row{grid-template-columns:minmax(0,1fr)}
 .footer__grid{grid-template-columns:minmax(0,1fr)}
 .footer__bottom{flex-wrap:wrap;gap:16px}
 .vm-content-gallery{grid-template-columns:minmax(0,1fr)}
 .vmc-hero__copy,.vmc-service{overflow-wrap:anywhere}
}

/* Patch 008 — readable type scale (+2 px), including the site menu. */
.page-content{font-size:19px}.page-content h2{font-size:clamp(30px,3vw,44px)}.page-content h3{font-size:clamp(23px,2vw,30px)}.header .nav__link,.header__right,.lang-switcher__btn{font-size:calc(var(--text-sm) + 2px)}.header .nav__dropdown a{font-size:calc(var(--text-sm) + 2px)}.header-cta{font-size:calc(var(--text-xs) + 2px)}
@media(max-width:700px){.page-content{font-size:18px}.page-content h2{font-size:30px}.page-content h3{font-size:24px}}

/* Patch 058 — distribute the desktop menu across the full content width. */
@media (min-width:1025px){
 .header .nav__list{
  width:var(--container);
  max-width:1160px;
  margin-inline:auto;
  flex-wrap:nowrap;
  justify-content:space-between;
  gap:0;
 }
 .header .nav__item{flex:0 0 auto}
 .header .nav__link{padding-left:0;padding-right:0}
}
