.contactPage.container{
  max-width: var(--container);
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

.contactHero{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--g-header);
  border-bottom: 1px solid color-mix(in srgb, var(--c-border-2) 80%, transparent);
  position: relative;
}

.contactHero::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--c-primary) 60%, transparent), transparent);
  pointer-events: none;
}

.contactHero__inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--space-56) 20px var(--space-28);
}

.contactHero__title{
  margin: 0;
  font-family: var(--font-secondary);
  font-weight: var(--fw-700);
  letter-spacing: var(--tracking-tight);
  line-height: var(--lh-tight);
  font-size: var(--fs-h1);
  color: var(--c-text);
}

.contactHero__desc{
  margin: var(--space-14) 0 0 0;
  max-width: 78ch;
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  font-weight: var(--fw-500);
  line-height: var(--lh-relaxed);
  color: var(--c-muted);
}

.contactWrap{
  padding-top: var(--space-28);
  padding-bottom: var(--space-80);
}

.contactCols{
  gap: clamp(1rem, 0.85rem + 0.9vw, 1.35rem);
  align-items: start;
}

.contactCol{
  display: block;
}

.contactPanel{
  position: relative;
  border-radius: var(--radius-18);
  border: 1px solid color-mix(in srgb, var(--c-border) 86%, transparent);
  background: color-mix(in srgb, var(--c-surface) 96%, transparent);
  box-shadow: 0 14px 44px rgba(11, 14, 20, 0.08);
  overflow: hidden;
  isolation: isolate;
}

.contactPanel::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--g-primary);
  opacity: 0.92;
  pointer-events: none;
  z-index: 0;
}

.contactPanel::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 520px at 14% -10%,
      color-mix(in srgb, var(--c-primary) 10%, transparent),
      transparent 62%
    ),
    radial-gradient(900px 520px at 88% 10%,
      color-mix(in srgb, var(--c-primary-2) 8%, transparent),
      transparent 66%
    );
  opacity: 0.22;
  pointer-events: none;
  z-index: 0;
}

.contactPanel > *{
  position: relative;
  z-index: 1;
}

.contactPanel--form,
.contactPanel--direct{
  padding: var(--space-20) var(--space-20);
}

.contactPanel__title{
  margin: 0;
  font-family: var(--font-secondary);
  font-weight: var(--fw-700);
  letter-spacing: var(--tracking-tight);
  line-height: 1.12;
  font-size: var(--fs-h3);
  color: var(--c-text);
}

.contactPanel__hint{
  margin: var(--space-10) 0 0;
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--c-muted);
}

.contactFormSlot{
  margin-top: var(--space-18);
}

.contactList{
  margin-top: var(--space-16);
  display: grid;
  border-top: 1px solid color-mix(in srgb, var(--c-border) 80%, transparent);
}

.contactRow{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-16);
  align-items: center;
  padding: var(--space-16) 0;
  border-bottom: 1px solid color-mix(in srgb, var(--c-border) 80%, transparent);
}

.contactRow__title{
  font-family: var(--font-secondary);
  font-size: var(--fs-h4);
  line-height: 1.12;
  letter-spacing: var(--tracking-tight);
  color: var(--c-text);
  text-transform: lowercase;
}

.contactRow__desc{
  margin-top: var(--space-6);
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--c-muted);
}

.contactRow__mail{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.6rem;
  padding: 0 var(--space-14);
  border-radius: var(--radius-pill);
  text-decoration: none;
  font-family: var(--font-primary);
  font-size: var(--fs-small);
  font-weight: var(--fw-700);
  letter-spacing: var(--tracking-wide);
  border: 1px solid color-mix(in srgb, var(--c-border-2) 60%, transparent);
  background: color-mix(in srgb, var(--c-surface) 94%, transparent);
  color: var(--c-text-2);
  transition: transform var(--dur-180) var(--ease-out), box-shadow var(--dur-180) var(--ease-out), border-color var(--dur-180) var(--ease-out), background var(--dur-180) var(--ease-out), color var(--dur-180) var(--ease-out);
}

.contactRow__mail:hover{
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--c-primary) 34%, var(--c-border));
  background: color-mix(in srgb, var(--c-primary) 10%, var(--c-surface));
  color: var(--c-text);
  box-shadow: 0 16px 40px rgba(11, 14, 20, 0.10);
}

.contactRow__mail:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring);
}

.contactMeta{
  margin-top: var(--space-18);
}

.contactMeta__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-14);
  align-items: stretch;
}

.contactMeta__item{
  position: relative;
  padding: var(--space-16) var(--space-16);
  border-radius: var(--radius-14);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--c-border) 82%, transparent);
  box-shadow: none;
  overflow: hidden;
  isolation: isolate;
}

