/* ===========================================================
   Footer - built with Elementor widgets, styled here.
   Tree: kfoot > kfcta | kfmain (kfmleft / kfmright) | kfbottom | kfcopy
   The canvas reuses the hero's red gradient, anchored at the top so the
   glow sits behind the CTA rather than behind the small print.
   =========================================================== */

.elementor-element-kfoot {
  position: relative;
  overflow: hidden;
  background-color: #131017 !important;
}

.elementor-element-kfoot::before {
  /* Elementor owns .e-con::before for its background overlay, so force ours on */
  content: "" !important;
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(150% 62% at 50% 3%, rgba(224, 49, 43, .72) 0%, rgba(224, 49, 43, .46) 24%, rgba(224, 49, 43, .18) 46%, rgba(224, 49, 43, 0) 64%),
    linear-gradient(to bottom, rgba(224, 49, 43, .5) 0%, rgba(224, 49, 43, .26) 9%, rgba(224, 49, 43, 0) 28%),
    radial-gradient(120% 95% at 92% 98%, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0) 55%);
}

.elementor-element-kfoot > .e-con { position: relative; z-index: 1 !important; }

/* ---------- hairlines, boxed to the content width ---------- */
.elementor-element-kfmain,
.elementor-element-kfcopy { position: relative; }
.elementor-element-kfmain::after,
.elementor-element-kfcopy::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(1320px, calc(100% - 48px));
  height: 1px;
  pointer-events: none;
}
.elementor-element-kfmain::after { background: rgba(247, 244, 240, .17); }
.elementor-element-kfcopy::after { background: rgba(247, 244, 240, .09); }

/* ---------- CTA button ---------- */
.elementor-element-kfctabtn .elementor-button {
  transition: transform .4s cubic-bezier(.16, 1, .3, 1), box-shadow .4s ease;
}
.elementor-element-kfctabtn .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px -16px rgba(0, 0, 0, .7);
}

/* ---------- email capture: pill field with a round send button ---------- */
.elementor-element-kfform .elementor-form-fields-wrapper {
  position: relative;
  max-width: 430px;
}
.elementor-element-kfform .elementor-field-group { padding: 0 !important; margin: 0 !important; }
.elementor-element-kfform input[type="email"] {
  width: 100%;
  background: rgba(247, 244, 240, .04);
  color: #F2EDE7;
  border: 1px solid rgba(247, 244, 240, .32);
  border-radius: 100px;
  padding: 17px 68px 17px 24px;
  font-family: Inter, sans-serif;
  font-size: 15px;
  transition: border-color .3s ease, background .3s ease;
}
.elementor-element-kfform input[type="email"]::placeholder { color: #8E867E; }
.elementor-element-kfform input[type="email"]:focus {
  outline: none;
  border-color: #E0312B;
  background: rgba(224, 49, 43, .07);
}
.elementor-element-kfform .elementor-field-type-submit {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: auto !important;
  padding: 0 !important;
}
.elementor-element-kfform button[type="submit"] {
  width: 44px;
  height: 44px;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #E0312B;
  color: #FFFFFF;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .4s cubic-bezier(.16, 1, .3, 1), box-shadow .4s ease;
}
.elementor-element-kfform button[type="submit"]:hover {
  transform: scale(1.06);
  box-shadow: 0 12px 26px -10px rgba(224, 49, 43, .85);
}
.elementor-element-kfform .elementor-message { color: #C6BEB6; font-family: Inter, sans-serif; font-size: 14px; }

/* ---------- link row ---------- */
.elementor-element-kfnav .elementor-icon-list-items {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
}
.elementor-element-kfnav .elementor-icon-list-item { margin: 0 !important; }
.elementor-element-kfnav .elementor-icon-list-icon { display: none !important; }
.elementor-element-kfnav .elementor-icon-list-text {
  color: #C6BEB6;
  font-family: Inter, sans-serif;
  font-size: 15px;
  padding: 0 !important;
  transition: color .3s ease;
}
.elementor-element-kfnav a:hover .elementor-icon-list-text { color: #E0312B; }

/* ---------- social ---------- */
.elementor-element-kfsocial .elementor-grid { gap: 10px; }
.elementor-element-kfsocial .elementor-social-icon {
  width: 38px;
  height: 38px;
  font-size: 15px;
  transition: transform .35s cubic-bezier(.16, 1, .3, 1), box-shadow .35s ease;
}
.elementor-element-kfsocial .elementor-social-icon:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px -10px rgba(224, 49, 43, .8);
}

/* ---------- copyright ---------- */
.elementor-element-kfcopyt strong { color: #E0312B; font-weight: 400; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  .elementor-element-kfmright { padding-top: 0 !important; }
}
@media (max-width: 767px) {
  .elementor-element-kfform .elementor-form-fields-wrapper { max-width: none; }
  .elementor-element-kfsocial .elementor-grid { justify-content: flex-start; }
  .elementor-element-kfmain::after,
  .elementor-element-kfcopy::after { width: calc(100% - 36px); }
}

/* ---------- corrections ---------- */

/* softer dome instead of a hard red band across the top */
.elementor-element-kfoot::before {
  background:
    radial-gradient(120% 58% at 50% -10%, rgba(224, 49, 43, .62) 0%, rgba(224, 49, 43, .34) 28%, rgba(224, 49, 43, .12) 50%, rgba(224, 49, 43, 0) 70%),
    radial-gradient(120% 95% at 92% 98%, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0) 55%) !important;
}

/* Elementor Pro ships its own form field styles - override them */
.elementor-element-kfform .elementor-field-label { display: none !important; }
.elementor-element-kfform .elementor-field-textual {
  background-color: rgba(247, 244, 240, .05) !important;
  color: #F2EDE7 !important;
  border: 1px solid rgba(247, 244, 240, .32) !important;
  border-radius: 100px !important;
  padding: 17px 68px 17px 24px !important;
  height: auto !important;
  font-family: Inter, sans-serif !important;
  font-size: 15px !important;
  box-shadow: none !important;
}
.elementor-element-kfform .elementor-field-textual::placeholder { color: #8E867E !important; opacity: 1; }
.elementor-element-kfform .elementor-field-textual:focus {
  border-color: #E0312B !important;
  background-color: rgba(224, 49, 43, .08) !important;
}

/* link row colour loses to Elementor's own rule without this */
.elementor-element-kfnav .elementor-icon-list-item > a,
.elementor-element-kfnav .elementor-icon-list-text { color: #C6BEB6 !important; }
.elementor-element-kfnav .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: #E0312B !important; }

/* wordmark stays on one line next to the contact block */
.elementor-element-kfbrand { flex-shrink: 0; }
.elementor-element-kfbrand .elementor-heading-title { white-space: nowrap; }
@media (max-width: 620px) {
  .elementor-element-kfbrand .elementor-heading-title { white-space: normal; }
}

/* bottom bar: the wordmark keeps its own width, the contact block takes the rest */
.elementor-element-kfbrand { flex: 0 0 auto !important; width: auto !important; max-width: none !important; }
.elementor-element-kfbright { flex: 1 1 auto; justify-content: flex-end; }
@media (max-width: 880px) {
  .elementor-element-kfbright { justify-content: flex-start; flex-wrap: wrap; }
}
