/* ---------- Fonts ----------
   Self-hosted. The site previously pulled these from fonts.googleapis.com, which
   is a third-party request that hands the visitor's IP to Google on every page
   load, the main thing a cookie banner was there to cover. Serving them from
   our own origin removes that request, removes the extra DNS + TLS handshake,
   and keeps the fonts working if Google is blocked. Latin subset only. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;           /* variable font, one file covers 400/500/600 */
  font-display: swap;
  src: url('../fonts/inter-variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/poppins-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/poppins-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/poppins-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/poppins-800.woff2') format('woff2');
}

/* CD Scaffolding Hereford, hand-written stylesheet. No framework, no Elementor. */

/* ---------- Tokens ---------- */
:root {
  --orange: #f05a28;
  --orange-dark: #d4440f;
  --orange-soft: #fff1eb;
  --ink: #1d1d1b;
  --charcoal: #23262b;
  --charcoal-2: #2e3239;
  --slate: #5b6270;
  --body: #4a4f5a;
  --line: #e4e6ea;
  --bg: #ffffff;
  --bg-alt: #f6f7f9;
  --white: #ffffff;

  --font-head: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;

  --wrap: 1160px;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow: 0 2px 6px rgba(29, 29, 27, .06), 0 12px 28px rgba(29, 29, 27, .07);
  --shadow-lg: 0 6px 14px rgba(29, 29, 27, .08), 0 24px 48px rgba(29, 29, 27, .12);
  --header-h: 76px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--body);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--orange); text-decoration: none; }
a:hover { color: var(--orange-dark); }
h1, h2, h3, h4 {
  font-family: var(--font-head);
  color: var(--ink);
  line-height: 1.18;
  margin: 0 0 .5em;
  font-weight: 700;
  letter-spacing: -.015em;
}
h1 { font-size: clamp(2.1rem, 5.2vw, 3.5rem); font-weight: 800; }
h2 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); }
h3 { font-size: 1.2rem; }
p { margin: 0 0 1.1em; }
ul { margin: 0 0 1.1em; padding-left: 1.2em; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; border-radius: 3px; }

