
@font-face { font-family: "Clash Grotesk"; src: url("fonts/clash-grotesk-400.woff2") format("woff2"); font-weight: 300 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Clash Grotesk"; src: url("fonts/clash-grotesk-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Clash Grotesk"; src: url("fonts/clash-grotesk-600.woff2") format("woff2"); font-weight: 600 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("fonts/switzer-300.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("fonts/switzer-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("fonts/switzer-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("fonts/switzer-600.woff2") format("woff2"); font-weight: 600 900; font-style: normal; font-display: swap; }

:root {
  --graphite: #131313; --graphite-2: #262626; --white: #FAF9F6; --mist: #F0EEE9;
  --ink: #131313; --body: #4F4D49; --mute: #8C8984; --line: #DDDAD3;
  --light: #F2F0EB; --amber: #F4C22B; 
  --dk: 19,19,19; --lt: 242,240,235; --ac: 244,194,43; --dp: 10,10,10; 
  --s-paper: #EEECE6; --s-mist: #E3E0D8; --s-mute: #5E5B56; --s-kick: #4E4B47; --ac-ink: #7A5A00; 
  --g: clamp(18px, 2.2vw, 32px);
  --r: 2px; --lift: 0 24px 60px rgba(0,0,0,.3); --lift-up: 0 -24px 60px rgba(0,0,0,.3); --hair: rgba(var(--lt), .1); --hair-ink: rgba(var(--dk), .1); 
  --h1: clamp(48px, 6.4vw, 124px); --h2: clamp(40px, 4.6vw, 88px); --h3: clamp(26px, 2.3vw, 42px); --lead: clamp(17px, 1.3vw, 21px); 
  --f: "Switzer", "Helvetica Neue", Arial, sans-serif; --fd: "Clash Grotesk", "Switzer", "Helvetica Neue", Arial, sans-serif; 
  --e: cubic-bezier(.22, 1, .36, 1); --e-io: cubic-bezier(.65, 0, .35, 1);
  
  --ink2: rgba(var(--dk),.74); --kick: #6E6B66;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; -webkit-tap-highlight-color: transparent; } 
a, button, label, select { touch-action: manipulation; }
body { margin: 0; background: var(--white); color: var(--ink); font: 400 17px/1.55 var(--f); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { display: block; max-inline-size: 100%; block-size: auto; }
button, input, select, textarea { font-family: inherit; } 


.op { display: grid; justify-items: start; max-inline-size: 1600px; margin: 0 auto clamp(48px, 5vw, 80px); text-align: start; } 

.op__h { max-inline-size: 14em; font-size: var(--h2); font-weight: 400; line-height: 1; letter-spacing: -.038em; color: var(--ink); text-wrap: balance; }
.op__p { max-inline-size: 36em; margin-block-start: clamp(22px, 2.2vw, 32px); font-size: clamp(16px, 1.25vw, 18px); line-height: 1.45; letter-spacing: .02em; color: var(--ink2); text-wrap: pretty; }


h1, h2, h3, .fm__line, .mn__list a, .fo__big, .hs__year, .hs__lead{ font-family: var(--fd); }
:root:not(#_) :is(h1, h2, h3, .fm__line, .mn__list a, .fo__big, .hs__year, .hs__lead) { letter-spacing: -.012em; } 
a { color: inherit; }
h1, h2, h3, p, figure, address { margin: 0; font-style: normal; }
ol, ul { margin: 0; padding: 0; list-style: none; }
.sr { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: absolute; z-index: 200; inset-inline-start: 12px; inset-block-start: -60px; padding: 10px 14px; background: var(--graphite); color: var(--light); }
.skip:focus { inset-block-start: 12px; }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }


.ln { display: block; overflow: hidden; overflow-x: visible; overflow-y: clip; padding-block-end: .12em; margin-block-end: -.12em; }
.ln > span, .sw { display: inline-block; white-space: nowrap; } 



.bt { --bt-bg: var(--graphite); --bt-line: transparent; --bt-ink: var(--light); position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; block-size: 60px; padding: 0 6px 0 30px; border-radius: 999px; background: var(--bt-bg); box-shadow: inset 0 0 0 1px var(--bt-line); color: var(--bt-ink); font: 500 16px/1 var(--f); letter-spacing: -.005em; text-decoration: none; transition: color .55s var(--e), transform .45s var(--e); }
.bt::before { content: ""; position: absolute; z-index: -1; inset-block: 6px; inset-inline-end: 6px; inline-size: 48px; border-radius: inherit; background: var(--amber); transition: inline-size .7s cubic-bezier(.65, 0, .2, 1); }
.bt::after { content: ""; flex: none; inline-size: 16px; block-size: 16px; margin-inline: 16px; background: var(--graphite); -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='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M14 6l6 6-6 6'/%3E%3C/svg%3E") 50% 50% / 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='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M14 6l6 6-6 6'/%3E%3C/svg%3E") 50% 50% / contain no-repeat; transition: translate .55s var(--e); }
.bt__t { display: flex; }
.bt__c { display: inline-block; white-space: pre; }
.bt:hover, .bt:focus-visible { color: var(--graphite); }
.bt:hover::before, .bt:focus-visible::before { inline-size: calc(100% - 12px); }
.bt:hover::after, .bt:focus-visible::after { translate: 3px 0; }
.bt:active { transform: scale(.985); }
:is([data-tone="dark"], .mn, .fo, .cq__card) .bt { --bt-bg: rgb(255 255 255 / .07); --bt-line: rgb(255 255 255 / .26); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); } 




.nv { position: fixed; z-index: 70; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 18px calc(var(--g) + 8px); color: var(--light); transition: color .35s var(--e), transform .45s var(--e); }
.nv::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.88); -webkit-backdrop-filter: blur(20px) saturate(1.3); backdrop-filter: blur(20px) saturate(1.3); box-shadow: 0 1px 0 rgba(var(--dk),.06); opacity: 0; transition: opacity .3s var(--e); } 
.nv.is-glass::before { opacity: 1; }
.nv.is-dk::before { background: rgba(var(--dk),.84); box-shadow: 0 1px 0 rgba(var(--lt),.06); }
.nv.is-hid { transform: translateY(-110%); }
.nv.is-ink { color: var(--ink); }
.nv__brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }


