:root {
  --nvl-ink: #17261f;
  --nvl-deep: #173a2d;
  --nvl-green: #2f5a45;
  --nvl-leaf: #88a85d;
  --nvl-sand: #d8c596;
  --nvl-cream: #f4f1e8;
  --nvl-paper: #fbfaf6;
  --nvl-line: #dcdacf;
  --nvl-muted: #647068;
  --nvl-white: #fff;
  --nvl-serif: Georgia, "Times New Roman", serif;
  --nvl-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nvl-shell: min(1180px, calc(100vw - 48px));
  --nvl-radius: 2px;
  --nvl-shadow: 0 24px 64px rgba(23, 58, 45, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--nvl-paper); color: var(--nvl-ink); font-family: var(--nvl-sans); font-size: 16px; line-height: 1.65; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.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; }
.screen-reader-text:focus { z-index: 100000; top: 5px; left: 5px; width: auto; height: auto; padding: 12px 16px; clip: auto; background: #fff; color: #111; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { width: auto; max-width: 260px; max-height: 64px; }
.nvl-site { overflow: hidden; }
.nvl-shell { width: var(--nvl-shell); margin-inline: auto; }
.nvl-skip { position: fixed; z-index: 999; left: 16px; top: 16px; transform: translateY(-180%); background: var(--nvl-white); color: var(--nvl-ink); padding: 10px 16px; border-radius: 4px; box-shadow: var(--nvl-shadow); }
.nvl-skip:focus { transform: none; }
.nvl-icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; }

