/* Voice and Sound – shared styles.
 * Layout model (same as the original Wix site):
 *  - Desktop: a 980px-wide stage centred on the page. 1 design pixel = var(--u).
 *  - Mobile (< 768px): a 320px-wide design scaled to the screen width.
 * Each element's position lives in the <style> block of its page. */

:root { --u: min(1px, calc(100vw / 980)); }
@media (max-width: 767px) { :root { --u: calc(100vw / 320); } }

html { overflow-x: clip; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: #000; overflow-x: clip; -webkit-font-smoothing: antialiased; }
@media (min-width: 768px) { .xd { display: none !important; } }
@media (max-width: 767px) { .xm { display: none !important; } }

.pg { position: relative; height: calc(var(--hd) * var(--u)); overflow: clip; }
@media (max-width: 767px) { .pg { height: calc(var(--hm) * var(--u)); } }
.c { position: absolute; box-sizing: border-box; margin: 0; }

/* Rich text */
.rt { overflow-wrap: break-word; }
.rt p, .rt h1, .rt h2, .rt h3, .rt h4, .rt h5, .rt h6, .rt ul, .rt ol { margin: 0; }
.rt ul, .rt ol { padding-left: 1.3em; }
.rt a { color: inherit; }
.rt a:hover { opacity: .8; }

/* Images & backgrounds */
.im { display: block; overflow: hidden; }
.im img, .im picture { display: block; width: 100%; height: 100%; object-fit: cover; }
.bg { overflow: hidden; }
.bgm { position: absolute; inset: 0; }
.bgm video, .bgm img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
[data-parallax] .bgm { top: -15%; bottom: -15%; will-change: transform; }
@media (max-width: 767px) { [data-parallax] .bgm { top: 0; bottom: 0; transform: none !important; } }
.vi svg { display: block; width: 100%; height: 100%; }

/* Buttons */
.btn { display: flex; align-items: center; justify-content: center; text-decoration: none; border-style: solid;
       padding: 0; cursor: pointer; font: inherit; transition: background-color .4s, border-color .4s; }
.btn span { white-space: nowrap; transition: color .4s; }
.btn-green { background: rgb(70, 155, 110); border-color: rgb(56, 198, 139); }
.btn-green span { color: #fff; }
.btn-green:hover, .btn-green:focus-visible { background: rgb(142, 58, 171); }
.btn-black { background: #000; border-color: rgb(56, 198, 139); }
.btn-black span { color: #fff; }
.btn-black:hover, .btn-black:focus-visible { background: rgba(255, 255, 255, 0); border-color: #000; }
.btn-black:hover span, .btn-black:focus-visible span { color: #000; }

/* Desktop menu */
#dnav ul { list-style: none; margin: 0; padding: 0; position: relative; height: 100%; }
#dnav li { position: absolute; top: 0; height: 100%; }
#dnav a { display: block; text-align: center; text-decoration: none; white-space: nowrap;
          font: 400 calc(13 * var(--u)) / calc(50 * var(--u)) 'Montserrat VS', Arial, sans-serif;
          color: rgb(43, 124, 116); transition: color .4s; }
#dnav a[aria-current] { color: #000; }
#dnav a:hover, #dnav a:focus-visible { color: rgb(87, 187, 191); }
#dnav .sub { display: none; position: absolute; top: calc(50 * var(--u)); left: calc(-16 * var(--u));
             width: calc(105 * var(--u)); height: auto; padding: calc(7 * var(--u)) 0 0; background: transparent; z-index: 20; }
#dnav .sub li { position: static; height: auto; background: #fff; }
#dnav .sub a { line-height: calc(28 * var(--u)); }
#dnav .more:hover .sub, #dnav .more:focus-within .sub { display: block; }

/* Mobile header + menu */
#mhead { position: fixed; top: 0; left: 0; right: 0; height: calc(90 * var(--u)); background: #fff; z-index: 50;
         transition: transform .2s; }
#mhead.hide { transform: translateY(-100%); }
#mtoggle, #mclose { position: absolute; left: calc(21 * var(--u)); top: calc(48 * var(--u)); width: calc(26 * var(--u));
                    height: calc(26 * var(--u)); padding: 0; border: 0; background: none; cursor: pointer; }
#mtoggle span { position: absolute; left: 0; right: 0; height: calc(2 * var(--u)); background: #000; }
#mtoggle span:nth-child(1) { top: calc(3 * var(--u)); }
#mtoggle span:nth-child(2) { top: calc(12 * var(--u)); }
#mtoggle span:nth-child(3) { top: calc(21 * var(--u)); }
#mclose span { position: absolute; left: calc(1 * var(--u)); right: calc(1 * var(--u)); top: calc(12.5 * var(--u));
               height: calc(1.6 * var(--u)); background: #000; transform: rotate(45deg); }
#mclose span + span { transform: rotate(-45deg); }
#mmenu { position: fixed; inset: 0; background: #fff; z-index: 60; overflow-y: auto; }
#mmenu[hidden] { display: none !important; }
#mmenu > ul { list-style: none; margin: 0; padding: 0; position: absolute; top: calc(74 * var(--u)); left: calc(12 * var(--u));
              width: calc(245 * var(--u)); }
#mmenu li { position: relative; }
#mmenu a, #mmenu .msub { display: block; width: 100%; text-align: center; text-decoration: none; color: #000; background: none;
                          border: 0; padding: 0; cursor: pointer; white-space: nowrap;
                          font: 700 calc(21 * var(--u)) / calc(51 * var(--u)) 'Montserrat VS', Arial, sans-serif; }