.contactMeta__item::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--g-primary);
  opacity: 0.55;
  pointer-events: none;
}

.contactMeta__item::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(520px 280px at 18% 0%,
      color-mix(in srgb, var(--c-primary) 10%, transparent),
      transparent 62%
    ),
    radial-gradient(520px 280px at 88% 18%,
      color-mix(in srgb, var(--c-primary-2) 8%, transparent),
      transparent 66%
    );
  opacity: 0.18;
  pointer-events: none;
  transition: opacity var(--dur-240) var(--ease-out);
}

.contactMeta__item > *{
  position: relative;
  z-index: 1;
}

.contactMeta__item:hover{
  border-color: color-mix(in srgb, var(--c-primary) 26%, var(--c-border));
}

.contactMeta__item:hover::after{
  opacity: 0.30;
}

.contactMeta__title{
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--fs-h4);
  line-height: 1.12;
  letter-spacing: var(--tracking-tight);
  color: var(--c-text);
}

.contactMeta__text{
  margin: var(--space-10) 0 0;
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--c-muted);
}

@media (max-width: 1024px){
  .contactMeta__grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 781px){
  .contactMeta__item{
    border-radius: var(--radius-10);
    padding: var(--space-14) var(--space-14);
  }
}

.contactInfo{
  margin-top: var(--space-28);
  padding: var(--space-20) var(--space-20);
  border-radius: var(--radius-18);
  border: 1px solid color-mix(in srgb, var(--c-border) 86%, transparent);
  background: color-mix(in srgb, var(--c-surface) 96%, transparent);
  box-shadow: 0 14px 44px rgba(11, 14, 20, 0.08);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.contactInfo::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--g-primary);
  opacity: 0.75;
  pointer-events: none;
}

.contactInfo::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 520px at 18% 0%,
      color-mix(in srgb, var(--c-primary) 10%, transparent),
      transparent 60%
    );
  opacity: 0.16;
  pointer-events: none;
}

.contactInfo > *{
  position: relative;
  z-index: 1;
}

.contactInfo__title{
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--fs-h3);
  line-height: 1.12;
  letter-spacing: var(--tracking-tight);
  color: var(--c-text);
}

.contactInfo__list{
  margin: var(--space-14) 0 0;
  padding-left: 1.1em;
  color: var(--c-text-2);
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
}

.contactInfo__list li{
  margin: 0 0 var(--space-10);
}

.contactPanel--form .wpcf7{
  margin-top: var(--space-14);
}

.contactPanel--form .wpcf7 form{
  margin: 0;
}

.contactPanel--form .wpcf7 p{
  margin: 0 0 var(--space-14);
}

.contactPanel--form .wpcf7 label{
  display: grid;
  gap: var(--space-8);
  font-family: var(--font-primary);
  font-size: var(--fs-small);
  font-weight: var(--fw-600);
  color: var(--c-text-2);
}

.contactPanel--form .wpcf7 .wpcf7-form-control-wrap{
  display: block;
}

.contactPanel--form .wpcf7 input[type="text"],
.contactPanel--form .wpcf7 input[type="email"],
.contactPanel--form .wpcf7 input[type="tel"],
.contactPanel--form .wpcf7 input[type="url"],
.contactPanel--form .wpcf7 select,
.contactPanel--form .wpcf7 textarea{
  width: 100%;
  height: clamp(2.85rem, 2.65rem + 0.6vw, 3.25rem);
  padding: 0 var(--space-16);
  border-radius: var(--radius-14);
  border: 1px solid color-mix(in srgb, var(--c-border-2) 70%, transparent);
  background: color-mix(in srgb, var(--c-surface) 96%, transparent);
  box-shadow: 0 12px 34px rgba(11, 14, 20, 0.06);
  color: var(--c-text);
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: 1;
  outline: none;
  transition: transform var(--dur-180) var(--ease-out), border-color var(--dur-180) var(--ease-out), box-shadow var(--dur-180) var(--ease-out), background var(--dur-180) var(--ease-out);
  box-sizing: border-box;
}

.contactPanel--form .wpcf7 textarea{
  height: auto;
  min-height: 220px;
  padding: var(--space-14) var(--space-16);
  line-height: var(--lh-relaxed);
  resize: vertical;
}

.contactPanel--form .wpcf7 input[type="text"]:hover,
.contactPanel--form .wpcf7 input[type="email"]:hover,
.contactPanel--form .wpcf7 input[type="tel"]:hover,
.contactPanel--form .wpcf7 input[type="url"]:hover,
.contactPanel--form .wpcf7 select:hover,
.contactPanel--form .wpcf7 textarea:hover{
  border-color: color-mix(in srgb, var(--c-primary) 28%, var(--c-border));
  box-shadow: 0 16px 40px rgba(11, 14, 20, 0.08);
  transform: translateY(-1px);
}

