.kff-contact{
  --kff-teal:#10605A;
  --kff-teal-dark:#0A4842;
  --kff-sage:#9FB7A7;
  --kff-sage-wash:#EDF2ED;
  --kff-charcoal:#3A3A3A;
  --kff-gold:#C2A36B;
  --kff-serif:'Playfair Display', Georgia, serif;
  --kff-sans:'Alegreya Sans', 'Helvetica Neue', Arial, sans-serif;
  font-family:var(--kff-sans);
  color:var(--kff-charcoal);
  line-height:1.6;
  box-sizing:border-box;
}
.kff-contact *,
.kff-contact *::before,
.kff-contact *::after{box-sizing:border-box;}
.kff-contact__grid{
  display:grid;
  grid-template-columns:0.85fr 1.3fr;
  gap:6vw;
  align-items:start;
}
.kff-contact__grid--form-only{grid-template-columns:1fr;}
.kff-contact__aside{padding-top:.4rem;}
.kff-contact__aside-heading{
  font-family:var(--kff-serif);
  font-weight:400;
  color:var(--kff-teal-dark);
  font-size:clamp(1.4rem,2vw,1.75rem);
  margin:0 0 1.4rem;
  line-height:1.25;
}
.kff-contact__aside-text{
  font-size:.92rem;
  color:#4a4a4a;
  max-width:400px;
  margin:0 0 1.2rem;
  text-align:justify;
}
.kff-contact__aside-divider{
  width:44px;
  height:1px;
  background:var(--kff-gold);
  margin:2rem 0 2.2rem;
}
.kff-contact__form{margin:0;}
.kff-contact__honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.kff-contact__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  margin-bottom:2rem;
}
.kff-contact__row--full{grid-template-columns:1fr;}
.kff-contact__field{display:flex;flex-direction:column;gap:.6rem;min-width:0;}
.kff-contact__label{
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#9a9a9a;
  font-weight:500;
  font-family:var(--kff-sans);
}
.kff-contact__optional{
  color:#c9c9c9;
  letter-spacing:0;
  text-transform:none;
}
.kff-contact__input,
.kff-contact__select,
.kff-contact__textarea{
  font-family:var(--kff-sans);
  font-size:.92rem;
  color:var(--kff-charcoal);
  background:transparent;
  border:none;
  border-bottom:1px solid rgba(58,58,58,.18);
  border-radius:0;
  padding:.6rem 0;
  outline:none;
  transition:border-color .3s ease;
  width:100%;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
}
.kff-contact__select{
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%239a9a9a' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 2px center;
  padding-right:20px;
}
.kff-contact__input:focus,
.kff-contact__select:focus,
.kff-contact__textarea:focus{
  border-bottom-color:var(--kff-gold);
  background:transparent;
  box-shadow:none;
  color:var(--kff-charcoal);
}
.kff-contact__input::placeholder,
.kff-contact__textarea::placeholder{color:#c9c9c9;opacity:1;}
.kff-contact__textarea{resize:none;line-height:1.7;padding-top:.6rem;min-height:8rem;}
.kff-contact__field.has-error .kff-contact__input,
.kff-contact__field.has-error .kff-contact__select,
.kff-contact__field.has-error .kff-contact__textarea,
.kff-contact__consent.has-error .kff-contact__checkbox{
  border-color:#b54a4a;
}
.kff-contact__error{
  margin:0;
  font-size:.72rem;
  color:#b54a4a;
  line-height:1.4;
}
.kff-contact__upload{
  border:1px dashed rgba(194,163,107,.5);
  padding:2rem;
  text-align:center;
  cursor:pointer;
  transition:border-color .3s ease, background .3s ease;
  position:relative;
}
.kff-contact__upload:hover,
.kff-contact__upload.is-dragover{
  border-color:var(--kff-gold);
  background:var(--kff-sage-wash);
}
.kff-contact__file{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  width:100%;
  height:100%;
  font-size:0;
}
.kff-contact__upload-text{
  font-size:.85rem;
  color:#9a9a9a;
  pointer-events:none;
}
.kff-contact__upload-text strong{color:var(--kff-gold);font-weight:500;}
.kff-contact__upload-hint{
  font-size:.72rem;
  color:#c4c4c4;
  margin-top:.3rem;
  letter-spacing:.02em;
  pointer-events:none;
}
.kff-contact__upload-name{
  font-size:.78rem;
  color:var(--kff-teal);
  margin-top:.5rem;
  min-height:1rem;
  pointer-events:none;
}
.kff-contact__consent{
  margin-top:2.6rem;
  padding-top:2.2rem;
  border-top:1px solid rgba(58,58,58,.1);
  display:flex;
  align-items:flex-start;
  gap:.85rem;
}
.kff-contact__checkbox{
  appearance:none;
  -webkit-appearance:none;
  width:17px;
  height:17px;
  flex:0 0 17px;
  margin:.2rem 0 0;
  border:1px solid rgba(58,58,58,.32);
  border-radius:0;
  background:transparent;
  cursor:pointer;
  position:relative;
  transition:border-color .3s ease, background .3s ease;
  padding:0;
}
.kff-contact__checkbox:hover{border-color:var(--kff-gold);}
.kff-contact__checkbox:checked{background:var(--kff-teal);border-color:var(--kff-teal);}
.kff-contact__checkbox:checked::after{
  content:'';
  position:absolute;
  left:5px;
  top:1px;
  width:4px;
  height:9px;
  border:solid #fff;
  border-width:0 1.6px 1.6px 0;
  transform:rotate(40deg);
}
.kff-contact__consent label{
  font-size:.8rem;
  color:#6a6a6a;
  line-height:1.7;
  cursor:pointer;
  font-family:var(--kff-sans);
}
.kff-contact__consent a,
.kff-contact__consent span{
  color:var(--kff-teal);
  border-bottom:1px solid rgba(16,96,90,.35);
  text-decoration:none;
  transition:color .3s ease, border-color .3s ease;
}
.kff-contact__consent a:hover{
  color:var(--kff-gold);
  border-color:var(--kff-gold);
}
.kff-contact__submit-row{
  margin-top:2rem;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.kff-contact__btn{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  background:var(--kff-sage);
  color:var(--kff-charcoal);
  padding:.9rem 1.9rem;
  font-family:var(--kff-sans);
  font-size:.8rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:500;
  border-radius:0;
  border:none;
  cursor:pointer;
  transition:background .32s ease, transform .32s ease, box-shadow .32s ease;
  box-shadow:0 6px 18px rgba(58,58,58,.08);
  line-height:1.2;
}
.kff-contact__btn:hover{
  background:var(--kff-gold);
  color:var(--kff-charcoal);
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(58,58,58,.16);
}
.kff-contact__btn svg{transition:transform .32s ease;flex-shrink:0;}
.kff-contact__btn:hover svg{transform:translateX(4px);}
.kff-contact__btn.is-loading,
.kff-contact__btn:disabled{
  opacity:.7;
  pointer-events:none;
  transform:none;
}
.kff-contact__success{display:none;padding:2.6rem 0 0;}
.kff-contact__success.is-visible{display:block;animation:kffContactFadeUp .7s ease forwards;}
.kff-contact__success-heading{
  font-family:var(--kff-serif);
  font-weight:400;
  color:var(--kff-teal-dark);
  font-size:1.5rem;
  margin:0 0 .7rem;
  line-height:1.3;
}
.kff-contact__success-text{
  font-size:.92rem;
  color:#5a5a5a;
  max-width:420px;
  text-align:justify;
  margin:0;
}
.kff-contact__alert{
  margin-top:1.2rem;
  font-size:.85rem;
  color:#b54a4a;
}
.kff-contact__alert[hidden]{display:none;}
@keyframes kffContactFadeUp{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}
@media(max-width:900px){
  .kff-contact__grid{grid-template-columns:1fr;gap:3rem;}
  .kff-contact__row{grid-template-columns:1fr;gap:1.6rem;}
}
@media (prefers-reduced-motion: reduce){
  .kff-contact *,
  .kff-contact *::before,
  .kff-contact *::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
  }
}