.nv__menu, .mn__close { display: inline-flex; align-items: center; gap: 14px; block-size: 48px; padding: 0 2px 0 6px; border: 0; background: none; color: inherit; font: 500 15px/1 var(--f); letter-spacing: 0; cursor: pointer; }
.nv__menu span, .mn__close span { padding-block: 4px; background: linear-gradient(currentColor, currentColor) 100% 100% / 0 1px no-repeat; transition: background-size .5s var(--e); }
.nv__menu:hover span, .nv__menu:focus-visible span, .mn__close:hover span, .mn__close:focus-visible span { background-size: 100% 1px; background-position: 0 100%; }
.nv__menu i, .mn__close i { position: relative; flex: none; inline-size: 24px; block-size: 8px; }
.nv__menu i::before, .nv__menu i::after { content: ""; position: absolute; inset-inline-end: 0; block-size: 1.5px; inline-size: 100%; background: currentColor; transition: inline-size .5s var(--e); }
.nv__menu i::before { inset-block-start: 0; } .nv__menu i::after { inset-block-end: 0; }
.nv__menu:hover i::before, .nv__menu:focus-visible i::before { inline-size: 58%; }
.mn__close i { inline-size: 16px; block-size: 16px; }
.mn__close i::before, .mn__close i::after { content: ""; position: absolute; inset: 7.25px -2px auto; block-size: 1.5px; background: currentColor; transition: transform .5s var(--e); }
.mn__close i::before { transform: rotate(45deg); } .mn__close i::after { transform: rotate(-45deg); }
.mn__close:hover i::before { transform: rotate(135deg); } .mn__close:hover i::after { transform: rotate(45deg); }