.nvl-topbar { background: var(--nvl-deep); color: rgba(255,255,255,.76); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.nvl-topbar__inner { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.nvl-topbar a { display: inline-flex; align-items: center; gap: 8px; color: var(--nvl-white); }
.nvl-header { position: relative; z-index: 20; background: var(--nvl-paper); border-bottom: 1px solid rgba(23,38,31,.1); }
.nvl-header__inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.nvl-brand { display: inline-flex; align-items: center; gap: 13px; max-width: 235px; line-height: 1.05; }
.nvl-brand__mark { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--nvl-green); border-radius: 50%; flex: 0 0 auto; }
.nvl-brand__mark::before, .nvl-brand__mark::after, .nvl-brand__mark span { content: ""; position: absolute; width: 10px; height: 18px; background: var(--nvl-green); border-radius: 100% 0 100% 0; transform-origin: 50% 100%; }
.nvl-brand__mark::before { transform: translate(-5px, -2px) rotate(-34deg); }
.nvl-brand__mark::after { transform: translate(5px, -2px) scaleX(-1) rotate(-34deg); }
.nvl-brand__mark span { width: 2px; height: 21px; border-radius: 2px; transform: translateY(4px); }
.nvl-brand__name { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.nvl-brand__name strong { display: block; font-family: var(--nvl-serif); font-size: 20px; font-style: italic; font-weight: 500; letter-spacing: 0; text-transform: none; }
.nvl-nav { margin-left: auto; }
.nvl-nav__list { display: flex; align-items: center; gap: clamp(22px, 3vw, 42px); margin: 0; padding: 0; list-style: none; }
.nvl-nav a { position: relative; font-size: 13px; font-weight: 650; letter-spacing: .04em; }
.nvl-nav a::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 100%; height: 1px; background: var(--nvl-green); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nvl-nav a:hover::after, .nvl-nav a:focus-visible::after { transform: scaleX(1); }
.nvl-menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid rgba(23,38,31,.16); background: transparent; color: var(--nvl-ink); cursor: pointer; }
.nvl-menu-toggle > span:not(.screen-reader-text) { display: block; width: 21px; height: 1px; margin: 5px auto; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.nvl-menu-toggle[aria-expanded="true"] > span:nth-of-type(2) { transform: translateY(6px) rotate(45deg); }
.nvl-menu-toggle[aria-expanded="true"] > span:nth-of-type(3) { opacity: 0; }
.nvl-menu-toggle[aria-expanded="true"] > span:nth-of-type(4) { transform: translateY(-6px) rotate(-45deg); }

.nvl-button { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 52px; padding: 0 23px; border: 1px solid var(--nvl-deep); border-radius: var(--nvl-radius); background: var(--nvl-deep); color: var(--nvl-white); font-size: 13px; font-weight: 700; letter-spacing: .03em; cursor: pointer; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.nvl-button:hover, .nvl-button:focus-visible { transform: translateY(-2px); background: var(--nvl-green); border-color: var(--nvl-green); }
.nvl-button--small { min-height: 44px; padding-inline: 18px; }
.nvl-button--sand { background: var(--nvl-sand); border-color: var(--nvl-sand); color: var(--nvl-ink); }
.nvl-button--sand:hover, .nvl-button--sand:focus-visible { background: #e3d4ad; border-color: #e3d4ad; }
.nvl-text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--nvl-green); font-size: 13px; font-weight: 750; }
.nvl-text-link--dark { color: var(--nvl-ink); }
.nvl-text-link--light { color: var(--nvl-white); }
.nvl-text-link .nvl-icon, .nvl-button .nvl-icon, .nvl-service a .nvl-icon { transition: transform .2s ease; }
.nvl-text-link:hover .nvl-icon, .nvl-button:hover .nvl-icon, .nvl-service a:hover .nvl-icon { transform: translateX(4px); }
.nvl-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 22px; color: var(--nvl-green); font-size: 11px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.nvl-eyebrow > span { width: 28px; height: 1px; background: currentColor; }
.nvl-eyebrow--light { color: var(--nvl-sand); }
.nvl-section { padding: 112px 0; }
.nvl-section h2 { margin: 0; font-family: var(--nvl-serif); font-size: clamp(42px, 5vw, 66px); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.nvl-section h2 em, .nvl-hero h1 em { color: var(--nvl-green); font-weight: 400; }

.nvl-hero { position: relative; background: var(--nvl-cream); }
.nvl-hero__grid { min-height: 718px; display: grid; grid-template-columns: .96fr 1.04fr; }
.nvl-hero__copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 82px 62px 86px 0; }
.nvl-hero h1 { margin: 0; font-family: var(--nvl-serif); font-size: clamp(58px, 7vw, 94px); font-weight: 400; line-height: .9; letter-spacing: -.055em; }
.nvl-hero__lead { max-width: 535px; margin: 32px 0 0; color: #4e5c53; font-size: 18px; line-height: 1.7; }
.nvl-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 36px; }
.nvl-trust { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 46px 0 0; padding: 27px 0 0; border-top: 1px solid rgba(23,38,31,.14); list-style: none; color: #56635b; font-size: 12px; font-weight: 650; }
.nvl-trust li { display: flex; align-items: center; gap: 7px; }
.nvl-trust .nvl-icon { color: var(--nvl-leaf); }
.nvl-hero__visual { position: relative; min-width: 0; padding: 38px 0 38px 38px; }
.nvl-hero__image-wrap { position: absolute; inset: 38px calc((100vw - var(--nvl-shell)) / -2) 38px 38px; overflow: hidden; }
.nvl-hero__image-wrap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,58,45,.16), transparent 45%); }
.nvl-hero__image-wrap img { height: 100%; object-fit: cover; }
.nvl-hero__shape { position: absolute; right: 7%; top: 8%; width: 42%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; }
.nvl-hero__shape::after { content: ""; position: absolute; inset: 19%; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
.nvl-hero__card { position: absolute; z-index: 3; left: 0; bottom: 78px; width: min(330px, 75%); padding: 28px 31px; background: var(--nvl-deep); color: var(--nvl-white); box-shadow: var(--nvl-shadow); }
.nvl-hero__card-label { display: block; margin-bottom: 12px; color: var(--nvl-sand); font-size: 10px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.nvl-hero__card strong { display: block; font-family: var(--nvl-serif); font-size: 24px; font-weight: 400; line-height: 1.15; }
.nvl-hero__card p { margin: 10px 0 0; color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.6; }
.nvl-hero__rule { position: absolute; z-index: 4; right: 23px; bottom: 72px; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: var(--nvl-white); font: italic 12px var(--nvl-serif); }

.nvl-intro { background: var(--nvl-paper); }
.nvl-section-head { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 80px; margin-bottom: 62px; }
.nvl-section-head > p { max-width: 500px; margin: 0 0 3px; color: var(--nvl-muted); font-size: 17px; }
.nvl-section-head--compact { align-items: end; }
.nvl-services { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--nvl-line); border-left: 1px solid var(--nvl-line); }
.nvl-service { min-height: 395px; display: flex; flex-direction: column; padding: 31px 28px 28px; border-right: 1px solid var(--nvl-line); border-bottom: 1px solid var(--nvl-line); background: var(--nvl-white); transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.nvl-service:hover { position: relative; z-index: 1; transform: translateY(-6px); background: #f8f6ef; box-shadow: var(--nvl-shadow); }
.nvl-service__top { display: flex; align-items: center; justify-content: space-between; }
.nvl-service__icon { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #cbd2c8; border-radius: 50%; color: var(--nvl-green); }
.nvl-service__icon .nvl-icon { width: 22px; height: 22px; }
.nvl-service__number { color: #929b94; font: italic 15px var(--nvl-serif); }
.nvl-service h3 { margin: 38px 0 16px; font: 400 25px/1.15 var(--nvl-serif); }
.nvl-service p { margin: 0; color: var(--nvl-muted); font-size: 14px; line-height: 1.7; }
.nvl-service a { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; padding-top: 28px; color: var(--nvl-green); font-size: 12px; font-weight: 750; }

.nvl-feature { background: var(--nvl-deep); color: var(--nvl-white); }
.nvl-feature__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 8vw; align-items: center; }
.nvl-feature__media { position: relative; }
.nvl-feature__media::before { content: ""; position: absolute; left: -18px; top: -18px; width: 58%; height: 55%; border: 1px solid rgba(216,197,150,.45); }
.nvl-feature__media img { position: relative; z-index: 1; aspect-ratio: .83; object-fit: cover; filter: saturate(.78); }
.nvl-feature__badge { position: absolute; z-index: 2; right: -28px; bottom: 42px; display: grid; place-items: center; align-content: center; width: 118px; height: 118px; border-radius: 50%; background: var(--nvl-sand); color: var(--nvl-ink); text-align: center; }
.nvl-feature__badge strong { font: italic 25px/1 var(--nvl-serif); }
.nvl-feature__badge span { font-size: 9px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.nvl-feature__copy h2 em { color: var(--nvl-sand); }
.nvl-feature__lead { max-width: 620px; margin: 29px 0 34px; color: rgba(255,255,255,.72); font-size: 17px; }
.nvl-feature__points { margin-bottom: 37px; border-top: 1px solid rgba(255,255,255,.15); }
.nvl-feature__points > div { display: grid; grid-template-columns: 38px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.nvl-feature__points > div > span { padding-top: 3px; color: var(--nvl-sand); font: italic 13px var(--nvl-serif); }
.nvl-feature__points h3 { margin: 0 0 4px; font: 400 21px var(--nvl-serif); }
.nvl-feature__points p { margin: 0; color: rgba(255,255,255,.62); font-size: 13px; }

.nvl-projects { background: var(--nvl-paper); }
.nvl-project-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 34px; }
.nvl-project { min-width: 0; }
.nvl-project:not(.nvl-project--large) { display: grid; grid-template-columns: .9fr 1.1fr; gap: 24px; align-items: center; }
.nvl-project:nth-child(3) { grid-column: 2; }
.nvl-project--large { grid-row: span 2; }
.nvl-project__image { position: relative; overflow: hidden; background: #d9ded7; }
.nvl-project__image img { aspect-ratio: 1.2; object-fit: cover; transition: transform .5s ease; }
.nvl-project--large .nvl-project__image img { aspect-ratio: .96; }
.nvl-project:not(.nvl-project--large) .nvl-project__image img { aspect-ratio: .92; }
.nvl-project:hover .nvl-project__image img { transform: scale(1.035); }
.nvl-project__view { position: absolute; right: 18px; bottom: 18px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--nvl-ink); }
.nvl-project__meta { display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; }
.nvl-project:not(.nvl-project--large) .nvl-project__meta { display: block; padding-top: 0; }
.nvl-project__meta span { color: var(--nvl-green); font-size: 10px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.nvl-project__meta h3 { margin: 8px 0 0; font: 400 clamp(22px, 2.4vw, 31px)/1.12 var(--nvl-serif); }
.nvl-project__meta p { display: flex; align-items: center; gap: 5px; margin: 4px 0 0; color: var(--nvl-muted); font-size: 11px; white-space: nowrap; }
.nvl-project:not(.nvl-project--large) .nvl-project__meta p { margin-top: 16px; }
.nvl-demo-note { margin: 26px 0 0; color: #8a928c; font-size: 11px; }

.nvl-process { padding-top: 30px; background: var(--nvl-paper); }
.nvl-process .nvl-shell { display: grid; grid-template-columns: .72fr 1.28fr; gap: 8vw; }
.nvl-steps { margin: 0; padding: 0; border-top: 1px solid var(--nvl-line); list-style: none; }
.nvl-steps li { display: grid; grid-template-columns: 55px 1fr; gap: 24px; padding: 29px 0; border-bottom: 1px solid var(--nvl-line); }
.nvl-steps__number { color: var(--nvl-green); font: italic 14px var(--nvl-serif); }
.nvl-steps h3 { margin: 0 0 7px; font: 400 25px var(--nvl-serif); }
.nvl-steps p { margin: 0; color: var(--nvl-muted); font-size: 14px; }

.nvl-areas { background: #274b3a; color: var(--nvl-white); }
.nvl-areas__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 9vw; align-items: center; }
.nvl-areas h2 em { color: var(--nvl-sand); }
.nvl-areas__grid > div > p:not(.nvl-eyebrow) { max-width: 560px; margin: 29px 0 28px; color: rgba(255,255,255,.68); }
.nvl-area-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.nvl-area-list li { display: flex; align-items: center; gap: 12px; padding: 18px 12px; border-bottom: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.84); font: 400 20px var(--nvl-serif); }
.nvl-area-list li:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.18); padding-left: 0; }
.nvl-area-list .nvl-icon { width: 17px; color: var(--nvl-sand); }

.nvl-quote { background: var(--nvl-cream); }
.nvl-quote__grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 8vw; align-items: start; }
.nvl-quote__intro > p:not(.nvl-eyebrow) { max-width: 460px; margin: 28px 0 0; color: var(--nvl-muted); font-size: 17px; }
.nvl-contact-card { margin-top: 44px; padding-top: 28px; border-top: 1px solid rgba(23,38,31,.14); }
.nvl-contact-card > div { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.nvl-contact-card > div > span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #c8c8bb; border-radius: 50%; color: var(--nvl-green); }
.nvl-contact-card p { margin: 0; color: var(--nvl-muted); font-size: 11px; letter-spacing: .04em; }
.nvl-contact-card strong { display: block; color: var(--nvl-ink); font: 400 19px var(--nvl-serif); letter-spacing: 0; }
.nvl-form { display: grid; gap: 20px; padding: 42px; background: var(--nvl-white); box-shadow: 0 18px 55px rgba(23,38,31,.07); }
.nvl-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.nvl-field { display: grid; gap: 8px; }
.nvl-field label { font-size: 11px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.nvl-field input, .nvl-field select, .nvl-field textarea { width: 100%; border: 1px solid #d9d9cf; border-radius: 0; outline: none; background: #fbfaf7; color: var(--nvl-ink); padding: 13px 14px; transition: border-color .2s ease, box-shadow .2s ease; }
.nvl-field input, .nvl-field select { height: 50px; }
.nvl-field textarea { resize: vertical; }
.nvl-field input:focus, .nvl-field select:focus, .nvl-field textarea:focus { border-color: var(--nvl-green); box-shadow: 0 0 0 3px rgba(47,90,69,.1); }
.nvl-field ::placeholder { color: #989e99; }
.nvl-consent { display: flex; gap: 10px; align-items: flex-start; color: var(--nvl-muted); font-size: 12px; }
.nvl-consent input { margin-top: 4px; accent-color: var(--nvl-green); }
.nvl-form .nvl-button { justify-self: start; border: 0; }
.nvl-form .nvl-button:disabled { opacity: .65; cursor: wait; transform: none; }
.nvl-form__note { margin: -8px 0 0; color: #8a928c; font-size: 10px; }
.nvl-field--trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.nvl-notice { padding: 14px 16px; border-left: 3px solid var(--nvl-green); background: #edf5ef; color: #234632; font-size: 13px; }
.nvl-notice--error { border-color: #a34d42; background: #fbefed; color: #74342d; }

.nvl-footer { padding: 76px 0 24px; background: #11271e; color: var(--nvl-white); }
.nvl-footer__main { display: grid; grid-template-columns: 1.6fr .6fr .8fr; gap: 8vw; padding-bottom: 62px; }
.nvl-footer__brand { display: inline-flex; align-items: center; gap: 13px; max-width: 250px; }
.nvl-footer__brand .nvl-brand__mark { border-color: var(--nvl-sand); }
.nvl-footer__brand .nvl-brand__mark::before, .nvl-footer__brand .nvl-brand__mark::after, .nvl-footer__brand .nvl-brand__mark span { background: var(--nvl-sand); }
.nvl-brand--light .nvl-brand__mark { border-color: var(--nvl-sand); }
.nvl-brand--light .nvl-brand__mark::before, .nvl-brand--light .nvl-brand__mark::after, .nvl-brand--light .nvl-brand__mark span { background: var(--nvl-sand); }
.nvl-footer__main > div:first-child > p { max-width: 370px; margin: 24px 0 0; color: rgba(255,255,255,.58); font-size: 14px; }
.nvl-footer h3 { margin: 0 0 18px; color: var(--nvl-sand); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.nvl-footer__main > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; color: rgba(255,255,255,.7); font-size: 13px; }
.nvl-footer__menu { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.nvl-footer a:hover { color: var(--nvl-white); }
.nvl-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.42); font-size: 10px; letter-spacing: .05em; }

.nvl-content { min-height: 62vh; padding: 100px 0 120px; background: var(--nvl-paper); }
.nvl-content--center { display: grid; place-items: center; text-align: center; }
.nvl-content__shell, .nvl-entry { max-width: 1180px; }
.nvl-content__header { max-width: 780px; margin-bottom: 56px; }
.nvl-content__header h1 { margin: 0; font: 400 clamp(48px, 7vw, 78px)/.98 var(--nvl-serif); letter-spacing: -.045em; }
.nvl-content__header > p:not(.nvl-eyebrow) { margin: 25px 0 0; color: var(--nvl-muted); font-size: 18px; }
.nvl-content--center .nvl-content__header { margin: 0 auto; }
.nvl-content--center .nvl-eyebrow { justify-content: center; }
.nvl-content--center .nvl-button { margin-top: 28px; }
.nvl-entry { max-width: 940px; }
.nvl-entry__image { margin: 0 0 52px; }
.nvl-entry__image img { max-height: 680px; object-fit: cover; }
.nvl-entry__body { max-width: 760px; margin-bottom: 42px; color: #38473f; font-size: 17px; }
.nvl-entry__body h2, .nvl-entry__body h3 { margin: 1.8em 0 .55em; font-family: var(--nvl-serif); font-weight: 400; line-height: 1.1; }
.nvl-entry__body h2 { font-size: 40px; }
.nvl-entry__body h3 { font-size: 29px; }
.nvl-entry__body a { color: var(--nvl-green); text-decoration: underline; text-underline-offset: 3px; }
.nvl-entry__body img { height: auto; }
.nvl-entry__location { display: flex; align-items: center; gap: 7px; color: var(--nvl-muted); }
.nvl-entry__location .nvl-icon { color: var(--nvl-green); }
.nvl-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.nvl-post-card { background: #fff; border: 1px solid var(--nvl-line); }
.nvl-post-card__image { display: block; min-height: 230px; overflow: hidden; background: #dfe4dd; }
.nvl-post-card__image img { height: 230px; object-fit: cover; transition: transform .35s ease; }
.nvl-post-card:hover .nvl-post-card__image img { transform: scale(1.035); }
.nvl-post-card__body { padding: 26px; }
.nvl-post-card__body > span { color: var(--nvl-green); font-size: 10px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.nvl-post-card h2 { margin: 9px 0 13px; font: 400 28px/1.1 var(--nvl-serif); }
.nvl-post-card p { color: var(--nvl-muted); font-size: 14px; }
.navigation.pagination { margin-top: 45px; }
.nav-links { display: flex; gap: 8px; }
.page-numbers { display: grid; place-items: center; min-width: 42px; height: 42px; border: 1px solid var(--nvl-line); }
.page-numbers.current { background: var(--nvl-deep); border-color: var(--nvl-deep); color: #fff; }

@media (max-width: 1050px) {
  .nvl-menu-toggle { display: block; margin-left: auto; }
  .nvl-nav { position: absolute; top: 100%; left: 24px; right: 24px; margin: 0; padding: 12px 26px; border: 1px solid rgba(23,38,31,.12); background: var(--nvl-paper); box-shadow: 0 20px 50px rgba(23,38,31,.14); opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none; transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
  .nvl-nav.is-open { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
  .nvl-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nvl-nav__list li { border-bottom: 1px solid var(--nvl-line); }
  .nvl-nav__list li:last-child { border-bottom: 0; }
  .nvl-nav__list a { display: block; padding: 13px 0; }
  .nvl-nav a::after { display: none; }
  .nvl-hero__grid { min-height: 650px; }
  .nvl-hero__copy { padding-right: 36px; }
  .nvl-services { grid-template-columns: repeat(2, 1fr); }
  .nvl-feature__grid { gap: 7vw; }
  .nvl-project-grid { grid-template-columns: 1fr 1fr; }
  .nvl-project:not(.nvl-project--large) { display: block; }
  .nvl-project:not(.nvl-project--large) .nvl-project__meta { padding-top: 18px; }
  .nvl-post-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 780px) {
  :root { --nvl-shell: min(100% - 36px, 680px); }
  .nvl-topbar__inner > span { display: none; }
  .nvl-topbar__inner { justify-content: center; }
  .nvl-header__inner { min-height: 76px; }
  .nvl-header__cta { display: none; }
  .nvl-section { padding: 78px 0; }
  .nvl-hero__grid { display: flex; flex-direction: column; }
  .nvl-hero__copy { order: 2; padding: 58px 0 70px; }
  .nvl-hero__visual { order: 1; height: 425px; margin-inline: calc((100vw - var(--nvl-shell)) / -2); padding: 0; }
  .nvl-hero__image-wrap { inset: 0; }
  .nvl-hero__card { left: 18px; bottom: -24px; }
  .nvl-hero h1 { font-size: clamp(54px, 15vw, 76px); }
  .nvl-trust { margin-top: 36px; }
  .nvl-section-head, .nvl-feature__grid, .nvl-process .nvl-shell, .nvl-areas__grid, .nvl-quote__grid { grid-template-columns: 1fr; gap: 48px; }
  .nvl-section-head { margin-bottom: 46px; }
  .nvl-feature__media { width: 88%; }
  .nvl-feature__badge { right: -45px; }
  .nvl-project-grid { gap: 50px 20px; }
  .nvl-project--large { grid-column: 1 / -1; grid-row: auto; }
  .nvl-project:nth-child(3) { grid-column: auto; }
  .nvl-project--large .nvl-project__image img { aspect-ratio: 1.25; }
  .nvl-quote__intro { max-width: 600px; }
  .nvl-content { padding: 78px 0 90px; }
}

@media (max-width: 560px) {
  :root { --nvl-shell: calc(100% - 30px); }
  .nvl-brand__name { font-size: 12px; }
  .nvl-brand__name strong { font-size: 18px; }
  .nvl-brand__mark { width: 38px; height: 38px; }
  .nvl-hero__visual { height: 340px; }
  .nvl-hero__card { width: calc(100% - 36px); padding: 22px 24px; }
  .nvl-hero__copy { padding-top: 66px; }
  .nvl-hero h1 { font-size: 52px; }
  .nvl-hero__lead { font-size: 16px; }
  .nvl-actions { align-items: flex-start; flex-direction: column; }
  .nvl-trust { display: grid; }
  .nvl-section h2 { font-size: 42px; }
  .nvl-services { grid-template-columns: 1fr; }
  .nvl-service { min-height: 345px; }
  .nvl-feature__media { width: calc(100% - 20px); }
  .nvl-feature__badge { right: -26px; width: 100px; height: 100px; }
  .nvl-project-grid { grid-template-columns: 1fr; }
  .nvl-project--large, .nvl-project:nth-child(3) { grid-column: auto; }
  .nvl-project__image img, .nvl-project--large .nvl-project__image img, .nvl-project:not(.nvl-project--large) .nvl-project__image img { aspect-ratio: 1.14; }
  .nvl-area-list { grid-template-columns: 1fr; }
  .nvl-area-list li:nth-child(odd) { border-right: 0; padding-left: 12px; }
  .nvl-form { padding: 28px 20px; }
  .nvl-form__row { grid-template-columns: 1fr; }
  .nvl-footer__main { grid-template-columns: 1fr; gap: 40px; }
  .nvl-footer__bottom { flex-direction: column; }
  .nvl-post-grid { grid-template-columns: 1fr; }
  .nvl-content__header h1 { font-size: 48px; }
  .nvl-entry__body { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Elementor Free starter template. Content remains editable as native widgets. */
.nvl-elementor-page { overflow: hidden; }
.nvl-uses-elementor .nvl-elementor-page > .elementor { margin: 0; }
.elementor .nvl-el--section { padding: 108px 24px; }
.elementor .nvl-el--section > .elementor-container { max-width: 1180px; }
.elementor .nvl-el-kicker .elementor-heading-title { display: flex; align-items: center; gap: 12px; color: var(--nvl-green); font-family: var(--nvl-sans); font-size: 11px; font-weight: 750; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.elementor .nvl-el-kicker .elementor-heading-title::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.elementor .nvl-el-kicker--light .elementor-heading-title { color: var(--nvl-sand); }
.elementor .nvl-el-display .elementor-heading-title { color: var(--nvl-ink); font-family: var(--nvl-serif); font-size: clamp(58px, 7vw, 92px); font-weight: 400; line-height: .91; letter-spacing: -.055em; }
.elementor .nvl-el-display .elementor-heading-title em,
.elementor .nvl-el-title .elementor-heading-title em { color: var(--nvl-green); font-weight: 400; }
.elementor .nvl-el-title .elementor-heading-title { color: var(--nvl-ink); font-family: var(--nvl-serif); font-size: clamp(42px, 5vw, 66px); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.elementor .nvl-el-title--light .elementor-heading-title { color: var(--nvl-white); }
.elementor .nvl-el-title--light .elementor-heading-title em { color: var(--nvl-sand); }
.elementor .nvl-el-lead { color: var(--nvl-muted); font-size: 17px; line-height: 1.7; }
.elementor .nvl-el-lead p { margin: 0; }
.elementor .nvl-el-lead--light { color: rgba(255,255,255,.72); }
.elementor .nvl-el-button .elementor-button { min-height: 52px; display: inline-flex; align-items: center; border: 1px solid var(--nvl-deep); border-radius: 2px; background: var(--nvl-deep); color: var(--nvl-white); font-size: 13px; font-weight: 700; letter-spacing: .03em; transition: transform .2s ease, background .2s ease; }
.elementor .nvl-el-button .elementor-button:hover { transform: translateY(-2px); background: var(--nvl-green); }
.elementor .nvl-el-button--sand .elementor-button { border-color: var(--nvl-sand); background: var(--nvl-sand); color: var(--nvl-ink); }
.elementor .nvl-el-button--sand .elementor-button:hover { background: #e3d4ad; }

.elementor .nvl-el--hero { min-height: 700px; padding: 38px 24px; background: var(--nvl-cream); }
.elementor .nvl-el--hero > .elementor-container { min-height: 624px; align-items: stretch; }
.elementor .nvl-el-hero-copy > .elementor-widget-wrap { align-content: center; padding: 48px 60px 48px 0; }
.elementor .nvl-el-hero-image > .elementor-widget-container { height: 100%; min-height: 624px; overflow: hidden; }
.elementor .nvl-el-hero-image img { height: 624px; object-fit: cover; }
.elementor .nvl-el-local-card { position: absolute; left: -32px; bottom: 44px; width: min(330px, 80%); z-index: 3; }
.elementor .nvl-el-local-card > .elementor-widget-container { padding: 27px 30px; background: var(--nvl-deep); color: var(--nvl-white); box-shadow: var(--nvl-shadow); }
.elementor .nvl-el-local-card strong { display: block; margin: 8px 0; font: 400 24px/1.18 var(--nvl-serif); }
.elementor .nvl-el-local-card small { color: var(--nvl-sand); font-size: 10px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.elementor .nvl-el-local-card p { margin: 0; color: rgba(255,255,255,.68); font-size: 12px; }
.elementor .nvl-el-trust { padding-top: 24px; border-top: 1px solid rgba(23,38,31,.14); color: #56635b; font-size: 12px; font-weight: 650; }
.elementor .nvl-el-trust p { margin: 0; }

.elementor .nvl-el--services,
.elementor .nvl-el--projects { background: var(--nvl-paper); }
.elementor .nvl-el-section-intro > .elementor-widget-wrap { padding-left: 48px; }
.elementor .nvl-el-services-grid { margin-top: 54px; border-top: 1px solid var(--nvl-line); border-left: 1px solid var(--nvl-line); }
.elementor .nvl-el-service-card > .elementor-widget-wrap { min-height: 380px; align-content: flex-start; padding: 30px 27px; border-right: 1px solid var(--nvl-line); border-bottom: 1px solid var(--nvl-line); background: var(--nvl-white); transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.elementor .nvl-el-service-card > .elementor-widget-wrap:hover { z-index: 2; transform: translateY(-6px); background: #f8f6ef; box-shadow: var(--nvl-shadow); }
.elementor .nvl-el-card-number .elementor-heading-title { color: var(--nvl-green); font: italic 14px var(--nvl-serif); }
.elementor .nvl-el-card-title .elementor-heading-title { color: var(--nvl-ink); font: 400 25px/1.16 var(--nvl-serif); }
.elementor .nvl-el-card-copy { color: var(--nvl-muted); font-size: 14px; line-height: 1.7; }
.elementor .nvl-el-card-link { margin-top: auto; }
.elementor .nvl-el-card-link .elementor-button { padding: 0; background: transparent; color: var(--nvl-green); font-size: 12px; font-weight: 750; }

.elementor .nvl-el--about { background: var(--nvl-deep); color: var(--nvl-white); }
.elementor .nvl-el-feature-photo img { aspect-ratio: .86; object-fit: cover; filter: saturate(.8); }
.elementor .nvl-el-about-copy > .elementor-widget-wrap { padding-left: clamp(34px, 7vw, 92px); }
.elementor .nvl-el-feature-points { margin: 10px 0 30px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.68); }
.elementor .nvl-el-feature-points > .elementor-widget-container { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.elementor .nvl-el-feature-points strong { color: var(--nvl-white); font: 400 21px var(--nvl-serif); }
.elementor .nvl-el-feature-points small { margin-right: 12px; color: var(--nvl-sand); font: italic 13px var(--nvl-serif); }
.elementor .nvl-el-feature-points p { margin: 4px 0 0; font-size: 13px; }

.elementor .nvl-el-projects-grid { margin-top: 54px; }
.elementor .nvl-el-project-card > .elementor-widget-wrap { padding: 0 13px; }
.elementor .nvl-el-project-card:first-child > .elementor-widget-wrap { padding-left: 0; }
.elementor .nvl-el-project-card:last-child > .elementor-widget-wrap { padding-right: 0; }
.elementor .nvl-el-project-image img { aspect-ratio: 1.12; object-fit: cover; transition: transform .45s ease; }
.elementor .nvl-el-project-image:hover img { transform: scale(1.025); }
.elementor .nvl-el-project-type .elementor-heading-title { color: var(--nvl-green); font: 750 10px var(--nvl-sans); letter-spacing: .14em; text-transform: uppercase; }
.elementor .nvl-el-project-title .elementor-heading-title { color: var(--nvl-ink); font: 400 28px/1.12 var(--nvl-serif); }
.elementor .nvl-el-project-location { color: var(--nvl-muted); font-size: 12px; }

.elementor .nvl-el--process { background: var(--nvl-cream); }
.elementor .nvl-el-process-grid { margin-top: 50px; }
.elementor .nvl-el-step > .elementor-widget-wrap { padding: 28px 32px; border-top: 1px solid rgba(23,38,31,.17); border-bottom: 1px solid rgba(23,38,31,.17); }
.elementor .nvl-el-step + .nvl-el-step > .elementor-widget-wrap { border-left: 1px solid rgba(23,38,31,.17); }
.elementor .nvl-el-step-number .elementor-heading-title { color: var(--nvl-green); font: italic 14px var(--nvl-serif); }
.elementor .nvl-el-step-title .elementor-heading-title { color: var(--nvl-ink); font: 400 25px/1.15 var(--nvl-serif); }

.elementor .nvl-el--areas { background: #274b3a; color: var(--nvl-white); }
.elementor .nvl-el-areas-list > .elementor-widget-container { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.elementor .nvl-el-areas-list { color: rgba(255,255,255,.84); font: 400 20px/1.85 var(--nvl-serif); }
.elementor .nvl-el-areas-list p { margin: 0; }

.elementor .nvl-el--quote { background: var(--nvl-cream); }
.elementor .nvl-el-quote-copy > .elementor-widget-wrap { padding-right: clamp(30px, 6vw, 86px); }
.elementor .nvl-el-contact-lines { padding-top: 24px; border-top: 1px solid rgba(23,38,31,.14); color: var(--nvl-muted); font-size: 12px; }
.elementor .nvl-el-contact-lines strong { color: var(--nvl-ink); font: 400 20px var(--nvl-serif); }

@media (max-width: 1024px) {
  .elementor .nvl-el--section { padding: 84px 24px; }
  .elementor .nvl-el--hero { padding-block: 28px; }
  .elementor .nvl-el-hero-copy > .elementor-widget-wrap { padding-right: 34px; }
  .elementor .nvl-el-service-card > .elementor-widget-wrap { min-height: 360px; }
}

@media (max-width: 767px) {
  .elementor .nvl-el--section { padding: 72px 18px; }
  .elementor .nvl-el--hero { padding: 0 18px 68px; }
  .elementor .nvl-el--hero > .elementor-container { flex-direction: column-reverse; }
  .elementor .nvl-el-hero-copy > .elementor-widget-wrap { padding: 58px 0 0; }
  .elementor .nvl-el-hero-image > .elementor-widget-container,
  .elementor .nvl-el-hero-image img { min-height: 350px; height: 350px; }
  .elementor .nvl-el-local-card { left: 18px; bottom: -22px; }
  .elementor .nvl-el-display .elementor-heading-title { font-size: 54px; }
  .elementor .nvl-el-title .elementor-heading-title { font-size: 42px; }
  .elementor .nvl-el-section-intro > .elementor-widget-wrap,
  .elementor .nvl-el-about-copy > .elementor-widget-wrap,
  .elementor .nvl-el-quote-copy > .elementor-widget-wrap { padding: 30px 0 0; }
  .elementor .nvl-el-services-grid,
  .elementor .nvl-el-projects-grid,
  .elementor .nvl-el-process-grid { margin-top: 38px; }
  .elementor .nvl-el-service-card > .elementor-widget-wrap { min-height: 310px; }
  .elementor .nvl-el-project-card > .elementor-widget-wrap { padding: 0 0 42px; }
  .elementor .nvl-el-step + .nvl-el-step > .elementor-widget-wrap { border-left: 0; border-top: 0; }
}
