/* K13 Contact Footer: intro + form card, contact links and legal row in one green panel. */
.k13-cf {
  --cf-green: var(--k13-brand-green, #20493C);
  --cf-cream: var(--k13-brand-cream, #FEFAF2);
  --cf-light: var(--k13-brand-warm-white, #FFFCF2);
  --cf-card: #F0E4D3;
  --cf-line: rgba(255, 252, 242, .22);
  padding: 0 1.4em 1.4em;
  color: var(--cf-light);
}
.k13-cf__panel {
  background-color: var(--cf-green);
  border-radius: 1.8em;
  padding: 3.75em 3.75em 1.9em 5.15em;
}

/* Intro + form */
.k13-cf__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 40em);
  gap: 3em;
  align-items: start;
}
.k13-cf__intro {
  padding-top: .85em;
}
.k13-cf p.k13-cf__eyebrow {
  margin: 0 0 1.6em;
  font-size: .9em;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: none;
  color: var(--cf-light);
}
.k13-body .k13-cf .k13-cf__title,
.k13-cf .k13-cf__title {
  margin: 0;
  max-width: 9em;
  font-size: 5.6em;
  font-weight: 700 !important;
  letter-spacing: -.045em !important;
  line-height: 1.04 !important;
  /* Sentence case ("Have a website…"): the global h2 style lowercases headings. */
  text-transform: none;
  color: var(--cf-light);
}
.k13-cf p.k13-cf__trust {
  margin: .9em 0 0;
  font-size: 1.2em;
  letter-spacing: .02em;
  line-height: 1.4;
  color: rgba(255, 252, 242, .68);
}
/* K13 mark (no .ca or slogan) under the trust line (Markup #143). */
.k13-cf .k13-cf__logo {
  display: block;
  width: 7.5em;
  height: auto;
  margin: 2.25em 0 0;
}
/* Line under the trust line (Markup #148). */
.k13-cf p.k13-cf__text {
  margin: .9em 0 0;
  max-width: 27em;
  font-size: 1.2em;
  letter-spacing: .01em;
  line-height: 1.5;
  color: var(--cf-light);
}

/* Form card */
.k13-cf__card {
  background-color: var(--cf-card);
  border-radius: .9em;
  padding: 1.75em 1.7em 1.2em;
  color: var(--cf-green);
}
/* "Contact Us" on top of the form (Markup #149). */
.k13-cf .k13-cf__card p.k13-cf__eyebrow {
  margin: 0 0 1.1em;
  font-size: 1em;
  font-weight: 700;
  color: var(--cf-green);
}
.k13-cf__card .wpcf7 form,
.k13-cf__form {
  margin: 0;
}
.k13-cf__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 1.1em 1.15em;
}
.k13-cf__field {
  position: relative;
}
.k13-cf__field.is--wide {
  grid-column: 1 / -1;
}
.k13-cf__field .wpcf7-form-control-wrap {
  display: block;
}
.k13-cf .k13-cf__field :is(input, textarea) {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 3.3em;
  margin: 0;
  padding: 0 1.05em;
  font-size: 1.05em;
  line-height: 1.3;
  font-family: inherit;
  color: var(--cf-green);
  background-color: var(--cf-cream);
  border: 1px solid var(--cf-green);
  border-radius: .6em;
  box-shadow: none;
  outline: none;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.k13-cf .k13-cf__field textarea {
  height: 9.4em;
  min-height: 6em;
  padding-top: .95em;
  padding-bottom: .95em;
  resize: vertical;
}
.k13-cf .k13-cf__field :is(input, textarea)::placeholder {
  color: rgba(32, 73, 60, .62);
  opacity: 1;
}
.k13-cf .k13-cf__field :is(input, textarea):focus {
  box-shadow: 0 0 0 3px rgba(32, 73, 60, .18);
}
.k13-cf .k13-cf__field .wpcf7-not-valid {
  border-color: #B2402F;
}
.k13-cf .wpcf7-not-valid-tip {
  margin-top: .3em;
  font-size: .8em;
  color: #B2402F;
}
.k13-cf .k13-cf__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45em;
  width: 100%;
  height: 3.5em;
  margin: 1.15em 0 0;
  padding: 0 1em;
  font-size: 1.1em;
  line-height: 1;
  font-family: inherit;
  color: var(--cf-light);
  background-color: var(--cf-green);
  border: 0;
  border-radius: .75em;
  cursor: pointer;
  transition: background-color .25s ease, transform .25s ease;
}
.k13-cf .k13-cf__submit:hover {
  background-color: #173A2F;
}
.k13-cf .k13-cf__submit:active {
  transform: translateY(1px);
}
.k13-cf .k13-cf__submit span {
  transition: transform .25s ease;
}
.k13-cf .k13-cf__submit:hover span {
  transform: translateX(.2em);
}
.k13-cf .wpcf7-spinner {
  display: none;
}
.k13-cf .wpcf7 form.submitting .k13-cf__submit {
  opacity: .7;
  pointer-events: none;
}
.k13-cf .wpcf7 form .wpcf7-response-output {
  margin: .9em 0 0;
  padding: .6em .9em;
  font-size: .9em;
  border-width: 1px;
  border-radius: .5em;
}
.k13-cf__notice {
  margin: 0;
}