.mn { position: fixed; inset: 0; z-index: 90; }
.mn[hidden] { display: none; }
.mn__panel { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto 1fr auto; gap: 0 clamp(32px, 5vw, 96px); padding: 18px calc(var(--g) + 8px) clamp(22px, 4vh, 40px); overflow-y: auto; background: var(--graphite); color: var(--light); }
.mn__bar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; }
.mn__nav { align-self: center; padding-block: 4vh; }
.mn__list { display: grid; margin: 0; padding: 0; list-style: none; }
.mn__list a { display: flex; align-items: baseline; gap: clamp(14px, 1.6vw, 26px); padding-block: clamp(4px, .7vh, 10px); text-decoration: none; transition: opacity .45s var(--e); }
.mn__w { display: inline-block; font-size: clamp(30px, 3.9vw, 66px); font-weight: 300; line-height: 1.04; letter-spacing: -.035em; transition: translate .6s var(--e); }
.mn__list:has(a:hover, a:focus-visible) a:not(:hover, :focus-visible) { opacity: .32; }
.mn__list a:hover .mn__w, .mn__list a:focus-visible .mn__w { translate: 12px 0; }
.mn__list a[aria-current] .mn__w { color: var(--amber); } 
.mn__pv { align-self: center; display: grid; gap: 18px; }
.mn__fr { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r); background: var(--graphite-2); }
.mn__fr img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; opacity: 0; scale: 1.06; transition: opacity .6s var(--e), scale 1.2s var(--e); }
.mn__fr img.is-on { opacity: 1; scale: 1; }
.mn__ln { position: relative; min-block-size: 3.2em; }
.mn__ln p { position: absolute; inset: 0 auto auto 0; max-inline-size: 28em; font-size: clamp(15.5px, 1.1vw, 18px); line-height: 1.45; color: rgba(var(--lt),.7); opacity: 0; translate: 0 8px; transition: opacity .45s var(--e), translate .6s var(--e); }
.mn__ln p.is-on { opacity: 1; translate: 0 0; }
.mn__foot .bt { margin-inline-start: auto; }
.mn__foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: end; gap: 18px 56px; padding-block-start: 22px; border-block-start: 1px solid rgba(var(--lt),.12); }
.mn__ad { font-size: 15px; line-height: 1.6; color: rgba(var(--lt),.6); }
.mn__ad a { color: var(--light); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--e); }
.mn__ad a:hover { background-size: 100% 1px; }
@media (max-width: 860px) {
  .mn__panel { grid-template-columns: minmax(0, 1fr); padding-block-end: max(18px, env(safe-area-inset-bottom)); }
  .mn__pv { display: none; }
  .mn__list a { padding-block: 6px; }
  .mn__w { font-size: clamp(28px, 8.4vw, 40px); line-height: 1.08; }
  .mn__list a:hover .mn__w, .mn__list a:focus-visible .mn__w { translate: none; }
  .mn__foot { display: grid; }
  .mn__foot .bt { margin: 6px 0 0; justify-self: start; }
  .mn__ad a { display: inline-block; padding-block: 7px; } 
}


.fo { padding: clamp(72px, 9vw, 128px) var(--g) 28px; background: var(--graphite); color: rgba(var(--lt),.62); font-size: 15px; }
.fo__end { display: grid; gap: clamp(28px, 3vw, 44px); justify-items: center; margin-block-end: clamp(72px, 9vw, 136px); text-align: center; } 
.fo__acts { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 28px; font-size: 16px; color: rgba(var(--lt),.62); }
.fo__acts p a { color: var(--light); font-variant-numeric: tabular-nums; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; transition: background-size .5s var(--e), color .3s var(--e); }
.fo__acts p a:hover { color: var(--amber); background-size: 0 1px; }
.fo__big { max-inline-size: 13em; font-size: var(--h2); line-height: 1; letter-spacing: -.038em; color: var(--light); text-wrap: balance; }
.fo__top { display: grid; grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2.4fr)); gap: 40px var(--g); align-items: start; max-inline-size: 1600px; margin-inline: auto; }
.fo__col { display: grid; gap: 9px; justify-items: start; font-size: 16px; letter-spacing: -.005em; }
.fo__k { margin-block-end: 10px; font-size: 14px; font-weight: 400; line-height: 1.2; letter-spacing: 0; color: rgba(var(--lt),.66); }
.fo__logo { display: block; inline-size: 92px; overflow: hidden; border-radius: var(--r); }

