/* Additions to the original site's stylesheet (site.css, compiled and left untouched): the quote form's error
   messages, the cookie notice, and the privacy and 404 pages. Uses the original's colours (--color-brand etc.). */

/* Quote form mistakes */
.field-error { font-size: 13px; font-weight: 500; color: #ff9b9b; }
.is-invalid { outline-color: #ff6b6b !important; }

/* First-visit cookie notice: a white card at the bottom, like the original's floating cards */
.cookie-notice {
    position: fixed; z-index: 60; left: 50%; bottom: 20px; transform: translateX(-50%);
    width: min(640px, calc(100% - 32px)); padding: 14px 14px 14px 20px; border-radius: 18px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    background: #fff; color: var(--color-ink); border: 1px solid #eef1f8;
    box-shadow: 0 20px 60px rgba(25, 26, 21, .14);
}
.cookie-notice[hidden] { display: none; }
.cookie-notice p { font-size: 14px; line-height: 1.45; }
.cookie-actions { display: flex; flex: none; gap: 8px; }
.cookie-actions .btn { padding: 10px 18px; border-radius: 10px; font-size: 14px; }
@media (max-width: 560px) {
    .cookie-notice { flex-direction: column; align-items: stretch; bottom: 16px; padding: 16px; }
    .cookie-actions > * { flex: 1; text-align: center; }
}

/* Privacy page: a readable column on the original's white */
.legal { padding: 48px 0 100px; }
.legal-inner { max-width: 780px; }
.legal-eyebrow { font-size: 14px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--color-brand-d); }
.legal h1 { margin-top: 12px; font-size: clamp(34px, 5vw, 56px); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.legal-lede { margin-top: 16px; font-size: 17px; color: var(--color-mute); }
.legal h2 { margin-top: 44px; font-size: 22px; font-weight: 600; letter-spacing: -.01em; }
.legal p, .legal li { margin-top: 12px; font-size: 16px; line-height: 1.7; color: #4a4c45; }
.legal ul { padding-left: 20px; list-style: disc; }
.legal strong { color: var(--color-ink); font-weight: 600; }
.legal a { color: var(--color-brand-d); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.legal-table { margin-top: 20px; overflow-x: auto; border-radius: 16px; border: 1px solid #eef1f8; background: #fff; }
.legal table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14px; }
.legal th, .legal td { padding: 14px 16px; border-bottom: 1px solid #eef1f8; text-align: left; vertical-align: top; color: #4a4c45; }
.legal tr:last-child td { border-bottom: 0; }
.legal th { font-weight: 600; color: var(--color-ink); background: var(--color-lav); }
.legal code { font-size: 13px; font-weight: 600; color: var(--color-ink); }

/* 404 */
.not-found { min-height: 70vh; padding: 60px 0 100px; display: grid; place-items: center; text-align: center; }
.not-found-code { font-size: clamp(96px, 18vw, 180px); font-weight: 700; line-height: 1; letter-spacing: -.04em; color: var(--color-brand); }
.not-found h1 { margin-top: 12px; font-size: clamp(28px, 4vw, 44px); font-weight: 600; letter-spacing: -.02em; }
.not-found p { margin: 14px auto 0; max-width: 42ch; font-size: 17px; color: var(--color-mute); }
.not-found-actions { margin-top: 32px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.not-found-links { margin-top: 32px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; font-size: 15px; }
.not-found-links a { color: var(--color-mute); text-decoration: underline; text-underline-offset: 4px; }
.not-found-links a:hover { color: var(--color-ink); }