/* Contact links */
.k13-cf__links {
  display: flex;
  align-items: center;
  margin: 2.85em 0 0;
  padding: 2.55em 0 0;
  list-style: none;
  border-top: 1px solid var(--cf-line);
}
.k13-cf__links-item {
  display: flex;
  justify-content: center;
  flex: 1 1 0;
  margin: 0;
  padding: .1em 1em;
}
.k13-cf__links-item + .k13-cf__links-item {
  border-left: 1px solid var(--cf-line);
  min-height: 3.15em;
  align-items: center;
}
.k13-cf__links-item:first-child {
  flex: 0 0 auto;
  justify-content: flex-start;
  padding-left: 0;
  padding-right: 3.3em;
}
.k13-cf__link {
  display: inline-flex;
  align-items: center;
  gap: 1.05em;
  font-size: 1.2em;
  line-height: 1.2;
  color: var(--cf-light);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .2s ease, background-color .25s ease, color .25s ease;
}
a.k13-cf__link:hover {
  opacity: .8;
}
.k13-cf__link.is--pill {
  gap: .85em;
  padding: .85em 2.45em;
  font-size: 1.1em;
  border: 1.5px solid var(--cf-light);
  border-radius: 50em;
}
a.k13-cf__link.is--pill:hover {
  opacity: 1;
  color: var(--cf-green);
  background-color: var(--cf-light);
}
.k13-cf__icon {
  flex: none;
  width: 1.55em;
  height: 1.55em;
}
.k13-cf__link.is--pill .k13-cf__icon {
  width: 1.45em;
  height: 1.45em;
}
.k13-cf__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Legal row */
.k13-cf__legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em 2em;
  margin-top: 3.5em;
  font-size: .95em;
}
.k13-cf__legal p {
  margin: 0;
  line-height: 1.3;
  color: var(--cf-light);
}
.k13-cf__legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5em 2.2em;
}
.k13-cf__legal-links a {
  color: var(--cf-light);
  text-decoration: none;
  line-height: 1.3;
  transition: opacity .2s ease;
}
.k13-cf__legal-links a:hover {
  opacity: .75;
}

/* Small laptops: the 40em form left the title too narrow and it ran under the form (seen at 1049px). */
@media screen and (min-width: 992px) and (max-width: 1199px) {
  .k13-cf__top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  }
  .k13-body .k13-cf .k13-cf__title,
  .k13-cf .k13-cf__title {
    font-size: 4.6em;
  }
  /* The contact row ran past the panel ("@k13.ca" cut off). */
  .k13-cf__links-item {
    padding-left: .75em;
    padding-right: .75em;
  }
  .k13-cf__links-item:first-child {
    padding-right: 1.5em;
  }
  .k13-cf__link {
    gap: .7em;
    font-size: 1.05em;
  }
  .k13-cf__link.is--pill {
    padding: .8em 1.6em;
    font-size: 1em;
  }
}

/* Tablet */
@media screen and (max-width: 991px) {
  .k13-cf__panel {
    padding: 3em 2.5em 1.75em;
  }
  .k13-cf__top {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5em;
  }
  .k13-cf__intro {
    padding-top: 0;
  }
  .k13-body .k13-cf .k13-cf__title,
  .k13-cf .k13-cf__title {
    max-width: 10em;
    font-size: 4em;
  }
  .k13-cf__links {
    flex-wrap: wrap;
    row-gap: 1.25em;
  }
  .k13-cf__links-item:first-child {
    flex: 1 1 100%;
    justify-content: center;
    padding-right: 0;
  }
  .k13-cf__links-item:nth-child(2) {
    border-left: 0;
  }
}

/* Mobile */
@media screen and (max-width: 767px) {
  .k13-cf {
    padding: 0 .75em .75em;
  }
  .k13-cf__panel {
    border-radius: 1.25em;
    padding: 2.25em 1.25em 1.5em;
  }
  .k13-body .k13-cf .k13-cf__title,
  .k13-cf .k13-cf__title {
    font-size: 2.75em;
  }
  .k13-cf p.k13-cf__text {
    font-size: 1.05em;
  }
  .k13-cf .k13-cf__logo {
    width: 6em;
    margin-top: 1.5em;
  }
  .k13-cf__card {
    padding: 1.25em 1em 1em;
  }
  .k13-cf__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .k13-cf__links {
    flex-direction: column;
    align-items: stretch;
    row-gap: 1em;
    margin-top: 2em;
    padding-top: 2em;
  }
  .k13-cf__links-item,
  .k13-cf__links-item:first-child {
    flex: none;
    justify-content: flex-start;
    padding: 0;
  }
  .k13-cf__links-item + .k13-cf__links-item {
    border-left: 0;
    min-height: 0;
  }
  .k13-cf__link.is--pill {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
    padding-left: 1em;
    padding-right: 1em;
    white-space: normal;
  }
  .k13-cf__legal {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 2.25em;
  }
}

/* Phone: the copyright stays on one line (Markup #124). */
@media screen and (max-width: 767px) {
  .k13-cf__legal p {
    white-space: nowrap;
    font-size: clamp(0.72rem, 3.4vw, 0.95rem);
  }
}
