  :root {
      --paper: #ffffff;
      --ink: #141113;
      --red: #ff007a;
      --red-deep: #d10064;
      --muted: #6f6668;
      --mat: #f4f2f1;
      --line: #efe8e8;
      --gutter: clamp(16px, 3.2vw, 44px);
      --display: "Big Shoulders Display", "Impact", "Arial Narrow Bold", sans-serif;
      --body: "Manrope", "Helvetica Neue", Arial, sans-serif;
      color-scheme: light;
  }

  * {
      -webkit-box-sizing: border-box;
      box-sizing: border-box
  }

  html {
      scroll-behavior: smooth
  }

  body {
      background: var(--paper);
      color: var(--ink);
      font: 400 17px/1.6 var(--body);
      overflow-x: hidden
  }

  a {
      color: inherit
  }

  :focus-visible {
      outline: 3px solid var(--red);
      outline-offset: 3px;
      border-radius: 2px
  }


  /* ---------- NAV ---------- */
  .nav {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 50;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      padding: calc(env(safe-area-inset-top, 0px) + 10px) var(--gutter) 10px;
      -webkit-transition: background .35s, -webkit-box-shadow .35s;
      transition: background .35s, -webkit-box-shadow .35s;
      transition: background .35s, box-shadow .35s;
      transition: background .35s, box-shadow .35s, -webkit-box-shadow .35s
  }

  .nav.solid {
      background: rgba(255, 255, 255, .92);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      -webkit-box-shadow: 0 1px 0 var(--line);
      box-shadow: 0 1px 0 var(--line)
  }

  .custom-logo-link,
  .logo {
      display: block;
      width: clamp(96px, 10vw, 150px)
  }

  .custom-logo-link img,
  .logo img {
      display: block;
      width: 100%;
      height: auto
  }

  .menu-open .custom-logo-link rect,
  .menu-open .custom-logo-link path {
      fill: #ffffff;
  }

  .links ul,
  .links {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      gap: clamp(18px, 2vw, 30px);
      padding: 0;
      margin: 0;
      list-style-type: none;
  }

  .links a {
      text-decoration: none;
      font: 500 17px/1 var(--body);
      position: relative;
      padding-block: 6px
  }

  .links a::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 2px;
      background: var(--red);
      -webkit-transform: scaleX(0);
      transform: scaleX(0);
      -webkit-transform-origin: left;
      transform-origin: left;
      -webkit-transition: -webkit-transform .3s;
      transition: -webkit-transform .3s;
      transition: transform .3s;
      transition: transform .3s, -webkit-transform .3s
  }

  .links a:hover::after {
      -webkit-transform: scaleX(1);
      transform: scaleX(1)
  }

  .links a:hover::after,
  .links a[aria-current="page"]::after {
      -webkit-transform: scaleX(1);
      transform: scaleX(1)
  }

  .burger {
      width: 44px;
      height: 44px;
      border: 0;
      background: none;
      cursor: pointer;
      display: grid;
      place-content: center;
      gap: 5px;
      padding: 0
  }

  .burger span {
      display: block;
      width: 38px;
      height: 4px;
      background: var(--ink);
      -webkit-transition: opacity .3s, -webkit-transform .3s;
      transition: opacity .3s, -webkit-transform .3s;
      transition: transform .3s, opacity .3s;
      transition: transform .3s, opacity .3s, -webkit-transform .3s
  }

  .menu-open .burger span:nth-child(1) {
      -webkit-transform: translateY(9px) rotate(45deg);
      transform: translateY(9px) rotate(45deg)
  }

  .menu-open .burger span:nth-child(2) {
      opacity: 0
  }

  .menu-open .burger span:nth-child(3) {
      -webkit-transform: translateY(-9px) rotate(-45deg);
      transform: translateY(-9px) rotate(-45deg)
  }

  .overlay {
      position: fixed;
      inset: 0;
      z-index: 40;
      background: var(--red);
      color: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      padding-inline: var(--gutter);
      -webkit-clip-path: circle(0% at calc(100% - 48px) 40px);
      clip-path: circle(0% at calc(100% - 48px) 40px);
      -webkit-transition: -webkit-clip-path .6s cubic-bezier(.7, 0, .2, 1);
      transition: -webkit-clip-path .6s cubic-bezier(.7, 0, .2, 1);
      transition: clip-path .6s cubic-bezier(.7, 0, .2, 1);
      transition: clip-path .6s cubic-bezier(.7, 0, .2, 1), -webkit-clip-path .6s cubic-bezier(.7, 0, .2, 1)
  }

  .menu-open .overlay {
      -webkit-clip-path: circle(150% at calc(100% - 48px) 40px);
      clip-path: circle(150% at calc(100% - 48px) 40px)
  }

  .menu-open .nav .burger span {
      background: #fff
  }

  .menu-open .nav {
      background: transparent;
      -webkit-box-shadow: none;
      box-shadow: none;
      -webkit-backdrop-filter: none;
      backdrop-filter: none
  }

  .menu-open .nav .links {
      visibility: hidden
  }

  .overlay a {
      font: 900 clamp(56px, 11vw, 140px)/.92 var(--display);
      text-transform: uppercase;
      text-decoration: none;
      letter-spacing: -.01em;
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
      max-width: 100%
  }

  .overlay a:hover {
      color: var(--ink)
  }

  .overlay small {
      margin-top: 28px;
      font: 500 14px/1.4 var(--body);
      letter-spacing: .12em;
      text-transform: uppercase;
      opacity: .85
  }

  /* nav v2: all sections; lower-priority links fold into the burger as the screen narrows */
  .links {
      gap: clamp(14px, 1.6vw, 28px)
  }

  .links a {
      font-size: clamp(14px, 1.15vw, 17px)
  }

  @media (max-width:1280px) {
      .links .p2 {
          display: none
      }
  }

  @media (max-width:1040px) {
      .links .p1 {
          display: none
      }
  }

  .overlay {
      overflow-y: auto;
      padding-block: calc(env(safe-area-inset-top, 0px) + 90px) 40px;
      -webkit-box-pack: start;
      -ms-flex-pack: start;
      justify-content: flex-start
  }

  .overlay nav ul,
  .overlay nav {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      margin-block: auto
  }

  .overlay nav ul li,
  .overlay nav ul {
      padding: 0;
      margin: 0;
      list-style-type: none;
  }

  .overlay a {
      font-size: clamp(38px, min(8vw, 7.5vh), 110px) !important;
      line-height: .98 !important
  }

  .overlay a[aria-current="page"] {
      color: var(--ink)
  }

  /* menu overlay v3 */
  .logo img {
      -webkit-transition: -webkit-filter .35s;
      transition: -webkit-filter .35s;
      transition: filter .35s;
      transition: filter .35s, -webkit-filter .35s
  }

  .menu-open .logo img {
      -webkit-filter: brightness(0) invert(1);
      filter: brightness(0) invert(1)
  }

  .overlay {
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      text-align: center;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      padding: calc(env(safe-area-inset-top, 0px) + 96px) var(--gutter) calc(env(safe-area-inset-bottom, 0px) + 28px)
  }

  .overlay nav {
      margin-block: auto;
      width: 100%;
      max-width: 640px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center
  }

  .overlay nav a {
      display: block;
      width: 100%;
      max-width: none;
      text-align: center;
      padding-block: .06em;
      border-bottom: 1px solid rgba(255, 255, 255, .28);
      font-size: clamp(34px, min(9.6vw, 6.4vh), 96px) !important;
      line-height: 1.02 !important;
      -webkit-transition: color .2s, letter-spacing .3s;
      transition: color .2s, letter-spacing .3s
  }

  .overlay nav a:first-child {
      border-top: 1px solid rgba(255, 255, 255, .28)
  }

  .overlay nav a:hover {
      color: var(--ink);
      letter-spacing: .02em
  }

  .ov-foot {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      gap: 14px;
      width: 100%
  }

  .ov-social {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      gap: 8px 18px
  }

  .ov-social a {
      font: 700 12px/1 var(--body) !important;
      letter-spacing: .2em;
      text-transform: uppercase;
      text-decoration: none;
      color: #fff;
      opacity: .9
  }

  .ov-social a:hover {
      color: var(--ink)
  }

  .ov-copy {
      margin: 5px 0 0 0;
      font: 500 12px/1.4 var(--body);
      letter-spacing: .08em;
      opacity: .8
  }

  @media (min-width:721px) {
      .overlay nav a {
          border: 0 !important;
          padding-block: 0
      }
  }

  @media (max-width:720px) {
      .overlay {
          padding-top: calc(env(safe-area-inset-top, 0px) + 84px)
      }

      .overlay nav {
          -webkit-box-flex: 1;
          -ms-flex: 1;
          flex: 1;
          margin-block: 0 22px;
          -webkit-box-pack: stretch;
          -ms-flex-pack: stretch;
          justify-content: stretch
      }

      .overlay nav a {
          -webkit-box-flex: 1;
          -ms-flex: 1;
          flex: 1;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
          -ms-flex-align: center;
          align-items: center;
          -webkit-box-pack: center;
          -ms-flex-pack: center;
          justify-content: center;
          font-size: clamp(34px, 11vw, 56px) !important
      }
  }

  @media (max-width:720px) {
      .links {
          display: none
      }

      .burger span {
          width: 32px
      }
  }

  .wrap {
      max-width: 1240px;
      margin-inline: auto;
      padding-inline: var(--gutter)
  }

  footer#contact {
      background: var(--red);
      color: #fff;
      position: relative;
      z-index: 2
  }

  footer#contact .wrap {
      padding-block: clamp(64px, 9vw, 120px) calc(env(safe-area-inset-bottom, 0px) + 36px)
  }

  footer#contact h2 {
      color: #fff
  }

  footer#contact h2 em {
      color: var(--ink)
  }

  .foot-row {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      gap: 24px;
      margin-top: 56px;
      padding-top: 22px;
      border-top: 2px solid rgba(255, 255, 255, .5);
      font-size: 15px
  }

  .foot-row .textwidget {
      width: 100%;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      gap: 24px;
  }

  .foot-row a {
      font-weight: 700
  }

  .btn {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      gap: 12px;
      margin-top: 34px;
      background: var(--ink);
      color: #fff;
      text-decoration: none;
      font: 900 26px/1 var(--display);
      text-transform: uppercase;
      letter-spacing: .02em;
      padding: 18px 28px
  }

  .btn:hover {
      background: #fff;
      color: var(--red)
  }

  .rise {
      -webkit-transform: translateY(28px);
      transform: translateY(28px);
      -webkit-transition: -webkit-transform 1s cubic-bezier(.2, .7, .2, 1);
      transition: -webkit-transform 1s cubic-bezier(.2, .7, .2, 1);
      transition: transform 1s cubic-bezier(.2, .7, .2, 1);
      transition: transform 1s cubic-bezier(.2, .7, .2, 1), -webkit-transform 1s cubic-bezier(.2, .7, .2, 1)
  }

  .rise.in {
      -webkit-transform: none;
      transform: none
  }

  .no-js .rise {
      -webkit-transform: none;
      transform: none;
      opacity: 1
  }

  @media (prefers-reduced-motion:reduce) {
      html {
          scroll-behavior: auto
      }

      .rise {
          -webkit-transform: none;
          transform: none;
          opacity: 1;
          -webkit-transition: none;
          transition: none
      }

      .scroll-cue i {
          -webkit-animation: none;
          animation: none
      }

      .overlay {
          -webkit-transition: none;
          transition: none
      }
  }

  .foot .custom-html-widget {
      border-top: 1px solid var(--line);
      padding-block: 26px calc(env(safe-area-inset-bottom, 0px) + 26px);
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      gap: 12px;
      font-size: 14px;
      color: var(--muted)
  }

  @media (prefers-reduced-motion:reduce) {

      .ig::before,
      .overlay {
          -webkit-transition: none;
          transition: none
      }
  }

  .grecaptcha-badge {
      display: none;
  }

  sf {
      background: #fff !important;
      color: var(--ink) !important
  }

  .sf .wrap {
      padding-block: clamp(40px, 5vw, 60px) calc(env(safe-area-inset-bottom, 0px) + 24px) !important
  }

  .sf-top {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      gap: 24px;
      padding-bottom: 28px;
      border-bottom: 1px solid var(--line)
  }

  .sf-logo {
      display: block;
      width: clamp(96px, 9vw, 130px)
  }

  .sf-logo img {
      display: block;
      width: 100%;
      height: auto
  }

  .sf-follow {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      gap: 18px;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap
  }

  .sf-lbl {
      font: 700 13px/1 var(--body);
      letter-spacing: .2em;
      text-transform: uppercase
  }

  .sf-soc {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      gap: 10px
  }

  .sf-soc a {
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      border: 1.5px solid var(--ink);
      color: var(--ink);
      border-radius: 50%;
      -webkit-transition: background .2s, color .2s, border-color .2s;
      transition: background .2s, color .2s, border-color .2s
  }

  .sf-soc a:hover {
      background: var(--red);
      border-color: var(--red);
      color: #fff
  }

  .sf-soc svg {
      width: 21px;
      height: 21px
  }

  .sf-cta {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      gap: 10px;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      background: var(--ink);
      color: #fff;
      text-decoration: none;
      font: 900 22px/1 var(--display);
      text-transform: uppercase;
      letter-spacing: .04em;
      padding: 15px 24px;
      -webkit-transition: background .25s;
      transition: background .25s
  }

  .sf-cta:hover {
      background: var(--red)
  }

  .sf-bot {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      gap: 8px 24px;
      padding-top: 20px;
      font-size: 14px;
      color: var(--muted)
  }

  .sf-bot p {
      margin: 0
  }

  .sf-bot a {
      color: inherit
  }

  @media (max-width:860px) {
      .sub-in {
          grid-template-columns: 1fr
      }
  }

  @media (max-width:720px) {
      .sf-top {
          -webkit-box-orient: vertical;
          -webkit-box-direction: normal;
          -ms-flex-direction: column;
          flex-direction: column;
          -webkit-box-align: start;
          -ms-flex-align: start;
          align-items: flex-start
      }

      .sf-cta {
          width: 100%;
          -webkit-box-pack: center;
          -ms-flex-pack: center;
          justify-content: center
      }

      .sub-form button {
          padding: 0 18px;
          font-size: 19px
      }

      .sf-bot {
          -webkit-box-orient: vertical;
          -webkit-box-direction: normal;
          -ms-flex-direction: column;
          flex-direction: column
      }
  }