.fo a { color: var(--light); text-decoration: none; transition: color .3s var(--e); }
.fo a:hover { color: var(--amber); }
.fo__ad { font-size: 16px; line-height: 1.6; letter-spacing: -.005em; }

.fo__word { display: none; }
@media (min-width: 861px) {
  .fo__win { position: relative; max-inline-size: 1600px; margin-inline: auto; margin-block-start: clamp(56px, 7vw, 104px); overflow: hidden; }
  .fo__word { display: block; padding-block: 0 clamp(24px, 2.6vw, 44px); color: var(--amber); }
  .fo__word svg { display: block; inline-size: 100%; block-size: auto; }
  .fo__dim { display: none; position: absolute; inset: 0; background: var(--graphite); pointer-events: none; }
  .motion .fo__dim { display: block; }
}
@media (max-width: 860px) { .fo__top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fo__logo { grid-column: 1 / -1; } }

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


body[data-page="index"] .fo__end, body[data-page="contact"] .fo__end, body[data-page="404"] .fo__end, body:has(.nx--band) .fo__end { display: none; } 
body[data-page="index"] .fo, body[data-page="contact"] .fo, body[data-page="404"] .fo { padding-block-start: clamp(56px, 6vw, 96px); }


.nv__brand .wm { display: block; inline-size: clamp(116px, 9vw, 150px); block-size: auto; transition: opacity .3s var(--e); }
.nv__brand:hover .wm { opacity: .75; }
.fo__logo { inline-size: clamp(110px, 9vw, 150px); overflow: hidden; border-radius: var(--r); }
.fo__logo img { display: block; inline-size: 100%; block-size: auto; }


.mb { display: none; }
@media (max-width: 860px) {
  .mb { position: fixed; inset: auto 12px max(12px, env(safe-area-inset-bottom)); z-index: 80; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px; padding: 6px;
    border-radius: 999px; background: rgba(var(--dp),.84); -webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2); box-shadow: var(--lift), inset 0 0 0 1px var(--hair);
    transform: translateY(calc(100% + 24px)); transition: transform .55s var(--e); }
  .mb.is-on { transform: none; }
  @media (min-width: 600px) { .mb { inset-inline: 50% auto; inline-size: 460px; margin-inline-start: -230px; } } 
  .mb a { display: flex; align-items: center; justify-content: center; gap: 8px; min-block-size: 50px; border-radius: 999px; font: 500 16px/1 var(--f); letter-spacing: -.005em; text-decoration: none; }
  .mb__call { padding-inline: 18px 20px; color: var(--light); box-shadow: inset 0 0 0 1px rgba(var(--lt),.22); }
  .mb__quote { background: var(--amber); color: #0B1214; }
  .mb a:active { transform: scale(.97); }
  .vsx { translate: 0 -70px; } 
  .fo__col a { display: block; padding-block: 9px; } 
  .fo__ad a { display: inline-block; padding-block: 8px; }
}
.bt__c { user-select: none; } 


@media (min-width: 861px) {
  .motion main > section:last-of-type { position: relative; z-index: 1; box-shadow: var(--lift); }
  .motion .fo { position: relative; z-index: 0; }
}


