/* Shared, byte-identical across all seven morphed public-website pages:
   self-hosted Hanken Grotesk (replaces the Google Fonts CDN link used by the
   *_to_use.html authority files) plus a small accessibility layer
   (keyboard focus + reduced-motion) that the authority files do not define
   per-page. Everything page-specific stays inline in each page's own
   <style> block — see docs/product-input/public-website-v2/. */

@font-face{
  font-family:"Hanken Grotesk";
  src:url("/assets/fonts/hanken-grotesk-400.woff2") format("woff2");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("/assets/fonts/hanken-grotesk-500.woff2") format("woff2");
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("/assets/fonts/hanken-grotesk-600.woff2") format("woff2");
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("/assets/fonts/hanken-grotesk-700.woff2") format("woff2");
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@font-face{
  font-family:"Hanken Grotesk";
  src:url("/assets/fonts/hanken-grotesk-800.woff2") format("woff2");
  font-style:normal;
  font-weight:800;
  font-display:swap;
}

@font-face{
  font-family:"Hanken Grotesk";
  src:url("/assets/fonts/hanken-grotesk-900.woff2") format("woff2");
  font-style:normal;
  font-weight:900;
  font-display:swap;
}

html{font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif}

/* keyboard-visible focus, sitewide */
a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #1D4ED8;
  outline-offset:2px;
  border-radius:4px;
}

/* prefers-reduced-motion: reduce — belt-and-braces for any CSS transition/
   animation not already gated by the per-page reduced-motion JS checks */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* Issue #305 / #301: progressively enhanced first-party forms (pilot-program
   enquiry on the home page; general enquiry on /make-an-enquiry/). The
   launch mailto remains the no-JavaScript / unconfigured fallback for both.
   The .mp-form-* aliases are the journey-neutral names used by
   assets/js/enquiry.js; they share every rule with the pilot originals. */
.mp-pilot-section{padding:52px 0;background:#eef3f0;scroll-margin-top:20px}
.mp-pilot-wrap{max-width:920px;margin:0 auto;padding:0 28px}
.mp-pilot-card{background:#fff;border:1px solid #dfe6e2;border-radius:22px;box-shadow:0 14px 46px rgba(20,40,30,.10);padding:36px}
.mp-pilot-intro,.mp-form-intro{max-width:680px;margin-bottom:28px}
.mp-pilot-kicker,.mp-form-kicker{color:#14613C;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.mp-pilot-intro h2,.mp-form-intro h2{color:#17324B;font-size:clamp(26px,3vw,34px);line-height:1.15;letter-spacing:-.018em;margin:0 0 10px}
.mp-pilot-intro>p:last-child,.mp-form-intro>p:last-child{color:#5B6066;font-size:16.5px;line-height:1.6}
.mp-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.mp-field-wide{margin-top:18px}
.mp-field label,.mp-security-label{display:block;color:#1F2124;font-weight:800;font-size:14.5px;margin-bottom:7px}
.mp-required{color:#9d2b22;margin-left:2px}
.mp-optional{color:#6b7379;font-size:12px;font-weight:600;margin-left:6px}
.mp-field input,.mp-field textarea,.mp-field select{width:100%;font:inherit;color:#1F2124;background:#fff;border:1.5px solid #cfd8d3;border-radius:10px;padding:11px 12px;line-height:1.4}
.mp-field select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317324B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;cursor:pointer}
.mp-field textarea{resize:vertical;min-height:118px}
.mp-field input:hover,.mp-field textarea:hover,.mp-field select:hover{border-color:#94a69c}
.mp-field input[aria-invalid="true"],.mp-field textarea[aria-invalid="true"],.mp-field select[aria-invalid="true"]{border-color:#a93226;box-shadow:0 0 0 1px #a93226}
.mp-field-error{display:block;min-height:1.25em;color:#8f271f;font-size:13px;font-weight:700;margin-top:5px}
.mp-field-help{display:block;color:#697078;font-size:13px;line-height:1.45;margin-top:6px}
.mp-privacy{margin:22px 0 18px;padding:14px 16px;background:#f5f7f6;border-left:4px solid #14613C;border-radius:8px;color:#525a60;font-size:13.5px;line-height:1.55}
.mp-turnstile-group{margin:18px 0 20px}
.mp-turnstile{min-height:65px;max-width:420px}
.mp-form-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}
.mp-submit{appearance:none;border:0;border-radius:11px;background:#E0A23C;color:#3a2a10;font:inherit;font-size:15px;font-weight:800;padding:13px 22px;cursor:pointer}
.mp-submit:hover{filter:brightness(1.04)}
.mp-submit:disabled{cursor:wait;opacity:.7}
.mp-email-fallback{color:#14613C;font-size:14px;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.mp-form-status{min-height:1.5em;margin-top:16px;font-size:14px;font-weight:700;line-height:1.45}
.mp-form-status[data-kind="error"]{color:#8f271f}
.mp-form-status[data-kind="progress"]{color:#17324B}
.mp-success{background:#e9f4ee;border:1px solid #b9d8c7;border-radius:14px;padding:22px 24px;color:#1F2124}
.mp-success h3{color:#14613C;font-size:21px;margin:0 0 7px}
.mp-success p{color:#46504a;line-height:1.55}
.mp-success a{color:#14613C;font-weight:800;text-decoration:underline;text-underline-offset:3px}
textarea:focus-visible{outline:3px solid #1D4ED8;outline-offset:2px;border-radius:4px}
@media(max-width:680px){
  .mp-pilot-section{padding:38px 0}
  .mp-pilot-wrap{padding:0 18px}
  .mp-pilot-card{padding:26px 20px;border-radius:18px}
  .mp-field-grid{grid-template-columns:1fr;gap:14px}
  .mp-field-wide{margin-top:14px}
  .mp-form-actions{align-items:flex-start;flex-direction:column;gap:13px}
  .mp-submit{width:100%;text-align:center}
}