/* ---------- Layout ---------- */
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: 20px; }
.section { padding-block: clamp(56px, 8vw, 96px); }
.section--alt { background: var(--bg-alt); }
.section--dark { background: var(--charcoal); color: #c8ccd4; }
.section--dark h2, .section--dark h3 { color: var(--white); }

.skip-link {
  position: absolute; left: 8px; top: -60px; z-index: 200;
  background: var(--ink); color: var(--white);
  padding: 10px 18px; border-radius: 0 0 var(--radius) var(--radius);
  transition: top .15s ease;
}
.skip-link:focus { top: 0; color: var(--white); }

/* ---------- Eyebrow / headings ---------- */
.eyebrow {
  display: inline-block;
  font-family: var(--font-head);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: .7rem;
}
.section-head { max-width: 720px; margin-bottom: clamp(32px, 4vw, 52px); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head p { font-size: 1.05rem; margin-bottom: 0; }
.lead { font-size: 1.14rem; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .55em;
  font-family: var(--font-head); font-weight: 600; font-size: .98rem;
  padding: 14px 26px; border-radius: var(--radius); border: 2px solid transparent;
  cursor: pointer; transition: transform .12s ease, background .15s ease, color .15s ease, border-color .15s ease;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn svg { display: inline-block; flex: none; }
.btn--primary { background: var(--orange); color: var(--white); }
.btn--primary:hover { background: var(--orange-dark); color: var(--white); }
.btn--ghost { border-color: rgba(255,255,255,.5); color: var(--white); }
.btn--ghost:hover { background: var(--white); color: var(--ink); border-color: var(--white); }
.btn--outline { border-color: var(--ink); color: var(--ink); }
.btn--outline:hover { background: var(--ink); color: var(--white); }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- Top bar ---------- */
.topbar {
  background: var(--ink); color: #b9bec7;
  font-size: .86rem; letter-spacing: .01em;
}
.topbar .wrap { display: flex; flex-wrap: wrap; gap: 8px 26px; align-items: center; justify-content: space-between; min-height: 42px; }
.topbar a { color: #e7e9ed; }
.topbar a:hover { color: var(--orange); }
.topbar__contact { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.topbar__item { display: inline-flex; align-items: center; gap: .5em; }
.topbar__item svg { flex: none; }

/* ---------- Header ---------- */
.header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.97);
  backdrop-filter: saturate(160%) blur(8px);
  border-bottom: 1px solid var(--line);
}
.header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: var(--header-h); }
.logo { display: block; flex: none; }
.logo img, .logo svg { height: 46px; width: auto; }

.nav-toggle {
  display: none; flex: none;
  width: 46px; height: 46px; padding: 0;
  background: var(--bg-alt); border: 1px solid var(--line); border-radius: var(--radius);
  cursor: pointer; align-items: center; justify-content: center;
}
.nav-toggle span { display: block; width: 20px; height: 2px; background: var(--ink); position: relative; }
.nav-toggle span::before, .nav-toggle span::after {
  content: ""; position: absolute; left: 0; width: 20px; height: 2px; background: var(--ink);
  transition: transform .2s ease, top .2s ease;
}
.nav-toggle span::before { top: -6px; }
.nav-toggle span::after { top: 6px; }
.nav-toggle[aria-expanded="true"] span { background: transparent; }
.nav-toggle[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg); }

.nav { display: flex; align-items: center; gap: 6px; }
.nav ul { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nav a {
  display: block; padding: 10px 14px; border-radius: var(--radius);
  font-family: var(--font-head); font-weight: 500; font-size: .97rem; color: var(--ink);
}
.nav a:hover { background: var(--bg-alt); color: var(--ink); }
.nav a[aria-current="page"] { color: var(--orange); }
.nav__cta { display: flex; align-items: center; gap: 8px; margin-left: 10px; }
.nav__cta .btn { margin: 0; }
.nav__cta .btn--primary:hover { background: var(--orange-dark); color: var(--white); }
/* The quote button is only needed where the header CTA collapses into the menu. */
.nav__cta-quote { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; color: var(--white); isolation: isolate; }
.hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(105deg, rgba(29,29,27,.93) 0%, rgba(29,29,27,.82) 45%, rgba(29,29,27,.45) 100%);
}
.hero .wrap { padding-block: clamp(72px, 11vw, 140px); }
.hero__inner { max-width: 660px; }
.hero h1 { color: var(--white); }
.hero p { font-size: 1.16rem; color: #dfe2e7; max-width: 56ch; }
.hero .eyebrow { color: #ffb494; }
.hero__points { display: flex; flex-wrap: wrap; gap: 10px 26px; list-style: none; padding: 0; margin: 26px 0 0; font-size: .95rem; color: #dfe2e7; }
.hero__points li { display: flex; align-items: center; gap: .5em; }
.hero__points svg { color: var(--orange); flex: none; }

/* Page banner (interior pages) */
.banner { position: relative; color: var(--white); isolation: isolate; }
.banner__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.banner__media img { width: 100%; height: 100%; object-fit: cover; }
.banner::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, rgba(29,29,27,.92), rgba(29,29,27,.7));
}
.banner .wrap { padding-block: clamp(48px, 7vw, 84px); }
.banner h1 { color: var(--white); margin-bottom: .3em; }
.banner p { color: #dfe2e7; max-width: 60ch; margin-bottom: 0; }
.crumbs { font-size: .87rem; color: #b9bec7; margin-bottom: 12px; }
.crumbs a { color: #dfe2e7; }
.crumbs a:hover { color: var(--orange); }

/* ---------- Trust strip ---------- */
.trust { background: var(--orange); color: var(--white); }
.trust .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding-block: 28px; text-align: center; }
.trust__num { font-family: var(--font-head); font-size: 2rem; font-weight: 800; line-height: 1.1; }
.trust__label { font-size: .88rem; opacity: .92; }

/* ---------- Cards ---------- */
.grid { display: grid; gap: 26px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }

.card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: transparent; }
.card__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--bg-alt); }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__body { padding: 26px 24px 28px; flex: 1; display: flex; flex-direction: column; }
.card__body p { font-size: .98rem; }
.card__link { margin-top: auto; font-family: var(--font-head); font-weight: 600; font-size: .95rem; display: inline-flex; align-items: center; gap: .4em; }

.feature { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px 26px; }
.feature__icon {
  width: 52px; height: 52px; border-radius: 14px;
  background: var(--orange-soft); color: var(--orange);
  display: grid; place-items: center; margin-bottom: 18px;
}
.section--alt .feature { background: var(--white); }
.feature p:last-child { margin-bottom: 0; }
.feature p { font-size: .98rem; }

/* ---------- Split (image + text) ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.split__media img { border-radius: var(--radius-lg); box-shadow: var(--shadow); width: 100%; }
.split__body p:last-child { margin-bottom: 0; }
.ticks { list-style: none; padding: 0; margin: 0 0 1.4em; display: grid; gap: 10px; }
.ticks li { display: flex; gap: .7em; align-items: flex-start; font-size: 1rem; }
.ticks svg { color: var(--orange); flex: none; margin-top: 5px; }

/* ---------- Process ---------- */
.steps { counter-reset: step; display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.step { position: relative; padding-top: 8px; }
.step__num {
  counter-increment: step;
  font-family: var(--font-head); font-weight: 800; font-size: 1rem;
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--orange); color: var(--white);
  display: grid; place-items: center; margin-bottom: 16px;
}
.step__num::before { content: "0" counter(step); }
.step h3 { font-size: 1.08rem; }
.step p { font-size: .96rem; margin-bottom: 0; }

/* ---------- Testimonials ---------- */
.quote {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 30px 28px; display: flex; flex-direction: column;
}
.quote__stars { color: #f7a233; letter-spacing: .12em; margin-bottom: 14px; font-size: 1.05rem; }
.quote blockquote { margin: 0 0 20px; font-size: 1.06rem; color: var(--ink); line-height: 1.6; }
.quote figcaption { margin-top: auto; font-family: var(--font-head); font-weight: 600; color: var(--ink); font-size: .97rem; }
.quote figcaption span { display: block; font-weight: 400; font-size: .87rem; color: var(--slate); }

/* ---------- Areas ---------- */
.areas { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; }
.areas li {
  background: var(--white); border: 1px solid var(--line); border-radius: 100px;
  padding: 8px 18px; font-size: .94rem; font-family: var(--font-head); color: var(--ink);
}
.section--dark .areas li { background: var(--charcoal-2); border-color: #3a3f48; color: #e7e9ed; }

/* ---------- FAQ ---------- */
.faq { display: grid; gap: 12px; max-width: 820px; margin-inline: auto; }
.faq details {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 4px 22px;
}
.faq details[open] { border-color: var(--orange); }
.faq summary {
  list-style: none; cursor: pointer; padding: 16px 34px 16px 0; position: relative;
  font-family: var(--font-head); font-weight: 600; color: var(--ink); font-size: 1.03rem;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; position: absolute; right: 4px; top: 50%;
  width: 10px; height: 10px; margin-top: -7px;
  border-right: 2px solid var(--orange); border-bottom: 2px solid var(--orange);
  transform: rotate(45deg); transition: transform .2s ease;
}
.faq details[open] summary::after { transform: rotate(-135deg); margin-top: -3px; }
.faq details p { padding-bottom: 6px; margin-bottom: 0; font-size: .99rem; }

/* ---------- CTA band ---------- */
.cta { background: var(--charcoal); color: #c8ccd4; }
/* .cta is a dark band but isn't .section--dark, so headings kept the near-black
   default and vanished against the background. Set them explicitly. */
.cta h2, .cta h3 { color: var(--white); }
.cta .eyebrow { color: #ffb494; }
.cta .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 26px; padding-block: clamp(40px, 6vw, 64px); }
.cta h2 { margin-bottom: .3em; }
.cta p { margin-bottom: 0; max-width: 52ch; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(32px, 5vw, 60px); align-items: start; }
.contact-list { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 18px; }
.contact-list li { display: flex; gap: 14px; align-items: flex-start; }
.contact-list__icon {
  width: 44px; height: 44px; flex: none; border-radius: 12px;
  background: var(--orange-soft); color: var(--orange); display: grid; place-items: center;
}
.contact-list strong { display: block; font-family: var(--font-head); color: var(--ink); font-size: .95rem; }
.contact-list a { font-size: 1.02rem; word-break: break-word; }

.form-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 38px); box-shadow: var(--shadow); }
.field { margin-bottom: 18px; }
.field label { display: block; font-family: var(--font-head); font-weight: 600; font-size: .92rem; color: var(--ink); margin-bottom: 7px; }
.field input, .field select, .field textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink);
  padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--bg-alt); transition: border-color .15s ease, background .15s ease;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: var(--orange); background: var(--white); outline: none;
}
.field textarea { min-height: 140px; resize: vertical; }
.form-note { font-size: .86rem; color: var(--slate); margin: 14px 0 0; }
.honeypot { position: absolute; left: -9999px; }

