@font-face { font-family:'Avenir LT Light'; src:url('assets/fonts/avenir-light.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:block; }
@font-face { font-family:'Avenir LT Heavy'; src:url('assets/fonts/avenir-heavy.woff2') format('woff2'); font-style:normal; font-weight:400 900; font-display:block; }
@font-face { font-family:'Helvetica W01 Roman'; src:url('assets/fonts/helvetica-roman.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:block; }
@font-face { font-family:'Helvetica W01 Light'; src:url('assets/fonts/helvetica-light.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:block; }

:root { --yellow:#edcd1f; --nav:#1e2d3b; --text:#3b3a3a; --blue:#3d5975; --muted:#c6c6c6; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; color:var(--text); font-family:'Helvetica W01 Light',sans-serif; font-size:15px; }
a { color:inherit; }

.site-header { height:100px; background:var(--nav); display:flex; align-items:center; position:sticky; top:0; z-index:100; }
.brand { width:398px; height:100px; padding:20px 0 20px 30px; background:var(--yellow); display:flex; align-items:center; gap:16px; flex:0 0 auto; text-decoration:none; color:var(--nav); font-family:'Helvetica W01 Roman',sans-serif; font-size:27px; line-height:1; letter-spacing:.05em; }
.brand-mark { width:47px; height:49px; object-fit:contain; flex:0 0 auto; }
.brand-copy { width:305px; height:50px; position:relative; top:2px; white-space:nowrap; line-height:23px; }
.brand-copy strong { font-weight:700; }
.brand-copy small { font-family:inherit; font-size:23px; font-weight:400; line-height:23px; letter-spacing:.05em; }
.nav { width:660px; height:100%; margin-left:auto; margin-right:20px; padding-top:48px; display:flex; align-items:flex-start; }
.nav a { height:37px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; text-transform:uppercase; font-family:'Avenir LT Light',sans-serif; font-size:14px; }
.nav a:nth-child(1) { width:140px; }
.nav a:nth-child(2) { width:130px; }
.nav a:nth-child(3) { width:120px; }
.nav a:nth-child(4) { width:118px; }
.nav a:nth-child(5) { width:152px; }
.nav a:hover,.nav a:focus-visible { color:var(--yellow); }
.menu-toggle { display:none; }

.hero { height:930px; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; color:#fff; background:#5dacca url('assets/hero.jpg') center/cover fixed no-repeat; isolation:isolate; }
.hero-video { position:fixed; inset:0; width:100%; height:100vh; object-fit:cover; object-position:center; z-index:-2; }
.hero-texture { position:fixed; inset:0; height:100vh; z-index:-1; background-image:url('assets/video-overlay-wix.png'); background-repeat:repeat; pointer-events:none; }
.hero h1 { z-index:1; width:min(793px, calc(100% - 40px)); margin:76px 20px 0; font-family:'Avenir LT Heavy',sans-serif; font-size:60px; line-height:1.1; letter-spacing:3px; font-weight:400; text-align:center; }
.down { z-index:1; width:54px; height:31px; margin-top:51px; background:url('assets/arrow-wix.png') center/contain no-repeat; }

.section { max-width:980px; margin:0 auto; }
.section > h2,.prices h2 { margin:0; text-align:center; text-transform:uppercase; font-family:'Avenir LT Heavy',sans-serif; font-size:55px; line-height:1.2; letter-spacing:2.75px; font-weight:400; color:var(--muted); }
.yellow-line { width:116px; height:9px; margin:13px auto 55px; background:var(--yellow); }

.services { min-height:782px; padding:57px 0 70px; background:#fff; }
.services .yellow-line { margin-bottom:53px; }
.service-grid { display:grid; grid-template-columns:repeat(2,300px); justify-content:center; gap:20px; }
.service-card img { width:300px; height:227px; object-fit:cover; display:block; }
.card-copy { min-height:230px; padding:33px 28px 29px; background:#f5f4f3; }
.card-copy h3 { margin:0 0 18px; font-family:'Avenir LT Heavy',sans-serif; font-size:22px; line-height:1.1; font-weight:400; color:var(--blue); }
.card-copy p { margin:0; font-family:'Helvetica W01 Light',sans-serif; line-height:1.6; font-size:15px; }
.service-card:first-child .card-copy h3 { margin-bottom:19px; }
.service-card:first-child .card-copy p { width:247px; margin-left:-7px; }

.about { display:grid; grid-template-columns:1fr 1fr; height:682px; background:#f5f4f3; }
.about-copy { display:flex; justify-content:flex-end; padding:56px 0 40px 30px; }
.about-copy > div { width:470px; }
.about h2 { margin:0; text-transform:uppercase; font-family:'Avenir LT Heavy',sans-serif; font-size:55px; line-height:1.2; letter-spacing:2.75px; font-weight:400; color:var(--muted); }
.yellow-line.left { margin:13px 0 48px; }
.about p { max-width:408px; margin:0 0 30px; font-size:17px; line-height:1.7; }
.about-image { background-image:url('assets/hero.jpg'); background-position:center; background-size:cover; background-repeat:no-repeat; background-attachment:fixed; }

.stats { height:229px; padding-top:45px; padding-left:max(0px,calc((100% - 980px)/2)); background:var(--yellow); display:flex; justify-content:flex-start; align-items:flex-start; }
.stats div { width:245px; flex:0 0 245px; text-align:center; position:relative; }
.stats div+div::before { content:""; position:absolute; left:0; top:11px; height:104px; border-left:2px solid rgba(255,255,255,.8); }
.stats div:last-child::after { content:""; position:absolute; right:-22px; top:33px; height:71px; border-right:2px solid rgba(255,255,255,.8); }
.stats strong { display:block; color:#fff; font-family:'Avenir LT Heavy',sans-serif; font-size:60px; line-height:normal; font-weight:400; }
.stats span { display:block; margin-top:9px; color:var(--blue); font-family:'Avenir LT Heavy',sans-serif; font-size:22px; line-height:1.1; font-weight:700; }

.prices { height:468px; margin-top:-2px; padding:49px 20px 0; background:#fff; }
.mesh-band { margin:0 auto 10px; max-width:580px; min-height:52px; padding:10px 18px; text-align:center; background-color:#e8e8e8; background-image:repeating-linear-gradient(30deg,rgba(0,0,0,.07) 0 1px,transparent 1px 4px); }
.prices h2 { color:#111; text-transform:none; font-size:55px; font-weight:700; letter-spacing:0; }
.prices .yellow-line { margin:5px auto 0; }
.prices > .mesh-band:first-child { max-width:801px; margin-bottom:-9px; padding-left:0; padding-right:0; background:none; }
.price-list { min-height:205px; padding-top:16px; font-size:13px; }
.price-list > strong { display:block; font-family:'Helvetica W01 Light',sans-serif; font-size:17px; font-weight:400; }
.price-table { width:min(100%,520px); margin:13px auto 0; border-collapse:collapse; table-layout:fixed; line-height:1.25; }
.price-table th,.price-table td { width:33.333%; padding:3px 8px; text-align:center; vertical-align:middle; }
.price-table th { padding-bottom:5px; font-weight:700; border-bottom:1px solid rgba(0,0,0,.22); }
.price-table td { white-space:nowrap; }
.discount { min-height:48px; padding-top:14px; font-weight:700; text-align:left; background:none; }

.contacts { min-height:874px; margin-top:-8px; padding:22px 0 52px; background:#fff; }
.contacts .yellow-line { margin-bottom:48px; }
.map-wrap { width:940px; height:365px; margin:0 auto 39px; position:relative; overflow:hidden; }
.map { width:100%; height:100%; display:block; border:0; }
.contact-grid { width:940px; margin:0 auto; padding-left:11px; display:grid; grid-template-columns:426px 340px; gap:107px; justify-content:start; }
.contact-grid h3 { margin:0 0 18px; font-family:'Avenir LT Heavy',sans-serif; font-size:25px; line-height:.9; font-weight:400; color:var(--nav); }
.contact-grid p { margin:0; font-size:17px; line-height:1.5; }
.contact-grid a { text-decoration:none; }
.jobs { margin-top:45px; }
.short-line { width:58px; height:8px; background:var(--yellow); margin:84px 0 18px; }
.phone { font-family:'Avenir LT Heavy',sans-serif; font-size:25px !important; line-height:1.3 !important; }
.phone a { font-weight:400; }

footer { max-width:none; margin:0; padding:22px 0 48px; position:relative; z-index:2; background:#fff; font-family:'Helvetica W01 Roman',sans-serif; font-size:14px; text-align:center; }

.services,.about,.stats,.prices,.contacts { position:relative; z-index:2; }

@media (max-width:980px) {
  html { scroll-padding-top:76px; }
  .site-header { height:76px; }
  .brand { width:auto; height:76px; padding:11px 18px; gap:10px; font-size:16px; line-height:1; }
  .brand-mark { width:38px; height:48px; }
  .brand-copy { width:auto; height:auto; top:0; line-height:1; }
  .brand-copy small { font-size:inherit; line-height:inherit; }
  .menu-toggle { display:block; margin-left:auto; margin-right:18px; border:1px solid #fff; background:transparent; color:#fff; padding:9px 12px; font-family:AvenirLight,Arial,sans-serif; }
  .nav { display:none; position:absolute; top:76px; left:0; right:0; width:auto; height:auto; margin:0; padding:20px; background:var(--nav); flex-direction:column; align-items:stretch; }
  .nav.open { display:flex; }
  .nav a { min-height:42px; flex:auto; }
  .nav a:nth-child(n) { width:auto; }
  .hero { height:680px; }
  .hero h1 { margin-top:70px; font-size:44px; }
  .section > h2,.prices h2 { font-size:44px; }
  .service-grid { grid-template-columns:minmax(0,360px); padding:0 20px; gap:28px; }
  .service-card img { width:100%; height:auto; }
  .service-card:first-child .card-copy p { width:auto; margin-left:0; }
  .services { min-height:auto; }
  .about { height:auto; grid-template-columns:1fr; }
  .about-copy { justify-content:center; padding:55px 30px; }
  .about-copy > div { width:100%; max-width:500px; }
  .about-image { min-height:420px; }
  .stats { height:auto; min-height:190px; padding:30px 15px; }
  .stats div { width:33.333%; flex:1 1 33.333%; }
  .stats strong { font-size:42px; }
  .stats span { font-size:15px; }
  .prices { height:auto; min-height:440px; }
  .map-wrap { width:calc(100% - 40px); }
  .contact-grid { width:auto; grid-template-columns:1fr; gap:65px; padding:0 20px; }
  .contacts { padding-bottom:60px; }
  footer { padding:0 20px 30px; }
}

@media (max-width:520px) {
  .brand span:last-child { max-width:210px; }
  .hero { height:590px; }
  .hero h1 { font-size:31px; line-height:1.18; }
  .section > h2,.prices h2,.about h2 { font-size:38px; }
  .stats div+div::before { height:70px; }
  .stats strong { font-size:31px; }
  .stats span { font-size:12px; }
  .mesh-band { margin-bottom:12px; }
  .hero { background-attachment:scroll; }
  .hero-video,.hero-texture { display:none; }
  .price-list { padding:20px 7px; }
  .price-list > strong { font-size:14px; }
  .price-table th,.price-table td { padding:5px 3px; font-size:12px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .hero-video { display:none; }
}
