:root { --viking-engineering-brand:        #eea12b;
--viking-engineering-brand-dark:   #c57d0e;
--viking-engineering-accent:       #eea12b; --viking-engineering-topbar-bg:    #1f2225;
--viking-engineering-header-bg:    #b3b3b3;
--viking-engineering-footer-bg:    #262a2b; --viking-engineering-bg:           #f7fafc;
--viking-engineering-card-bg:      #ffffff;
--viking-engineering-border:       #edf2f7; --viking-engineering-text:         #2d3748;
--viking-engineering-text-strong:  #1a202c;
--viking-engineering-text-muted:   #718096;
--viking-engineering-text-invert:  #ffffff; --viking-engineering-font:         "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--viking-engineering-font-heading: var(--viking-engineering-font); --viking-engineering-content-max:  1200px;
--viking-engineering-gutter:       24px;
--viking-engineering-section-y:    clamp(48px, 7vw, 104px);
--viking-engineering-radius:       10px; --viking-engineering-header-height: 108px; --viking-engineering-ease:         cubic-bezier(.22,.61,.36,1);
} *, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
margin: 0;
background: var(--viking-engineering-bg);
color: var(--viking-engineering-text);
font-family: var(--viking-engineering-font);
font-size: 17px;
line-height: 1.65;
-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4, h5, h6 {
font-family: var(--viking-engineering-font-heading);
line-height: 1.15;
margin: 0 0 .5em;
text-wrap: balance;
}
h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); }
p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; } .viking-engineering-wrap {
width: 100%;
max-width: var(--viking-engineering-content-max);
margin-inline: auto;
padding-inline: var(--viking-engineering-gutter);
}
.viking-engineering-section { padding-block: var(--viking-engineering-section-y); }
.viking-engineering-section__head { max-width: 720px; margin-bottom: clamp(28px, 4vw, 48px); }
.viking-engineering-section__head--center { margin-inline: auto; text-align: center; }
.viking-engineering-eyebrow {
display: inline-block;
font-size: .78rem;
font-weight: 700;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--viking-engineering-accent);
margin-bottom: .75em;
}
.viking-engineering-lede { font-size: 1.1rem; color: var(--viking-engineering-text-muted); } .viking-engineering-btn {
display: inline-flex;
align-items: center;
gap: .5em;
padding: .85em 1.6em;
border: 1px solid transparent;
border-radius: var(--viking-engineering-radius);
background: var(--viking-engineering-brand); color: var(--viking-engineering-text-strong);
font-weight: 600;
font-size: .95rem;
line-height: 1;
text-decoration: none;
cursor: pointer;
transition: background .25s var(--viking-engineering-ease), transform .25s var(--viking-engineering-ease);
}
.viking-engineering-btn:hover { background: var(--viking-engineering-brand-dark); transform: translateY(-1px); }
.viking-engineering-btn--ghost {
background: transparent;
color: var(--viking-engineering-text);
border-color: var(--viking-engineering-border);
}
.viking-engineering-btn--ghost:hover { background: var(--viking-engineering-card-bg); } .viking-engineering-card {
background: var(--viking-engineering-card-bg);
border: 1px solid var(--viking-engineering-border);
border-radius: var(--viking-engineering-radius);
padding: clamp(20px, 2.5vw, 32px);
} .screen-reader-text {
position: absolute !important;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
} .alignfull { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); }
.alignwide { max-width: calc(var(--viking-engineering-content-max) + 160px); margin-inline: auto; }
.aligncenter { margin-inline: auto; }.viking-engineering-topbar {
background: var(--viking-engineering-topbar-bg);
color: #fff;
font-size: .82rem;
}
.viking-engineering-topbar__inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
min-height: 44px;
padding-block: 6px;
}
.viking-engineering-topbar__list {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px 28px;
list-style: none;
margin: 0;
padding: 0;
}
.viking-engineering-topbar__item { display: flex; align-items: center; gap: 8px; }
.viking-engineering-topbar__item .viking-engineering-icon { color: var(--viking-engineering-brand); flex: none; }
.viking-engineering-topbar__item a { color: inherit; text-decoration: none; }
.viking-engineering-topbar__item a:hover { color: var(--viking-engineering-brand); }
.viking-engineering-topbar .viking-engineering-social { display: flex; gap: 14px; }
.viking-engineering-topbar .viking-engineering-social__link { color: #fff; }
.viking-engineering-topbar .viking-engineering-social__link:hover { color: var(--viking-engineering-brand); }
.viking-engineering-topbar .viking-engineering-social__link svg { width: 16px; height: 16px; } @media (max-width: 640px) {
.viking-engineering-topbar__list { display: none; }
.viking-engineering-topbar__inner { justify-content: center; }
}
.viking-engineering-header {
position: sticky;
top: 0;
z-index: 100;
background: var(--viking-engineering-header-bg);
border-bottom: 1px solid rgba(0, 0, 0, .12);
}
.viking-engineering-header__inner {
display: flex;
align-items: center;
gap: 24px;
min-height: var(--viking-engineering-header-height);
}
.viking-engineering-header__logo { display: flex; align-items: center; font-weight: 700; }
.viking-engineering-header__logo a { display: flex; align-items: center; text-decoration: none; color: inherit; } .viking-engineering-header__logo img {
height: 84px;
width: auto;
max-width: none;
object-fit: contain;
}
@media (max-width: 640px) {
.viking-engineering-header__logo img { height: 58px; } :root { --viking-engineering-header-height: 78px; }
} .viking-engineering-nav { margin-left: auto; }
.viking-engineering-nav__list {
display: flex;
align-items: center;
gap: 28px;
list-style: none;
margin: 0;
padding: 0;
}
.viking-engineering-nav__list a {
text-decoration: none;
font-size: .95rem;
font-weight: 500;
color: var(--viking-engineering-text);
transition: color .2s var(--viking-engineering-ease);
} .viking-engineering-nav__list > li > a {
position: relative;
padding-block: 6px;
color: var(--viking-engineering-text-strong);
text-transform: uppercase;
letter-spacing: .02em;
font-weight: 600;
}
.viking-engineering-nav__list > li > a::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 3px;
background: var(--viking-engineering-brand);
transform: scaleX(0);
transition: transform .2s var(--viking-engineering-ease);
}
.viking-engineering-nav__list > li > a:hover::after,
.viking-engineering-nav__list > li.current-menu-item > a::after,
.viking-engineering-nav__list > li.current-menu-ancestor > a::after { transform: scaleX(1); }
.viking-engineering-nav__list a:hover,
.viking-engineering-nav__list .current-menu-item > a { color: #000; } .viking-engineering-nav__list li { position: relative; }
.viking-engineering-nav__list .sub-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 20;
min-width: 230px;
margin: 0;
padding: 8px 0;
list-style: none;
background: var(--viking-engineering-card-bg);
border: 1px solid var(--viking-engineering-border);
border-radius: var(--viking-engineering-radius);
box-shadow: 0 12px 28px rgba(0, 0, 0, .16);
opacity: 0;
visibility: hidden;
transform: translateY(6px);
transition: opacity .18s var(--viking-engineering-ease),
transform .18s var(--viking-engineering-ease),
visibility .18s;
}
.viking-engineering-nav__list > li:hover > .sub-menu,
.viking-engineering-nav__list > li:focus-within > .sub-menu {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.viking-engineering-nav__list .sub-menu a {
display: block;
padding: 9px 18px;
font-size: .9rem;
font-weight: 500;
text-transform: none;
color: var(--viking-engineering-text);
white-space: nowrap;
}
.viking-engineering-nav__list .sub-menu a:hover,
.viking-engineering-nav__list .sub-menu .current-menu-item > a {
background: var(--viking-engineering-border);
color: var(--viking-engineering-text-strong);
} .viking-engineering-nav__list > li.menu-item-has-children > a[href="#"] { cursor: default; }
.viking-engineering-header__actions { display: flex; align-items: center; gap: 12px; } .viking-engineering-burger {
display: none;
flex-direction: column;
justify-content: center;
gap: 5px;
width: 44px; height: 44px;
padding: 0;
background: none;
border: 0;
cursor: pointer;
}
.viking-engineering-burger span {
display: block;
height: 2px;
width: 24px;
margin-inline: auto;
background: var(--viking-engineering-text);
transition: transform .25s var(--viking-engineering-ease), opacity .25s var(--viking-engineering-ease);
}
.viking-engineering-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.viking-engineering-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.viking-engineering-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } .viking-engineering-drawer {
position: fixed; inset: var(--viking-engineering-drawer-top, var(--viking-engineering-header-height)) 0 0 auto;
width: min(360px, 86vw);
z-index: 99;
background: var(--viking-engineering-card-bg);
border-left: 1px solid var(--viking-engineering-border);
padding: 32px 28px;
overflow-y: auto;
transform: translateX(100%);
transition: transform .3s var(--viking-engineering-ease);
}
.viking-engineering-drawer.is-open { transform: translateX(0); }
.viking-engineering-drawer__list { list-style: none; margin: 0; padding: 0; text-align: right; }
.viking-engineering-drawer__list li { border-bottom: 1px solid var(--viking-engineering-border); }
.viking-engineering-drawer__list a { display: block; padding: 14px 0; text-decoration: none; font-size: 1.05rem; }
.viking-engineering-drawer__list .sub-menu { list-style: none; margin: 0; padding-right: 16px; }
.viking-engineering-drawer__list .sub-menu a { font-size: .95rem; color: var(--viking-engineering-text-muted); }
@media (max-width: 992px) {
.viking-engineering-nav,
.viking-engineering-header__cta { display: none; }
.viking-engineering-burger { display: flex; } .viking-engineering-header__actions { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
.viking-engineering-drawer, .viking-engineering-burger span { transition: none; }
}.viking-engineering-prefooter {
background: var(--viking-engineering-brand);
color: var(--viking-engineering-text-invert);
padding-block: clamp(36px, 5vw, 64px);
}
.viking-engineering-prefooter__inner {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 24px;
}
.viking-engineering-prefooter h2 { margin: 0 0 .25em; }
.viking-engineering-prefooter p { margin: 0; opacity: .85; }
.viking-engineering-prefooter .viking-engineering-btn { background: var(--viking-engineering-accent); color: var(--viking-engineering-brand-dark); }
.viking-engineering-footer {
background: var(--viking-engineering-footer-bg);
color: var(--viking-engineering-text-invert);
padding-block: clamp(40px, 5vw, 72px) 0;
}
.viking-engineering-footer a { color: inherit; text-decoration: none; }
.viking-engineering-footer a:hover { color: var(--viking-engineering-accent); }
.viking-engineering-footer__inner {
display: grid;
gap: 40px;
grid-template-columns: 1.4fr 1fr 1fr;
padding-bottom: 40px;
}
.viking-engineering-footer__brand img { max-height: 56px; width: auto; }
.viking-engineering-footer__name { font-size: 1.2rem; font-weight: 700; }
.viking-engineering-footer__tagline { margin-top: 14px; opacity: .8; max-width: 34ch; }
.viking-engineering-footer__menus { display: contents; }
.viking-engineering-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.viking-engineering-footer__contact { display: grid; gap: 8px; align-content: start; }
.viking-engineering-footer__contact address { font-style: normal; opacity: .8; }
.viking-engineering-social { display: flex; gap: 12px; margin-top: 8px; }
.viking-engineering-social__link {
display: grid;
place-items: center;
width: 38px; height: 38px;
border-radius: 50%;
border: 1px solid rgba(255,255,255,.25);
transition: background .2s var(--viking-engineering-ease), border-color .2s var(--viking-engineering-ease);
}
.viking-engineering-social__link:hover { background: var(--viking-engineering-accent); border-color: transparent; }
.viking-engineering-footer__legal {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px;
padding-block: 20px;
border-top: 1px solid rgba(255,255,255,.15);
font-size: .85rem;
opacity: .75;
}
.viking-engineering-footer__legal p { margin: 0; }
.viking-engineering-footer__legal-list { display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 860px) {
.viking-engineering-footer__inner { grid-template-columns: 1fr 1fr; }
.viking-engineering-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
.viking-engineering-footer__inner { grid-template-columns: 1fr; }
} .viking-engineering-footer__contact address {
font-style: normal;
margin: 0 0 16px;
line-height: 1.6;
}
.viking-engineering-footer__contact address strong {
display: inline-block;
margin-bottom: 2px;
}
.viking-engineering-footer__map { margin-top: 8px; }
.viking-engineering-footer__map iframe {
display: block;
width: 100%;
max-width: 100%;
height: 260px;
border: 0;
border-radius: var(--viking-engineering-radius);
}
.viking-engineering-footer__credit { margin: 0; }
.viking-engineering-footer__credit a { color: var(--viking-engineering-brand); } .viking-engineering-whatsapp {
position: fixed;
right: 20px;
bottom: 20px;
z-index: 90;
display: inline-flex;
align-items: center;
gap: 10px;
padding: 12px 18px;
border-radius: 999px;
background: #25d366;
color: #fff;
font-weight: 600;
font-size: .95rem;
text-decoration: none;
box-shadow: 0 8px 22px rgba(0, 0, 0, .22);
transition: transform .2s var(--viking-engineering-ease);
}
.viking-engineering-whatsapp:hover { transform: translateY(-2px); }
.viking-engineering-whatsapp svg { flex: none; } @media (max-width: 640px) {
.viking-engineering-whatsapp { padding: 14px; right: 14px; bottom: 14px; }
.viking-engineering-whatsapp span {
position: absolute;
width: 1px; height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
white-space: nowrap;
}
}
@media (prefers-reduced-motion: reduce) {
.viking-engineering-whatsapp { transition: none; }
.viking-engineering-whatsapp:hover { transform: none; }
}.viking-engineering-fade-up,
.viking-engineering-fade-up-item {
opacity: 0;
transform: translateY(24px);
transition: opacity .7s var(--viking-engineering-ease), transform .7s var(--viking-engineering-ease);
will-change: opacity, transform;
}
.viking-engineering-fade-up.is-visible,
.viking-engineering-fade-up-item.is-visible {
opacity: 1;
transform: none;
} .viking-engineering-fade-up-stagger .viking-engineering-fade-up-item:nth-child(1) { transition-delay: 0ms; }
.viking-engineering-fade-up-stagger .viking-engineering-fade-up-item:nth-child(2) { transition-delay: 90ms; }
.viking-engineering-fade-up-stagger .viking-engineering-fade-up-item:nth-child(3) { transition-delay: 180ms; }
.viking-engineering-fade-up-stagger .viking-engineering-fade-up-item:nth-child(4) { transition-delay: 270ms; }
.viking-engineering-fade-up-stagger .viking-engineering-fade-up-item:nth-child(5) { transition-delay: 360ms; }
.viking-engineering-fade-up-stagger .viking-engineering-fade-up-item:nth-child(6) { transition-delay: 450ms; } .block-editor-block-list__layout .viking-engineering-fade-up,
.block-editor-block-list__layout .viking-engineering-fade-up-item {
opacity: 1;
transform: none;
}
@media (prefers-reduced-motion: reduce) {
.viking-engineering-fade-up,
.viking-engineering-fade-up-item {
opacity: 1;
transform: none;
transition: none;
}
}