/* ---------- Footer ---------- */
.footer { background: var(--ink); color: #9ba1ac; font-size: .95rem; }
.footer .wrap { padding-block: clamp(44px, 6vw, 68px); }
.footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr; gap: 40px; }
.footer h3 { color: var(--white); font-size: 1rem; margin-bottom: 1em; }
.footer a { color: #cfd4dc; }
.footer a:hover { color: var(--orange); }
.footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer__logo { height: 44px; width: auto; margin-bottom: 18px; }
.footer__social { display: flex; gap: 10px; margin-top: 18px; }
.footer__social a {
  width: 40px; height: 40px; border-radius: 10px; background: #2b2b29;
  display: grid; place-items: center; color: #cfd4dc;
}
.footer__social a:hover { background: var(--orange); color: var(--white); }
.footer__bottom {
  border-top: 1px solid #33332f; margin-top: 40px; padding-top: 22px;
  display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between;
  font-size: .87rem;
}

/* ---------- Sticky mobile call bar ---------- */
.callbar { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .nav-toggle { display: flex; }
  .nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--white); border-bottom: 1px solid var(--line);
    padding: 10px 20px 20px; box-shadow: var(--shadow);
  }
  /* The top bar wraps into a clump on narrow screens and duplicates what the
     sticky call bar already offers, so it's desktop-only. */
  .topbar { display: none; }

  .nav.is-open { display: flex; }
  .nav ul { flex-direction: column; align-items: stretch; gap: 2px; }
  .nav a { padding: 13px 12px; font-size: 1.02rem; }
  .nav__cta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 14px 0 0;
  }
  .nav__cta .btn {
    width: 100%;
    margin: 0;
    justify-content: center;
    gap: .45em;
    white-space: nowrap;
    padding-inline: 14px;
    font-size: .93rem;
  }
  .nav__cta-quote { display: inline-flex; }
  .header .wrap { position: relative; }

  .grid--2, .grid--3 { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; }
  .split--flip .split__media { order: -1; }
  .contact-grid { grid-template-columns: 1fr; }
  .trust .wrap { grid-template-columns: repeat(2, 1fr); gap: 26px; }
  .cta .wrap { flex-direction: column; align-items: flex-start; }

  .callbar {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
    background: #33332f; box-shadow: 0 -4px 18px rgba(0,0,0,.16);
  }
  .callbar a {
    display: flex; align-items: center; justify-content: center; gap: .5em;
    padding: 14px 10px; background: var(--ink); color: var(--white);
    font-family: var(--font-head); font-weight: 600; font-size: .95rem;
  }
  .callbar a.is-primary { background: var(--orange); }
  body { padding-bottom: 54px; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .grid--4 { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .btn { width: 100%; justify-content: center; }
  .btn-row { width: 100%; }
  .nav__cta .btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Reveal-on-scroll (progressive enhancement; JS adds .reveal-ready to <html>) */
.reveal-ready [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .5s ease; }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- WPForms ----------
   The plugin renders in "modern" mode, which sizes and colours itself from its
   own custom properties. Overriding its padding and height by hand fought those
   values and clipped the dropdown text, so set the variables instead and let the
   plugin do its own box maths. */
.form-card .wpforms-container-full {
  /* fields */
  --wpforms-field-border-radius: var(--radius);
  --wpforms-field-border-size: 1px;
  --wpforms-field-border-color: var(--line);
  --wpforms-field-background-color: var(--bg-alt);
  --wpforms-field-text-color: var(--ink);
  --wpforms-field-menu-color: var(--white);
  --wpforms-field-size-input-height: 50px;
  --wpforms-field-size-font-size: 16px;
  --wpforms-field-size-padding-h: 15px;
  --wpforms-field-size-input-spacing: 18px;
  --wpforms-field-size-icon-size: 1;

  /* labels */
  --wpforms-label-color: var(--ink);
  --wpforms-label-sublabel-color: var(--slate);
  --wpforms-label-error-color: #c0261a;
  --wpforms-label-size-font-size: 15px;
  --wpforms-label-size-line-height: 1.4;
  --wpforms-label-size-sublabel-font-size: 13px;
  --wpforms-label-size-sublabel-line-height: 1.4;

  /* submit button, matching .btn--primary */
  --wpforms-button-background-color: var(--orange);
  --wpforms-button-background-color-alt: var(--orange-dark);
  --wpforms-button-text-color: var(--white);
  --wpforms-button-text-color-alt: var(--white);
  --wpforms-button-border-color: transparent;
  --wpforms-button-border-size: 2px;
  --wpforms-button-border-style: solid;
  --wpforms-button-border-radius: var(--radius);
  --wpforms-button-size-height: 50px;
  --wpforms-button-size-font-size: 16px;
  --wpforms-button-size-padding-h: 26px;
  --wpforms-button-size-margin-top: 6px;

  /* the card already provides the frame */
  --wpforms-container-padding: 0;
  --wpforms-container-border-width: 0;
  --wpforms-container-border-radius: 0;
}

.form-card .wpforms-container { margin: 0; }
.form-card .wpforms-form,
.form-card .wpforms-form input,
.form-card .wpforms-form select,
.form-card .wpforms-form textarea,
.form-card .wpforms-form button { font-family: var(--font-body); }
.form-card .wpforms-form .wpforms-field-label { font-family: var(--font-head); font-weight: 600; }
.form-card .wpforms-form button[type="submit"] { font-family: var(--font-head); font-weight: 600; }
.form-card .wpforms-form .wpforms-required-label { color: var(--orange); border: 0; }

/* The height variable governs single-line fields; a textarea needs its own. */
.form-card .wpforms-form textarea.wpforms-field-medium,
.form-card .wpforms-form textarea { min-height: 140px; resize: vertical; }

.form-card .wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full {
  background: var(--orange-soft);
  border: 1px solid var(--orange);
  border-radius: var(--radius-lg);
  padding: 20px 22px;
  color: var(--ink);
}
.form-card .wpforms-confirmation-container-full p:last-child { margin-bottom: 0; }

@media (max-width: 560px) {
  .form-card .wpforms-container-full { --wpforms-field-size-font-size: 16px; }
  .form-card .wpforms-form button[type="submit"] { width: 100%; }
}
