.form { display: grid; gap: 1rem; }
.form__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.field { display: grid; gap: .4rem; }
.field label { font-weight: 800; color: var(--color-ink); }
.field input, .field textarea, .field select { width: 100%; border: 1px solid var(--color-border); border-radius: 14px; background: #fff; padding: .85rem .95rem; color: var(--color-ink); transition: border .2s var(--ease), box-shadow .2s var(--ease); }
.field textarea { min-height: 130px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(0,63,120,.1); outline: 0; }
.field__error { min-height: 1.2rem; color: #b42318; font-size: .88rem; font-weight: 700; }
.checkbox { display: flex; gap: .75rem; align-items: flex-start; color: #40586d; }
.checkbox input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: .15rem; }
.form-message { display: none; border-radius: 14px; padding: 1rem; background: #e7f7ef; color: #15603b; font-weight: 800; }
.form-message.is-visible { display: block; }
.newsletter { display: flex; gap: .7rem; max-width: 560px; margin-top: 1.4rem; }
.newsletter input { flex: 1; min-height: 48px; border-radius: 999px; border: 1px solid rgba(255,255,255,.34); padding: 0 1.1rem; background: rgba(255,255,255,.14); color: #fff; }
.newsletter input::placeholder { color: rgba(255,255,255,.76); }
.cookie-banner { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 1100; display: none; }
.cookie-banner.is-visible { display: block; }
.cookie-banner__inner { width: min(100%, 960px); margin: 0 auto; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 1rem; display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; }
.cookie-banner__actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.cookie-banner p { font-size: .95rem; }
