 :root {
      --contact-wine: #6B0E15;
      --contact-wine-2: #7B1D1D;
      --contact-ink: #231c19;
      --contact-muted: #76685f;
      --contact-paper: #f8f3ec;
      --contact-cream: #fffaf4;
      --contact-line: #ddd0c4;
      --contact-gold: #b48a66;
    }

    * {
      box-sizing: border-box
    }

    body {
      background: var(--contact-paper);
      color: var(--contact-ink)
    }

    .contact-page {
      padding: 126px 0 0;
      background: linear-gradient(180deg, #fbf8f3 0%, #f7f0e7 100%)
    }

    .contact-shell {
      width: min(var(--max), calc(100% - 64px));
      margin: 0 auto
    }

    .contact-breadcrumb {
      margin: 0 0 34px;
      font-size: 12px;
      color: #8a7c72
    }

    .contact-breadcrumb span {
      padding: 0 8px;
      color: #b8aaa0
    }

    /* Editorial intro */
    .contact-intro {
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      gap: 72px;
      align-items: end;
      padding: 18px 0 58px;
      border-bottom: 1px solid var(--contact-line)
    }

    .contact-intro .eyebrow {
      margin: 0 0 16px;
      color: var(--contact-wine);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase
    }

    .contact-intro h1 {
      margin: 0;
      font-family: 'HS Museo Bg', HSMuseo, Arial, sans-serif;
      font-size: clamp(52px, 5.8vw, 88px);
      font-weight: 700;
      line-height: .96;
      letter-spacing: -.035em;
      color: var(--contact-ink)
    }

    .contact-intro h1 span {
      display: block;
      color: var(--contact-wine)
    }

    .contact-intro-side {
      padding-bottom: 8px;
      max-width: 500px
    }

    .contact-intro-side p {
      margin: 0 0 24px;
      font-size: 16px;
      line-height: 1.75;
      color: var(--contact-muted)
    }

    .contact-intro-links {
      display: flex;
      gap: 24px;
      flex-wrap: wrap
    }

    .contact-intro-links a {
      color: var(--contact-ink);
      text-decoration: none;
      font-size: 13px;
      font-weight: 700;
      border-bottom: 1px solid rgba(107, 14, 21, .35);
      padding-bottom: 5px
    }

    .contact-intro-links a:hover {
      color: var(--contact-wine);
      border-color: var(--contact-wine)
    }

    /* Main form */
    .contact-main {
      display: grid;
      grid-template-columns: minmax(0, 1.65fr) minmax(330px, .85fr);
      gap: 0;
      margin: 0;
      background: var(--contact-cream);
      border: 1px solid var(--contact-line);
    }

    .contact-form-wrap {
      padding: 42px 50px 38px;
      border-right: 1px solid var(--contact-line);
    }

    .contact-form-head {
      margin-bottom: 28px;
    }

    .contact-form-head h2 {
      margin: 0;
      font-family: 'HS Museo Bg', Arial, sans-serif;
      font-size: 34px;
      font-weight: 700;
      line-height: 1.1;
    }

    .contact-form-head h2 span {
      display: block;
      margin-top: 5px;
      max-width: 560px;
      font-size: 24px;
      line-height: 1.2;
      font-weight: 700;
    }

    .premium-form {
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 42px;
      row-gap: 20px;
    }

    .premium-field {
      position: relative;
    }

    .premium-field.full {
      grid-column: 1/-1;
    }

    .premium-field label {
      display: block;
      margin: 0 0 8px;
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .11em;
      color: #6b5d54;
    }

    .premium-field input,
    .premium-field textarea,
    .premium-field select {
      width: 100%;
      border: 0;
      border-bottom: 1px solid #cdbeb1;
      background: transparent;
      padding: 8px 0 12px;
      font: inherit;
      font-size: 14px;
      color: var(--contact-ink);
      outline: none;
      border-radius: 0;
      transition: border-color .22s ease;
    }

    .premium-field input::placeholder,
    .premium-field textarea::placeholder {
      color: #a4978f;
    }

    .premium-field textarea {
      min-height: 80px;
      resize: vertical;
    }

    .premium-field input:focus,
    .premium-field textarea:focus,
    .premium-field select:focus {
      border-color: var(--contact-wine);
    }

    .premium-field select {
      appearance: none;
      background-image:
        linear-gradient(45deg, transparent 50%, #796960 50%),
        linear-gradient(135deg, #796960 50%, transparent 50%);
      background-position:
        calc(100% - 12px) 50%,
        calc(100% - 7px) 50%;
      background-size: 5px 5px, 5px 5px;
      background-repeat: no-repeat;
      padding-right: 28px;
    }

    .form-footer {
      grid-column: 1/-1;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 36px;
      padding-top: 10px;
    }

    .form-note {
      margin: 0;
      max-width: 390px;
      color: #8b7c72;
      font-size: 11px;
      line-height: 1.55;
    }

    .form-note a {
      color: var(--contact-wine);
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .premium-submit {
      border: 1px solid var(--contact-wine);
      background: var(--contact-wine);
      color: #fff;
      min-width: 215px;
      padding: 15px 24px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .04em;
      cursor: pointer;
      transition: .25s ease;
    }

    .premium-submit i {
      margin-left: 14px;
    }

    .premium-submit:hover {
      background: #520a10;
      border-color: #520a10;
      transform: translateY(-1px);
    }

    .form-status {
      grid-column: 1/-1;
      margin: 0;
      font-size: 12px;
      color: var(--contact-wine);
    }

    .contact-honeypot {
      position: absolute !important;
      left: -9999px !important;
      width: 1px !important;
      height: 1px !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }

    .form-status:empty {
      display: none;
    }

    .form-status.is-success {
      color: #35643f;
    }

    .form-status.is-error {
      color: var(--contact-wine);
    }

    .premium-submit:disabled {
      opacity: .65;
      cursor: wait;
      transform: none;
    }


    /* Contact details */
    .contact-side {
      position: relative;
      display: flex;
      flex-direction: column;
      padding: 52px 42px 48px;
      overflow: hidden;
      color: #fff;
    }

    .contact-side:before {
      content: "";
      position: absolute;
      inset: 0;
      background: #6B0E15;
      z-index: 0;
    }

    .contact-side:after {
      content: "";
      position: absolute;
      right: -150px;
      bottom: -170px;
      width: 360px;
      height: 360px;
      border: 1px solid rgba(255, 255, 255, .10);
      border-radius: 50%;
      box-shadow:
        0 0 0 50px rgba(255, 255, 255, .02),
        0 0 0 100px rgba(255, 255, 255, .015);
      z-index: 0;
    }

    .contact-side>* {
      position: relative;
      z-index: 1;
    }

    .contact-side .side-kicker {
      margin: 0 0 22px;
      color: #e5bba8;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .contact-data {
      display: grid;
      gap: 0;
      margin: 0;
    }

    .contact-data-item {
      padding: 14px 0;
      border-top: 1px solid rgba(255, 255, 255, .17);
    }

    .contact-data-item:first-child {
      border-top: 0;
      padding-top: 0;
    }

    .contact-data-item span {
      display: block;
      margin-bottom: 6px;
      color: #e5bba8;
      font-size: 9px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .13em;
    }

    .contact-data-item p,
    .contact-data-item a {
      margin: 0;
      color: #fff;
      text-decoration: none;
      font-size: 13px;
      font-weight: 400;
      line-height: 1.55;
    }

    .contact-data-item a:hover {
      color: #f1d7ca;
    }

    /* Location */
    .contact-location {
      padding: 74px 0 78px
    }

    .location-head {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: end;
      margin-bottom: 32px
    }

    .location-head .eyebrow {
      margin: 0 0 12px;
      color: var(--contact-wine);
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .14em
    }

    .location-head h2 {
      margin: 0;
      font-family: 'HS Museo Bg', HSMuseo, Arial, sans-serif;
      font-size: clamp(34px, 3.7vw, 54px);
      line-height: 1.02;
      font-weight: 700;
      letter-spacing: -.025em
    }

    .location-head p {
      margin: 0;
      max-width: 470px;
      color: var(--contact-muted);
      font-size: 14px;
      line-height: 1.7
    }

    .map-frame {
      position: relative;
      border: 1px solid var(--contact-line);
      background: #eee5da;
      overflow: hidden;
      box-shadow: 0 22px 65px rgba(57, 38, 30, .08)
    }

    .map-frame iframe {
      display: block;
      width: 100%;
      height: 600px;
      border: 0;
      filter: saturate(.72) sepia(.08) contrast(.96)
    }

    .map-caption {
      position: absolute;
      left: 28px;
      bottom: 28px;
      z-index: 2;
      min-width: 310px;
      background: rgba(255, 250, 244, .94);
      backdrop-filter: blur(8px);
      padding: 18px 20px;
      border-left: 3px solid var(--contact-wine);
      box-shadow: 0 10px 35px rgba(43, 29, 22, .12)
    }

    .map-caption strong {
      display: block;
      margin-bottom: 4px;
      font-size: 14px;
      color: var(--contact-ink)
    }

    .map-caption span {
      font-size: 12px;
      color: #76685f
    }

    @media(max-width:1050px) {
      .contact-intro {
        grid-template-columns: 1fr;
        gap: 28px
      }

      .contact-main {
        grid-template-columns: 1fr;
        margin: 0
      }

      .contact-form-wrap {
        padding: 58px 38px;
        border-right: 0;
        border-bottom: 1px solid var(--contact-line)
      }

      .contact-side {
        min-height: auto;
        padding: 54px 38px
      }

      .contact-data {
        grid-template-columns: 1fr 1fr;
        margin-top: 20px
      }

      .location-head {
        grid-template-columns: 1fr;
        gap: 20px
      }
    }

    @media(max-width:700px) {
      .contact-page {
        padding-top: 104px
      }

      .contact-shell {
        width: calc(100% - 28px)
      }

      .contact-intro {
        padding-bottom: 40px
      }

      .contact-intro h1 {
        font-size: 50px
      }

      .contact-form-wrap {
        padding: 44px 22px
      }

      .contact-form-head {
        flex-direction: column;
        margin-bottom: 34px
      }

      .premium-form {
        grid-template-columns: 1fr;
        gap: 24px
      }

      .premium-field.full {
        grid-column: auto
      }

      .form-footer {
        grid-column: auto;
        flex-direction: column;
        align-items: stretch
      }

      .premium-submit {
        width: 100%
      }

      .form-status {
        grid-column: auto
      }

      .contact-side {
        padding: 42px 22px
      }

      .contact-data {
        grid-template-columns: 1fr;
        gap: 18px
      }

      .contact-location {
        padding: 52px 0 56px
      }

      .map-frame iframe {
        height: 430px
      }

      .map-caption {
        left: 14px;
        right: 14px;
        bottom: 14px;
        min-width: 0
      }
    }

    @media (min-width:1101px) {
      .contact-intro {
        grid-template-columns: 1.35fr .65fr
      }
    }