.contactPanel--form .wpcf7 input[type="text"]:focus,
.contactPanel--form .wpcf7 input[type="email"]:focus,
.contactPanel--form .wpcf7 input[type="tel"]:focus,
.contactPanel--form .wpcf7 input[type="url"]:focus,
.contactPanel--form .wpcf7 select:focus,
.contactPanel--form .wpcf7 textarea:focus{
  border-color: color-mix(in srgb, var(--c-primary) 38%, var(--c-border));
  box-shadow: var(--focus-ring), 0 16px 44px rgba(11, 14, 20, 0.10);
  background: color-mix(in srgb, var(--c-surface) 98%, transparent);
  transform: translateY(-1px);
}

.contactPanel--form .wpcf7 input[type="submit"]{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 3.05rem;
  padding: 0 var(--space-18);
  border-radius: var(--radius-14);
  border: 1px solid rgba(11, 14, 20, 0.10);
  background: var(--g-primary);
  color: var(--c-primary-contrast);
  font-family: var(--font-primary);
  font-size: var(--fs-small);
  font-weight: var(--fw-700);
  letter-spacing: var(--tracking-wide);
  cursor: pointer;
  box-shadow: 0 14px 40px rgba(11, 14, 20, 0.12);
  transition: transform var(--dur-180) var(--ease-out), box-shadow var(--dur-180) var(--ease-out), filter var(--dur-180) var(--ease-out);
}

.contactPanel--form .wpcf7 input[type="submit"]:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 52px rgba(11, 14, 20, 0.14);
  filter: saturate(1.05) contrast(1.02);
}

.contactPanel--form .wpcf7 input[type="submit"]:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring), 0 18px 52px rgba(11, 14, 20, 0.14);
}

.contactPanel--form .wpcf7 .wpcf7-not-valid-tip{
  margin-top: var(--space-8);
  font-family: var(--font-primary);
  font-size: var(--fs-small);
  line-height: var(--lh-normal);
  color: var(--c-link-hover);
}

.contactPanel--form .wpcf7 .wpcf7-response-output{
  margin: var(--space-14) 0 0;
  padding: var(--space-14) var(--space-16);
  border-radius: var(--radius-14);
  border: 1px solid color-mix(in srgb, var(--c-border-2) 70%, transparent);
  background: color-mix(in srgb, var(--c-surface) 96%, transparent);
  color: var(--c-text-2);
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
}

@media (max-width: 781px){
  .contactHero__inner{
    padding: var(--space-48) 20px var(--space-24);
  }

  .contactPanel--form,
  .contactPanel--direct{
    padding: var(--space-18) var(--space-16);
    border-radius: var(--radius-14);
  }

  .contactRow{
    grid-template-columns: 1fr;
    align-items: start;
    padding: var(--space-14) 0;
  }

  .contactRow__mail{
    width: 100%;
    justify-content: center;
    border-radius: var(--radius-14);
  }

  .contactMeta__item{
    padding: var(--space-16) var(--space-16);
  }

  .contactInfo{
    padding: var(--space-18) var(--space-16);
    border-radius: var(--radius-14);
  }

  .contactPanel--form .wpcf7 input[type="text"],
  .contactPanel--form .wpcf7 input[type="email"],
  .contactPanel--form .wpcf7 input[type="tel"],
  .contactPanel--form .wpcf7 input[type="url"],
  .contactPanel--form .wpcf7 select{
    border-radius: var(--radius-10);
  }

  .contactPanel--form .wpcf7 textarea{
    border-radius: var(--radius-10);
    min-height: 200px;
  }

  .contactPanel--form .wpcf7 input[type="submit"]{
    border-radius: var(--radius-10);
  }
}


@media (hover: none) and (pointer: coarse){
  .contactPanel--form .wpcf7 input[type="text"]:hover,
  .contactPanel--form .wpcf7 input[type="email"]:hover,
  .contactPanel--form .wpcf7 input[type="tel"]:hover,
  .contactPanel--form .wpcf7 input[type="url"]:hover,
  .contactPanel--form .wpcf7 select:hover,
  .contactPanel--form .wpcf7 textarea:hover{
    transform: none;
    box-shadow: 0 12px 34px rgba(11, 14, 20, 0.06);
  }

  .contactPanel--form .wpcf7 input[type="submit"]:hover{
    transform: none;
    box-shadow: 0 14px 40px rgba(11, 14, 20, 0.12);
  }
}