.mk { display: flex; align-items: center; gap: 12px; pointer-events: none; }
.mk i { position: relative; flex: none; inline-size: 14px; block-size: 14px; background: var(--amber); rotate: 45deg; }
.mk i::after { content: ""; position: absolute; inset: -7px; border: 1px solid rgba(245,165,36,.6); animation: mk 2.6s var(--e) infinite; }
@keyframes mk { from { opacity: 1; scale: .6; } to { opacity: 0; scale: 1.9; } }
.mk span { translate: 0 -34px; display: grid; gap: 2px; padding: 9px 13px; background: #0B0E0F; color: rgba(238,241,239,.7); font: 400 13px/1.25 var(--f); white-space: nowrap; box-shadow: var(--lift); }
.mk b { color: #EEF1EF; font-weight: 500; font-size: 13px; letter-spacing: .06em; }
.maplibregl-ctrl-attrib { font: 11px/1.4 var(--f); background: rgba(238,240,236,.8); }

.maplibregl-ctrl-attrib { display: none !important; }
@media (prefers-reduced-motion: reduce) { .mk i::after { animation: none; } }


.nv { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 24px; padding-block: 14px; }
.nv__end { display: flex; align-items: center; justify-content: flex-end; gap: clamp(14px, 1.6vw, 26px); }
.nv__links { position: relative; display: none; align-items: center; gap: clamp(18px, 2.4vw, 40px); }
.nv__l { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 12px 0; border: 0; background: none; color: inherit; font: 500 15px/1 var(--f); letter-spacing: .005em; text-decoration: none; cursor: pointer; opacity: .82; transition: opacity .3s var(--e); }
.nv__l:hover, .nv__l:focus-visible, .nv__l[aria-current], .nv__l[aria-expanded="true"], .nv__x.is-cur { opacity: 1; }
.nv__l svg { transition: rotate .45s var(--e); }
.nv__x[aria-expanded="true"] svg { rotate: 180deg; }
.nv__ul { position: absolute; inset: auto auto 4px 0; block-size: 2px; inline-size: var(--uw, 0px); background: var(--amber); transform: translateX(var(--ux, 0px)); opacity: var(--uo, 0); transition: transform .5s var(--e), inline-size .5s var(--e), opacity .3s var(--e); pointer-events: none; }
@media (min-width: 1001px) { .nv__links { display: flex; } }

.nvx { position: absolute; inset: 100% 0 auto; padding: clamp(28px, 3vw, 48px) max(var(--g), calc((100vw - 1600px) / 2)) clamp(32px, 3.4vw, 56px); background: #0B0E0F; color: var(--light); box-shadow: var(--lift), inset 0 1px 0 var(--hair); clip-path: inset(0 0 100% 0); transition: clip-path .6s cubic-bezier(.65, 0, .2, 1); }
.nvx::before { content: ""; position: absolute; inset: 0 0 auto; block-size: 2px; background: var(--amber); transform: scaleX(0); transform-origin: left; transition: transform .9s cubic-bezier(.65, 0, .2, 1) .1s; } 
.nvx.is-open { clip-path: inset(0 0 0 0); }
.nvx.is-open::before { transform: none; }
.nvx__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 4vw, 72px); align-items: stretch; }
.nvx__list { display: grid; align-content: center; margin: 0; padding: 0; list-style: none; border-block-start: 1px solid var(--hair); }
.nvx__list a { display: grid; gap: 6px; padding: 20px 0; border-block-end: 1px solid var(--hair); color: rgba(var(--lt), .5); text-decoration: none; transition: color .35s var(--e); }
.nvx__t { font-size: clamp(22px, 1.8vw, 30px); line-height: 1.1; letter-spacing: -.02em; transition: translate .5s var(--e); }
.nvx__d { font-size: 14.5px; line-height: 1.4; color: rgba(var(--lt), .45); }
.nvx__list a.is-on, .nvx__list a:focus-visible, .nvx__list a[aria-current] { color: var(--light); }
.nvx__list a.is-on .nvx__t { translate: 8px 0; }
.nvx__list li { opacity: 0; translate: 0 10px; transition: opacity .5s var(--e), translate .6s var(--e); }
.nvx.is-open .nvx__list li { opacity: 1; translate: none; transition-delay: calc(.12s + var(--k, 0) * 50ms); }
.nvx__ph { position: relative; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r); background: #070909; box-shadow: inset 0 0 0 1px var(--hair); }
.nvx__sc { position: absolute; inset: 0; opacity: 0; transition: opacity .5s var(--e); }
.nvx__sc img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
.nvx__on { opacity: 0; transition: opacity 1.1s cubic-bezier(.3, 0, .2, 1) .15s; }
.nvx__sc.is-on { opacity: 1; }
.nvx__sc.is-on .nvx__on { opacity: 1; } 

@property --sx { syntax: '<percentage>'; inherits: true; initial-value: -8%; }
.nvx__sc--scan .nvx__on { opacity: 1; transition: none;
  -webkit-mask: linear-gradient(90deg, transparent calc(var(--sx) - 24%), #000 calc(var(--sx) - 2%), #000 var(--sx), transparent calc(var(--sx) + .4%));
  mask: linear-gradient(90deg, transparent calc(var(--sx) - 24%), #000 calc(var(--sx) - 2%), #000 var(--sx), transparent calc(var(--sx) + .4%)); }
.nvx__hot { opacity: 0; -webkit-mask: radial-gradient(ellipse 9% 15% at 75.5% 41.4%, #000 35%, transparent); mask: radial-gradient(ellipse 9% 15% at 75.5% 41.4%, #000 35%, transparent); }
.nvx__sl { position: absolute; inset-block: 0; inset-inline-start: var(--sx); inline-size: 2px; translate: -1px 0; background: #ffd36b; box-shadow: 0 0 14px 2px rgba(242,182,50,.6); opacity: 0; }
.nvx__sc--scan.is-run { animation: nvx-sx 6.5s .25s infinite both; }
.nvx__sc--scan.is-run .nvx__sl { animation: nvx-sl 6.5s .25s infinite both; }
.nvx__sc--scan.is-run .nvx__hot { animation: nvx-hot 6.5s .25s infinite both; }
@keyframes nvx-sx { 0% { --sx: -8%; animation-timing-function: cubic-bezier(.45, 0, .55, 1); } 29%, 100% { --sx: 132%; } }
@keyframes nvx-sl { 0%, 23%, 100% { opacity: 0; } 2%, 21% { opacity: 1; } }
@keyframes nvx-hot { 0%, 16%, 74%, 100% { opacity: 0; } 21%, 62% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .nvx__sc--scan.is-on .nvx__hot { opacity: 1; } .nvx__sc--scan.is-run, .nvx__sc--scan.is-run * { animation: none; } }
.nvx__veil { position: fixed; inset: 0; z-index: 60; background: rgba(7,9,9,.55); opacity: 0; pointer-events: none; transition: opacity .5s var(--e); }
.nvx-open .nvx__veil { opacity: 1; }
.nvx-open .nv::before { opacity: 1; background: #0B0E0F; } 
.nvx-open .nv { color: var(--light); }
@media (max-width: 1000px) { .nvx, .nvx__veil { display: none; } }
@media (prefers-reduced-motion: reduce) { .nvx, .nvx::before, .nvx__list li, .nvx__on { transition: none; } }
@media (max-width: 1000px) { .nv { display: flex; justify-content: space-between; } } 




.nv__brand { padding-block: 15px; margin-block: -15px; }
.fo__logo { display: inline-block; padding-block: 11px; margin-block: -11px; }
@media (min-width: 1001px) { .nv__l { padding-block: 15px; } }
@media (pointer: coarse) {
  .fo__col a, .fo__ad a { display: inline-flex; align-items: center; min-block-size: 44px; }
  .cq__tel a, .cq__mail a { display: inline-flex; align-items: center; min-block-size: 44px; }
  
  main a:is([href^="tel:"], [href^="mailto:"], [href*="google.com/maps"]):not(.bt, .cq__tel a, .cq__mail a) { position: relative; }
  main a:is([href^="tel:"], [href^="mailto:"], [href*="google.com/maps"]):not(.bt, .cq__tel a, .cq__mail a)::before { content: ""; position: absolute; inset: -12px -4px; }
  .hs .hs__ticks a { padding-block: 13px; margin-block: -7px; min-inline-size: 44px; }
  .hs .hs__ticks a::after { inset-block-end: 7px; }
  
  .maplibregl-ctrl-attrib a { position: relative; }
  .maplibregl-ctrl-attrib-button::after, .maplibregl-ctrl-attrib a::before { content: ""; position: absolute; inset: -20px 0 0 -20px; }
  .maplibregl-ctrl-attrib a::before { inset: -30px -2px 0; }
}


@media (max-width: 1000px) { .ico-d { display: none !important; } }
@media (min-width: 1001px) { .ico-m { display: none !important; } }


.qf input, .qf select, .qf textarea { scroll-margin-block: 130px 110px; }
.qf__f.is-bad::before { content: "Champ obligatoire"; order: 1; padding-block: 6px 2px; font-size: 13px; color: #F08A72; } 

@media (pointer: coarse) { .cx__p a, .ov__f dt a { padding-block: 10px; margin-block: -10px; } }


@media (min-width: 1001px) { .nv { padding-block: 24px 18px; } .mn__panel { padding-block-start: 24px; } } 


@font-face { font-family: "Satoshi"; src: url("fonts/satoshi-400.woff2") format("woff2"); font-weight: 300 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Satoshi"; src: url("fonts/satoshi-500.woff2") format("woff2"); font-weight: 500 600; font-style: normal; font-display: swap; }
@media (min-width: 861px) { .mn { --f: "Satoshi", "Helvetica Neue", Arial, sans-serif; --fd: var(--f); font-family: var(--f); } .mn__nav { padding-block: 2vh; } } 
@media (min-width: 861px) and (max-height: 780px) { .mn__w { font-size: clamp(30px, 6.1svh, 66px); } }


.qf__f.is-bad::after { display: none; }
.qf__f.is-bad[data-why="mail"]::before { content: "E-mail invalide"; }
.qf__f.is-bad[data-why="tel"]::before { content: "Numéro invalide"; }

@media (pointer: coarse) {
  .cx__p a { display: inline-block; padding-block: 12px; margin-block: -12px; }
  .mn__ad a { display: inline-block; padding-block: 10px; margin-block: -5px; }
}


.fo__top { grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 3fr)); gap: 48px clamp(32px, 4vw, 72px); }
.fo__id { display: grid; gap: clamp(18px, 1.6vw, 26px); justify-items: start; }
.fo .fo__logo { display: block; inline-size: clamp(96px, 7vw, 128px); padding: 0; margin: 0; overflow: hidden; border-radius: var(--r); transition: opacity .3s var(--e); }
.fo .fo__logo:hover { opacity: .85; }
.fo__logo img { display: block; inline-size: 100%; block-size: auto; }
.fo__say { max-inline-size: 30em; font-size: 16px; line-height: 1.55; letter-spacing: -.005em; color: rgba(var(--lt),.66); text-wrap: pretty; }
.fo__col .fo__ad { font-style: normal; color: rgba(var(--lt),.82); }
.fo__col .fo__ad + .fo__ad { margin-block-start: 10px; }
.fo__lb { display: block; font-size: 14px; color: rgba(var(--lt),.66); }
.fo__bot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 32px; max-inline-size: 1600px; margin: clamp(44px, 5vw, 72px) auto 0; padding-block-start: 22px; border-block-start: 1px solid rgba(var(--lt),.12); font-size: 14px; color: rgba(var(--lt),.62); }
.fo__by { display: inline-flex; align-items: center; gap: .42em; min-block-size: 44px; padding-inline: 18px; border: 1px solid rgba(var(--lt),.18); border-radius: 999px; color: rgba(var(--lt),.82); }
.fo__by i { font-style: normal; color: var(--amber); }
.fo__by b { font-weight: 500; letter-spacing: .03em; color: var(--light); }
@media (max-width: 1000px) { .fo__top { grid-template-columns: repeat(3, minmax(0, 1fr)); } .fo__id { grid-column: 1 / -1; } }
@media (max-width: 860px) { .fo .fo__top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fo .fo__logo { grid-column: auto; } }
@media (max-width: 520px) { .fo .fo__top { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