#mmenu a[aria-current] { color: rgb(87, 187, 191); }
#mmenu .msub i { position: absolute; left: calc(214 * var(--u)); top: calc(19 * var(--u)); width: calc(8 * var(--u));
                 height: calc(8 * var(--u)); border: solid #000; border-width: 0 calc(1.3 * var(--u)) calc(1.3 * var(--u)) 0;
                 transform: rotate(45deg); transition: transform .2s; }
#mmenu .msub[aria-expanded="true"] i { transform: translateY(calc(4 * var(--u))) rotate(-135deg); }
#mmenu .sub { display: none; list-style: none; margin: 0; padding: 0; }
#mmenu .sub.open { display: block; }
#mmenu .sub a { font-size: calc(17 * var(--u)); line-height: calc(42 * var(--u)); }
#totop { position: fixed; right: calc(23 * var(--u)); bottom: calc(23 * var(--u)); width: calc(43 * var(--u));
         height: calc(43 * var(--u)); padding: 0; border: 0; background: none; cursor: pointer; z-index: 40;
         opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
#totop.show { opacity: 1; visibility: visible; }
#totop svg { width: 100%; height: 100%; display: block; }

/* Testimonial hover cards */
.card { overflow: hidden; outline: none; }
.card .cimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .5s; }
@media (min-width: 768px) {
  .card .hi, .card .ho { transition: opacity .35s, visibility .35s; }
  .card .hi { opacity: 0; visibility: hidden; }
  .card:hover .hi, .card:focus-within .hi { opacity: 1; visibility: visible; }
  .card:hover .ho, .card:focus-within .ho { opacity: 0; visibility: hidden; }
}

/* Contact form */
.fi { border: calc(1 * var(--u)) solid #000; border-radius: 0; background: #fff; color: #000; outline: none;
      font: 400 calc(15 * var(--u)) 'Montserrat VS', Arial, sans-serif;
      padding: calc(3 * var(--u)) calc(3 * var(--u)) calc(3 * var(--u)) calc(12 * var(--u)); -webkit-appearance: none; appearance: none; }
.fi:focus { border-color: rgb(87, 187, 191); }
.fta { font-family: 'Nunito Sans VS', Arial, sans-serif; font-weight: 300; resize: none;
       padding: calc(11.25 * var(--u)) calc(10 * var(--u)) calc(3 * var(--u)) calc(16 * var(--u)); }
.fi::placeholder { color: #000; opacity: .55; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
#fmsg { font: 400 calc(14 * var(--u)) / 1.4 'Montserrat VS', Arial, sans-serif; color: #000; }
#fmsg.err { color: #c0392b; }

/* Entrance animations (replicating Wix FloatIn / FadeIn / RevealIn) */
.aw { opacity: 0; }
.aw.revealIn { opacity: 1; clip-path: inset(0 100% 0 0); }
.ai.floatIn { animation: vsFloat var(--dur, 1.2s) cubic-bezier(.215, .61, .355, 1) both; }
.ai.fadeIn { animation: vsFade var(--dur, 1.2s) cubic-bezier(.25, .46, .45, .94) both; }
.ai.revealIn { animation: vsReveal var(--dur, 1.2s) cubic-bezier(.645, .045, .355, 1) both; }
@keyframes vsFloat { from { opacity: 0; transform: translateY(calc(60 * var(--u))); } to { opacity: 1; transform: none; } }
@keyframes vsFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vsReveal { from { opacity: 1; clip-path: inset(0 100% 0 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@media (prefers-reduced-motion: reduce) {
  .aw { opacity: 1 !important; clip-path: none !important; }
  .ai { animation: none !important; }
  [data-parallax] .bgm { transform: none !important; }
}
.pdf img { object-fit: contain !important; }
