.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) !important;
  font-size:.92rem !important;
  color:var(--kff-charcoal) !important;
  background:transparent !important;
  background-color:transparent !important;
  border:none !important;
  border-bottom:1px solid rgba(58,58,58,.18) !important;
  border-radius:0 !important;
  padding:.6rem 0 !important;
  outline:none !important;
  outline-offset:0 !important;
  transition:border-color .3s ease !important;
  width:100% !important;
  box-shadow:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.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") !important;
  background-repeat:no-repeat !important;
  background-position:right 2px center !important;
  padding-right:20px !important;
}
.kff-contact__input:focus,
.kff-contact__input:focus-visible,
.kff-contact__input:active,
.kff-contact__select:focus,
.kff-contact__select:focus-visible,
.kff-contact__select:active,
.kff-contact__textarea:focus,
.kff-contact__textarea:focus-visible,
.kff-contact__textarea:active{
  border:none !important;
  border-bottom:1px solid var(--kff-gold) !important;
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  outline-offset:0 !important;
  color:var(--kff-charcoal) !important;
}
.kff-contact__input::placeholder,
.kff-contact__textarea::placeholder{color:#c9c9c9;opacity:1;}
.kff-contact__input:-webkit-autofill,
.kff-contact__input:-webkit-autofill:hover,
.kff-contact__input:-webkit-autofill:focus,
.kff-contact__input:-webkit-autofill:active,
.kff-contact__textarea:-webkit-autofill,
.kff-contact__textarea:-webkit-autofill:hover,
.kff-contact__textarea:-webkit-autofill:focus,
.kff-contact__textarea:-webkit-autofill:active{
  -webkit-text-fill-color:var(--kff-charcoal) !important;
  caret-color:var(--kff-charcoal);
  transition:background-color 9999s ease-out 0s;
  box-shadow:0 0 0 1000px transparent inset !important;
  outline:none !important;
  border:none !important;
  border-bottom:1px solid var(--kff-gold) !important;
}
.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 !important;
  -webkit-appearance:none !important;
  width:17px !important;
  height:17px !important;
  min-width:17px !important;
  min-height:17px !important;
  flex:0 0 17px !important;
  margin:.2rem 0 0 !important;
  border:1px solid rgba(58,58,58,.32) !important;
  border-radius:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  cursor:pointer !important;
  position:relative !important;
  transition:border-color .3s ease, background .3s ease, background-color .3s ease !important;
  padding:0 !important;
  outline:none !important;
  box-shadow:none !important;
}
.kff-contact__checkbox:hover{
  border-color:var(--kff-gold) !important;
  background:transparent !important;
  background-color:transparent !important;
}
.kff-contact__checkbox:focus,
.kff-contact__checkbox:focus-visible,
.kff-contact__checkbox:active{
  outline:none !important;
  box-shadow:none !important;
}
.kff-contact__checkbox:focus:not(:checked),
.kff-contact__checkbox:focus-visible:not(:checked){
  border-color:var(--kff-gold) !important;
}
.kff-contact__checkbox:checked,
.kff-contact__checkbox:checked:hover,
.kff-contact__checkbox:checked:focus,
.kff-contact__checkbox:checked:focus-visible{
  background:var(--kff-teal) !important;
  background-color:var(--kff-teal) !important;
  background-image:none !important;
  border-color:var(--kff-teal) !important;
  outline:none !important;
  box-shadow:none !important;
}
.kff-contact__checkbox:checked::after{
  content:'' !important;
  display:block !important;
  position:absolute !important;
  left:5px !important;
  top:1px !important;
  width:4px !important;
  height:9px !important;
  border:solid #fff !important;
  border-width:0 1.6px 1.6px 0 !important;
  transform:rotate(40deg) !important;
  background:none !important;
  box-shadow:none !important;
}
.kff-contact__checkbox::before{
  display:none !important;
  content:none !important;
}
.kff-contact__consent label{
  font-size:.8rem;
  color:#6a6a6a;
  line-height:1.7;
  cursor:pointer;
  font-family:var(--kff-sans);
}
.kff-contact__consent label a,
.kff-contact__consent a{
  color:var(--kff-teal) !important;
  border:none !important;
  border-bottom:1px solid rgba(16,96,90,.35) !important;
  text-decoration:none !important;
  text-decoration-line:none !important;
  text-underline-offset:0 !important;
  box-shadow:none !important;
  background:none !important;
  transition:color .3s ease, border-color .3s ease !important;
}
.kff-contact__consent label a:hover,
.kff-contact__consent label a:focus,
.kff-contact__consent label a:focus-visible,
.kff-contact__consent label a:active,
.kff-contact__consent label a:visited,
.kff-contact__consent a:hover,
.kff-contact__consent a:focus,
.kff-contact__consent a:focus-visible,
.kff-contact__consent a:active,
.kff-contact__consent a:visited{
  color:var(--kff-gold) !important;
  border:none !important;
  border-bottom:1px solid var(--kff-gold) !important;
  text-decoration:none !important;
  text-decoration-line:none !important;
  outline:none !important;
  box-shadow:none !important;
  background:none !important;
}
.kff-contact__consent label a::before,
.kff-contact__consent label a::after,
.kff-contact__consent a::before,
.kff-contact__consent a::after{
  display:none !important;
  content:none !important;
}
.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) !important;
  color:var(--kff-charcoal) !important;
  padding:.9rem 1.9rem !important;
  font-family:var(--kff-sans) !important;
  font-size:.8rem !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  font-weight:500 !important;
  border-radius:0 !important;
  border:none !important;
  cursor:pointer;
  transition:background .32s ease, transform .32s ease, box-shadow .32s ease;
  box-shadow:0 6px 18px rgba(58,58,58,.08) !important;
  line-height:1.2;
  outline:none !important;
}
.kff-contact__btn:hover,
.kff-contact__btn:focus,
.kff-contact__btn:focus-visible,
.kff-contact__btn:active{
  background:var(--kff-gold) !important;
  color:var(--kff-charcoal) !important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(58,58,58,.16) !important;
  outline:none !important;
}
.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;
  }
}
